CB-WP-0019 T01/T02: AM-4b asks what a contributor acquires
Some checks failed
ci / check (push) Failing after 4s
Some checks failed
ci / check (push) Failing after 4s
The two AM-4 budgets had the SAME scope -- one package, no dev edges -- while claiming to bound different things. AM-4b now measures the workspace with dev edges: 57 crates / 725,258 lines where it read 29 / 317,021, having been blind to 28 crates and 408,237 lines, more source than its own target. Target 745,000, ~2.7% of room -- the same margin ADR-0008 D3 gave AM-4a, applied to a number that grew because the instrument was repaired, not because anything was added. The target moved to fit the measurement. T02: proc-macros are COUNTED here and excluded from AM-4a, on purpose. AM-4a asks what ships and a proc-macro never ships. AM-4b asks what is acquired, and ADR-0007 D3's acquisition rule counts what the build fetches -- 'it does not ship' is no answer to 'we downloaded it'. When the rules disagree, the question each budget asks decides. Measured share 109,585 lines / 15.1% against AM-4a's 36.2%, so ADR-0008 D2's refusal to borrow the ratio was right by more than a factor of two. Caught by this project's own earlier work twice: the mutation find-string went stale and --self-test reported it BUILD-FREE (the check CB-WP-0015 added after AM-4a's rotted for two passes), then the DFD gate caught facts.toml carrying the old numbers. CB-EV-0001 and ADR-0004 carried live fact: tags on historical readings. A dated record asserting a CURRENT value is a category error, so those occurrences are marked as-measured instead of retro-edited, and ADR-0004 gains a supersession note. make all exits 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
8793749654
commit
0b6f7c5bc8
7 changed files with 171 additions and 20 deletions
|
|
@ -205,7 +205,7 @@ evidence lands in `evidence/CB-EV-0001-game-kernel.md` with no
|
|||
| AM-2 | M-D1-SPL: spec lines per rule in `games/ground` rules code (impl LOC ÷ rule count) | boardgame.io ~36 LOC for the 2-move synthetic game | ≤ 40 LOC/rule, paired with AM-1 (anti-gaming pair) | measured (tokei + rule count) |
|
||||
| AM-3 | Synthetic-workload definition size: LOC to express the CB-RES-0001 synthetic game on our kernel | ~36 LOC (boardgame.io, measured) | ≤ 50 LOC | measured |
|
||||
| AM-4a | M-D2-DEP: third-party LOC, **shipped runtime** (`--no-default-features --edges normal,no-proc-macro`) | boardgame.io: 120 npm packages / 3.9M LOC | **≤ 161,000 lines** (ADR-0008 D3, was 250,000) | measured (`make dep-weight`) |
|
||||
| AM-4b | M-D2-DEP: third-party LOC, **dev toolchain** (default features) | as above | **≤ 350,000 lines** — *proc-macro share unmeasured; correction owed (ADR-0008 D2)* | measured (`make dep-weight`) |
|
||||
| AM-4b | M-D2-DEP: third-party LOC, **what a contributor acquires** (`--workspace --edges normal,dev`) | as above | **≤ 745,000 lines** (CB-WP-0019; was 350,000 against a graph that measured 317,021 of the real 725,258) | measured (`make dep-weight`) — see §5c |
|
||||
| ~~AM-4c~~ | M-D2-DEP: own source per third-party 100k lines | — | **WITHDRAWN from the acceptance table 2026-08-01 (CB-WP-0006 T04)** — retained as a reported diagnostic in `make dep-weight`; see §5a | diagnostic |
|
||||
| AM-5 | M-D2-BLD: clean release build of headless workspace | n/a (npm install ~seconds; not comparable) | ≤ 60 s on bnt-lap001, recorded not gated | measured |
|
||||
| AM-6 | M-D3-THR: applied events/s, synthetic workload, same machine | boardgame.io ~1,100–1,900 moves/s (best config, degrading) | **≥ 100,000/s** (stipulated target, ADR-0002) | measured |
|
||||
|
|
@ -257,6 +257,41 @@ Comparisons against the event-sourcing 10⁵–10⁶/s estimate stay **parity**
|
|||
until a local Rust comparator is measured (open follow-up from the
|
||||
adversarial review).
|
||||
|
||||
### 5c. What each AM-4 budget asks, and why they differ
|
||||
|
||||
*(CB-WP-0019 T01/T02, 2026-08-03. Tier M.)*
|
||||
|
||||
The two budgets had the **same scope** — one package, no dev edges — while
|
||||
claiming to bound different things. That left AM-4b blind to **28 crates
|
||||
and 408,237 lines**, more source than its own target, and it is how
|
||||
`quick-js` entered in CB-WP-0014 without moving the number that governs
|
||||
dependencies (ADR-0009 withdrew its own cost argument over it).
|
||||
|
||||
| | the question it asks | scope | proc-macros |
|
||||
|---|---|---|---|
|
||||
| **AM-4a** | what does a game **ship**? | `-p games-ground --no-default-features` | **excluded** |
|
||||
| **AM-4b** | what does a contributor **acquire**? | `--workspace --edges normal,dev` | **counted** |
|
||||
|
||||
**The proc-macro treatments are opposite on purpose.** AM-4a excludes them
|
||||
because they run in the compiler and never reach a shipped binary —
|
||||
counting them in *"what a game ships"* was simply false. AM-4b counts
|
||||
them, because ADR-0007 D3's acquisition rule counts what the build causes
|
||||
to be **fetched**, and a proc-macro is fetched, compiled and unaudited on
|
||||
a contributor's machine like anything else. *"It does not ship"* is no
|
||||
answer to *"we downloaded it"*.
|
||||
|
||||
**When the two rules disagree, the question each budget asks decides.**
|
||||
That is the rule ADR-0008 D2 left open, and it is why that decision
|
||||
refused to reuse AM-4a's measured 36.2% share for AM-4b: the real share is
|
||||
**15.1%** (109,585 lines), so borrowing would have been wrong by more than
|
||||
a factor of two.
|
||||
|
||||
**The target moved to fit the measurement, never the reverse.** 745,000
|
||||
keeps ~2.7% of room on ADR-0008 D3's reasoning that ~1.5% fails on a
|
||||
dependency's patch release — the same margin AM-4a received, applied to a
|
||||
number that grew because the instrument was repaired rather than because
|
||||
anything was added.
|
||||
|
||||
### 5b. Where AM-8's ten runs live, and why not everywhere
|
||||
|
||||
*(CB-WP-0015 T02, 2026-08-02. Tier S. The spec value N=10 is **not**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue