| name | doc-audit |
| description | Audit architecture and system docs for staleness, inaccuracy, and drift from actual codebase state. Grouped into 7 tiers for thorough coverage. Complement to /md-audit (existence-staleness — when that ships). |
| version | 2.1 |
| updated | "2026-06-16T00:00:00.000Z" |
| tags | ["engine","active"] |
| effort | high |
/doc-audit — Architecture Doc Freshness Audit
Usage
/doc-audit [group] — Audit one group thoroughly
/doc-audit — Audits the group that hasn't been audited longest (check the tracker below)
Groups
7 groups, 5-12 docs each. Small enough to audit thoroughly.
boot — Load every session. Staleness here = broken boot.
| Doc | What to verify |
|---|
SESSION_CONTEXT.md | On-demand post-ADR-0009 (S248) — NOT read at boot. Live span reasonable size (hard close snapshots to docs/session-context/S<##>.md + resets to thin header)? STATUS line current? No duplicated content from ROLLOUT? (The old "under 300 lines / last 5 sessions" criterion predates ADR-0009 — it's a span model now, not a rolling-5 file.) |
CLAUDE.md | Quick commands still work? Session lifecycle refs current? Rules index matches actual rules files? Wiki-layer reference present and pointing to existing files? Canon files referenced if relevant? |
docs/mags-corliss/CHARACTER.md | Identity-only (governance.5 partial close S228): The Principle / Who I Am / My Family / Off the Clock. NO session counter (lives in SESSION_CONTEXT.md line 5). NO infrastructure refs (live in STACK.md / SUPERMEMORY.md). NO Compact Recovery (lives in .claude/skills/boot/SKILL.md). Audit: family POPIDs match ledger? No drift back to operational content? |
.claude/rules/identity.md | Rules still match actual behavior? No contradictions with CLAUDE.md? |
.claude/rules/newsroom.md | Cycle-rule reversal still documented (S146)? Citizen-creation rules current? 2041 birth-year anchor present? |
.claude/rules/engine.md | Engine code rules current? Determinism guidance reflects safeRand_ pattern post-S156? |
.claude/rules/dashboard.md | Dashboard rules current? Endpoint conventions match server code? |
MEMORY.md (auto-memory) | Under 24.4KB (S147 limit per CLAUDE.md, NOT 200 lines). Dead memory file references? Stale session memories? Population numbers current? Index entries one-line under ~150 chars? |
docs/SCHEMA.md | Folder map matches actual docs/ layout (now includes docs/canon/ per S174)? Tag taxonomy reflects what's actually in use? Page types still match what we're creating? Frontmatter example valid YAML? |
docs/index.md | Every active docs/**.md (excluding archive/, drive-files/, papers PDFs) appears exactly once? No broken [[wikilinks]]? Renamed/deleted files reflected? Folder section headers match SCHEMA folder map? docs/canon/ and docs/research/ sections present? |
docs/canon/CANON_RULES.md | Three-tier framework intact? Per-agent template still matches what generators use? Reviewer-variant template still matches Rhea/city-clerk/final-arbiter usage? Sports-history carveout (S175) referenced correctly? |
docs/canon/INSTITUTIONS.md | Tier-organized; row-statuses (canon/proposed/TBD) tracked? New tier-2 entities surfaced in editions added? Construction/architecture firm rows still TBD or progressed? |
docs/BOOT_ARCHITECTURE.md | S165 boot architecture intact? Skill split (boot/session-startup) accurate? Per-terminal persona levels match TERMINAL.md files? |
docs/POST_MORTEM_C92_CONTAMINATION.md | Historical record intact? S173 reframe note present (this is the failure that motivated canon/CANON_RULES)? |
engine — Drift when code changes.
| Doc | What to verify |
|---|
docs/engine/ROLLOUT_PLAN.md | Open items — any completed but not marked? Stale priorities? Line count reasonable? Halt banner accuracy (S172)? Off-spine items reflect plan-file status? |
docs/engine/ENGINE_MAP.md | Function list matches actual godWorldEngine2.js call order? |
docs/engine/ENGINE_STUB_MAP.md | Field dependencies — run node scripts/ctxMap.js and compare. Auto-regenerated by /stub-engine. |
docs/engine/ENGINE_REPAIR.md | Active tracker — P0/P1/P2/P3 rows current? Items closed by recent commits removed? |
docs/engine/archive/ENGINE_CONNECTIVITY_ROLLOUT.md | Phase 34 — 7 of 10 done per S136 audit; verify count current. |
docs/engine/SHEETS_MANIFEST.md | Sheet names match actual spreadsheet tabs? |
docs/engine/PHASE_DATA_AUDIT.md | ctx.summary fields match current code? |
docs/engine/archive/REVIEWER_LANE_SCHEMA.md | Four-field contract (process/outcome/controllable/uncontrollable) still matches what Rhea/cycle-review/Mara/capability emit? Four-quadrant interpretation cross-references PHASE_39_PLAN §17.3? |
docs/engine/archive/INSTITUTIONAL_VOICE_AGENTS.md | Voice-agent count + IDENTITY+RULES+SKILL pattern still accurate post-S174 (now IDENTITY+LENS+RULES+SKILL for civic voices)? |
docs/engine/archive/CYCLE_SEPARATION.md | S113 architecture notes still relevant given subsequent phases? |
docs/engine/archive/phase19_agent_personas.md | Three administrative-agent personas (City Clerk + others) — match current .claude/agents/ directories? |
docs/engine/archive/PHASE_24_PLAN.md | Citizen life engine plan — status updated? Sub-items reflect current progress? |
docs/engine/archive/PHASE_33_PLAN.md | RETIRED S299 — frozen for trail; no staleness check. Live remainder is ROLLOUT engine.50. |
docs/engine/archive/PHASE_38_PLAN.md | Engine auditor — sub-phases 38.1-38.8 status accurate? Measurement loop (38.5) DONE S156? |
media — Drift when pipeline or reporters change.
| Doc | What to verify |
|---|
docs/EDITION_PIPELINE.md | Terminal count, step count, reporter list, civic voice list match current skill files? Inputs table current? Post-S174 four-file agent structure reflected? |
docs/EDITION_PIPELINE_v1_archive.md | Archive — verify no active items leaked in. |
docs/media/AGENT_NEWSROOM.md | Reporter count, names, desk assignments match .claude/agents/ directories (currently 27)? Canon-fidelity rollout (S174-S175) reflected — all 25 generative + reviewer agents have four-file structure? |
docs/media/DESK_PACKET_PIPELINE.md | SUPERSEDED — canonical is EDITION_PIPELINE.md. Do not maintain; archive when archive/ move happens. |
docs/media/MEDIA_ROOM_HANDOFF.md | Engine→Media Room handoff guide current? |
docs/media/MEDIA_INTAKE_V2.2_HANDOFF.md | Media Room markdown parsing structure current? |
docs/media/MEDIA_ROOM_STYLE_GUIDE.md | Voice rules, data treatment, continuity, clock rules current? Cycle-allowed (S146 reversal) reflected? |
docs/media/TIME_CANON_ADDENDUM.md | Dual-clock system (sports time vs city time) current? |
docs/media/REAL_NAMES_BLOCKLIST.md | Active — Rhea reads this every verification. Real-world sports figures listed; sync with canon Athletics/Bulls rosters. Sports-history carveout (S175) — historical players now permitted; reflect carveout in scope notes. |
docs/media/CITIZEN_NARRATIVE_MEMORY.md | Supermemory + Richmond Archive + Ledger integration current? |
docs/media/JOURNALISM_AI_OPTIMIZATIONS.md | AP/Reuters/Bloomberg patterns — version current? v1.2 complete per S147. |
docs/media/GOOGLE_DRIVE_INTEGRATION.md + docs/media/DRIVE_MANIFEST.md | Drive folder + file IDs current? |
docs/media/podcast/SHOW_FORMATS.md | Podcast formats match /podcast skill? Host assignments current? |
|
infra — Drift when services change.
| Doc | What to verify |
|---|
docs/OPERATIONS.md | PM2 processes match pm2 list? Cron jobs match crontab -l? Mobile access instructions current? |
docs/STACK.md | All components exist? Versions current? Process names match? Endpoint/skill/agent counts match (currently 27 agents, 41 skills)? |
docs/DASHBOARD.md | Endpoint count matches actual server/*.js routes? Frontend tabs current? |
docs/DISCORD.md | Bot name, model, knowledge sources, Supermemory integration current? |
docs/SUPERMEMORY.md | 6 containers listed? Isolation rules match config? Access matrix current? Skills table matches actual commands? |
docs/CLAUDE-MEM.md | Bun daemon (NOT PM2)? Port 37777? SQLite + Chroma still the stack? AutoDream config matches /root/.claude-mem/settings.json (Gemini 2.5 Pro free tier per S141)? |
docs/FOUR_COMPONENT_MAP.md | Terminal count matches .claude/terminals/ subdirs (5: civic/engine-sheet/mags/media/research-build)? Skill count matches ls .claude/skills/ | wc -l (currently 41)? Agent count matches ls .claude/agents/ | wc -l (currently 27)? Models per role current? Cron inventory matches crontab -l? §7 seam map reflects current Phase 40 status (5/6 DONE)? |
docs/MIGRATION_OFF_CLAUDE.md | S154 desk-agent migration — DeepSeek V3.1 via OpenRouter results current? Test script + next-steps + survives-list accurate? |
docs/ACTION_MANAGED_AGENTS.md | Anthropic Managed Agents research — still ready to evaluate? Status changed? |
docs/CANCELLATION.md | Monthly costs current? Cancellation paths still valid? New paid services added (Supermemory P N at $9/mo confirmed)? |
docs/WORKFLOWS.md | 7 workflow patterns — match actual session usage? Post-S165 reframe (workflow reference, not boot file) reflected? |
docs/RESEARCH.md | Findings log current? Recent evaluations recorded (DeepSeek S154, Sandcastle/Daytona S156, outside-AI reviews S170)? |
data — Drift when sheets change.
| Doc | What to verify |
|---|
docs/SIMULATION_LEDGER.md | Citizen count, column count (47 — A-AU per S156 SCHEMA_HEADERS, NOT 46), column numbers match live sheet? ClockMode/Tier/Status/Flag sub-counts updated since S140? |
docs/SPREADSHEET.md | Tab count matches actual spreadsheet (53 visible + 6 hidden + utility ≈ 65)? Per-tab row counts — defer to SCHEMA_HEADERS as authoritative. |
schemas/SCHEMA_HEADERS.md | Auto-generated by utilities/exportSchemaHeaders.js — verify it's been regenerated recently (S156 added frontmatter that survives regeneration). Header counts authoritative for all tabs. |
docs/engine/LEDGER_HEAT_MAP.md | engine-sheet handoff (S156) — extremely stale C81/S30/2026-02-16. Bloat rankings + dead column inventory likely outdated. Do not maintain in research-build; flag for engine-sheet refresh. |
docs/engine/LEDGER_REPAIR.md | engine-sheet handoff (S156) — RECOVERY COMPLETE S94, "DO NOT re-analyze" intact. Column reference (A-AU now per S156) — needs update from A-AT. Audit-light. |
docs/engine/LEDGER_AUDIT.md | engine-sheet handoff (S156) — pre-recovery counts (658/639) stale; CLEAN since S68 status correct. Audit-light. |
plans — High-drift. Status flips fast as work completes.
docs/plans/ files are the most drift-prone in the repo. Each plan tracks status (active/complete/parked); marking a completed plan "complete" without flagging means future sessions waste cycles re-discovering done work. Audit cadence: every 2-3 sessions, or after any session that closes a plan-tracked phase.
| Doc | What to verify |
|---|
docs/plans/PLAN_TEMPLATE.md | Reference template — verify shape matches active plan files. Audit-light. |
docs/plans/BACKLOG.md | Consolidated parked-phase backlog — verify phases listed are still parked (not started, not complete elsewhere). Cross-check against ROLLOUT_PLAN spine. |
docs/archive/plans/skill-eval-framework.md | HIGH priority not started — verify status; check first skill /skill-check shipped S156 reference still accurate. |
docs/archive/plans/2026-04-16-phase-38-5-measurement-loop.md | DONE S156 — verify Status section reflects completion; consider archive flag. |
docs/archive/plans/2026-04-16-phase-38-6-skill-shrink.md | DONE S156 — verify Status section reflects completion. |
docs/archive/plans/2026-04-16-phase-40-1-session-log-interface.md | DONE S156 — verify. |
docs/archive/plans/2026-04-16-phase-40-3-credential-audit.md | Drafted S156, engine/sheet picks up when priority rises — verify status hasn't changed silently. |
docs/archive/plans/2026-04-16-phase-40-6-injection-defense.md | Drafted by research-build; engine/sheet builds — verify build status. |
docs/archive/plans/2026-04-17-briefing-bundle-trim.md | Drafted S156; media terminal executes — verify execution status. |
docs/plans/2026-04-21-memento-cbr-case-bank.md | 4-phase rollout; reward-tuple capture has standalone value — verify phase 1 status and ≥500 tuples / droplet headroom thresholds for phase B. |
docs/archive/plans/2026-04-21-md-audit-skill.md | /md-audit skill plan — verify status; merges with /doc-audit eventually (Option B in S175 review). |
docs/archive/plans/2026-04-25-canon-fidelity-rollout.md | DONE S175 — verify Status section reflects 25/25 completion + Q1/Q2/Q3 resolutions + Out-of-scope findings. |
docs/plans/mara-reference-files.md | COMPLETE S105 — verify archive status; consider folder move to archive. |
Plan-file specific checks:
- Status section accurate vs. actual ROLLOUT_PLAN entry
- Open Questions resolved or still open?
- Changelog growing as work progresses (most recent entry's date matches most recent plan-related commit)
- Pointers (frontmatter
pointers:) point to existing files
persona — Identity coherence. Update when characters or relationships shift.
Per-persona docs for Mags Corliss and Mara Vance. CHARACTER.md is in the boot group; everything else here. Logs (JOURNAL, SESSION_HISTORY, DAILY_REFLECTIONS) are append-only — audit-light or skip.
| Doc | What to verify |
|---|
docs/mags-corliss/NEWSROOM_MEMORY.md | Editorial decisions, errata, cross-cycle continuity notes current? Recent editions reflected? |
docs/mags-corliss/NOTES_TO_SELF.md | Editorial flags, story tracking, character tracking, Discord notes — entries growing? Stale flags removed when story closed? |
docs/mags-corliss/TECH_READING_ARCHIVE.md | Tech reading log — recent papers added (S170 outside-AI reviews, S145+ Memento, etc.)? |
docs/mags-corliss/JOURNAL.md + JOURNAL_RECENT.md | Append-only logs. Audit-light: entry count growing each session? JOURNAL_RECENT correctly carries last 3 entries? |
docs/mags-corliss/SESSION_HISTORY.md | Append-only. Verify older sessions rotated from SESSION_CONTEXT land here. |
docs/mags-corliss/DAILY_REFLECTIONS.md | Append-only nightly reflection log. Cron still firing (11 PM CDT)? |
docs/mara-vance/README.md | Quick-access index for Mara reference materials — links current? |
docs/mara-vance/IN_WORLD_CHARACTER.md | Mara's in-world character file — consistent with current civic-governance role? |
docs/mara-vance/CLAUDE_AI_SYSTEM_PROMPT.md | System prompt for Mara's claude.ai project — current? Reflects S171 rehire? |
docs/mara-vance/OPERATING_MANUAL.md | v2.0 — verify version + governance procedures still match current pipeline. |
docs/mara-vance/MEDIA_ROOM_INTRODUCTION.md | Newsroom interface for Mara — current? |
docs/mara-vance/CIVIC_GOVERNANCE_MASTER_REFERENCE.md | Complete reference for Oakland civic governance mechanics — sync with civic-office-ledger + canon council members? |
docs/mara-vance/CIVIC_ELECTION_ENGINE.md | Election engine reference — accurate? |
docs/mara-vance/CIVIC_VETO_IMPLEMENTATION.md | v1.7 — verify version current; mayoral veto + override votes mechanics still match engine. |
docs/mara-vance/INITIATIVE_TRACKER_VOTER_LOGIC.md |
Audit Tracker
Update this after each audit. /doc-audit with no argument picks the oldest.
Tracker reset S175 — group definitions expanded significantly (5 → 7 groups, ~28 → ~80 docs). Prior S156 audit notes preserved as historical context but do not match current group scope. All groups need re-audit under v2.0 definitions.
| Group | Last Audited (v2.0) | Session | Notes |
|---|
| boot | 2026-06-01 | S251 | Re-audit (~39 sessions after S212), oldest group (tied with infra/persona, picked for boot-criticality + heaviest recent churn). 14 docs surveyed; 2 real research-build-lane content fixes shipped + 1 skill-criterion fix + 1 Mike's-lane flag + 2 light, 8 healthy. Fixes shipped (research-build lane): (1) BOOT_ARCHITECTURE.md — 3 epochs of drift in the canonical boot doc, all corrected: S221 (PERSISTENCE.md→CHARACTER.md rename across lines 27/58-60; unregistered-window fallback line 45 still said "research-build steward" — internal contradiction with the correct Mags-only statement at Decision 5; Persona Levels table still had civic/research-build on the dead "Light + PERSISTENCE" tier vs current operational-no-character mode) + S248 (Decision 2 + the /session-startup line still described the pre-ADR-0009 limit 80 / 231-line boot read — boot no longer reads SESSION_CONTEXT; hook emits the Shipped block in <godworld-state>); stamp 2026-04-18→2026-06-01 + ADR-0009 added to sources/pointers. (2) SCHEMA.md §7 folder tree + placement rules — docs/canon/ (S174) and docs/adr/ (S187), both load-bearing, were absent from the map; added both + changelog. (3) doc-audit/SKILL.md boot row — its own SESSION_CONTEXT criterion ("under 300 lines / last 5 sessions") was the pre-ADR-0009 model; rewrote to the span model so the next boot audit doesn't false-flag a healthy on-demand file. Mike's-lane flag (not touched — identity rule, never edit auto-memory on own judgment): MEMORY.md = 25,405 bytes (24.8KB) over the 24.4KB ceiling by ~419B; the file's own footer warns index entries are too long. Decision needed: prune index entries / raise limit / accept. Light (within tolerance, not actionable): CLAUDE.md population stamp "~1,366 / S212 live counts" 39 sessions old but engine lifecycle work deploy-held for C96 so population materially unchanged; the boot-doc title still reads "— S165" (origin marker, content now current). Healthy / no-fix (8): SESSION_CONTEXT.md 169 lines (healthy by any measure); .claude/rules/ = 6 files exactly matching CLAUDE.md L48 index (identity/engine/newsroom/civic/research-build/dashboard); CHARACTER.md identity-only, no session counter (correctly points to SESSION_CONTEXT L5), family POPIDs present (Robert 594 / Sarah 595 / Michael 596); CANON_RULES + INSTITUTIONS updated 2026-05-24 (current); identity.md current; index.md has rollout-rules + GAP_TRIAGE_TEMPLATE properly registered (governance.30 S251); POST_MORTEM_C92 frozen. boot-group fixes shipped this session; cross-terminal git stack checked clean before push. |
S156 Historical Audit Notes (preserved for context — group scopes since expanded)
| Group (S156 scope) | Notes |
|---|
| engine | 5 stale, 2 inconsistent, 0 dead refs. ENGINE_MAP "Last verified S120" (21 days stale — no safeRand_ or Phase 38/39/40 refs). ENGINE_STUB_MAP claims 122 JS files, actual 125 — regenerate via /stub-engine. SHEETS_MANIFEST 57 days stale. PHASE_DATA_AUDIT no freshness header, no Phase 40 coverage. DOC_LEDGER 12 sessions stale BUT deprecated per docs/index.md header (folding into index over time). No dead file refs. |
| media | AGENT_NEWSROOM patched (agent count 25+ → 27, desk 6 → 7, builder counts current). DISK_MAP Last-Updated bumped + S156 files noted. DESK_PACKET_PIPELINE stays SUPERSEDED (canonical is EDITION_PIPELINE.md). EDITION_PIPELINE.md (S144) terminal/skill map still accurate. Pipeline-level flag (NOT a doc fix): story_evaluation.md / brief_template.md / citizen_selection.md changelogs have ZERO ### YYYY-MM-DD cycle entries — post-publish Step 10 isn't writing to them. Media-terminal problem, not doc-layer. |
| infra | Re-audited same session after patches landed. Prior pass patched 16 findings; re-verification clean. One remainder found + fixed: CLAUDE-MEM.md §Cost Optimization was TODO text describing Sonnet 4.6 summarizer and 120-session/6,282-observation counts — the switch to Gemini 2.5 Pro free tier happened S141; rewrote section as DONE with the current config pointer. |
| data | Partial — research-build fixed 2 cross-terminal docs. SIMULATION_LEDGER.md: row/column drift fixed (761 rows, 47 cols A-AU per SCHEMA_HEADERS — doc had 46/AT); ClockMode/Tier/Status/Flag sub-counts flagged as stale (S105-S140). SPREADSHEET.md: tab count explained; per-tab row counts flagged stale — SCHEMA_HEADERS authoritative. Ledger docs deferred to engine-sheet. |
How to Audit
Step 0: Run the deterministic pre-scan first (gov.38)
Before any judgment-mode auditing, run the existing scanner — free, deterministic, and it scopes your Opus pass to what's actually drifted:
node scripts/mdStalenessDetector.js
Judgment-audit only the docs it flags (stale-by-mtime, orphan-candidate, dead-ref) plus the group's own one-liner count checks (ls .claude/agents | wc -l, etc.). Healthy-by-mtime docs don't need a full content pass unless their subject code changed this session. This is the gov.38 offload: the scan is deterministic (no model); only the content-drift verdict is judgment. Don't hand-walk ~80 docs in the premium seat when the scanner already ranked them. (Roster + band taxonomy: [[../../../docs/GEMINI_OFFLOAD]] §Job-routing inventory.)
Step 1: Verify claims against reality
For each doc, extract every verifiable claim and check it:
- File counts →
find / ls / wc -l
- Script references → verify the script exists
- API endpoint counts → grep route definitions in server code
- Column numbers → compare against live sheet or schema
- Process names →
pm2 list
- Container names → check Supermemory config
- Tab counts → SHEETS_MANIFEST or sheets API
- Line counts →
wc -l (boot group especially)
Step 2: Cross-doc consistency
Check that docs in the group agree with docs they reference:
- ENGINE_MAP function list = godWorldEngine2.js actual call order
- DOCUMENTATION_LEDGER one-place rule = where content actually lives
- EDITION_PIPELINE reporter list =
.claude/agents/ actual directories
- SUPERMEMORY container rules = MEMORY.md container rules
- SESSION_CONTEXT session count = PERSISTENCE session counter
Step 3: Detect staleness
Flag docs that reference:
- Session numbers more than 10 sessions old without updates
- "Not started" items that ARE started
- "DONE" items that were reverted or broken
- Dates more than 30 days old in "last updated" fields
- Scripts, files, or directories that no longer exist
- Counts that don't match reality (endpoints, containers, tabs, citizens)
Step 4: Update tracker
After the audit, update the tracker table in this file with the date, session, and any notes.
Output Format
DOC AUDIT — [group] — [date]
================================================
STALE (needs update):
1. [doc] — [what's wrong] — [what's true now]
INCONSISTENT (docs disagree):
2. [doc1] says X, [doc2] says Y — [which is correct]
DEAD REFERENCES (doc points to something that doesn't exist):
3. [doc] references [path/script/tab] — doesn't exist
================================================
Docs audited: N
Stale: N | Inconsistent: N | Dead refs: N
Next group due: [group name]
When to Run
/doc-audit boot — after any session that changes boot files (CLAUDE.md, identity rules, canon files, MEMORY.md, SCHEMA, index)
/doc-audit engine — after engine code changes, phase plan completion, deploys
/doc-audit media — after edition pipeline changes, post-publish criteria updates, new desk reporters
/doc-audit infra — after service/infrastructure changes
/doc-audit data — after sheet structure changes or ledger maintenance
/doc-audit plans — after any plan-tracked phase completes (highest cadence — every 2-3 sessions)
/doc-audit persona — after Mara/Mags character or governance updates (lower cadence — every 8-10 sessions)
/doc-audit — every 5 sessions, rotates to oldest group
Future Direction (S175 — Option B deferred)
The current 7-group structure is a surgical patch over the original 5-group v1.0. Long-term, the /md-audit skill ([[archive/plans/2026-04-21-md-audit-skill]]) will handle existence-staleness (orphan MDs, mtime drift, broken inbound links) — complementary to this skill's content-staleness focus.
Option B (deferred to next major refactor): replace fixed groups with frontmatter-driven audit cadence. Each doc declares its own audit_cadence: field (e.g., every-session, weekly, monthly, on-change); /doc-audit reads frontmatter across docs/, computes overdue set, audits whatever's stale. Converges with /md-audit (both walk frontmatter); eventually they merge into a single /audit skill with content + existence checks.
When /md-audit lands, revisit whether this skill should:
- Stay as content-staleness only (current scope)
- Merge with
/md-audit into unified frontmatter-driven /audit
- Fold its group definitions into per-doc frontmatter
Tracking
After every group run, append a row to [[AUDITS]] Run history table:
- Date, skill (
/doc-audit <group>), findings (1-line: drift count + severity), action taken (fixes applied: N or report only), artifact path (commit hash if fixes shipped, else session note).