# Evil Charts

[evilcharts.com](https://evilcharts.com)

- **Overall score:** 86/100 (Grade B)
- **Checks passed:** 18 / 29
- **Last computed:** 2026-05-11

## Components

### Content Discoverability

- **Score:** 98/100 · **Status:** partial
- **Summary:** 1 warning and 2 skipped across 6 AFDocs checks.
- **Rationale:** Agents need a clear entry point and crawl map before they can reliably discover the right pages.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ✅ **LLMS TXT Exists** — llms.txt found at 1 location(s)
- ✅ **LLMS TXT Valid** — llms.txt follows the proposed structure (H1, blockquote, heading-delimited link sections)
- ✅ **LLMS TXT Size** — llms.txt is 2,145 characters (under 50,000 threshold)
- ⏭️ **LLMS TXT Links Resolve** — No HTTP(S) links found in llms.txt
- ⏭️ **LLMS TXT Links Markdown** — No HTTP(S) links found in llms.txt
- ⚠️ **LLMS TXT Directive** — llms.txt directive found in 14 of 15 sampled pages (1 missing) An llms.txt directive was found on some pages but is missing from others, or is buried deep in the page. Ensure the directive appears near the top of every documentation page.

### Markdown Availability

- **Score:** 64/100 · **Status:** partial
- **Summary:** 1 warning across 2 AFDocs checks.
- **Rationale:** When markdown is available directly, agents spend less effort stripping presentation markup and guessing structure.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ⚠️ **Markdown Url Support** — 7/15 sampled pages support .md URLs (47%); inconsistent support 0 of 15 pages support .md URLs inconsistently. Ensure all documentation pages serve markdown when .md is appended to the URL.
- ✅ **Content Negotiation** — 14/15 sampled pages support content negotiation (93%)

### Page Size and Truncation Risk

- **Score:** 69/100 · **Status:** fail
- **Summary:** 2 failed and 1 warning across 4 AFDocs checks.
- **Rationale:** Large pages and delayed primary content increase truncation risk and make retrieval less reliable.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ✅ **Rendering Strategy** — All 15 sampled pages contain server-rendered content
- ⚠️ **Page Size Markdown** — 9 of 14 pages between 50K–100K chars (max 97K) 9 of 14 markdown pages are between 50K and 100K characters. These may be truncated on some agent platforms or routed through summarization. Consider splitting large pages.
- ❌ **Page Size Html** — 12 of 15 sampled pages convert to over 100K chars (max 1944K, 16% boilerplate) 12 of 15 pages convert to over 100K characters of markdown. Reduce inline CSS/JS, break large pages, or provide markdown versions as a smaller alternative.
- ❌ **Content Start Position** — 1 of 15 sampled pages have content starting past 50% (worst 100%) 1 of 15 pages have content starting past 50% of the converted output. Agents may never see the documentation content. Move or remove inline CSS/JS that precedes the content area.

### Content Structure

- **Score:** 100/100 · **Status:** partial
- **Summary:** 1 skipped across 3 AFDocs checks.
- **Rationale:** Predictable sections, valid code fences, and serialized tabs make the content easier for agents to parse correctly.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ✅ **Tabbed Content Serialization** — 137 tab group(s) across 13 of 15 sampled pages; all serialize under 50K chars
- ⏭️ **Section Header Quality** — 13 page(s) with tabs found, but no section headers inside tab panels to evaluate
- ✅ **Markdown Code Fence Validity** — All 296 code fences properly closed across 15 pages

### URL Stability and Redirects

- **Score:** 100/100 · **Status:** pass
- **Summary:** 2 AFDocs checks pass.
- **Rationale:** Stable URLs and sane redirect behavior prevent retrieval drift and broken tool references.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ✅ **Http Status Codes** — All 15 sampled pages return proper error codes for bad URLs
- ✅ **Redirect Behavior** — All 7 redirect(s) across 15 sampled pages are same-host HTTP redirects

### Observability and Content Health

- **Score:** 83/100 · **Status:** fail
- **Summary:** 1 failed and 1 warning across 3 AFDocs checks.
- **Rationale:** Coverage, parity, and cache behavior determine whether agents can trust the content they retrieve.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ⚠️ **LLMS TXT Freshness** — llms.txt covers 16/17 sitemap doc pages (94%); 1 missing; 10 llms.txt links not in sitemap (may indicate stale links or incomplete sitemap) Your llms.txt covers 80-95% of your site's pages. 1 live pages are not represented in the index.
- ❌ **Markdown Content Parity** — 2 of 14 pages have substantive content differences between markdown and HTML (avg 11% missing) 2 pages have substantive content differences between markdown and HTML (avg 11% missing). Agents receiving the markdown version are getting outdated or incomplete content. Regenerate markdown from source or fix the build pipeline.
- ✅ **Cache Header Hygiene** — All 16 endpoints have appropriate cache headers

### Authentication and Access

- **Score:** 100/100 · **Status:** partial
- **Summary:** 1 skipped across 2 AFDocs checks.
- **Rationale:** Agents need either public access or a clear alternative path when documentation is gated behind auth.
- **Reference:** [AFDocs reference](https://afdocs.dev)

**Checks**

- ✅ **Auth Gate Detection** — All 15 sampled pages are publicly accessible
- ⏭️ **Auth Alternative Access** — All docs pages are publicly accessible; no alternative access paths needed

### Full Content Discoverability

- **Score:** 100/100 · **Status:** pass
- **Summary:** llms-full.txt passes all checks.
- **Rationale:** A full-document snapshot gives long-context agents a single canonical corpus to ingest without repeated crawling.
- **Reference:** [llms-full.txt guide](https://www.mintlify.com/docs/ai/llmstxt#llms-full-txt)

**Checks**

- ✅ **LLMS Full Exists** — Found llms-full.txt.
- ✅ **LLMS Full Size** — llms-full.txt size is within the expected range.
- ✅ **LLMS Full Valid** — llms-full.txt has a recognizable markdown structure.
- ✅ **LLMS Full Links Resolve** — llms-full.txt links resolve successfully.

### Agent Skills

- **Score:** 100/100 · **Status:** pass
- **Summary:** skill.md passes all checks.
- **Rationale:** Agent skills provide product-specific operating guidance that plain documentation pages do not encode on their own.
- **Reference:** [skill.md guide](https://www.mintlify.com/docs/ai/skillmd)

**Checks**

- ✅ **Skill MD** — Found an agent skill definition.

### MCP Server

- **Score:** 100/100 · **Status:** pass
- **Summary:** MCP passes all checks.
- **Rationale:** A discoverable MCP server lets agents use first-class tools instead of scraping pages and inferring behavior.
- **Reference:** [MCP guide](https://www.mintlify.com/docs/ai/model-context-protocol)

**Checks**

- ✅ **MCP Server Discoverable** — Found an MCP server.
- ✅ **MCP Tool Count** — The MCP server exposes tools.
