{"slug":"freeflyapparel-wdv89q","companyName":"Free Fly Apparel","domain":"freeflyapparel.com","url":"https://freeflyapparel.com","headline":"Free Fly's catalog and checkout are fully machine readable through a UCP manifest, but the site has zero developer surface and lets JavaScript-only reviews go invisible to any agent that can't run.","compositeScore":55,"humanScore":0,"agentScore":55,"doorGap":0,"humanMeasured":0,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":true,"depth":"deep","siteClass":"unknown","scannerVersion":10,"scannedAt":"2026-09-07T12:27:27.478Z","unlocked":false,"mission":{"steps":[{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://freeflyapparel.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://freeflyapparel.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://freeflyapparel.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://freeflyapparel.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://freeflyapparel.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://freeflyapparel.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read a product page as data"},{"url":"https://freeflyapparel.com","outcome":"ok","purpose":"read the returns and shipping terms"},{"url":"https://freeflyapparel.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 find a contact route for machines. It came up empty on 6 other checks too."},"observations":[{"url":"https://freeflyapparel.com/","step":1,"detail":"Page title states 'Bamboo & Sun Protective Clothing', clarifying the business fast. Homepage shows a lifestyle fishing scene and nav for Men, Women, Kids, Accessories. A discount popup covers the page on load asking for email signup for 15% off, dismissible via Close.","moment":"Landing page","verdict":"friction","screenshot":1},{"url":"https://freeflyapparel.com/","step":2,"detail":"Page shows price $74, color and size selectors, materials, care instructions, shipping and returns, fit guide, and 4,105 reviews with rating breakdown. No login needed to view any of it. This is a normal browsable catalog page, not gated.","moment":"Product page - Men's Bamboo Lightweight Hoodie","verdict":"smooth","screenshot":0},{"url":"https://freeflyapparel.com/cart","step":3,"detail":"Cart is empty and reachable without any login. It offers 'Join or Log In to access perks and a quicker checkout' but does not force account creation to shop. A direct /account URL is blocked by robots.txt for automated visitors, so account signup fields could not be inspected in this walk.","moment":"Cart page, unauthenticated","verdict":"smooth","screenshot":2}],"dimensions":[{"key":"machine_discoverability","audience":"agent","score":100,"summary":"Robots.txt allows every named AI crawler, a real browser renders normally, llms.txt is published, and a 422-URL sitemap lists every product. Nothing here is hidden from a machine.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":0,"summary":"No OpenAPI spec at any of 6 standard paths, no MCP manifest at 3 standard paths, and no developer documentation linked anywhere on the homepage. There is no way for a program to onboard beyond browsing the storefront.","evidence":{"locked":true,"count":4}},{"key":"pricing_legibility","audience":"agent","score":90,"summary":"9 prices sit in the raw homepage HTML and 77 prices across 3 product pages with no JavaScript required. Product structured data carries price, currency and availability, so an agent can parse cost without scraping rendered content.","evidence":{"locked":true,"count":2}},{"key":"agent_aware_instrumentation","audience":"agent","score":57,"summary":"No MCP manifest at standard paths, but a Universal Commerce Protocol manifest exists with checkout, cart and order capabilities over MCP, and the catalog answers as data at /products.json.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":65,"summary":"No security.txt at the standard well-known path. Returns and shipping policies are readable as plain text, and the homepage answers automated requests cleanly, but trust signals are incomplete.","evidence":{"locked":true,"count":3}},{"key":"commercial_rails","audience":"agent","score":20,"summary":"A UCP manifest declares checkout, cart, fulfillment and order capabilities with 3 payment handlers over MCP, and the catalog and policies are all machine readable, but no ACP manifest and no paid-crawl signal mean an agent-driven purchase.","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":"No security.txt is published, so a machine has no documented route to report a problem.","dimensionKey":"machine_fetchable_trust","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"Product page structured data omits return policy and shipping details even though both policies exist as readable text pages.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":2},"fix":null}],"fixArtifacts":{"locked":true,"count":8,"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":"review_schema_vendor:notes","kind":"review_schema_vendor","title":"Put Okendo 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":"catalog_identifiers:catalog-identifiers-csv","kind":"catalog_identifiers","title":"Variants missing a GTIN or a brand","path":"catalog-identifiers.csv","effort":{"minutes":5,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Feed listings stop being rejected for a missing brand or GTIN."]}},{"id":"organization_jsonld:homepage","kind":"organization_jsonld","title":"Organization structured data","path":"homepage","effort":{"minutes":15,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Search and assistant crawlers read the company entity from the homepage rather than inferring it."]}},{"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":"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."]}}]},"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_fetchable_trust","checkId":"security_txt","key":"issue:machine_fetchable_trust:security_txt"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":null,"key":"issue:agent_aware_instrumentation:-"}]}}