Novu scores 95/100 (Grade A), placing it among the most AI-agent-ready documentation sites evaluated. It passes 16 of 22 checks (73%), demonstrating strong support for AI coding agents. 2 items require attention to reach a perfect score.
# Agent Score Fix Report — Novu URL: https://docs.novu.co/ Score: 95/100 (Grade A) I need help improving the AI-readiness of the documentation at https://docs.novu.co/. Agent Score found 1 failing checks and 1 warnings. ## Failing Checks (1) - [observability] Cache Header Hygiene: 11 of 11 endpoints have aggressive caching or missing cache headers ## Warnings (1) - [content-discoverability] Llms Txt Size: llms.txt is 66,433 characters (between 50,000 and 100,000; consider splitting) ## Fix Instructions For each issue above, please: 1. Analyze the documentation site at https://docs.novu.co/ 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 check https://docs.novu.co/ --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
auth-gate-detectionAll 10 sampled pages are publicly accessible
auth-alternative-accessAll docs pages are publicly accessible; no alternative access paths needed
llms-txt-sizellms.txt is 66,433 characters (between 50,000 and 100,000; consider splitting)
llms-txt-existsllms.txt found at 1 location(s)
llms-txt-validllms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)
llms-txt-directivellms.txt directive found in all 10 sampled pages
llms-txt-links-resolveNo HTTP(S) links found in llms.txt
llms-txt-links-markdownNo HTTP(S) links found in llms.txt
tabbed-content-serialization2 tab group(s) across 2 of 10 sampled pages; all serialize under 50K chars
markdown-code-fence-validityAll 9 code fences properly closed across 11 pages
section-header-quality2 page(s) with tabs found, but no section headers inside tab panels to evaluate
cache-header-hygiene11 of 11 endpoints have aggressive caching or missing cache headers
llms-txt-freshnessllms.txt covers 100% of 380 sitemap doc pages
markdown-content-parityAll 10 pages have equivalent markdown and HTML content (avg 0% missing)
markdown-url-support10/10 sampled pages support .md URLs (100%)
content-negotiation10/10 sampled pages support content negotiation (100%)
rendering-strategyAll 10 sampled pages contain server-rendered content
page-size-markdownAll 10 pages under 50K chars (median 3K, max 6K)
page-size-htmlAll 10 sampled pages convert under 50K chars (median 3K, 0% boilerplate)
content-start-positionContent starts within first 10% on all 10 sampled pages (median 0%)
http-status-codesAll 10 sampled pages return proper error codes for bad URLs
redirect-behaviorNo redirects detected across 10 sampled pages