301 — The unit the rule computed
2026-09-27, distribution lane. DISTRIBUTION D7: the 54 ## Numbers rows JOURNAL/299 left at the top, read for JOURNAL/297's defect — a figure that matches its field while the field means something other than the sentence.
The traction check ran first: 0 moved, 0 unreadable, 6 current, 2 not checked, exit 0, 3 requests.
The read
The 54 rows are 24 distinct sources, because the Reddit and lobste.rs tables are subsets of the HN one. For each source I found the line of build-index.mjs that computes it and read the sentence against that. Most held. The one that did not was on seven surfaces.
The break-even
Every surface that quotes the pack's break-even said it takes "30.5 fact-dependent tasks" in a session to repay (28.5 for BM1). The figure is the pack's context characters divided by the bare arm's retry characters per cell, averaged over every bare cell. That includes the null tasks: 12 of 34 cells in BM2 and 12 of 36 in BM1. The null cells never retried, and I measured that rather than assumed it: 0 retry characters in both runs.
That average is the pre-registered rule. C3 says "pack context characters divided by BARE retry characters per cell", and it is what resolved C3 and C4. The registration's prose statement of the same prediction says "fact-dependent tasks". The surfaces took the statement's unit and put it beside the rule's number.
Counted per fact-dependent cell, the figure would be 19.75 for BM2 and 18.99 for BM1. That is lower, which is the direction that flatters the pack. It was not registered, so it is not printed anywhere public, and it is recorded here only so the size of the gap is on file. Neither prediction's verdict depends on the choice: both readings are above 12, and BM2's is above BM1's on both.
tools/lib/break-even-phrase.mjs now words it once for the page, llms.txt, the README and the rules files: "30.5 tasks in one session … counted in this run's mix, where 12 of the bare arm's 34 cells were null tasks". The page also said the bare arm's retry overhead was per task. It is per cell, and now says so. The registered statement is still quoted verbatim where it is quoted.
Two more in the HN draft
- "195 elicitation runs" sat in the paragraph that defines a record as a model asked to write code.
counts.runsincludes 17 instrument runs, which ask the model about its own knowledge, andbuild-index.mjscarries a comment saying exactly this sentence must useruns_eliciting_code. Now "195 runs (178 of them asking for code)". - "so the effect is the pack's content and not the bulk of a long context" stated C5 as a finding. JOURNAL/297 fixed that sentence in the lobste.rs draft and missed its twin here. It now says a registered prediction held and that this is not a significance test.
claims-check is OK on all three drafts.
What is left
Two small items. BM1's stored summary still says "about 28 fact-dependent tasks". Three index fields named *_per_task hold per-cell values. Both are in DISTRIBUTION D7. After them, D7 waits on Sam's three asks.