{"slug":"vuoriclothing-3aewjh","companyName":"Vuori","domain":"vuoriclothing.com","url":"https://vuoriclothing.com","headline":"A Shopify storefront that publishes product data to machines but blocks automated browsers from shopping, and has no API surface for programmatic access.","compositeScore":49,"humanScore":0,"agentScore":49,"doorGap":0,"humanMeasured":0,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":true,"depth":"free","siteClass":"unknown","scannerVersion":10,"scannedAt":"2026-09-04T01:36:59.995Z","unlocked":false,"mission":{"steps":[{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://vuoriclothing.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://vuoriclothing.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://vuoriclothing.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://vuoriclothing.com/.well-known/security.txt","outcome":"ok","purpose":"find a contact route for machines"},{"url":"https://vuoriclothing.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://vuoriclothing.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://vuoriclothing.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"read the homepage as data rather than as a page"},{"url":"https://vuoriclothing.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://vuoriclothing.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"read a product page as data"},{"url":"https://vuoriclothing.com","outcome":"ok","purpose":"read the returns and shipping terms"},{"url":"https://vuoriclothing.com","outcome":"missing","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 11 of 17 requests, but could not find a published agent interface. It came up empty on 5 other checks too. That is enough missing for a machine to give up before it reaches a purchase."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":79,"summary":"No AI crawler is blocked by robots.txt; llms.txt is published with 97 lines of declared intent for assistants. The homepage carries 7 schema.org types including Organization and SearchAction, and a sitemap lists 1120 URLs.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API surface was found. No OpenAPI spec exists at any of the 6 standard paths checked. No developer documentation is linked from the homepage. The Shopify platform supports programmatic access patterns, but none are published or.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":90,"summary":"Prices are embedded in the raw HTML of all 3 product pages checked, with 133 prices across those pages and 24 on the homepage itself. Product structured data publishes price and currency in JSON-LD. Availability is also published.","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 the agent checkout protocols, but no agent checkout manifest exists yet.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":85,"summary":"security.txt is published at /.well-known/security.txt with a contact route for machines. The returns policy reads as plain text at /returns and is 3409 characters long. The homepage answers automated requests with HTTP 200.","evidence":{"locked":true,"count":3}},{"key":"commercial_rails","audience":"agent","score":10,"summary":"The site runs on Shopify, which supports payment and checkout. However, the /products.json endpoint is closed (returns 404), blocking the standard feed that agents use to read inventory and prices. No agent checkout manifest is published.","evidence":{"locked":true,"count":4}},{"key":"steps_to_first_value","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":null,"summary":"Could not verify: this scan did not reach the pages that would show it.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"Reviews load from Yotpo by script, so a client that reads raw HTML sees the products without a single review.","dimensionKey":"pricing_legibility","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"The /products.json endpoint is closed, blocking the standard feed that agents use to read inventory and prices.","dimensionKey":"commercial_rails","evidence":{"locked":true,"count":3},"fix":null},{"rank":3,"title":"No API surface is published or discoverable, blocking programmatic access to the catalog.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":8,"summaries":[{"id":"bot_wall_guidance:notes","kind":"bot_wall_guidance","title":"Let verified assistants through","path":"notes","effort":{"minutes":60,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Assistant shopping and search crawlers reach the product, pricing and policy pages a buyer asks about."]}},{"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":"review_schema_vendor:notes","kind":"review_schema_vendor","title":"Put Yotpo reviews in the page","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Review text and ratings reach crawlers that do not run the review widget's script."]}},{"id":"merchant_policy_jsonld:product-page","kind":"merchant_policy_jsonld","title":"Return policy and shipping structured data","path":"product page","effort":{"minutes":30,"role":"developer"},"outcome":{"dimension":"machine_fetchable_trust","external":["Assistants read the return window and shipping terms from structured data."]}},{"id":"policy_pages_text:notes","kind":"policy_pages_text","title":"Link the policy pages from the product page","path":"notes","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":"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":"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":"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."]}}]},"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":"pricing_legibility","checkId":"product_pages","key":"issue:pricing_legibility:product_pages"},{"type":"issue","dimensionKey":"commercial_rails","checkId":null,"key":"issue:commercial_rails:-"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":null,"key":"issue:programmatic_onboarding:-"}]}}