/audit — Four-Cs Score
Read-only weekly audit. Adapted from AIS-OS. Pairs with /level-up (the action loop).
When to use
- The user runs
/audit
- Weekly Friday cadence (see
docs/CADENCE.md)
- Before planning a quarter — establish a baseline
- After a major change to the OS — measure drift
When NOT to use
- Daily — too noisy, the trend disappears
- Mid-task — audit is reflective, not action-driving
- For deep code review — that's
/audit-deep. This is OS-level audit, not codebase audit.
Inputs
- Current state of
context/, connections.md, skills/, commands/, agents/, recipes/, decisions/log.md, ~/.claude/usage.jsonl (if exists)
- Optional flag
--no-save: print the report without writing to docs/audits/
Outputs
- A score 0-100 broken down by Four Cs
- Top 3 leverage gaps (highest impact × lowest cost)
- One recommended next action
- File:
docs/audits/YYYY-MM-DD.md (full report)
- One-line entry in
decisions/log.md
Hard rules
- MUST be read-only by default. No edits to anything except
docs/audits/ and decisions/log.md.
- MUST NOT modify
settings.json, core/*, domains/*, CLAUDE.md, or any skill/agent definition.
- MUST surface the top 3 gaps, not 10. If you can't pick 3, pick 1 and state confidence.
- MUST cite the file paths that informed each score, so the audit is reproducible.
Steps
1. Pre-flight
git status --short — note dirty state, but don't fail
ls context/ — verify expected files exist
claude mcp list 2>/dev/null — capture live MCP state (don't fail if it times out)
- Compute date:
YYYY-MM-DD for the report filename
2. Score the Four Cs
Context (out of 25)
Inputs:
- Are
context/About Me.md, About Business.md, Priorities.md, Voice Sample.md, Operating Preferences.md non-placeholder?
- Has
decisions/log.md had an entry in the last 30 days?
- Do active projects have their own
MEMORY.md?
- Last
/onboard run — within 90 days?
Banding:
| Score |
Meaning |
| 0-5 |
All placeholders |
| 6-12 |
Some pillars filled, stale |
| 13-19 |
Most pillars current |
| 20-25 |
All pillars current; recent decisions log; per-project memory in use |
Connections (out of 25)
Inputs:
- Does
connections.md exist with all 7 domains represented (even as Tier-4 "manual")?
- Does every active connection have a documented kill switch?
- Does every
high sensitivity tool have a dedicated service account noted?
- Are credentials referenced via
.env.example placeholders (no real secrets in repo)?
claude mcp list — count of live servers vs. count documented in connections.md
Banding:
| Score |
Meaning |
| 0-5 |
No connections.md or only auto-discovered MCP servers |
| 6-12 |
Some domains documented, no kill switches |
| 13-19 |
All domains noted, most have kill switches |
| 20-25 |
All 7 domains; every active connection has access method + kill switch + sensitivity tier |
Capabilities (out of 25)
Inputs:
- Count workflows mentioned in
decisions/log.md from last 90 days that lack a corresponding skill/script
- Count of skills with no improvement loop documented
- Count of skills > 500 lines without
references/ extraction
docs/CAPABILITIES.md last updated date
Banding:
| Score |
Meaning |
| 0-5 |
Default skills only; no custom capabilities |
| 6-12 |
Some custom skills, no improvement loops, no registry |
| 13-19 |
Capability registry exists; some skills evolving |
| 20-25 |
Registry current; no skill > 500 lines without refs; improvement loops documented |
Cadence (out of 25)
Inputs:
- Last
/audit run — within 14 days = healthy, 14-30 = stale, >30 = dormant
- Last
/level-up run
- Daily/weekly skills used in last 7 days (check
~/.claude/usage.jsonl if available)
- Any
/schedule-d job running > 30 days without review
Banding:
| Score |
Meaning |
| 0-5 |
No loops running |
| 6-12 |
Some manual loops, irregular |
| 13-19 |
Daily/weekly cadence stable for 14+ days |
| 20-25 |
Cadence stable 30+ days; all scheduled jobs reviewed monthly |
3. Identify top 3 leverage gaps
For each pillar with a score below the next band threshold, list:
- The exact missing artifact (e.g. "no
connections.md rows for Tasks domain")
- The cost to fix (low / medium / high — in operator hours)
- The impact (low / medium / high — on Four-Cs trend)
Pick the 3 with highest impact ÷ lowest cost. Order by impact descending.
4. Recommend ONE next action
The single thing to do next week. Not a list. The one action that, if done, moves the lowest-scoring pillar by 5+ points.
Frame as: "Run /level-up Friday with constraint = . Build first."
5. Write the report
Path: docs/audits/YYYY-MM-DD.md
Format:
# Audit — YYYY-MM-DD
**Total: <score>/100**
| Pillar | Score | Trend |
|--------|-------|-------|
| Context | X/25 | ↑/→/↓ vs last audit |
| Connections | X/25 | |
| Capabilities | X/25 | |
| Cadence | X/25 | |
## Top 3 leverage gaps
1. <gap> (impact: ?, cost: ?, fix: <pointer>)
2. <gap>
3. <gap>
## Next action
<one sentence>
## Evidence
- <path>: <what it told us>
- <path>: <what it told us>
6. Log to decisions/log.md
## YYYY-MM-DD — Audit: <total>/100
**Decision:** Audit captured. Top gap: <one-line>.
**Status:** Read-only audit; no changes applied.
**Follow-up:** Run /level-up Friday targeting: <gap>.
7. Output to user
Print the report (not the full file — just the summary table + top 3 gaps + next action).
Failure modes
| Symptom |
Cause |
Fix |
| All scores < 5 |
First-ever audit, OS not populated |
This is the baseline. Do NOT panic. The point is the trend. Recommend /onboard if it hasn't been run. |
| Same gap surfaces 4 weeks in a row |
/level-up is recommending the gap but not building |
Skill is fine. The operator is dodging. Flag in the report. |
| Cadence score drops every audit |
The OS is being abandoned |
Surface this prominently. Don't sugarcoat. |
Reference files
references/four-cs-framework.md — the rubric
references/3ms-framework.md — what "leverage gap" means
docs/CADENCE.md — when to run this
docs/audits/README.md — where reports live
Improvement loop
After every run:
- Was the score the operator expected? If wildly off → rubric needs adjustment
- Did the recommended action match what the operator actually did? If no → recommendation logic is wrong
- Did the next audit show movement? If no → either the action was wrong or it wasn't done
1---2name: audit3description: Score the AI OS out of 100 across the Four Cs (Context, Connections, Capabilities, Cadence). Read-only by default. Surfaces top 3 leverage gaps and recommends one next improvement. Saves audit to docs/audits/YYYY-MM-DD.md and logs a one-line entry in decisions/log.md.4---56# /audit — Four-Cs Score78> Read-only weekly audit. Adapted from AIS-OS. Pairs with `/level-up` (the action loop).910## When to use11- The user runs `/audit`12- Weekly Friday cadence (see `docs/CADENCE.md`)13- Before planning a quarter — establish a baseline14- After a major change to the OS — measure drift1516## When NOT to use17- Daily — too noisy, the trend disappears18- Mid-task — audit is reflective, not action-driving19- For deep code review — that's `/audit-deep`. This is OS-level audit, not codebase audit.2021## Inputs22- Current state of `context/`, `connections.md`, `skills/`, `commands/`, `agents/`, `recipes/`, `decisions/log.md`, `~/.claude/usage.jsonl` (if exists)23- Optional flag `--no-save`: print the report without writing to `docs/audits/`2425## Outputs26- A score 0-100 broken down by Four Cs27- Top 3 leverage gaps (highest impact × lowest cost)28- One recommended next action29- File: `docs/audits/YYYY-MM-DD.md` (full report)30- One-line entry in `decisions/log.md`3132## Hard rules33- **MUST be read-only** by default. No edits to anything except `docs/audits/` and `decisions/log.md`.34- **MUST NOT modify** `settings.json`, `core/*`, `domains/*`, `CLAUDE.md`, or any skill/agent definition.35- **MUST surface** the top 3 gaps, not 10. If you can't pick 3, pick 1 and state confidence.36- **MUST cite** the file paths that informed each score, so the audit is reproducible.3738## Steps3940### 1. Pre-flight41- `git status --short` — note dirty state, but don't fail42- `ls context/` — verify expected files exist43- `claude mcp list 2>/dev/null` — capture live MCP state (don't fail if it times out)44- Compute date: `YYYY-MM-DD` for the report filename4546### 2. Score the Four Cs4748#### Context (out of 25)49Inputs:50- Are `context/About Me.md`, `About Business.md`, `Priorities.md`, `Voice Sample.md`, `Operating Preferences.md` non-placeholder?51- Has `decisions/log.md` had an entry in the last 30 days?52- Do active projects have their own `MEMORY.md`?53- Last `/onboard` run — within 90 days?5455Banding:56| Score | Meaning |57|-------|---------|58| 0-5 | All placeholders |59| 6-12 | Some pillars filled, stale |60| 13-19 | Most pillars current |61| 20-25 | All pillars current; recent decisions log; per-project memory in use |6263#### Connections (out of 25)64Inputs:65- Does `connections.md` exist with all 7 domains represented (even as Tier-4 "manual")?66- Does every active connection have a documented kill switch?67- Does every `high` sensitivity tool have a dedicated service account noted?68- Are credentials referenced via `.env.example` placeholders (no real secrets in repo)?69- `claude mcp list` — count of live servers vs. count documented in `connections.md`7071Banding:72| Score | Meaning |73|-------|---------|74| 0-5 | No `connections.md` or only auto-discovered MCP servers |75| 6-12 | Some domains documented, no kill switches |76| 13-19 | All domains noted, most have kill switches |77| 20-25 | All 7 domains; every active connection has access method + kill switch + sensitivity tier |7879#### Capabilities (out of 25)80Inputs:81- Count workflows mentioned in `decisions/log.md` from last 90 days that lack a corresponding skill/script82- Count of skills with no improvement loop documented83- Count of skills > 500 lines without `references/` extraction84- `docs/CAPABILITIES.md` last updated date8586Banding:87| Score | Meaning |88|-------|---------|89| 0-5 | Default skills only; no custom capabilities |90| 6-12 | Some custom skills, no improvement loops, no registry |91| 13-19 | Capability registry exists; some skills evolving |92| 20-25 | Registry current; no skill > 500 lines without refs; improvement loops documented |9394#### Cadence (out of 25)95Inputs:96- Last `/audit` run — within 14 days = healthy, 14-30 = stale, >30 = dormant97- Last `/level-up` run98- Daily/weekly skills used in last 7 days (check `~/.claude/usage.jsonl` if available)99- Any `/schedule`-d job running > 30 days without review100101Banding:102| Score | Meaning |103|-------|---------|104| 0-5 | No loops running |105| 6-12 | Some manual loops, irregular |106| 13-19 | Daily/weekly cadence stable for 14+ days |107| 20-25 | Cadence stable 30+ days; all scheduled jobs reviewed monthly |108109### 3. Identify top 3 leverage gaps110111For each pillar with a score below the next band threshold, list:112- The exact missing artifact (e.g. "no `connections.md` rows for Tasks domain")113- The cost to fix (low / medium / high — in operator hours)114- The impact (low / medium / high — on Four-Cs trend)115116Pick the 3 with **highest impact ÷ lowest cost**. Order by impact descending.117118### 4. Recommend ONE next action119The single thing to do next week. Not a list. The one action that, if done, moves the lowest-scoring pillar by 5+ points.120121Frame as: "Run `/level-up` Friday with constraint = <gap>. Build <artifact> first."122123### 5. Write the report124125Path: `docs/audits/YYYY-MM-DD.md`126127Format:128```markdown129# Audit — YYYY-MM-DD130131**Total: <score>/100**132133| Pillar | Score | Trend |134|--------|-------|-------|135| Context | X/25 | ↑/→/↓ vs last audit |136| Connections | X/25 | |137| Capabilities | X/25 | |138| Cadence | X/25 | |139140## Top 3 leverage gaps1411. <gap> (impact: ?, cost: ?, fix: <pointer>)1422. <gap>1433. <gap>144145## Next action146<one sentence>147148## Evidence149- <path>: <what it told us>150- <path>: <what it told us>151```152153### 6. Log to `decisions/log.md`154155```markdown156## YYYY-MM-DD — Audit: <total>/100157158**Decision:** Audit captured. Top gap: <one-line>.159**Status:** Read-only audit; no changes applied.160**Follow-up:** Run /level-up Friday targeting: <gap>.161```162163### 7. Output to user164Print the report (not the full file — just the summary table + top 3 gaps + next action).165166## Failure modes167168| Symptom | Cause | Fix |169|---------|-------|-----|170| All scores < 5 | First-ever audit, OS not populated | This is the baseline. Do NOT panic. The point is the trend. Recommend `/onboard` if it hasn't been run. |171| Same gap surfaces 4 weeks in a row | `/level-up` is recommending the gap but not building | Skill is fine. The operator is dodging. Flag in the report. |172| Cadence score drops every audit | The OS is being abandoned | Surface this prominently. Don't sugarcoat. |173174## Reference files175- `references/four-cs-framework.md` — the rubric176- `references/3ms-framework.md` — what "leverage gap" means177- `docs/CADENCE.md` — when to run this178- `docs/audits/README.md` — where reports live179180## Improvement loop181After every run:1821. Was the score the operator expected? If wildly off → rubric needs adjustment1832. Did the recommended action match what the operator actually did? If no → recommendation logic is wrong1843. Did the next audit show movement? If no → either the action was wrong or it wasn't done