{"slug":"fahertybrand-kpappc","companyName":"Faherty Brand","domain":"fahertybrand.com","url":"https://fahertybrand.com","headline":"A retail storefront with agent checkout capability but no documented API surface for programmatic product discovery or catalog access.","compositeScore":73,"humanScore":85,"agentScore":61,"doorGap":24,"humanMeasured":4,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":false,"depth":"free","siteClass":"ecommerce","scannerVersion":8,"scannedAt":"2026-09-02T19:17:04.680Z","unlocked":false,"mission":{"steps":[{"url":"https://fahertybrand.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://fahertybrand.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://fahertybrand.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://fahertybrand.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://fahertybrand.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://fahertybrand.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://fahertybrand.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://fahertybrand.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://fahertybrand.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://fahertybrand.com","outcome":"ok","purpose":"read the homepage as data rather than as a page"},{"url":"https://fahertybrand.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://fahertybrand.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://fahertybrand.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://fahertybrand.com","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 8 of 14 requests, but could not find a contact route for machines. It came up empty on 5 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. The site serves a real browser normally, publishes llms.txt with 87 directives, declares a sitemap with 355 URLs, and includes 19 schema.org types on the homepage.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API documentation is linked from the homepage or discoverable in raw HTML. The site publishes a UCP manifest for checkout but provides no documented endpoint for agents to search or browse the catalog programmatically.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":63,"summary":"Prices appear in the raw HTML of product pages: 106 prices were found across 2 product pages checked, with examples at $95 and $150. Product structured data exists but does not carry price, currency or availability fields, so agents cannot.","evidence":{"locked":true,"count":1}},{"key":"agent_aware_instrumentation","audience":"agent","score":60,"summary":"A Universal Commerce Protocol manifest at version 2026-08-25 is published, declaring 8 capabilities and 3 payment handlers, with a storefront MCP endpoint that agents can call. No MCP manifest exists at the 3 standard paths checked.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":40,"summary":"No security.txt file is published at /.well-known/security.txt. The homepage responds to automated requests with HTTP 200 and serves structured data, but no security contact or vulnerability disclosure policy is machine-readable.","evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":90,"summary":"A UCP manifest publishes 8 transactional capabilities including checkout, cart, fulfillment and discount handling. A storefront MCP endpoint answers agent calls.","evidence":{"locked":true,"count":2}},{"key":"steps_to_first_value","audience":"human","score":95,"summary":"A product page with its price ($150) and an add-to-basket control is reachable in 2 steps from the homepage. The product page includes 13 size or colour choosers and accepts Apple Pay, Shop Pay and PayPal, allowing a buyer to transact.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":80,"summary":"The product page does not require an account before adding to basket or checking out. Three express wallet options (Apple Pay, Shop Pay, PayPal) allow checkout without entering any form fields.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":75,"summary":"No sign-in requirement appears on the product page before a buyer can add an item to the basket. Express wallets bypass form entry entirely. The page includes 79 inline error containers, suggesting validation happens during checkout rather.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":90,"summary":"A product page offers 13 size or colour choosers, allowing a shopper to correct their selection before committing to a purchase. The page includes 8 live regions for dynamic updates, supporting error correction and choice confirmation.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"Product structured data does not include price, currency or availability information.","dimensionKey":"pricing_legibility","evidence":{"locked":true,"count":3},"fix":null},{"rank":2,"title":"No security contact or vulnerability disclosure policy is published.","dimensionKey":"machine_fetchable_trust","evidence":{"locked":true,"count":3},"fix":null},{"rank":3,"title":"No developer documentation is linked from the homepage, in raw HTML or the rendered page, so integration starts with a search engine.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":1},"fix":null}],"fixArtifacts":{"locked":true,"count":3,"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":"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."]}}]},"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":"pricing_nojs","key":"issue:pricing_legibility:pricing_nojs"},{"type":"issue","dimensionKey":"machine_fetchable_trust","checkId":"security_txt","key":"issue:machine_fetchable_trust:security_txt"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":"api_surface","key":"issue:programmatic_onboarding:api_surface"}]}}