Three-stage doc audit against a repo's doc contract — runnable standalone in ANY repo. Ensures the two-tier doc contract is CANONICAL via doc-spec.sh --classify: absent → seed-deliver spec/doc-spec.md (seeded: yes; idempotent seeded: no on re-run); canonical → ok; legacy/duplicate → an advisory RECONCILE: directive in the Stage-1 report (NO auto-write; run /CJ_doc_audit --reconcile to migrate a legacy yaml registry to the canonical 3-column Markdown table preserving every row). Stage 1 (deterministic — engine): doc-spec.sh --check-on-disk (declared-exists, orphans, root-declared, human-doc-ids vs the MERGED registry — four checks), printed verbatim, PLUS the workflow-docs freshness check (workflow-spec.sh --render-docs --check when the engine is present — the generated docs/workflow.md + docs/workflows/ surface, the same owner validate.sh Check 27 calls; stage1/workflow-render); pre-stage failures count as stage1/engine|seed|registry. Stage 2 (requirement compliance — agent-judged, evidence-forced): each declared doc's requirement: quoted, decomposed into clauses, verdicts satisfies | missing-requirement (soft) | n/a | FINDING: stage2/<path> with cited evidence. Stage 3 (implementation drift — agent-judged): ground-truth enumeration FIRST (catalog skills, scripts, workflows, spec family, dirs), then a per-doc cross-walk; docs/workflow.md + docs/workflows/ are recognized as a GENERATED surface (sourced from spec/workflow-spec.md), never an orphan/drift; verdicts no-drift | FINDING: stage3/<path> — <named delta>. Standalone runs MUST dispatch Stages 2+3 to ONE fresh-context subagent (Agent tool); inside a QA subagent (qa.md Step 8.6c) they run INLINE (a subagent cannot spawn subagents). Per-stage report: DOC_AUDIT: <ok|findings> + FINDINGS= + STAGE1/2/3_FINDINGS= + DOCS_AUDITED= + seeded: + three --- stage N --- sections. Findings (and the RECONCILE directive) never crash the audit — a broken contract IS the report. Engine resolution repo-local scripts/doc-spec.sh the
Claude Skills are markdown + scripts loaded into Claude Code; scanned with the same pipeline.
We found this by crawling public sources and nobody has attested to it. That is how most of the registry gets here, and it is not a mark against the artifact — it only means no authenticated act of publication is on record. An artifact can be the vendor's own and still appear here.
1330 critical findings reported by cisco-skill-scanner, agent-audit-kit, 17 of them in the installed artifact. The composite score alone does not reflect this — read the per-scanner reports below.
Claude Skills install to a single target, no runtime picker.
nerlo install -- CJ_doc_audit
Manual alternative: copy the skill folder into ~/.claude/skills/ so Claude Code loads it on next launch.
cp -r -- CJ_doc_audit ~/.claude/skills/
Install respects the composite badge: Clean proceeds, Caution prompts for confirmation, and Flagged is refused. Write operations require an API token.
4 of 11 scanners examined this package. The rest do not apply to it — language, ecosystem and packaging decide which analyzers can say anything, and a scanner that cannot examine an artifact reports nothing rather than passing it.
v2.0.11
1360 findings · 87.1s
v0.3.26
1410 findings · 18.9s
v0.1.0
0 findings · 15.2s
v0.1.0
887 findings · 15.3s
v1.4.0
None of the entry points this scanner reads were found in this artifact. What each scanner covers
0 findings · 0.2s
vv0.3.2
No Go packages were found in this artifact. What each scanner covers
0 findings · 0.1s
No report in this scan: govulncheck, osv-scanner, trivy, trivy_image, nerlo-multi-source.
1 scan on record. Every scan's full results are retained immutably for 24 months.
| Completed | Composite | Change | Scanners | Status |
|---|---|---|---|---|
| Aug 15, 2026 | Scan Halted | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completecapslock ·n/a: not applicable | rejected |
Findings in files this artifact installs stand as reported; a model re-read the rest and said which ones it believes are false positives. This is a second opinion published beside the evidence, not a correction to it: the per-scanner reports above are unchanged, every dismissed finding is still listed there at its original severity, and the score and the Flagged badge are computed from those raw severities alone. Nothing below moved them.
This review has not run for this scan yet. It runs once per scan, in the background, and is kept; it appears here when it has. Until then all 3,657 findings above stand exactly as their scanners reported them, at full severity.