OpenAI scores 59/100 (Grade F), passing 13 of 22 checks (59%). There are 8 issues limiting AI agent readiness. Addressing llms.txt support and markdown availability would provide the most improvement.
# Agent Score Fix Report — OpenAI URL: https://platform.openai.com/docs Score: 59/100 (Grade F) I need help improving the AI-readiness of the documentation at https://platform.openai.com/docs. Agent Score found 4 failing checks and 4 warnings. ## Failing Checks (4) - [content-discoverability] Llms Txt Directive: No llms.txt directive found in any of 5 sampled pages; 5 failed to fetch - [page-size] Content Start Position: 5 of 10 sampled pages have content starting past 50% (worst 100%) - [url-stability] Redirect Behavior: 5 JavaScript redirect(s) detected across 10 sampled pages - [observability] Markdown Content Parity: 1 of 5 pages have substantive content differences between markdown and HTML (avg 11% missing) ## Warnings (4) - [content-discoverability] Llms Txt Exists: llms.txt found but only reachable via cross-host redirect (agents may not follow it) - [markdown-availability] Markdown Url Support: 5/10 sampled pages support .md URLs (50%); inconsistent support - [markdown-availability] Content Negotiation: Content negotiation partially supported: 4 correct type, 0 wrong type, 6 HTML only - [authentication] Auth Gate Detection: 5 of 10 sampled pages require authentication (5 accessible) ## Fix Instructions For each issue above, please: 1. Analyze the documentation site at https://platform.openai.com/docs 2. Implement the specific fix 3. Verify the fix would cause the check to pass ### Common fixes: - **No llms.txt**: Create /llms.txt following https://llmstxt.org — list all doc pages in markdown format - **No .md URL support**: Configure your docs platform to serve pages at equivalent .md URLs (e.g. /docs/quickstart.md) - **No content negotiation**: Return markdown when request includes Accept: text/markdown header - **Large page size**: Reduce nav boilerplate, inline scripts, and repetitive markup - **No sitemap**: Generate /sitemap.xml listing all documentation URLs - **Auth walls**: Ensure docs pages return 200 without requiring login cookies or tokens - **No Last-Modified header**: Configure your server/CDN to include Last-Modified response headers - **Tab content hidden**: Ensure tabbed content is rendered in the HTML (not JS-only) so agents can read all variants ## Run afdocs Locally for More Detail To get deeper visibility into what's failing, run afdocs against your docs: npx afdocs https://platform.openai.com/docs --fixes --verbose - **--fixes**: Adds "Fix:" lines to the output for each warn/fail check with actionable remediation steps - **-v, --verbose**: Shows per-page details (specific URLs, character counts, error codes) for checks with issues — useful for per-URL visibility into what's failing
CHECK RESULTS
How your docs scored
markdown-content-parity1 of 5 pages have substantive content differences between markdown and HTML (avg 11% missing)
cache-header-hygieneAll 11 endpoints have appropriate cache headers
llms-txt-freshnessNo sitemap found; cannot assess llms.txt freshness without a sitemap as ground truth
markdown-url-support5/10 sampled pages support .md URLs (50%); inconsistent support
content-negotiationContent negotiation partially supported: 4 correct type, 0 wrong type, 6 HTML only
redirect-behavior5 JavaScript redirect(s) detected across 10 sampled pages
http-status-codesAll 10 sampled pages return proper error codes for bad URLs
llms-txt-directiveNo llms.txt directive found in any of 5 sampled pages; 5 failed to fetch
llms-txt-existsllms.txt found but only reachable via cross-host redirect (agents may not follow it)
llms-txt-validllms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)
llms-txt-sizellms.txt is 22,408 characters (under 50,000 threshold)
llms-txt-links-resolveAll 10 same-origin sampled links resolve (127 total links)
llms-txt-links-markdown10/10 same-origin sampled links point to markdown content (100%)
content-start-position5 of 10 sampled pages have content starting past 50% (worst 100%)
rendering-strategyAll 10 sampled pages contain server-rendered content
page-size-markdownAll 5 pages under 50K chars (median 23K, max 25K)
page-size-htmlAll 10 sampled pages convert under 50K chars (median 10K, 16% boilerplate)
auth-gate-detection5 of 10 sampled pages require authentication (5 accessible)
auth-alternative-accessAlternative access detected (public-llms-txt, public-markdown, partial-public-access) for site with 5 auth-gated pages
tabbed-content-serializationNo tabbed content detected across 10 sampled pages
section-header-qualityNo tabbed content found; header quality check not applicable
markdown-code-fence-validityAll 35 code fences properly closed across 6 pages