Check docs
Kit-maintainer diagnostic (LOCAL-ONLY, not distributed) that audits the README and docs/ for staleness against the repo's real command/skill/CLI roster, stamped tree, and cross-doc consistency. Read-only; produces a severity-ranked findings report.From its SKILL.md
npx -y skills add kunalsuri/ai-fication-kit --skill check-docsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `node install.mjs verify . --strict`.
SKILL.md
7.9 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
Run the check-docs diagnostic. Read-only. Produce a structured findings report; do NOT edit any file.
Local-only skill. This lives in
.claude/skills/check-docs/with no twin intemplates/, so the installer never stamps it into target repos. It audits this kit's own README and docs — it is a maintainer tool, not a distributed workflow. See.claude/LOCAL-ONLY-COMMANDS.md. (Its own file, and any other local-only skill, is therefore expected to be absent from the distributed roster — do not flag that as drift.)
Why this exists
Docs drift silently: a feature adds a command, a skill, or a stamped file, and
the prose roster, the What You Get tree, and the counts scattered across the
docs quietly fall behind the code. verify/drift//check-drift guard the
target-repo knowledge layer (ai/), not the kit's own public docs. This
skill closes that gap.
Ground truth — derive these FIRST, from the code, before reading any prose
The distributed reality is defined by templates/, not by .claude/
(which also holds local-only extras like this skill and /implement-spec).
Derive, deterministically:
- Distributed workflows = the sub-directories of
templates/claude/skills/(the Claude surface — custom commands merged into skills). This is the canonical "what users get" roster. Cross-check parity withtemplates/github/prompts/,templates/agents/workflows/, andtemplates/cursor/rules/(a workflow is "universal" only if present in all). - Distributed skills = the sub-directories of
templates/claude/skills/andtemplates/agents/skills/. - CLI commands = the members of the authoritative
const COMMANDS = new Set([…])ininstall.mjs(the CLI's own routing source, also used bytest/release-check.mjs) — do not countcommand === "…"comparisons, which also appear for sub-flows. Mirrored in thedocs/CLI-REFERENCE.md"Command index" table. - Stamped
ai/tree = the structure undertemplates/ai/plus the filesinstall.mjswrites directly (ai/repo-profile.json,ai/install-manifest.json, optionallyai/repo-indepth.json). - Local-only skills = present in
.claude/skills/but absent fromtemplates/claude/skills/; the intended list is.claude/LOCAL-ONLY-COMMANDS.md.
Use ls/Glob and grep for these — do not eyeball. Every count you assert in a
finding must trace to one of these sources.
Docs in scope
README.md, docs/README.md, docs/FAQ.md, docs/MULTI-TOOL-SETUP.md,
docs/METHODOLOGY.md, docs/CLI-REFERENCE.md, docs/GETTING-STARTED.md,
docs/reports/technical-report-draft.md, and the root CLAUDE.md / AGENTS.md.
Checks
Section D — Command & skill roster
| ID | Check | Severity |
|---|---|---|
| D1 | Every prose count of workflows (e.g. README's "The Eleven Workflows" heading, "eleven workflows") equals the number of sub-directories in templates/claude/skills/ | ❌ |
| D2 | Every explicit workflow list/table (README roster table, MULTI-TOOL cross-tool table, technical-report §9.1) names exactly the sub-directories in templates/claude/skills/ — none missing, none removed | ❌ |
| D3 | Every skill reference (README tree + highlights, FAQ, MULTI-TOOL-SETUP, technical-report §9.3) matches the sub-dirs of templates/claude/skills/ / templates/agents/skills/ — no skill named that isn't shipped, none shipped that isn't named | ❌ |
| D4 | No local-only command (per .claude/LOCAL-ONLY-COMMANDS.md) is described anywhere as "stamped", "installed", or part of the distributed roster | ⚠️ |
Section E — CLI-command & stamped-tree drift
| ID | Check | Severity |
|---|---|---|
| E1 | Every "all N commands" claim (e.g. docs/README.md's CLI-REFERENCE blurb) equals the size of the COMMANDS set in install.mjs | ❌ |
| E2 | The docs/CLI-REFERENCE.md "Command index" table has one row per member of the COMMANDS set in install.mjs — none missing, none stale | ❌ |
| E3 | The README "What You Get" tree lists every path templates/ai/ stamps and every directly-written ai/ file (spot-check: START-HERE.html, INDEX.md, lab/WORKLOG.md, lab/reviews/, guide/*, analysis/*) | ❌ |
| E4 | The technical-report §8.1 directory tree agrees with the same stamped-tree ground truth | ⚠️ |
Section F — Cross-doc consistency
| ID | Check | Severity |
|---|---|---|
| F1 | The command / skill / CLI counts agree with each other across all in-scope docs (a number stated in two places must match) | ❌ |
| F2 | Version strings agree: package.json version vs the README citation version: vs CITATION.cff vs the newest CHANGELOG.md section | ⚠️ |
| F3 | No doc references a file, command, or stack that no longer exists (e.g. a removed install.py / Python path, a renamed command) | ⚠️ |
Section G — Path-claim resolution
| ID | Check | Severity |
|---|---|---|
| G1 | Every backtick-wrapped repo-relative path in the in-scope docs resolves on disk (same discipline verify applies to ai/, extended to README + docs/). Run node install.mjs verify . --strict first to clear the ai/ layer, then apply the path check to the docs above | ❌ |
| G2 | Every relative markdown link [text](path) in README.md and docs/README.md resolves on disk | ⚠️ |
Output format
Emit the report directly to the user (do NOT write a file). Use this structure:
check-docs — findings
══════════════════════════════════════════════════
Ground truth (from templates/ + install.mjs)
────────────────────────────────────────────
Workflow commands: <N> · Skills: <list> · CLI commands: <M>
Local-only (not distributed): <list>
Roster (Section D)
──────────────────
✅/⚠️/❌ <ID> <check name>
→ <where it's wrong>: <one-line concrete fix> ← omit for ✅
CLI & tree (Section E)
──────────────────────
✅/⚠️/❌ <ID> <check name>
→ <one-line concrete fix>
Cross-doc (Section F)
─────────────────────
✅/⚠️/❌ <ID> <check name>
→ <one-line concrete fix>
Path claims (Section G)
───────────────────────
✅/⚠️/❌ <ID> <check name>
→ <file:line>: <one-line concrete fix>
Summary
───────
X passed · Y warnings · Z errors
Next step: <single highest-priority action — one sentence>
Reporting discipline
- Report every check, not just failures — passing checks build confidence.
- For every ❌/⚠️, cite the exact file and, where possible, the line or heading that is wrong, and give a concrete one-line fix — never just "this is stale."
- When prose and code disagree, the code (
templates/+install.mjs) is the source of truth; the fix always adjusts the prose, never the code. - The "Next step" names only the single highest-priority action.
What this command does NOT do
- Does not auto-edit any file — it diagnoses and reports only.
- Does not audit the target-repo
ai/knowledge layer's file-path claims for drift against source — that isverify/drift//check-drift. - Does not judge
ai/guide/content quality — that is/post-cold-start-verification//verify-ai-readiness. - Does not get distributed to target repos — it is local to this kit (see
.claude/LOCAL-ONLY-COMMANDS.md).
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.