CB-WP-0019-T05: what the meta budget is for, at 80/20

InnerLoop v1.7. The purpose is written first and the number follows from
it: most spend on the task at hand, some on control, review and
improving the process. make status prints it above the figure, because a
threshold with no stated purpose is what let this number be argued three
times.

Soft 20% over a trailing 5, and the self-test enforces that the ratio and
the window are a PAIR: META_SOFT_PCT == 100 / TRAILING_PASSES. One meta
pass among n at parity cost reads 1/n, so 80/20 is one pass in five at
normal cost -- a five-pass window. The same 20% over three would have
silently also demanded the meta pass be half-price, which makes meta work
rushed rather than rare. Moving the ratio without the window goes red.

The phase setting is declared, argued and expiring in gates.toml, and
reverts on review_by unless re-argued. Verified live at 35%. One with no
reason or no expiry is refused rather than honoured, because a threshold
anyone may move is not a threshold.

Measured: the last five passes read 7% against the new line.

InnerLoop.md crossed the 400-line limit three times while this was
written and was fixed structurally each time -- the arithmetic, the
cost-per-response basis and the two review case studies moved to
InnerLoopReference.md. The limit was not raised.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-03 18:35:05 +02:00
parent 07261b4444
commit cc8917a6fb
5 changed files with 235 additions and 37 deletions

View file

@ -145,7 +145,7 @@ bearing.
```task
id: CB-WP-0019-T05
status: todo
status: done
priority: high
```
@ -195,6 +195,38 @@ a breach is the failure this shape exists to prevent.
**Controls:** `status.py`'s self-test must cover the new window and ratio,
and must fail if a phase override has no reason or no expiry.
**Done 2026-08-03.** InnerLoop **v1.7**.
**The purpose is written first, and the number follows from it:** *most
spend on the task at hand; some on control, review and improving the
process that carries the work forward.* `make status` now prints it above
the figure, because a threshold with no stated purpose is what let this
number be argued three times.
**Soft 20% over a trailing 5**, and the self-test enforces that they are a
**pair**: `META_SOFT_PCT == 100 / TRAILING_PASSES`. Moving the ratio to 25
without moving the window turns it red — *"25% over 5 passes; one meta
pass at parity reads 20%"*. That invariant is the rule's whole content;
without it the two numbers drift and "80/20" quietly means something else.
**The phase setting is declared, argued and expiring**, in `gates.toml`
beside the gate it governs. Verified live: with a setting present the line
moves to 35%, prints its reason, and announces *"reverts to 20% on that
date unless re-argued"*. A setting with **no reason** or **no expiry** is
refused by `--self-test`, not honoured — so the line cannot be raised
quietly to pass a breach.
**Measured effect of the change**, which is the point of adopting it
rather than asserting it: the last five passes read **7%** against the new
20% line. The old rule read 0% over three. Neither is a breach; the new
one is measuring a window in which a meta pass can actually appear.
`InnerLoop.md` crossed the 400-line loadability limit three times while
this was written, and was fixed structurally each time — the meta-budget
arithmetic, the cost-per-response basis, and the two review case studies
moved to `InnerLoopReference.md`. **The limit was not raised**, per the
standing precedent it exists to enforce.
## Task: evidence
```task