Root file trim, alchemy diagnostics reference, size budget ratchet
Context an agent pays for on every turn is now capped by a check rather than by discipline. Two files were trimmed in the same release that added the ceiling.
Trims
CLAUDE.mdsection 6 is reduced to its validator-pinned invariants, a gate-to-skill map, and a pointer to thealchemyskill that owns routing: 1,517 → 1,135 words, every pinned phrase preserved.- The
alchemyFailure-Mode Diagnostics table moves verbatim toreferences/failure-modes.mdbehind a stub that keeps the section number and the two rows the router pins: 5,111 → 4,421 words. The reference is pinned and the primer restamped.
Library enforcement
validate_size_budget() adds SIZE_BUDGET_WORDS ceilings for CLAUDE.md and every SKILL.md at a 100-word grain, plus DESCRIPTION_BUDGET_CHARS for the always-on description listing. It is a ratchet in both directions: over-budget fails, and so does slack — an entry sitting a full grain above its file must be lowered in the same change, so a trim cannot quietly bank headroom for later growth. Missing and ghost entries fail too. 37 mutation cases, and the CONTRIBUTING checklist names the ratchet.
references/*.md carry no budget, which makes them the intended destination for a section an agent needs only on some paths.
Release commit a13b344. Notes written after the fact from the commit history.