{"slug":"carawayhome-8utgvq","companyName":"Caraway Home","domain":"carawayhome.com","url":"https://carawayhome.com","headline":"A Shopify storefront with complete product data but no agent checkout manifest and a closed product feed blocks programmatic shopping.","compositeScore":66,"humanScore":71,"agentScore":61,"doorGap":10,"humanMeasured":4,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":false,"depth":"free","siteClass":"ecommerce","scannerVersion":13,"scannedAt":"2026-09-08T16:02:13.581Z","unlocked":false,"mission":{"steps":[{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://www.carawayhome.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://www.carawayhome.com/llms.txt","outcome":"missing","purpose":"read the site's own guide for language models"},{"url":"https://www.carawayhome.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://www.carawayhome.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://www.carawayhome.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://www.carawayhome.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://www.carawayhome.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"read the homepage as data rather than as a page"},{"url":"https://www.carawayhome.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://www.carawayhome.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"read a product page as data"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"read the returns and shipping terms"},{"url":"https://www.carawayhome.com","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 10 of 17 requests, but could not read the site's own guide for language models. It came up empty on 6 other checks too."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":100,"summary":"No AI crawler is blocked by robots.txt or user agent rules. A real browser is served the page normally. The sitemap lists 658 URLs. The homepage carries 5 schema.org types including Organization and WebSite.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API surface, OpenAPI spec, or developer documentation is published. The Shopify /products.json endpoint returns 404, indicating it has been closed. No MCP manifest exists at any standard path.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":85,"summary":"Prices appear in raw HTML: 1035 on the homepage, 1734 across 3 product pages. Product structured data publishes price, currency, and availability without JavaScript. A GTIN identifies each product.","evidence":{"locked":true,"count":2}},{"key":"agent_aware_instrumentation","audience":"agent","score":21,"summary":"No MCP manifest is published at any of the 3 standard paths checked. Shopify supports agent checkout protocols and the platform is ready, but no manifest has been created.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":67,"summary":"No security.txt file is published. The returns policy reads as text with a 30-day window and is linked from product pages. Both return and shipping policies are published in structured data.","evidence":{"locked":true,"count":3}},{"key":"commercial_rails","audience":"agent","score":82,"summary":"Product markup carries price, currency, GTIN, brand, aggregate rating (4.8 stars over 19844 reviews), and a 30-day return policy in structured data. Review text is in server HTML. Shopify Catalog syndicates products with these fields.","evidence":{"locked":true,"count":4}},{"key":"steps_to_first_value","audience":"human","score":95,"summary":"A product with its price ($100,000) and an add-to-cart control is reached in 2 steps from the homepage. The product page renders the price and availability in structured data. No variant selection is required on the pages checked.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":80,"summary":"The product page does not require an account before adding to cart. Shop Pay is offered as an express wallet, allowing checkout without a form. The entry path walk found 9 inputs on the page but none carry validation constraints that would.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":75,"summary":"No sign-in requirement appears on the product page before purchase. The entry path walk confirms accountRequired is false. A guest can proceed to checkout. The page does not demand email verification or account creation before buying.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":35,"summary":"Of 9 inputs on the product page, 0 carry validation rules (withConstraint: 0). The page has 4 live regions and 3 inputs with descriptions, but no inline error containers.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"The catalogue endpoint at /products.json is closed and no product sitemap replaces it, so an assistant has no list of what this store sells.","dimensionKey":"machine_discoverability","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"The product feed is closed, forcing agents to scrape individual product pages instead of reading a catalog.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":3},"fix":null},{"rank":3,"title":"No agent checkout manifest is published, preventing agents from completing purchases even though Shopify supports the protocol.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":6,"summaries":[{"id":"robots_search_bots:robots-txt","kind":"robots_search_bots","title":"robots.txt rules for AI crawlers","path":"/robots.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["The assistants' search crawlers read and cite the site to buyers; training stays the owner's decision."]}},{"id":"policy_pages_text:policies-shipping-policy","kind":"policy_pages_text","title":"Shipping and delivery page","path":"/policies/shipping-policy","effort":{"minutes":30,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Returns and shipping pages read as text and are linked from every product page."]}},{"id":"agent_checkout_note:notes","kind":"agent_checkout_note","title":"Agent checkout: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The checkout rail question is settled with the platform and processor before any manifest is published."]}},{"id":"security_txt:well-known-security-txt","kind":"security_txt","title":"security.txt","path":"/.well-known/security.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Researchers and automated scanners find a disclosure address instead of guessing one."]}},{"id":"interfaces_note:notes","kind":"interfaces_note","title":"Machine interfaces: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The developer surface is built in an order where every published pointer answers."]}},{"id":"llms_txt:llms-txt","kind":"llms_txt","title":"llms.txt","path":"/llms.txt","effort":{"minutes":15,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Assistants that read llms.txt get a curated map of the site instead of guessing from the homepage."]}}]},"feedback":{"endpoint":"/api/feedback","mcpTool":"rate_fix","targets":[{"type":"report","key":"report"},{"type":"dimension","dimensionKey":"machine_discoverability","key":"dimension:machine_discoverability"},{"type":"dimension","dimensionKey":"programmatic_onboarding","key":"dimension:programmatic_onboarding"},{"type":"dimension","dimensionKey":"pricing_legibility","key":"dimension:pricing_legibility"},{"type":"dimension","dimensionKey":"agent_aware_instrumentation","key":"dimension:agent_aware_instrumentation"},{"type":"dimension","dimensionKey":"machine_fetchable_trust","key":"dimension:machine_fetchable_trust"},{"type":"dimension","dimensionKey":"commercial_rails","key":"dimension:commercial_rails"},{"type":"dimension","dimensionKey":"steps_to_first_value","key":"dimension:steps_to_first_value"},{"type":"dimension","dimensionKey":"required_fields","key":"dimension:required_fields"},{"type":"dimension","dimensionKey":"verification_walls","key":"dimension:verification_walls"},{"type":"dimension","dimensionKey":"error_recovery","key":"dimension:error_recovery"},{"type":"issue","dimensionKey":"machine_discoverability","checkId":"catalog_feed","key":"issue:machine_discoverability:catalog_feed"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":null,"key":"issue:programmatic_onboarding:-"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":null,"key":"issue:agent_aware_instrumentation:-"}]}}