- name
- skill-audit
- description
- Audit skill files for drift — script paths, file references, prerequisites, handoffs, chain position. Skills are behavior, not reference — they need a different audit than doc-audit.
- version
- 1.0
- updated
- 2026-04-17T00:00:00.000Z
- tags
- ["engine","active"]
- effort
- medium
- disable-model-invocation
- true
- argument-hint
- [group]
# /skill-audit — Skill File Drift Audit
## Purpose
Skills are the most active documents in the project — they define behavior and change every session. A skill can drift (script path moved, step consolidated, file renamed, handoff broken) without anyone checking.
This is different from `/doc-audit` which audits reference documents for accuracy. Skill-audit checks whether the skills still work — do their scripts exist, do their handoffs connect, do their prerequisites match what the previous skill produces.
## Groups
### cycle-pipeline — The full cycle chain
| Skill | Verify |
|-------|--------|
| `/run-cycle` | Calls /pre-flight, /pre-mortem, /engine-review, /build-world-summary. All referenced skills exist. |
| `/pre-flight` | Sheet names match actual spreadsheet (Oakland_Sports_Feed, Initiative_Tracker, Edition_Coverage_Ratings). Service account lib path current. |
| `/pre-mortem` | Phase folder patterns match actual engine structure. Hook references current. |
| `/engine-review` | Input sheet names match. Output file path `output/engine_review_c{XX}.md` used consistently. |
| `/build-world-summary` | Riley_Digest and Oakland_Sports_Feed reads via service account work. Engine review file path match engine-review output. Output format matches C91 template. |
| `/city-hall-prep` | Prerequisites (world summary, engine review) match build-world-summary and engine-review outputs. Voice routing table matches agent directories at `.claude/agents/`. |
| `/city-hall` | Voice agent paths match actual directories. Tracker update script `applyTrackerUpdates.js` exists. Media handoff format matches what sift expects to read. |
| `/sift` | Prerequisites match outputs from build-world-summary, city-hall, newsroom memory. Criteria file references (story_evaluation, brief_template, citizen_selection) exist. Output path `output/reporters/{reporter}/c{XX}_brief.md` matches what write-edition reads. |
| `/write-edition` | Reads sift's brief output paths. Reporter agent list matches `.claude/agents/`. validateEdition.js + ingestEdition.js scripts exist. |
| `/post-publish` | All 13 steps reference existing scripts. Criteria file paths match. Newsroom memory path current. |
### post-cycle-media — Coverage skills within a cycle
| Skill | Verify |
|-------|--------|
| `/edition-print` | `generate-edition-photos.js`, `photoQA.js`, `generate-edition-pdf.js`, `saveToDrive.js` all exist. DJ Hartley agent path current. |
| `/write-supplemental` | Reads world summary + city-hall log. 24 reporter voice files at `docs/media/voices/` exist. Post-supplemental ingest scripts exist. |
| `/dispatch` | Reporter selection table matches voice files. Brief template path current. Post-dispatch ingest scripts exist. |
| `/interview` | Both modes (voice, paulson) documented. Voice agent paths match. ingestEditionWiki + ingestEdition scripts exist. |
| `/podcast` | Podcast template at `editions/SUPPLEMENTAL_TEMPLATE.md` or similar. podcast-desk agent at `.claude/agents/podcast-desk/` exists. SHOW_FORMATS path current (`docs/media/podcast/SHOW_FORMATS.md`). |
### identity-session — Boot and close
| Skill | Verify |
|-------|--------|
| `/session-startup` | Workflow file references current. PERSISTENCE, JOURNAL_RECENT paths current. |
| `/session-end` | DOCUMENTATION_LEDGER path. Journal, persistence, project state update steps. |
| `/boot` | Identity file references (PERSISTENCE, identity.md, JOURNAL_RECENT) current. Wiki layer step references existing `docs/SCHEMA.md` and `docs/index.md`. |
## How to Audit
### Step 1: Read the skill
Open the skill file. Extract every:
- Script reference (`node scripts/xxx.js`)
- File path reference (`output/`, `docs/`, `editions/`, `.claude/agents/`)
- Skill cross-reference (`/run-cycle`, `/sift`, etc.)
- MCP tool reference (`lookup_citizen`, `search_canon`, etc.)
### Step 2: Verify each reference
- Scripts: does the file exist at the path?
- File paths: does the directory exist? Do recent cycle outputs match the path pattern?
- Skill cross-references: does the referenced skill exist?
- MCP tools: is the tool still in the MCP server?
### Step 3: Verify handoffs
For chain skills, verify the handoff:
- What does this skill produce? (output files section)
- What does the next skill expect to read? (prerequisites section)
- Do they match?
Example: sift produces `output/reporters/{reporter}/c{XX}_brief.md`. Write-edition expects to read the same path. If sift's output changed but write-edition's prerequisite wasn't updated, the handoff is broken.
### Step 4: Check for stale script references
Legacy scripts may still be referenced in skills that got consolidated. Look for:
- `buildDeskPackets.js`, `buildDeskFolders.js`, `buildVoiceWorkspaces.js` — legacy, preserved but not in current pipeline
- `editionIntake.js` — writes to tabs engine doesn't read (intake not wired)
- `truesource_reference.json` — replaced by MCP `get_roster("as")`
If a skill still uses these without marking them legacy, flag it.
## Output Format
```
SKILL AUDIT — [group] — [date]
================================================
BROKEN HANDOFFS (skill A produces X, skill B expects Y):
1. [skill] produces [path], [skill] expects [different path]
DEAD SCRIPTS (referenced but don't exist):
2. [skill] references scripts/xxx.js — not found
STALE REFERENCES (legacy infrastructure still cited):
3. [skill] uses truesource_reference.json — should be get_roster MCP
MISSING AGENTS (skill references .claude/agents/X but X doesn't exist):
4. [skill] references X-desk — directory not found
================================================
Skills audited: N
Handoffs: N broken | Scripts: N dead | References: N stale | Agents: N missing
Next group due: [group name]
```
## Audit Tracker
| Group | Last Audited | Session | Notes |
|-------|-------------|---------|-------|
| cycle-pipeline | — | — | Never audited as group |
| post-cycle-media | — | — | Never audited as group |
| identity-session | — | — | Never audited as group |
## When to Run
- `/skill-audit cycle-pipeline` — after any edition cycle where skills felt off
- `/skill-audit post-cycle-media` — after supplemental/dispatch/interview work
- `/skill-audit identity-session` — rare, only after boot/session changes
- `/skill-audit` (no group) — rotates to oldest
## What This Skill Does NOT Do
- Audit reference docs — that's `/doc-audit`
- Audit engine code — that's `/tech-debt-audit`
- Fix issues — this flags them. Fixing happens in a focused session.
Ver no GitHub