auditlisted
Install: claude install-skill akira993/doc-audit-harness
# docaudit:audit — change-driven documentation audit
Report-only orchestrator. Reads the per-project adapter `${CLAUDE_PROJECT_DIR}/.claude/doc-audit.json`.
If that file is absent, tell the user to run `/docaudit:init` (Plan 3) or that this
repo has no adapter yet — do NOT invent project facts.
`SD="${CLAUDE_SKILL_DIR}"` ; `CFG="${CLAUDE_PROJECT_DIR}/.claude/doc-audit.json"`.
Also bind `ANCHOR_PATH="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1])).get("anchorPath",""))' "$CFG")"` for Phase 5.
`--full` forces whole-corpus mode (ignores the anchor diff scope).
## Phase 0 — index preflight (deterministic)
Run: `bash "$SD/scripts/mdq-index.sh" --config "$CFG" --repo-root "$CLAUDE_PROJECT_DIR"`.
Parse `{mdqAvailable, reason, bin}` and bind `MDQ_AVAILABLE` (true/false) for Phase 3 and `MDQ_BIN` (the `bin` field, default `mdq`).
`mdqAvailable:false` is EXPECTED, not an error (`reason` is `not-installed` /
`disabled-by-config` / `index-failed`): record the reason and proceed in grep-degrade
mode — the engine is fully functional without mdq. When `mdqAvailable:true`, the whole
repo's Markdown is now indexed under `$CLAUDE_PROJECT_DIR/.mdq/index.sqlite`; indexing runs in a subprocess,
so doc bodies never enter context — only this JSON summary does. This phase always runs
first (both incremental and `--full`).
When `MDQ_AVAILABLE` is true, also run
`python3 "$SD/scripts/mdq-health.py" --bin "<MDQ_BIN>" --db "$CLAUDE_PROJECT_DIR/.mdq/index.sqlite"`
and bind `MDQ_HEAL