rabbit-writes / rabbit-agents-md
CLAUDE.md0 starsChanged 2 months agoMITView on GitHub
Skill for auditing and restructuring AGENTS.md and memory files: named failure modes and a disposition plan instead of grades, with moves to .agents/docs/ and per-module memory files.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/rabbit-readme-improver/CLAUDE.mdCLAUDE.md
- skills/rabbit-reads/CLAUDE.mdCLAUDE.md
- skills/rabbit-rewrites/CLAUDE.mdCLAUDE.md
- skills/rabbit-writes/CLAUDE.mdCLAUDE.md
- skills/voice-setup/CLAUDE.mdCLAUDE.md
- rabbit-agents-mdSkill
- rabbit-readme-improverSkill
- rabbit-readsSkill
- rabbit-rewritesSkill
- rabbit-writesSkill
- voice-setupSkill
The file
We split this CLAUDE.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
Every threshold lives in LIMITS in claude_check.py, imported by the tests.
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
rabbit-agents-md
Skill for auditing and restructuring AGENTS.md and memory files: named failure modes and a disposition plan instead of grades, with moves to .agents/docs/ and per-module memory files.
Commands
# Audit one file, or sweep a tree for every AGENTS.md / CLAUDE.md spelling (both families together)
python3 skills/rabbit-agents-md/scripts/claude_check.py AGENTS.md
python3 skills/rabbit-agents-md/scripts/claude_check.py . --json
# Fold ~/.codex/AGENTS.md and ~/.claude/CLAUDE.md into the duplicate check, read-only
python3 skills/rabbit-agents-md/scripts/claude_check.py . --global
# Gate: exit 1 on any unsuppressed P0 (safety band only, by design)
python3 skills/rabbit-agents-md/scripts/claude_check.py AGENTS.md --check
# Run the skill test suite
python3 skills/rabbit-agents-md/tests/run.pyStructure
SKILL.md: three modes (audit,improve,restructure), the workflow, and the report-before-edit gate.scripts/claude_check.py: the mechanical checker.claudemd-*structure findings merged with the engine at registerdocs, one suppression pass over both.scripts/_bootstrap.py: engine lookup, copied fromrabbit-reads.references/:criteria.md(failure modes, dispositions),templates.md(shapes per level),restructure.md(move playbook).
Gotchas
- Every threshold lives in
LIMITSinclaude_check.py, imported by the tests. There is no CLAUDE.md corpus, so limits are pinned by fixtures, not calibrated. - No
claudemd-*id is P0. Blocking stays reserved for the engine's safety band. - The judgment checks (derivable, wrong altitude, the removal test) live in
SKILL.mdandreferences/criteria.md, never in the script. - The Script CLI section in
SKILL.mdrestates the argparse definitions by hand.check_claude_mdinscripts/validate.pyreads this file's Commands block, notSKILL.md, so keep the two and the script'sadd_argumentcalls in sync when a flag changes. check_claude_mdin the repo's ownscripts/validate.pyholds everyCLAUDE.mdfile in the tree to the code it describes, and only in two ways. A line carrying three or more backticked bare words must name registers fromregisters.json(or modes from its_modesblock), and apython3 <path>line inside a fence must supply the positionals that script's ownadd_argumentcalls require. Both drifts were live once: one file named six registers, four of which did not exist, and another showed a script invocation missing a required path. A command whose script path does not resolve from the repo root is skipped rather than guessed at. It reads required-argument counts out of each script directly rather than fromprecommit.py'sVALUE_FLAGS, a hook's runtime allowlist that must not be steerable from a doc.claude_check.py's ownclaudemd-dead-pathfinding overlaps in spirit (it also flags a fenced path that does not resolve) but is a separate, narrower check: it does not verify positional-argument counts or register names, so the two checkers can still disagree about a positional-count drift that onlyscripts/validate.py'scheck_claude_mdwould catch.- The size check has two independent axes.
claudemd-oversizereads non-blank line count,claudemd-char-budgetreads raw character count against the ~40,000-character ceiling commonly recommended for a memory file. Neither implies the other: a handful of very long lines can cross the character budget while staying well under the line-count bands, and terse short lines can do the reverse.claudemd-import-costis a third, separate axis again: the file's own size on either measure can pass while what an@importpulls in transitively (bounded byIMPORT_HOP_LIMIThops, cycle-safe) does not. map_coverage_note,harness_inventory_note, andgit_currency_noteonly run for the root memory file, gated onfile_dir == repo_rootand the canonicalCLAUDE.md/AGENTS.mdbasename, not a local override or a nested module's file.git_currency_notealso needs a real git repository to say anything. The bare.gitmarker the other checks tolerate is not enough for it, so a Tree test fixture needs an actualgit initand commit to exercise it.dual_harness_findingsruns once per sweep, not per file. It compares every same-directoryCLAUDE.md/AGENTS.mdpair. Results get injected into each file's list aftercheck_claude_filereturns, then re-sorted rather than relying on the internal sort.- A directory sweep dedupes the discovered file list by realpath before sorting, AGENTS spellings ahead of CLAUDE spellings. A symlinked pair is one report under the AGENTS.md name, not the same content audited twice under two names.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

