v0.7.1 - CLAUDE.md size budget
The global ~/.claude/CLAUDE.md is now a budgeted resource across both halves of the plugin. It loads into every prompt of every session, so an audit that leaves it bigger than it found it has failed - and capture is the only thing that grows it.
notation-audit
- New
references/size-budget.md: target <= 40,000 chars (Claude Code's large-memory-file warning floor; the real ceiling ismax(40000, 5% of the context window)), green band <= 32,000. - No-growth rule - the net character delta of an applied audit is <= 0, always, even when already under budget.
- Reduction rule - when over target, propose enough relocation to land under it, or state the best achievable number and what is blocking the rest.
- Reduction tactics ranked best-first: subsection -> note, fat inline entry -> note plus a one-line trigger, append to an existing note rather than minting a new one, cross-tier duplicate removal, index-line compression, note consolidation.
- Measures with
wc -cup front, scores every finding with a signed character delta, reports a size ledger, and re-measures after applying rather than trusting the projection. - Additive findings (a missing index line) are counted as positive deltas and must be offset in the same run.
/notation:notate and /notation:notate-all
- Step 1 measures the file; Step 2's proposal schema gains a
deltafield. - Budget gate: global-tier proposals are priced in characters, inline entries stay one line with detail pushed to
notes/, and at or over 40,000 chars the global tier closes by default - a promotion has to re-pass the routing question and name the size. - Summaries re-measure and report before -> after, offering an audit run when still over target.
notate-allrestates both, since no picker reviews the global tier in auto-apply mode.
Preservation is unchanged. The budget is met by relocating detail into linked note files, never by deleting a still-true line. If the target could only be met by destroying a fact, the audit misses the target and says why.
Closes #4.