Docs/Guides
Guides

In-depth guides

Learn how each DocsCI analyzer works and how to configure it for your codebase.

▶️

Code snippet execution

DocsCI extracts fenced code blocks from Markdown files and runs them in language-specific sandboxes. Python uses Pyodide WASM; JavaScript/TypeScript uses isolated-vm. A snippet passes if it exits cleanly (no exception, no uncaught rejection). Failures produce findings with the error message, line number, and an AI-generated fix.

  • Supported: python, javascript, typescript
  • Execution timeout: 20s default, configurable up to 60s
  • Findings include: error message, stdout, stderr (redacted), language, line number
  • AI fix: generated for all error-severity snippet failures
🔄

API drift detection

DocsCI parses your OpenAPI spec (YAML or JSON) and cross-references documented endpoints and parameters against mentions in your Markdown docs. Mismatches produce drift findings.

  • Detects: renamed parameters, removed endpoints, changed types
  • Supports: OpenAPI 3.x YAML and JSON
  • Configure: provide openapi_path (in repo) or openapi_url (remote)
  • Coverage bar: shows % of spec endpoints mentioned in docs

Accessibility checks

Docs are parsed as HTML via jsdom and checked with axe-core for WCAG 2.1 violations. Structural checks verify heading hierarchy, alt text, link text, and color contrast.

  • Rules: axe-core WCAG 2.1 Level AA + structural checks
  • Findings: missing alt text, empty links, heading skip, contrast
  • Severity: error (violations), warning (best practices)
✍️

Copy linting

DocsCI lints prose for quality signals that correlate with poor developer experience: passive voice, weasel words, hedging, sensitive terms, and Flesch-Kincaid grade level above 12.

  • Passive voice detection (heuristic + common irregular past participles)
  • FK grade level: warns if > 12 (target: 8–10 for technical docs)
  • Weasel words: 'very', 'quite', 'somewhat', 'basically', etc.
  • Hedging: 'might', 'could', 'perhaps', 'maybe'
  • Sensitive terms: customizable blocklist