Token-hygiene audit of the always-loaded context stack — CLAUDE.md, AGENTS.md, auto-memory MEMORY.md, and the bootstrap-rendered identity files (SOUL.md, USER.md, ACCESS_POLICY.md, HEARTBEAT.md) or their harness equivalents. Finds redundancy, contradictions, stale content, compression candidates, and skill-extraction candidates; produces a ranked action list sorted by token savings with a risk class per finding. REPORT-ONLY: this skill never edits any audited file. Recommendations for bootstrap-rendered files target the interview answer bank / templates, never the rendered output. Judging routes through `gbrain eval cross-modal` (single cheap model by default; full multi-model panel is explicit opt-in).
60
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./plugin-variants/gbrain-coding/skills/context-audit/SKILL.mdConvention: see conventions/brain-first.md — before running a fresh audit, check the brain for prior audit reports (
gbrain recall "context audit report") so you can compute token DRIFT since the last run and avoid re-flagging findings the user already declined.Convention: see conventions/quality.md — every finding cites its file and evidence; no unsourced claims.
Every file that loads on every turn is a per-turn tax: tokens, latency, and — past a point — instruction-following quality. Always-loaded files accrete (append-only release notes, promoted memory blocks nobody re-reads, rules restated in three files that drift into contradiction). This skill audits the whole always-loaded stack at once and returns a ranked, evidence-cited action list sorted by token savings.
It is an auditor, not a surgeon. It measures, finds, ranks, and recommends. The user (or a skill the user explicitly invokes afterward) applies changes.
Enumerate what THIS harness actually loads every turn — do not assume a fixed list. Typical stack:
| File | Role | Fix belongs in |
|---|---|---|
project CLAUDE.md / AGENTS.md | orientation, routing, invariants | the file itself (source-editable) |
user-global CLAUDE.md | cross-project instructions | the file itself (source-editable) |
auto-memory MEMORY.md | promoted memory blocks | the memory store (demote/expire) |
SOUL.md, USER.md, ACCESS_POLICY.md, HEARTBEAT.md, rendered AGENTS.md | bootstrap-rendered identity files | the interview answer bank / templates — NEVER the rendered file |
| harness system-prompt fragments (identity/tools files) | per-harness | wherever that harness sources them |
Skills, reference docs, and anything loaded on demand are OUT of scope as audit subjects — but they are the DESTINATION for skill-extraction findings (content that only matters for one workflow should move out of the always-loaded stack into a skill).
This skill guarantees:
gbrain bootstrap interview --set KEY "..." then
gbrain bootstrap render --only <FILE> --force), never as a direct edit.
See skills/soul-audit/SKILL.md for the mechanics.wc -c / ~4 chars-per-token), never invented.gbrain eval cross-modal — no raw model API calls, no hardcoded model IDs.--cycles 1 — a few cents). The full
three-provider frontier panel runs only when the user explicitly asks for
a "full" or "multi-model" audit (~3x+ the cost per cycle).List the always-loaded files for this harness and measure each:
for f in CLAUDE.md AGENTS.md SOUL.md USER.md ACCESS_POLICY.md HEARTBEAT.md MEMORY.md; do
[ -f "$f" ] && echo "$f: $(wc -c < "$f") chars (~$(( $(wc -c < "$f") / 4 )) tokens)"
doneRecord the total. If a prior audit report exists in the brain, compute drift (net tokens grown/shrunk since last run, which files moved).
Read every file in the stack in full. Evaluate against six dimensions:
All three classes are recommendations. The risk class tells the user how much care to apply — it does not authorize this skill to act.
Write the draft report to a temp file, then gate it:
# Resolve the cheap judge from the user's model tiers — never hardcode an ID.
# (`gbrain models` shows all resolved tiers if the config key is unset.)
JUDGE=$(gbrain config get models.tier.utility)
gbrain eval cross-modal \
--task "Context-stack token-hygiene audit: every finding cites file + quoted evidence; savings are measured (chars/4), not guessed; findings ranked by token savings; every rendered-file recommendation targets the interview answer bank or template, never a direct edit; risk class on every row" \
--output /tmp/context-audit-draft.md \
--slug context-audit-report \
--cycles 1 \
--slot-a-model "$JUDGE" --slot-b-model "$JUDGE" --slot-c-model "$JUDGE"Full multi-model panel (explicit opt-in only — the user asked for a
"full" / "multi-model" audit): omit the --slot-*-model overrides so the
runner's native three-provider defaults apply.
Exit codes: 0 PASS — deliver. 1 FAIL — fix the flagged weaknesses in the
draft (usually: an unquoted claim or a rendered-file edit recommendation) and
re-judge. 2 INCONCLUSIVE (provider/key trouble) — deliver the report but
label it "unjudged" prominently.
Print the report in the conversation (see Output Format). If the user wants
it persisted, hand off to the brain-ops skill to file it under openclaw/
(agent-state notes) — this skill does not write pages itself.
Re-running after major edits to the stack, or on a schedule, is a harness-routing convention the user can set up (see the cron-scheduler skill) — nothing here runs automatically or guarantees a cadence.
# Context Audit — YYYY-MM-DD
Stack total: ~NN,NNN tokens across N files (drift since last audit: +/-N,NNN)
Findings: N (~NN,NNN tokens recoverable) | Contradictions: N
Judge verdict: PASS (single-model, utility tier) | receipt: <path>
| # | Save (tok) | Risk | File | Finding | Evidence | Recommended fix (and WHERE it lives) |
|---|-----------|------|------|---------|----------|--------------------------------------|
| 1 | ~2,400 | 🟢 | ... | redundancy: X restated | "quoted line" | delete from A; canonical copy stays in B |
| 2 | ~1,100 | 🟡 | SOUL.md | stale: ... | "quoted line" | update answer bank key VOICE_REGISTER, re-render — NOT a SOUL.md edit |
...
## Contradictions (fix these first, savings aside)
- FILE-A says "..." but FILE-B says "..." — resolve toward <one>, delete the other.
## Skill-extraction candidates
- <content> only matters when <workflow> — extract via skill-creator, load on demand.Sorted by token savings, descending — except contradictions, which are called out first regardless of size (they cost correctness, not just tokens). Every row carries evidence (a quote or line reference) and names WHERE the fix belongs: source file, answer bank/template, memory store, or a new skill.
gbrain bootstrap render. Target the answer bank or template, then
re-render.gbrain eval cross-modal.~N chars/4 approximations.43597b1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.