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:
parent
07261b4444
commit
cc8917a6fb
5 changed files with 235 additions and 37 deletions
13
gates.toml
13
gates.toml
|
|
@ -92,17 +92,26 @@ caught = [
|
|||
retire_if = "it stays at 100% through two passes that add kernel rules — at that point it is measuring a habit, not enforcing one"
|
||||
|
||||
[[gate]]
|
||||
id = "META-25"
|
||||
id = "META-20"
|
||||
name = "meta budget"
|
||||
target = "status"
|
||||
checks = "share of the trailing 3 passes spent on the loop itself; soft 25%"
|
||||
checks = "share of the trailing 5 passes spent on the loop itself; soft 20%. Purpose (InnerLoop v1.7): most spend on the task at hand, some on control, review and improving the process that carries the work forward"
|
||||
added = "2026-08-01"
|
||||
review_by = "2026-11-30"
|
||||
caught = [
|
||||
"its own cumulative-window defect, reported in CB-EV-0007 §3 and fixed by CB-WP-0009 T01",
|
||||
"CB-WP-0019: it had a threshold and no stated purpose, which is why the number was argued three times. The maintainer set 80/20; writing that down exposed that the ratio and the window are a pair — one meta pass among three at parity cost already reads 33%, so 20% over a trailing 3 would have silently also demanded it be half-price. Now 20% over a trailing 5, which is one pass in five at normal cost",
|
||||
]
|
||||
retire_if = "product and meta stop being separable, or the share sits under the line for four passes without anyone consulting it"
|
||||
|
||||
# The phase setting (CB-WP-0019 T05). Uncomment, argue, and date it to move
|
||||
# the split for a phase — stage 0 and a stabilisation phase do not deserve
|
||||
# the same ratio. It REVERTS to META_SOFT_PCT on `review_by` unless
|
||||
# re-argued, and `status.py --self-test` refuses one with no reason or no
|
||||
# expiry, because a threshold anyone may move is not a threshold.
|
||||
#
|
||||
# meta_phase = { pct = 35, reason = "why this phase differs", review_by = "YYYY-MM-DD" }
|
||||
|
||||
[[gate]]
|
||||
id = "LOOP-LINT"
|
||||
name = "executable InnerLoop rules"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue