mgiovani/cc-arsenal/skills/docs-check/SKILL.md
docs-check
Read-only audit of documentation against the current codebase, flags stale docs, missing sections, broken links, and hallucinated claims (wrong file references, wrong counts, diagram entities that don't exist in code). Use for "check the docs", "audit documentation", "are the docs stale", "find hallucinations in docs", "docs health check", "does this doc still match the code", or before onboarding/release. Reports only, never edits files, for actually fixing or regenerating docs use docs-update
- Source repository stars
- 6
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Audit documentation freshness, completeness, and quality against the current codebase state. Read-only: never edit or write to any doc file.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/mgiovani/cc-arsenal --skill "skills/docs-check"Inspect the Agent Skill "docs-check" from https://github.com/mgiovani/cc-arsenal/blob/410f2649860bb1892ee8c66721f57462eeefcf13/skills/docs-check/SKILL.md at commit 410f2649860bb1892ee8c66721f57462eeefcf13. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Workflow
1. Glob all documentation files (docs/, docs/adr/, docs/rfc/, top-level README.md, CONTRIBUTING.md). 2. Infer focus categories from the filenames actually present: don't assume a fixed set. A repo with docs/data-model.md gets a "data" category; one with docs/deployment.md and do…
Glob all documentation files (docs/, docs/adr/, docs/rfc/, top-level README.md, CONTRIBUTING.md).Infer focus categories from the filenames actually present: don't assume a fixed set. A repo with docs/data-model.md gets a "data" category; one with docs/deployment.md and docs/docker-compose.yml docs gets "infrastruct…Detect tech stack, database presence, deployment configs, and project type from the codebase (package files, Dockerfiles, etc.) to know what documentation should exist. - 02
Phase 1: Scan docs/
1. Glob all documentation files (docs/, docs/adr/, docs/rfc/, top-level README.md, CONTRIBUTING.md). 2. Infer focus categories from the filenames actually present: don't assume a fixed set. A repo with docs/data-model.md gets a "data" category; one with docs/deployment.md and do…
Glob all documentation files (docs/, docs/adr/, docs/rfc/, top-level README.md, CONTRIBUTING.md).Infer focus categories from the filenames actually present: don't assume a fixed set. A repo with docs/data-model.md gets a "data" category; one with docs/deployment.md and docs/docker-compose.yml docs gets "infrastruct…Detect tech stack, database presence, deployment configs, and project type from the codebase (package files, Dockerfiles, etc.) to know what documentation should exist. - 03
Phase 2: Parse arguments
Extract an optional focus keyword from the invocation and match it against the categories found in Phase 1. No argument means check everything found.
Extract an optional focus keyword from the invocation and match it against the categories found in Phase 1. No argument means check everything found. - 04
Phase 3: Verify claims against the codebase
For a small doc set (a handful of files, or a one-shot check like "does this file exist"), verify directly inline with Read/Grep/Glob/git: spawning a subagent for a single lookup adds latency for no benefit.
For a small doc set (a handful of files, or a one-shot check like "does this file exist"), verify directly inline with Read/Grep/Glob/git: spawning a subagent for a single lookup adds latency for no benefit.For a large multi-doc audit (a full docs/ tree, many ADRs, cross-referencing several files against the codebase), spawn one Explore subagent per document or logical section so each verifies its claims independently. Whe…Verification categories: component/service names, numeric counts, diagram entities, file/path references, technology claims (against package files), relationship claims. - 05
Phase 4: Validation checks
Relevance: which docs are relevant given the detected stack; what's missing for detected technologies.
Relevance: which docs are relevant given the detected stack; what's missing for detected technologies.Freshness: compare each doc's last-modified date (git log) against related code changes. A doc untouched since before a significant change to the code it describes is stale.Completeness: required sections present, no unreplaced {{PLACEHOLDER}} values, diagrams present where expected.
Permission review
Static risk signals and limitations
Writes files
The documentation asks the agent to create, modify, or delete local files.
Audit documentation freshness, completeness, and quality against the current codebase state. Read-only: never edit or write to any doc file.Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 6 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- mgiovani/cc-arsenal
- Skill path
- skills/docs-check/SKILL.md
- Commit
- 410f2649860bb1892ee8c66721f57462eeefcf13
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
Check Documentation Quality
Audit documentation freshness, completeness, and quality against the current codebase state. Read-only: never edit or write to any doc file.
Anti-Hallucination Detection
This skill exists to catch docs that lie. For every claim in a doc, verify it against the actual codebase rather than trusting the doc text:
- Cross-reference claims: component/service names, described relationships
- Verify counts: if a doc says "5 services", count the actual services
- Check file references: confirm every referenced path exists
- Validate diagrams: every Mermaid entity must exist in real code
Workflow
Phase 1: Scan docs/
- Glob all documentation files (
docs/,docs/adr/,docs/rfc/, top-levelREADME.md,CONTRIBUTING.md). - Infer focus categories from the filenames actually present: don't assume a fixed set. A repo with
docs/data-model.mdgets a "data" category; one withdocs/deployment.mdanddocs/docker-compose.ymldocs gets "infrastructure"; group whatever's there under a name that matches its content. If the user names a focus that doesn't match anything found, say so and list the categories that do exist instead of silently no-op'ing. - Detect tech stack, database presence, deployment configs, and project type from the codebase (package files, Dockerfiles, etc.) to know what documentation should exist.
Phase 2: Parse arguments
Extract an optional focus keyword from the invocation and match it against the categories found in Phase 1. No argument means check everything found.
Phase 3: Verify claims against the codebase
For a small doc set (a handful of files, or a one-shot check like "does this file exist"), verify directly inline with Read/Grep/Glob/git: spawning a subagent for a single lookup adds latency for no benefit.
For a large multi-doc audit (a full docs/ tree, many ADRs, cross-referencing several files against the codebase), spawn one Explore subagent per document or logical section so each verifies its claims independently. Where no Task tool is available, fall back to processing each document sequentially inline instead: same verification steps, one document at a time, no parallelism. See references/verification-patterns.md for section-level verification patterns and bash commands.
Verification categories: component/service names, numeric counts, diagram entities, file/path references, technology claims (against package files), relationship claims.
Phase 4: Validation checks
Relevance: which docs are relevant given the detected stack; what's missing for detected technologies.
Freshness: compare each doc's last-modified date (git log) against related code changes. A doc untouched since before a significant change to the code it describes is stale.
Completeness: required sections present, no unreplaced {{PLACEHOLDER}} values, diagrams present where expected.
Quality: valid Mermaid syntax, no broken internal links, no empty sections.
See references/verification-patterns.md for the exact commands.
Phase 5: Rate each document
Skip numeric scoring: a 0-100 breakdown per doc implies precision this check doesn't have. Give each document one coarse rating instead:
- Good: current, complete, no broken links or invalid diagrams
- Stale: accurate but outdated (freshness or completeness gaps, no false claims)
- Broken: contains hallucinations, broken links, or invalid Mermaid syntax
- Missing: expected given the detected stack but doesn't exist
See references/scoring-criteria.md for the full rubric per rating.
Phase 6: Generate report
- Status summary with counts per rating
- Documents grouped by rating (Good / Stale / Broken / Missing)
- Hallucination Report: claims that don't match reality, with evidence
- Quality issues with specific file:line locations
- Actionable recommendations naming a specific follow-up command (docs-update, docs-diagram) and why
Output Format
Status Summary
Documentation Health Report
Good (3 docs):
docs/architecture.md
docs/onboarding.md
docs/adr/ (5 records)
Stale (2 docs):
docs/data-model.md — last updated 2025-03-01, schema changed 2025-06-15
docs/deployment.md — references removed staging environment
Broken (1 doc):
docs/architecture.md — Hallucination: claims "6 microservices", 3 found
Missing (1 doc, expected for detected stack):
docs/security.md — auth code present, no security doc
Hallucination Report
Hallucinations Detected:
docs/architecture.md:
- Line 45: Claims "6 microservices" but only 3 found
Verified with: find . -name "*service*" -type d | wc -l -> 3
- Line 78: References "AuthService" which doesn't exist
Verified with: grep -r "class AuthService" . -> no results
Recommendations Format
Priority Recommendations:
1. HIGH: docs/architecture.md claims 6 microservices, only 3 exist
Command: docs-update architecture
Reason: hallucinated count, misleads new engineers
2. MEDIUM: docs/data-model.md has 2 unreplaced {{PLACEHOLDER}} values
Command: docs-update data-model
Reason: incomplete since scaffolding
3. LOW: docs/security.md missing, auth module exists
Command: docs-diagram security or docs-init security
Reason: no security documentation for an app with auth
Usage Examples
docs-check # check everything found in docs/
docs-check core # focus on whatever category maps to "core" in this repo
docs-check focus on database documentation
Important Notes
- Non-destructive: only reads, never modifies documentation.
- Every number reported (counts, dates, "N days stale") must come from a command actually run in this session: never estimate or infer a count without running find/grep/git for it.
- Recommends
docs-updateordocs-diagramas the fix: this skill only reports.
When to Run
- Before onboarding new team members
- During documentation reviews
- After major refactoring
- As part of a pre-release checklist
- When documentation feels stale
Additional Resources
- references/verification-patterns.md: load when running Phase 3/4 verification, for exact bash/grep patterns and the subagent prompt templates
- references/scoring-criteria.md: load when assigning Phase 5 ratings, for the full Good/Stale/Broken/Missing rubric
Alternatives
Compare before choosing
ruvnet/ruflo
agent-workflow-automation
Agent skill for workflow-automation - invoke with $agent-workflow-automation
daymade/claude-code-skills
marketplace-health-check
Use it for deployment and documentation tasks; the detail page covers purpose, installation, and practical steps.
mgiovani/cc-arsenal
docs-init
Bootstraps a documentation structure (architecture, onboarding, data-model, deployment, security, contributing, and a first ADR) for a project that has little or no docs/ directory, exploring the codebase and populating templates only with content evidenced in the code. Use when the user wants to set up docs, bootstrap documentation, initialize project docs, scaffold a docs/ folder, or create docs from scratch for a new or undocumented project. Not for refreshing or syncing docs that already exi
mgiovani/cc-arsenal
docs-update
Refresh existing docs (architecture, onboarding, data-model, deployment, security, contributing) so they match the current codebase, verifying every claim against real code instead of guessing. Use when the user says docs are stale, asks to sync docs with recent code changes, update a specific doc file, or update a whole category (core/data/infrastructure/development) after a refactor or schema change. Not for creating docs that don't exist yet (use docs-init) or scoring/auditing doc health with