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

@ -6,12 +6,23 @@ a breach never blocks its own repair (D1/D2); loop work cashes out into
something runnable in the pass that invents it (D4); the tier table
covers changes to the loop's own operation (D5).
> **Meta budget — soft, 25% of the trailing three passes.** Work on the
> loop's own instruments and process is capped at a quarter of recent
> spend. Measured by `make status` from each workplan's `kind:`
> frontmatter (`product` | `meta` | `mixed`), over a **trailing 3-pass
> window**; the lifetime figure is reported as history and is not the
> metric (ADR-0006 D1).
> **What the budget is for (v1.7, CB-WP-0019 T05).** Most of what this
> project spends should go on **the task at hand**. Some of it must go on
> **control, review, and improving the process that carries the work
> forward** — a loop that never inspects itself accumulates exactly the
> defects this one keeps finding, and a loop that only inspects itself
> ships nothing. The budget names the split so that neither happens by
> drift.
>
> **Meta budget — soft, 20% of the trailing five passes.** Measured by
> `make status` from each workplan's `kind:` frontmatter (`product` |
> `meta` | `mixed`), over a **trailing 5-pass window**; the lifetime
> figure is reported as history and is not the metric (ADR-0006 D1).
>
> **The ratio and the window are a pair** — 20% over five is *one pass in
> five at normal cost*; the same number over three would mean *one in five
> and at half price*. `InnerLoopReference.md` §Meta budget has the
> arithmetic.
>
> **Soft on purpose.** A task already started may be finished — stopping
> mid-task to satisfy a ratio wastes the work and leaves the tree worse
@ -27,6 +38,13 @@ covers changes to the loop's own operation (D5).
> `authorized_above_budget:` in the workplan frontmatter. Undocumented
> above-line meta work is a violation the evidence file must report.
>
> **The phase setting is not a dial.** The split may move for a phase, but
> only **declared, argued, and expiring** — `meta_phase = { pct, reason,
> review_by }` in `gates.toml`, reverting to 20 on `review_by` unless
> re-argued. A setting with no reason or no expiry fails
> `status.py --self-test`, so the line cannot be raised quietly to pass a
> breach.
>
> A pass that exceeds it **says so in its evidence file and names the
> product work displaced**. That is the whole enforcement: a reporting
> budget, not a gate, for the same reason the session-shape budget is —
@ -36,12 +54,8 @@ covers changes to the loop's own operation (D5).
> least one executable check, command, or gate. Findings that stay prose
> are recorded as findings and do **not** count as delivery.
>
> Measured basis: cost per response across five passes ran 0.123, 0.228,
> 0.362, 0.298, 0.123 dollars, and the reading that survived the data is
> that **cost tracks distance from a runnable check** — the passes that
> shipped a command were cheap, the passes that argued about what a
> number means were not (CB-EV-0007 §5). **Refuted if** a prose-only meta
> pass lowers cost per response or catches a class no command could.
> Measured basis and its falsifier: `InnerLoopReference.md` §Loop work
> cashes out — **cost tracks distance from a runnable check**.
> **Every gate is an experiment (v1.6, ADR-0006 D3).** Each standing
> control gate has an entry in `gates.toml` naming what it has caught, a
@ -194,20 +208,9 @@ sampling. So:
> red. Re-running the command that prints a number satisfies "reproduce
> independently" and finds nothing of this class.
>
> *(v1.4, from CB-WP-0005: `evidence/CB-EV-0001` reported `AM-7 replay |
> met, 2,290×` for a clause that asserts nothing — the hash reaches only a
> `println!`. The reviewer found it by opening a test out of curiosity and
> said so; no systematic step pointed there. Mutating it settled it in one
> command. This is the second verification step to inherit the author's
> blindness — the first was CB-WP-0002's dedup sample — and both fixes
> replace re-derivation with **adversarial execution**.)*
*(v1.1, from CB-WP-0002: the dedup invariant was verified on the main
transcript by the survey — 206/206 groups — and independently re-verified
by the reviewer, who used the same transcript. It is false in the
8-response `subagents/` tree neither examined. Two independent checks,
one blind spot, because both sampled the same way. Only an assertion
running over all the data at execution time caught it.)*
*Both cases that produced these rules — CB-WP-0005's inert `AM-7 replay`
clause and CB-WP-0002's same-sample dedup blind spot — are in
`InnerLoopReference.md` §Why review is adversarial execution.*
**What review demonstrably does do.** Measured across two passes:
**$0.66** and **$1.11**, roughly 1% of each pass, each finding