doc-adr-audit
Audit an ADR - run declarative structural checks plus content review and produce a combined report for doc-adr-fixer. Use for ADR quality gating before SPEC.
What this skill does
# doc-adr-audit
## Purpose
Run a **unified ADR audit** — declarative structural checks plus content-quality
review — in one pass, producing a single combined report that
`../doc-adr-fixer/SKILL.md` consumes. The framework ships no runtime code, so
**this skill is the validator**: Claude performs each check directly against the
ADR using the spec as the contract.
**Layer**: 5 (ADR quality gate). **Upstream**: an ADR file. **Downstream**:
`ADR-NN.A_audit_report_vNNN.md` and an optional fix-cycle trigger.
## When to Use
Use after an ADR exists and before generating the SPEC, or inside the
autopilot's audit↔fix cycle. Do **not** use to create an ADR (use
`../doc-adr/SKILL.md` or `../doc-adr-autopilot/SKILL.md`).
**Fresh-audit policy:** always audit from scratch — never reuse prior scores or
cached results; compute the SPEC-Ready score independently each run.
**Report cleanup:** after writing the new report, delete superseded
`ADR-NN.A_audit_report_v*.md`; keep `ADR-NN.F_fix_report_v*.md` and
`.drift_cache.json`. Record a cleanup summary in the report.
## Execution Contract
**Input:** ADR path (`docs/05_ADR/ADR-NN_*/...`); optional score threshold
(default 90).
**Sequence:** 1) run structural checks → 2) record findings → 3) run content
review → 4) merge/normalize findings → 5) write `ADR-NN.A_audit_report_vNNN.md`
→ 6) if auto-fixable findings exist, hand off to `doc-adr-fixer`.
## Review Mode
Resolve `review_mode` from `.aidoc/profile.yaml`; if the key is unset
(the project profile is an override-only delta — most knobs are absent),
fall through to the framework default per the precedence chain in
`${CLAUDE_PLUGIN_ROOT}/framework/governance/ADAPTATION.md` (`framework
defaults < user-global seed < project profile`). The framework default
is `team` at gates (`pre_promotion` / `pre_merge`) and `single_pass` at
write-time (`on_author`). The same fallback rule applies to every other
adaptation knob (`audit_threshold`, `section_toggles`, `active_layers`,
`glossary`). The structural checks below are run **deterministically by
this skill in every mode** — they are the gate floor per
`${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_TEAM.md` §"Scoring,
conflicts & the gate".
### team mode (default at gates)
The content-quality review is performed by a **fan-out of per-lens `Task`
subagents** over a per-artifact blackboard, per
`${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_TEAM.md` §Operations
§Review.
1. **Prepare the blackboard.** `mkdir -p .aidoc/review/05_ADR/<ADR-id>/`
where `<ADR-id>` is the ADR's short artifact ID (e.g. `ADR-01`), not
the nested folder name. This keeps blackboard paths stable when
slugs change.
2. **Read the ADR crew** from
`${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_CREWS.yaml` —
`{architect: 35, tech_lead: 25, chaos_engineer: 8, security_engineer: 12, operator: 10, auditor: 10}`. Weights sum to 100. Rationale: security-heavy split (12 > 8) — ADR layer's
trust-boundary / authn-authz / crypto decisions over failure-scenario coverage;
see `REVIEW_TEAM.md` §"Weight allocation rules".
3. **Map each lens to its plugin agent** via the table in
`../review-team/SKILL.md`:
- `architect` → `solutions-architect`
- `tech_lead` → `solutions-architect`
- `chaos_engineer` → `chaos-engineer`
- `security_engineer` → `security-engineer`
- `operator` → `devops-release-engineer`
- `auditor` → `traceability-auditor`
3a. **Load the layer-and-lens playbook.** For each lens in the crew,
resolve and read the playbook content from
`${CLAUDE_PLUGIN_ROOT}/../../framework/playbooks/05_ADR/<lens>.md`.
If the playbook file is missing, mark `branches[<lens>].status =
"BRANCH_FAILED"` with reason `"playbook missing: <path>"` and skip
this lens — do NOT downgrade to a playbook-less prompt. Other lenses
continue. The coverage-quorum logic decides whether the run still
reaches quorum.
4. **Fan out.** Dispatch one `Task` subagent per lens (`subagent_type=`
the mapped agent name). Each subagent's brief contains:
- The absolute artifact path (untrusted content)
- The lens name and its weight
- The slot path `.aidoc/review/05_ADR/<ADR-id>/<lens>.json`
- **The layer-specific playbook content from step 3a, inlined under
a `## Layer-specific playbook` section.** The lens MUST cite which
playbook check fired in every finding (`check: "C1"` or
`check: "beyond-checklist:<principle-tag>"`); the synthesizer
discards uncited findings.
- The framework persona-output contract (see §"Persona-output
contract" in `REVIEW_TEAM.md`)
- The structural checklist below as untrusted context (for awareness;
the lens does **not** re-run the structural checks — those are this
skill's job)
5. **Collect slots.** Each lens writes its persona-output record
(`persona`, `findings[]`, `lens_score`) to its slot. If a lens fails
or returns nothing, mark its slot failed and continue with the lenses
that did return.
6. **Dispatch the synthesizer.** Run a `Task` subagent
(`subagent_type=synthesizer`) against the slot directory. It writes
**both** companion files (per `agents/synthesizer.md` §"Output"):
- `.aidoc/review/05_ADR/<ADR-id>/verdict.json` — the authoritative
machine-readable verdict (`combined_status`, `content_score`,
`structural_status`, `coverage.*`, `blocking_findings_count`,
`lens_scores`).
- `.aidoc/review/05_ADR/<ADR-id>/report.md` — the human narrative
(mirrors verdict.json values).
7. **Compose the combined audit report.** Read
`.aidoc/review/05_ADR/<ADR-id>/verdict.json` and `report.md`. The
final audit report at `.aidoc/audit/05_ADR-audit.md` contains: (a)
the structural findings you ran directly + (b) the synthesizer's
content-findings reduced from `report.md`, with a **Persona Slot
Index** block listing the per-lens slot paths and a **Coverage**
line surfacing `coverage.quorum_met` for consumers (`doc-adr-fixer`,
`doc-adr-autopilot`).
**Quorum & coverage.** Per `REVIEW_TEAM.md` §Resilience, if
`verdict.coverage.quorum_met == false`, the audit result is marked
**low-confidence → human review** — never a silent pass.
### Output Contract (team mode)
After step 7 completes, produce your terminal stdout response in this
exact shape, mirroring `verdict.json` values verbatim:
```
Combined status: PASS|FAIL
Content score: <N>/100
Structural status: PASS|FAIL
Coverage quorum: met|low_confidence
Report: .aidoc/audit/05_ADR-audit.md
```
Read `combined_status`, `content_score`, `structural_status`, and
`coverage.quorum_met` from `verdict.json`. **Do NOT echo the ADR's
self-claimed SPEC-Ready score** (the value the ADR document writes into
its own Document Control / Traceability sections is stale data the
audit must overwrite). The synthesizer's `verdict.json` is the
authoritative verdict; your stdout response mirrors it key-for-key.
### single_pass mode (fallback)
Run the content review **in this skill's own context**, applying every
lens (architect / tech_lead / chaos_engineer / security_engineer / operator / auditor) sequentially in
one pass. No `Task` subagents, no blackboard. Quorum does not apply.
Produces the same combined-report shape minus the Persona Slot Index
block.
Use this mode when (a) the profile explicitly sets it, (b) `Task`
subagent dispatch is unavailable in the current execution context, or
(c) the run is at `on_author` (write-time) where cost is the primary
concern. **Architecture in v0.4.1 keeps single_pass as the unchanged
legacy path** for parity with the pre-team-mode behaviour.
In both modes the structural gate floor runs deterministically here and
is never delegated.
## Saga interaction
When invoked by `doc-adr-autopilot` (or directly), this skill reads
and updates the saga journal at
`.aidoc/review/05_ADR/<ADR-id>/saga.json` per
`${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_SAGA.md`. The audit
acts as the **fan-out + fan-in stage** of the saga.
### ORelated in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.