CB-WP-0019 T03/T04: the cost rule written down, and the lifecycle
Some checks failed
ci / check (push) Has been cancelled
Some checks failed
ci / check (push) Has been cancelled
T03: InnerLoop v1.7 plus loop-lint's own-cost check. Six passes under-reported themselves by 30-45%, never once high, and the rule lived only in evidence files having been re-derived three times. The READING is load bearing, not the boundary: CB-WP-0018 T04 applied 're-run the instrument at the moment of quoting' alone and its figure was correct. So the operative instruction is re-run when you quote, and loop-lint fails an evidence file naming its own workplan beside a dollar amount without marking it provisional. It binds forward from this pass. The check fires on seven historical files which ARE the evidence for the rule; making them comply would edit the record to remove the thing it proves -- the same category error as a live fact: tag on a dated measurement, which this pass also hit. Lifecycle, at the maintainer's instruction: ready -> active -> done, where ready means declared and not started. loop-lint fails a workplan that has started and still says ready, one that is active with everything closed, and one that is done with an open task. The first version of that check was WRONG and its own self-test caught it: it stripped the leading status: assuming frontmatter, which silently dropped a real task once the frontmatter said ready or active. Both new checks then fired on this pass's own artifacts and both were right to. T04: CB-EV-0017. The new meta budget's first reading is a breach it caused -- 27% against the 20% line, because this pass cost $31.18 against product passes averaging ~$21. Reported rather than exempted: ADR-0006 D2 covers the instrument repairs but not the rule-writing, and the honest reading is that this should have been two passes. CB-WP-0018 settled at $36.53/95 against $28.08/82 last reported, 30% higher. Seven for seven. make all exits 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0b6f7c5bc8
commit
69c1658d20
6 changed files with 483 additions and 25 deletions
|
|
@ -297,3 +297,87 @@ step pointed there.** Mutating it settled it in one command.
|
|||
|
||||
Both are verification steps that inherited the author's blindness, and
|
||||
both fixes replace re-derivation with **adversarial execution**.
|
||||
|
||||
## Quoting a cost — six for six, never high
|
||||
|
||||
*(CB-WP-0019 T03, 2026-08-03. The rule lived only in evidence files and
|
||||
had been re-derived three times before it was written down.)*
|
||||
|
||||
| pass | reported mid-flight | settled | under by |
|
||||
|---|---|---|---|
|
||||
| CB-WP-0009 | $6.73 | $11.31 | 40% |
|
||||
| CB-WP-0011 | $4.23 | $7.02 | 40% |
|
||||
| CB-WP-0012 | $8.82 | $14.52 | 39% |
|
||||
| CB-WP-0013 | $5.78 | $8.26 | 30% |
|
||||
| CB-WP-0015 | $15.14 | $22.70 | 33% |
|
||||
| CB-WP-0017 | $5.19 | $9.48 | 45% |
|
||||
|
||||
**Six for six, always low, never by less than 30%.** That is systematic
|
||||
bias, not noise, and it has two causes — both of which must be fixed or
|
||||
the rule does not hold:
|
||||
|
||||
1. **The boundary.** A pass's spend window runs to the **next** pass's
|
||||
first commit, so a pass is not final until the one after it starts.
|
||||
Quoting "the previous pass" is therefore still too early if the pass
|
||||
after it has not been declared. (CB-EV-0013 §5.)
|
||||
2. **The reading.** *A figure read earlier in a session is an in-flight
|
||||
figure regardless of whose name is on it.* CB-EV-0014 quoted
|
||||
CB-WP-0015 at $15.14/136 and called it settled; it had been read during
|
||||
CB-WP-0015 itself and settled at $22.70/166 — 50% higher. Quoting from
|
||||
memory defeats the rule even when the boundary is right.
|
||||
(CB-EV-0015 §6.)
|
||||
|
||||
**Which is load bearing?** The second. CB-WP-0018 T04 applied it alone —
|
||||
re-running `make status` at the moment of writing — and the figure it
|
||||
quoted was correct. The boundary matters only because re-running early
|
||||
still reads an open window; re-running *late* fixes both. So the
|
||||
operative instruction is **re-run the instrument when you quote it**, and
|
||||
the boundary rule is what tells you when "late enough" has arrived.
|
||||
|
||||
## Retargeting — the case, and the four corrections it must not forbid
|
||||
|
||||
*(v1.1, from CB-WP-0002/0003. Moved out of `InnerLoop.md` by CB-WP-0019
|
||||
T03 at the loadability limit.)*
|
||||
|
||||
**The bad retarget.** AM-4's targets were measured at 246,250 and set at
|
||||
250,000 in one commit, by the implementer, after seeing the number. That
|
||||
is the structure the rule exists to stop: a target chosen to fit the
|
||||
reading rather than a reading judged against a target.
|
||||
|
||||
**The four good corrections.** CB-WP-0002 then moved AC-1 three times —
|
||||
$92.21 → $92.87 → $93.32 → $93.15 — each because a *new instrument*
|
||||
disproved the old figure. A blanket prohibition on moving a target would
|
||||
have forbidden all four to catch the one.
|
||||
|
||||
Hence the mechanical test rather than an appeal to intent: **a correction
|
||||
is one where the target moves and the implementation does not.** If one
|
||||
commit changes both the target and the code that target measures, it is a
|
||||
retarget and needs an ADR.
|
||||
|
||||
CB-WP-0019 T01 is a worked example on the good side: AM-4b's target moved
|
||||
745,000 while the code it measures did not change at all — only the
|
||||
instrument's scope did, and its output is in the same commit.
|
||||
|
||||
## Numbers you inherit — two cases from CB-WP-0002
|
||||
|
||||
*(v1.1. Moved out of `InnerLoop.md` by CB-WP-0019 T03.)*
|
||||
|
||||
**A target set before its instrument existed.** `specs/CostAccounting.md`
|
||||
AC-1 named `cb-cost --pin fc76445` before that tool was built, and set the
|
||||
target to a hand-computed **$92.87**. When the tool existed it returned
|
||||
**$93.32** — the hand computation carried a dedup bug the tool's own
|
||||
positive control caught. *The metric satisfied v1.0's rule completely and
|
||||
was still wrong.*
|
||||
|
||||
**A number quoted rather than measured.** The workplan opened with
|
||||
**$248.46**, inherited from a prior pass. Re-derivation put it at
|
||||
**$92.21**: the quoted figure double-counted transcript lines and priced a
|
||||
three-model session at one model's rate.
|
||||
|
||||
Neither error was of the harness-does-nothing class — both sums ran over
|
||||
real data, and a positive control would have passed them. That is why the
|
||||
rule is *re-derive before using as a target, or cite as unverified*, and
|
||||
not merely *add a control*.
|
||||
|
||||
**Quoting is not measuring** — the same sentence the cost-quoting rule
|
||||
above rests on, learned here first and re-learned six times since.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue