# CB-5b fold: the five ★ arms on the 96 GB card at 300 W, read after the window's restore

**Written:** 2026-10-02, 09:37Z → 10:05Z (UTC, `date -u` on the laptop), by the CB-5b fold lane of the cost-of-intelligence series, under an operator's D-20261001-039, D-20261001-040 and D-20261002-003; the window's record is ledger D-20261002-013. **Read-only:** no repo, unit, cap, seat or file on any box was changed; nothing was re-run, committed, pushed or posted. This lane wrote only into `~/bench-archive/coi-cb5b-2026-10-02/fold/` (and a session scratch folder, §9). **What it folds:** CB-5b, opened by the desktop's root timer at 2026-10-02T08:00:07Z (`rtx-pro-6000-reading-0/PASTES-CB5B-2026-10-02.md`; PREREG-S0 A-24). **Read with:** the series' own `v2score.score_pass()` (the frozen `parse_v2.py`, sha `689254c5…`, its 48-case selftest run at import) and the kit's own `analyse.py` (sha `b689832f…`), both from estate origin/master `7ae18596`, on copies of the rows (§9).

**What this is, for a reader who scrolled straight here.** This page reads the second overnight cost-of-intelligence window on the desktop's 96 GB card (the desktop's larger card, the NVIDIA RTX PRO 6000 Blackwell Workstation Edition), capped at 300 W. It counts, for each model, how many six-way questions (`c`, 108 items) and doorman questions (`d`, 48 items) it answered correctly under parser v2's strict rule, how many joules the card drew per correct answer, and why the guard stopped the last arm. The window ran from **2026-10-02T08:00:07Z** (opened) to **08:19:34Z** (the guard's stop), and the restore read RESTORED at **08:22:13Z**. CB-5, the first window (2026-09-28, 08:00:07Z → RESTORED 08:42:06Z), read 8 of its 13 arms before its guard tripped on a dead door reader; CB-5b read 4 of the 5 arms CB-5 left, whole, and its guard tripped on the fifth for a different reason: the live seat on the same card slowed past the registered line.

---

## §0 · One screen

**Four arms read whole, the fifth was stopped by the guard, and the desktop restored itself.** The window opened at 08:00:07Z. phi4, qwen3-30b-a3b-2507, qwen3.6-27b and gemma2-27b ran whole (rc 0, DONE) by 08:15:29Z. The deepseek-r1 32B think-on arm started at 08:15:29Z, and the guard stopped it at 08:19:34Z on rule **I-1**. The dead-man put the desktop's larger card back to 420 W and started the docent seat: RESTORED at 08:22:13Z, `/health` 200 after 154 s. The 09:31:00Z watcher read RESTORED (severity none). Nothing is owed on the desktop.

| ★ half | Arm | Verdict | v2 strict, `c` (of 108) | v2 strict, `d` (of 48) | Board J per correct, gross, `c` | Decode tok/s (probe) |
|---|---|---|---:|---:|---:|---:|
| 2024H2 | `st-phi4-14b-cd` | DONE, rc 0 | 82 (75.9 %) | 0 (format failures on 48) | 108.0 | 114.6 |
| 2025H2 | `st-qwen3-30b-a3b-2507-cd` | DONE, rc 0 | 71 (65.7 %) | 8 (16.7 %; 40 `json_verdict`) | 101.8 | 245.6 |
| 2026H1 | `st-qwen3.6-27b-cd` | DONE, rc 0 | 95 (88.0 %) | 33 (68.8 %) | 209.8 | 62.0 |
| 2024H1 | `st-gemma2-27b-cd` (the ruled re-read) | DONE, rc 0 | 72 (66.7 %) | 41 (85.4 %) | 200.5 | 61.8 |
| 2025H1 | `st-deepseek-r1-32b-on-c` (think on) | STOPPED by I-1 | 0 of the 8 items read (counts only) | not on its line (`c` only) | void (A-17 (4)) | not measured (no probes registered) |

- **The gates held on every whole task.** Each of the 8 tasks held its 300 W cap (A-17 (5): 38 to 149 one-second samples each, all 300.00 W, plus the task-end read). `voided_by_gate` is null on all 8, and no `*.VOID.json` exists. Every pass is complete with its registered fingerprint, 0 instrument artefacts, 0 template-suspect and 0 failed. So each prints a rate. Each arm loaded whole on the desktop's larger card, with 0 MiB on the second board.
- **gemma2's re-read reproduces CB-5's run byte for byte** (A-24 (2)). All 156 replies (108 `c`, 48 `d`) are byte-identical, with 0 discordant items (exact McNemar p = 1.000). The row of record is CB-5b's, task by task, and its energy enters from CB-5b's whole run. CB-5's rows stay as a same-posture repeat; their energy stays void.
- **Two doorman rows are format verdicts, not capability readings.** All 48 of phi4's doorman replies are format failures, 44 of them a fenced JSON object cut off by the 8-token answer budget, so it scores 0 strict on `d`. qwen3-30b answers 40 of 48 doorman items in the doorman's native JSON contract, which is a format failure on this letter recast. Both read the same way on the reference 3090 and the laptop (§2).
- **Why I-1 tripped.** Two estate-watch canaries landed while a think-on item was in flight, and both were over the 805 ms line: **1,100.8 ms** (08:16:55Z) and **920.0 ms** (08:19:25Z). The second came 150 s after the first, inside the rule's 10 minutes. The registered BEFORE median is 218.1 ms. The 10 canaries that landed during the four think-off arms' items peaked at 529.5 ms. During the think-on arm, the two canaries with no item in flight (204.8 ms before its first item, 197.5 ms in the guard's pause) were normal.
- **Yes, the think-on arm contended with the live seat on the same card.** Its items ran back to back for 8 to 42 s each. They held the desktop's larger card at its cap: median draw 299.9 W, 67 % of the task's 214 samples at or over 295 W, and an SM clock median of 1,117 MHz. On the four think-off arms' tasks, the median draw was 124 to 182 W, and the clock medians were 2,610 to 2,835 MHz. The seat's canary, a short generate on the ollama seat on the same card, took 4.2 to 5.0 times its registered median. The door reader saw nothing: 305 cycles, rc 0 on all, 0 failed rows, and no the desktop door row from 07:55Z until 08:22:20Z. The stop was the guard protecting a live seat, as registered.
- **What deepseek read before the stop.** It wrote 8 rows (kit order 0–7) of `c`'s 108. The 9th item was in flight for 5.85 s and left no row, so no task completed. Under v2 the 8 rows are 0 strict: 7 are `late_letter` (the reply explains first and states its letter last) and 1 is `budget_exhausted` (2,048 tokens of thinking, empty reply). Lenient is 6, printed beside and never in a ratio. The reference 3090's whole think-on row reads 1/108 strict, and it matches these 8 items' class and lenient choice on all 8.
- **A re-run needs more than its own night.** Under shape S, with I-1 as registered, it would trip again within minutes: the items run back to back, the card sits at its cap, and a canary comes every 60 to 75 s. A lower think budget does not remove that, and it would change the registered cell. What would let it finish is the ollama seat off the desktop's larger card for about 45 minutes. That is an operator's call because it is a 24/7 seat, and it needs kit work first, because today's root scripts stop and restore only the docent (or else the heavier full shape). Otherwise, the desktop's larger card's 2025H1 think-on cell can be recorded as NOT RUN with this fold as its receipt; the same row stands whole on the 3090 (reading 0) and the laptop (CB-7, its fold pending). §6.4 has the options and the rec.
- **Owed** (§8): the series PR before any of these 0.1 rows enters `series.jsonl` (T-12); an operator's word on the deepseek cell; three small kit notes (the blank time in `WINDOW-DONE`, the pre-load idle spread under "net of the seats' idle", and the guard's recovery watch, NOT-JUDGED in both windows).

---

## §1 · What ran, arm by arm

The sources are each arm's `arm.json` (deepseek's `preflight.json`, since it wrote no `arm.json`), its verdict files, the driver's `ARM …` lines in `window-run/current.log`, and `cb5b-fold-tables.json` (§9). The order is `window/arms-cb5b.txt` (sha `f4b53739…`, equal to A-24 (1); the bench ran its read-only copy `.arms-snapshot`, same sha).

| # | Arm | Pin | Started (UTC) | Ended (UTC) | Rc | Verdict | Whole | Growth on the desktop's larger card (MiB) | On the second board (MiB) | Cap held, `c` (1 Hz samples) | Cap held, `d` (1 Hz samples) | `voided_by_gate`, `c` | `voided_by_gate`, `d` |
|---:|---|---|---|---|---:|---|---|---:|---:|---|---|---|---|
| 1 | `st-phi4-14b-cd` | `ac896e5b8b34` | 08:00:19 | 08:03:03 | 0 | DONE | True | 9,912 | 0 | True (62) | True (38) | None | None |
| 2 | `st-qwen3-30b-a3b-2507-cd` | `19e422b02313` | 08:03:03 | 08:05:56 | 0 | DONE | True | 18,630 | 0 | True (70) | True (39) | None | None |
| 3 | `st-qwen3.6-27b-cd` | `3a40c32f1450` | 08:05:56 | 08:11:31 | 0 | DONE | True | 17,234 | 0 | True (149) | True (92) | None | None |
| 4 | `st-gemma2-27b-cd` | `cfd95e5696e9` | 08:11:31 | 08:15:29 | 0 | DONE: the ruled re-read (`COI_WINDOW_REREAD`) | True | 18,224 | 0 | True (100) | True (59) | None | None |
| 5 | `st-deepseek-r1-32b-on-c` | `edba8017331d` | 08:15:29 | 08:19:34 (stopped) | No rc line | STOPPED: `STOPPED.json` `"stopped": "guard-task-c"` | True | 21,590 | 0 | No gate verdict: the task never ended. The 1 Hz trace read 300.00 W on all 214 samples up to the stop | Not on the arm's line (`c` only) | No `arm.json` | — |

- **The rc of the fifth arm.** The driver never printed an `ARM st-deepseek-r1-32b-on-c rc=` line. The guard stopped the bench, then the dead-man's restore stopped the driver, so the window log's last line for the arm is its `start` line. `coilargecard.py` recorded the stop itself: its `run.log` shows `stop_with(out, "stopped", "guard-task-" + t, str(exc), 6)`, which wrote `STOPPED.json` (stamp 08:19:34Z), before the SIGTERM at 08:19:39Z. That is A-17 (4)'s STOPPED, never FAILED.
- **gemma2's earlier run** (CB-5, `started` 2026-09-28T08:35:40Z, `STOPPED` `guard-probes`) was moved at 08:11:31Z to `rows-superseded/st-gemma2-27b-cd.20261002T081131Z/` by the rows key: moved, never deleted (`current.log`: `SUPERSEDED rows/st-gemma2-27b-cd (the same arm at the same 300 W)`).
- **Minutes against the plan's estimates** (`PASTES-CB5B-2026-10-02.md`): phi4 2 m 44 s (est. 3–4); qwen3-30b 2 m 53 s (≈ 3); qwen3.6 5 m 35 s (≈ 4); gemma2 3 m 58 s (4–5; CB-5's stopped run took 3 m 48 s); deepseek 4 m 5 s to the stop (est. 25–36).
- **No arm was REFUSED or FAILED.** There is no `REFUSED.json` or `FAILED.json`, and no task was cut except deepseek's `c`.

## §2 · Accuracy under parser v2 (strict is the headline; lenient and v1 beside, never in a ratio)

The source is `series/v2score.score_pass()` on each row file. Strict = class `clean` or `letter+name` and the strict choice equals the label (PREREG-S0 §3.2). Wilson 95 % is `series/stats.wilson()` (§4.1). B-chance is §5's test on `c`: strict above 24.0 % and the Wilson lower bound above 16.7 %. Balanced accuracy on `d` is §4.3's form, with its per-class counts beside it. The last column is `analyse.py`'s lane-parser strict count, which equals v2's on all 8 complete tasks.

| Arm | Task | V2 strict correct / n | V2 strict (%) | Wilson 95 % (%) | Rate status | Lenient | V1 | Format failures (classes) | B-chance (`c`) · balanced accuracy (`d`) | Lane-parser strict (analyse.py) |
|---|---|---:|---:|---|---|---:|---:|---|---|---:|
| `st-phi4-14b-cd` | `c` | 82 / 108 | 75.9 | 67.1–83.0 | `rate` | 83 | 84 | 5 (`name_only` 2, `unparsed` 3) | Clears | 82 |
| `st-phi4-14b-cd` | `d` | 0 / 48 | 0.0 | 0.0–7.4 | `rate` | 12 | 12 | 48 (`name_only` 47, `word_letter` 1) | 0.0 % (admit 0 of 12, refuse 0 of 36) | 0 |
| `st-qwen3-30b-a3b-2507-cd` | `c` | 71 / 108 | 65.7 | 56.4–74.0 | `rate` | 71 | 71 | 0 | Clears | 71 |
| `st-qwen3-30b-a3b-2507-cd` | `d` | 8 / 48 | 16.7 | 8.7–29.6 | `rate` | 37 | 20 | 40 (`json_verdict` 40) | 11.1 % (admit 0 of 12, refuse 8 of 36) | 8 |
| `st-qwen3.6-27b-cd` | `c` | 95 / 108 | 88.0 | 80.5–92.8 | `rate` | 95 | 95 | 0 | Clears | 95 |
| `st-qwen3.6-27b-cd` | `d` | 33 / 48 | 68.8 | 54.7–80.1 | `rate` | 34 | 34 | 1 (`json_verdict` 1) | 76.4 % (admit 11 of 12, refuse 22 of 36) | 33 |
| `st-gemma2-27b-cd` | `c` | 72 / 108 | 66.7 | 57.3–74.8 | `rate` | 72 | 72 | 0 | Clears | 72 |
| `st-gemma2-27b-cd` | `d` | 41 / 48 | 85.4 | 72.8–92.8 | `rate` | 41 | 41 | 1 (`json_verdict` 1) | 90.3 % (admit 12 of 12, refuse 29 of 36) | 41 |
| `st-deepseek-r1-32b-on-c` | `c` | 0 of 8 read | Counts only | None | `counts only: 8 of 108 items, kit order 0–7` (§4.1) | 6 | 2 | 8 (`late_letter` 7, `budget_exhausted` 1) | None (no rate) | None (`analyse.py` lists the arm `absent`: no `arm.json`) |

Every complete pass above carries the registered set fingerprint (`c` `1feac3433cb4217b`, `d` `617abd299260cee0`), with 0 missing, 0 stray and 0 duplicate rows.

**What the two format-dominated doorman rows are, read from the replies.**
- **phi4, `d`.** 44 of 48 replies are the same truncated string, `` ```json⏎{⏎  "pass": ``: a fenced JSON object cut off by the 8-token answer budget, with no boolean. v2's rule 2 needs a boolean `"pass"`, so it does not apply. Rule 4 then reads the word `pass` as a registered name of the admit option (`SETS`: admit = admit, admitted, hears the line, pass), so the class is `name_only`. Three more replies open "To determine whether the line should be admitted", which also reads as admit. So all 47 `name_only` replies read as admit, and lenient counts the 12 admit items among them: an artefact of the alias, not a capability reading. The 48th reply is `word_letter`.
- **qwen3-30b-a3b-2507, `d`.** 40 replies are the doorman's native JSON verdict (`{"pass": true, "class":` 23 times, `{"pass": false, …` 17 times), which is a `json_verdict` format failure on this letter recast (§1.1: `d48` is the letter set; only `doorman36-json` scores the native contract, and it was not run). Its 8 strict correct are its 8 `[B] refuse: …` replies.

**For context only, never a ratio: the same digests on the other two local cards** (reading 0's rows on the reference 3090 at 300 W and on the laptop; joined item by item on `prompt_sha256`; the agreement is the known cross-card greedy drift, not a test).

| Arm (the desktop's larger card) | Task | The desktop's larger card v2 strict | 3090 v2 strict | Same strict choice, the desktop's larger card · 3090 | Laptop v2 strict | Same strict choice, the desktop's larger card · laptop |
|---|---|---:|---:|---:|---:|---:|
| phi4 | `c` | 82 | 82 | 105 of 108 | 83 | 105 of 108 |
| phi4 | `d` | 0 | 0 | 48 of 48 | 0 | 48 of 48 |
| qwen3-30b-a3b-2507 | `c` | 71 | 69 | 104 of 108 | 70 | 104 of 108 |
| qwen3-30b-a3b-2507 | `d` | 8 | 9 | 41 of 48 | 6 | 44 of 48 |
| qwen3.6-27b | `c` | 95 | 96 | 106 of 108 | 95 | 108 of 108 |
| qwen3.6-27b | `d` | 33 | 31 | 44 of 48 | 32 | 43 of 48 |
| gemma2-27b | `c` | 72 | 73 | 107 of 108 | No reading-0 row (the 09-23 DNS outage); CB-7's row is pre-fold | — |
| gemma2-27b | `d` | 41 | 40 | 47 of 48 | The same | — |

The 3090 and laptop strict counts equal `series/series.csv`'s `strict_correct` for those 14 rows, which checks this fold's scoring path against the series' own build.

**Where these rows belong.** All five arms are **reading 0.1** cells (A-24 (5); the ★ rows are on no reading-0 list). No CB-5b row enters `series.jsonl` before the `cells.py` follow-up lands (A-17 (8), A-24 (5); the gap sweep's T-12). This fold writes its own tables only. A row measured after 2026-10-14T00:00Z belongs to reading 1.

## §3 · gemma2: CB-5b's re-read against CB-5's superseded run (A-24 (2))

The same digest (`cfd95e5696e9`), card, cap (300 W), shape S, runtime (ollama 0.32.13) and OS (Ubuntu 26.04 LTS, kernel 7.0.0-31-generic), four days apart. Items are joined on `prompt_sha256` (rule 1.1-b). "Byte-identical" compares the sha256 of the visible reply.

| Task | Items joined | CB-5 v2 strict (09-28) | CB-5b v2 strict (10-02) | Same strict choice | Same format class | Byte-identical replies | Both right | Both wrong | CB-5 only right | CB-5b only right | Exact McNemar p |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| `c` | 108 | 72 | 72 | 108 | 108 | 108 | 72 | 36 | 0 | 0 | 1.000 |
| `d` | 48 | 41 | 41 | 48 | 48 | 48 | 41 | 7 | 0 | 0 | 1.000 |

- **The row of record, by A-24 (2)'s words.** "The row of record for the cell is the re-read's, task by task, for each task it completes with its cap held." The re-read completed `c` and `d` with the cap held (100 and 59 samples), so the row of record is CB-5b's `c` and CB-5b's `d`. "The cell's energy enters a figure only from a re-read that runs whole (DONE, rc 0)." It did, so gemma2's energy and probe figures are CB-5b's (§4). CB-5's accuracy rows stay as a same-posture repeat, and they agree on every item. CB-5's energy and probes stay void and are not printed here.
- **What the agreement shows.** At temperature 0, on the same card, cap, runtime and digest, the replies did not move by one byte across a four-day gap and different co-tenant traffic (CB-5's `c` had 5 collided items, CB-5b's 0). That is one repeat on one model, not a general determinism result (§7).

## §4 · Energy and speed, as `analyse.py` prints them

The board is the desktop's larger card by UUID at 300 W. J per correct divides by the strict count, the lane parser's, which equals v2's on every task here (§2). The session is `20261002T080012Z-window`, with its own `state/` (copied by `window.sh`'s EXIT trap at 08:19:39Z, §8). `analyse.py` read the desktop's own journals for the collision join and the canary (§9). The tool's own table is in the appendix, verbatim.

| Arm | Task | Board J per correct, gross | Net of the seats' idle | Compute-phase | Box-delta J per correct | Board J per item, gross | Task board J (s; mean W) | Median s per item (p95) | Collided items | Items reached |
|---|---|---:|---:|---:|---:|---:|---|---|---:|---:|
| `st-phi4-14b-cd` | `c` | 108.0 | 66.5 | 20.7 | 52.8 | 82.0 | 8,857.6 (50.0 s; 177.1 W) | 0.468 (0.506) | 7 | 108 |
| `st-phi4-14b-cd` | `d` | No correct answer | No correct answer | No correct answer | No correct answer | 99.0 | 4,750.3 (26.0 s; 182.6 W) | 0.557 (0.577) | 0 | 48 |
| `st-qwen3-30b-a3b-2507-cd` | `c` | 101.8 | 83.8 | 12.1 | 44.8 | 66.9 | 7,225.4 (58.0 s; 124.5 W) | 0.544 (0.584) | 0 | 108 |
| `st-qwen3-30b-a3b-2507-cd` | `d` | 447.4 | 373.0 | 65.5 | 306.0 | 74.6 | 3,579.0 (27.0 s; 132.5 W) | 0.588 (0.616) | 0 | 48 |
| `st-qwen3.6-27b-cd` | `c` | 209.8 | 91.8 | 37.2 | 125.0 | 184.5 | 19,928.9 (137.0 s; 145.4 W) | 1.282 (1.352) | 0 | 108 |
| `st-qwen3.6-27b-cd` | `d` | 355.1 | 156.7 | 81.6 | 158.2 | 244.1 | 11,719.0 (80.0 s; 146.4 W) | 1.684 (1.765) | 0 | 48 |
| `st-gemma2-27b-cd` | `c` | 200.5 | 109.4 | 39.8 | 106.3 | 133.7 | 14,438.7 (88.0 s; 164.0 W) | 0.822 (0.887) | 0 | 108 |
| `st-gemma2-27b-cd` | `d` | 187.0 | 101.6 | 44.0 | 59.7 | 159.7 | 7,667.6 (47.0 s; 163.1 W) | 0.983 (1.046) | 0 | 48 |
| `st-deepseek-r1-32b-on-c` | `c` | Void: STOPPED (A-17 (4)) | Void | Void | Void | Void | Not computed (`analyse.py`: `absent`, no `arm.json`) | None | None | 8 of 108 |

| Arm | Decode (tok/s, probe median) | Prefill (tok/s, probe median) | TTFT (s, median; p95) | J per 1k decode tokens (probe, board gross) | J per 1k prefill tokens (probe, board gross) | Median load (ms) |
|---|---:|---:|---|---:|---:|---:|
| `st-phi4-14b-cd` | 114.6 | 5,545 | 0.435; 0.456 | 2,646.2 | 99.3 | 328 |
| `st-qwen3-30b-a3b-2507-cd` | 245.6 | 8,786 | 0.510; 0.525 | 1,326.5 | 75.3 | 439 |
| `st-qwen3.6-27b-cd` | 62.0 | 2,161 | 1.622; 1.680 | 5,454.4 | 203.1 | 803 |
| `st-gemma2-27b-cd` | 61.8 | 1,820 | 0.786; 0.991 | 5,159.9 | 223.1 | 533 |
| `st-deepseek-r1-32b-on-c` | Not measured: the arm registers no probes, and its energy is void | — | — | — | — | — |

**Read these with five caveats, each from the files:**
- **"Net of the seats' idle" carries the pre-load baseline's spread.** It subtracts a 15 s pre-load board mean (`arm.json` `idle_preload.board`): 68.1 W (phi4), **22.0 W** (qwen3-30b), 81.8 W (qwen3.6) and 74.5 W (gemma2). Inside those 15 s windows the desktop's larger card's draw steps between about 19 W and 91 W (`idle-preload.board.csv`; the desktop's larger card's 21,334 MiB, the seats resident), so qwen3-30b's net subtracts much less than the others'. CB-5's arms show the same spread, 27.2 W to 89.8 W (their `arm.json` files), so this is a property of the instrument, not of tonight. Gross and compute-phase do not use the baseline. This fold prints the net as `analyse.py` does and corrects nothing (§8 item 3).
- **The box delta is coarse at these task lengths**, as in CB-5 (CB5-FOLD §5). Its pre-load baseline is one 13 s read of the CP2000 (integer watts, about 14 s between changes): 247.0, 210.3, 184.0 and 222.0 W across the four arms. It reads below the board's own net on 5 of the 7 tasks with a figure. It is the kit's labelled instrument ("includes the second board and the host"), never a wall figure.
- **Two J-per-correct cells divide by few answers.** phi4's `d` has no correct answer, so it has no J per correct (the tool prints —). qwen3-30b's `d` divides by 8 correct answers, because its 40 JSON replies count wrong, so it reads high. B-chance is registered for `c` only; the same caution as §7.2's "$ per correct prints only for rows that clear B-chance" applies.
- **Collisions never void accuracy** (temperature 0). phi4's `c` has 7 items that overlapped a real chat request on the ollama seat (08:01:34.73Z → 08:01:36.89Z, 2,152.9 ms, from the public host). The docent was down by ruling, and the reranker logged no request in the window.
- **No ratio and no dollar.** No figure here is divided by another card's (the ratio rule; PREREG-S0 §7.1's 2× rule and R-6). The desktop's larger card is a 96 GB workstation card, so it gets energy only and no `$` field (P-6).

## §5 · The posture, the OS and the instrument

| Read | Value | Source |
|---|---|---|
| The cap on every arm | `300.00 W enforced (a ruled rung)`; `params.cap_w` 300.0; enforced limit 300.00 W before and after each of the four whole arms | `arm.json` `posture_verdict`, `params`, `posture_before.card`, `postflight.posture_after.card`; deepseek's `preflight.json` |
| The cap at the open and the restore | Set from 420.00 W to 300.00 W by `open.sh` after the dead-man armed (08:00:09Z); read back at 08:00:11Z as `the desktop's larger card cap 300.00 W enforced (was 420.00)`; set back to 420.00 W by the restore (`cap_w_after` 420.00, `cap_restored` true) | `window-run/open-at.log`; `RESTORE-RECEIPT.json` |
| Whole on the desktop's larger card | Every arm `whole=True`, `split` false, `/api/ps` size equal to `size_vram`; growth 9,912 to 21,590 MiB | `arm.json` / `preflight.json` `pin`; the driver's `PIN OK` lines |
| The second board (the desktop's 3090 Ti, NVIDIA GeForce RTX 3090 Ti) | Bench memory on it **0 MiB on all 1,551 guard samples** (08:00:12Z → 08:19:34Z); its own memory 18,099 MiB on every sample (its seat resident); `pin.bench_on_second_mib` 0.0 on every arm. The window's root scripts set only the desktop's larger card's limit (`open.sh:125`, `restore.sh:153`, `-i $LARGER-CARD`). The kit does not record the second board's limit in window mode (`posture_second_before` is written in full mode only) | `state-live/guard-card.jsonl`; `arm.json`; `open.sh`, `restore.sh` |
| The shape | Shape S: only `docent-vllm.service` stopped (inactive from the open to the restore); the ollama seat (gemma4:26b and nomic), the reranker and ComfyUI stayed on the desktop's larger card | `open-at.log` pre-flight tenants; `RESTORE-RECEIPT.json` `docent_state_before` and `residents` |
| The OS | Ubuntu 26.04 LTS, kernel 7.0.0-31-generic, x86_64, on every arm (deepseek's in its `STOPPED.json` and `preflight.json`); NVIDIA driver 595.84 | `arm.json` `os`; `posture_before.card.driver_version` |
| The runtime | ollama 0.32.13 (the bench's pinned runtime; `mode` window; `rehearsal` false) | `arm.json`; `session.log` |
| The instrument | `coilargecard.py` `19c403e4…`, `guard.py` `b3a1ebb6…`, `desktop_rules.py` `392725e8…`, `bench_arms.sh` `eb2440e3…` and `hostos.py` `a6a74bba…`, equal to A-24 (4) on all five arms. The staged `window.sh` `8e81268d…`, `preflight.sh` `516a6064…`, `window_arms.py` `4fee62d2…`, `params.conf` `a836c2d2…` and `arms-cb5b.txt` `f4b53739…` equal A-24's pins; the root scripts read their pins at the open | `arm.json` / `preflight.json` `instrument`; `sha256sum` of `window-run/`; `open-at.log` |
| the desktop's larger card during the window | Free at least 54,301 MiB; bench at most 21,610 MiB; at most 60 °C | `analyse.py` interference line; `guard-card.jsonl` |
| The UPS | Window-mean load 24.9 % over 1,168 rows at 1 Hz (budget 50 %, never a stop); peak 44 %; minimum `battery.runtime` 575 s at 08:18:17Z; 0 rows under 300 s; 0 I-6 stops | `state-live/GUARD-END.json` |

## §6 · deepseek-r1 32B, think on: what was read, why the guard stopped it, and what a re-run would need

### 6.1 What was read before the stop

The arm started at 08:15:29Z with think on, a budget of 2,048 tokens, `num_ctx` 8,192 and task `c` only (the fifth arm line of `arms-cb5b.txt`, A-17 (2)'s line byte for byte). It loaded whole: `PIN OK bench growth 21590 MiB on the desktop's larger card, 0 on the second board; whole=True (store 19.85 GB …)`, with a warm load of 10.2 s. Task `c`'s one-second trace began at 08:16:01.6Z, and its first item started at 08:16:11.7Z.

| Kit index | Item id | Label | V2 class | Lenient choice | Eval tokens | Thinking chars | Visible chars | Seconds | Server decode (tok/s) | `done_reason` |
|---:|---|---|---|---|---:|---:|---:|---:|---:|---|
| 0 | `c-darwin-01-dessert-01` | darwin | `late_letter` | darwin | 833 | 3,841 | 128 | 16.37 | 53.0 | stop |
| 1 | `c-darwin-01-dessert-01` | darwin | `late_letter` | darwin | 858 | 3,882 | 369 | 17.30 | 52.0 | stop |
| 2 | `c-darwin-01-dessert-01` | darwin | `budget_exhausted` | None | 2,048 | 9,272 | 0 | 42.13 | 49.7 | length |
| 3 | `c-darwin-01-dessert-02` | darwin | `late_letter` | darwin | 658 | 2,822 | 247 | 13.58 | 52.7 | stop |
| 4 | `c-darwin-01-dessert-03` | darwin | `late_letter` | darwin | 799 | 3,989 | 159 | 16.09 | 52.2 | stop |
| 5 | `c-darwin-01-dessert-03` | darwin | `late_letter` | darwin | 377 | 1,583 | 159 | 8.00 | 52.1 | stop |
| 6 | `c-darwin-01-main-01` | darwin | `late_letter` | darwin | 497 | 2,152 | 170 | 10.19 | 52.1 | stop |
| 7 | `c-darwin-01-main-02` | darwin | `late_letter` | ibn_sina | 1,243 | 6,007 | 283 | 25.13 | 50.8 | stop |
| 8 | in flight from 08:19:28.5Z, cut by the stop at 08:19:34Z (5.85 s); no row | — | — | — | — | — | — | — | — | — |

- **Items and rows.** 8 rows of 108 (kit order 0–7) and 1 item cut. **No task completed.** The arm's only task, `c`, was cut during item 9 of 108. The arm registers no `d` and no probes.
- **Scores, as counts only** (§4.1: a pass covering under 100 % of its set publishes counts, with the item range in kit order). v2 strict is 0 of 8. Seven replies explain first and state their letter last ("Answer: [A]" six times, "Answer: D" once), which is a `late_letter` format failure. One reply spent its 2,048 tokens thinking and returned an empty visible reply, which is `budget_exhausted` and wrong (§6 of PREREG-S0). Lenient is 6 of 8 and v1 is 2 of 8, both beside, never in a ratio.
- **Energy.** Void: "A guard stop voids that arm's energy, never its accuracy" (A-17 (4)). The arm has no `arm.json`, so `analyse.py` lists it as `absent` and computes nothing. The 50 to 53 tok/s above is the server's decode timing, used in §6.4 only to size a re-run. It is not a cell figure.
- **For context, never a ratio.** The reference 3090's whole think-on row (reading 0, `withheld-2026-10-14`, `t-deepseek-r1-32b-on`) reads **1/108 strict** (`late_letter` 104, `budget_exhausted` 3, `clean` 1), lenient 83. On these same 8 items it has the same v2 class and the same lenient choice on all 8, and 0 strict, though the visible text differs on 7 of 8. The laptop's whole think-on row from CB-7 (estate branch `bench/coi-cb7-laptop-0.1`, `483eeafb`, **not yet folded**, read here only for context) also reads 1/108 strict (`late_letter` 103, `budget_exhausted` 3, `clean` 2), lenient 86, and it matches these 8 items on class and lenient choice.

### 6.2 Why the guard tripped I-1

**The rule** (`guard.py`, sha `b3a1ebb6…`, A-17 (3); `GUARD.json` `thresholds.canary_slow_ms` 805.0). I-1 reads the estate-watch canary's own `[GIN]` line in the ollama seat's journal. The canary is a short `/api/generate` from the laptop to the ollama seat (:withheld-2026-10-14), which runs on the desktop's larger card. One canary over **805 ms** (2 × the registered BEFORE p95 of 402.5 ms), whose span overlaps a bench item in flight, writes `state/PAUSE`, and the driver waits before its next item. Two such canaries inside 600 s mean STOP. The registered BEFORE median is 218.1 ms (recon §1.3(d), 2,171 readings).

| Time (UTC) | What happened | Source |
|---|---|---|
| 08:15:29 | The deepseek arm starts (the four think-off arms are done) | `current.log` |
| 08:15:39.60 | Canary **204.8 ms**, no bench item in flight (during the arm's pre-load idle read, before its model loaded) | `guard-seat-posts.jsonl` |
| 08:16:11.7 | Item 0 starts; the items then run back to back | `state/items.jsonl` |
| 08:16:44.50 → 08:16:49.22 | A real chat request on the ollama seat from the public host takes 4,718.6 ms, with items 1 and 2 in flight (no token count is logged, so how much of it was contention is not known) | `guard-seat-posts.jsonl` |
| 08:16:54.57 → 08:16:55.67 | Canary **1,100.8 ms**, item 2 in flight (08:16:45.39 → 08:17:27.52, the 2,048-token item): slow canary 1 | `guard-slow-canaries.jsonl` |
| 08:17:04 | The guard: `PAUSE: canary 1100.8 ms over 805 ms with bench item(s) ['st-deepseek-r1-32b-on-c#2'] in flight` | the guard's journal on the desktop (read-only) |
| 08:17:27 | The driver: `PAUSED by the guard before the next item` | `rows/st-deepseek-r1-32b-on-c/run.log` |
| 08:18:09.57 | Canary **197.5 ms**, no bench item in flight | `guard-seat-posts.jsonl` |
| 08:18:14 · 08:18:15 | The guard: `PAUSE lifted: canary 197.5 ms`; the driver: `RESUMED … after 48 s` | the guard's journal; `run.log` |
| 08:18:17 | The UPS minimum `battery.runtime`, 575 s (0 low rows, never a stop) | `GUARD-END.json` |
| 08:19:24.57 → 08:19:25.49 | Canary **920.0 ms**, item 7 in flight (08:19:03.39 → 08:19:28.52, 1,243 tokens): slow canary 2, 150 s after the first | `guard-slow-canaries.jsonl` |
| 08:19:34 | `TRIP I-1 {"why": "two slow canaries with a bench item in flight inside 10 min", "at": ["2026-10-02T08:16:55Z", "2026-10-02T08:19:25Z"]}`; `STOPPED.json` `guard-task-c` | `TRIP.json`; the guard's journal |
| 08:19:35 | `STOP I-1 bench_gone=True in 0.628 s`; the bench unit inactive | `STOP-RECEIPT.json` |
| 08:19:39 | The restore begins ("the guard tripped: I-1 …"); `window.sh`'s EXIT trap copies `state/` into the session | `RESTORE-RECEIPT.json`; `state.copied-by-window.txt` |
| 08:19:40 | The guard's recovery watch: `NOT-JUDGED (the watch was stopped by a restore)` | `RECOVERY.json` |
| 08:22:13 | RESTORED: the desktop's larger card 420.00 W, docent `/health` 200 after 154 s, bench gone at 0 s | `RESTORE-RECEIPT.json` |
| 09:31:00 | The watcher reads RESTORED, severity none | `restore-watch.jsonl` |

**Every canary of the window, by what was in flight on the desktop's larger card when it landed** (the guard's `guard-seat-posts.jsonl` joined to the runner's `items.jsonl`, ±0.5 s, as the guard joins them):

| In flight | Canaries | Median (ms) | Max (ms) | Over 805 ms |
|---|---:|---:|---:|---:|
| No bench item | 6 | 204.3 | 263.0 | 0 |
| `st-phi4-14b-cd` | 2 | 322.6 | 394.4 | 0 |
| `st-qwen3-30b-a3b-2507-cd` | 1 | 213.9 | 213.9 | 0 |
| `st-qwen3.6-27b-cd` | 4 | 246.9 | 529.5 | 0 |
| `st-gemma2-27b-cd` | 3 | 249.4 | 322.8 | 0 |
| **`st-deepseek-r1-32b-on-c`** | **2** | **1,010.4** | **1,100.8** | **2** |

**The card under each arm's tasks** (each task's own 1 Hz `ext.csv`, the file the cap gate reads):

| Arm | Task | Samples | Draw, median (W) | Draw, max (W) | Samples at or over 295 W | SM clock, median (MHz) | Enforced limit on every sample |
|---|---|---:|---:|---:|---:|---:|---|
| `st-phi4-14b-cd` | `c` · `d` | 62 · 38 | 165.6 · 182.1 | 309.0 · 225.9 | 2 % · 0 % | 2,655 · 2,610 | 300.00 W |
| `st-qwen3-30b-a3b-2507-cd` | `c` · `d` | 70 · 39 | 124.1 · 129.8 | 169.3 · 144.7 | 0 % · 0 % | 2,614 · 2,610 | 300.00 W |
| `st-qwen3.6-27b-cd` | `c` · `d` | 149 · 92 | 150.1 · 154.4 | 198.2 · 181.2 | 0 % · 0 % | 2,797 · 2,835 | 300.00 W |
| `st-gemma2-27b-cd` | `c` · `d` | 100 · 59 | 156.1 · 161.0 | 223.8 · 199.1 | 0 % · 0 % | 2,722 · 2,835 | 300.00 W |
| **`st-deepseek-r1-32b-on-c`** | **`c` (to the stop)** | **214** | **299.9** | **316.1** | **67 %** | **1,117** | **300.00 W** |

At both slow canaries the guard's card samples read the desktop's larger card at 300 W and 93 to 100 % utilisation. During the think-on arm the co-tenants' memory on the desktop's larger card stayed at 20,809 to 21,367 MiB, the seats' resident set, so no render or other tenant loaded beside it (`guard-card.jsonl`: the desktop's larger card used minus the bench's own memory).

**The door reader** (the laptop's `i3_reader.py`, the fixed reader `732937389d18…`, #198; `i3-reader.jsonl`) ran 305 cycles from 07:55:00Z to 09:36:20Z, every 20 s (largest gap 20 s), with rc 0 on all of them: 0 failed rows, 0 expected-down, 0 unparsed and 0 replaced. It saw **no door row for a the desktop member from 07:55:00Z until 08:22:20Z** (7 rows then, after the restore). So I-3 never came near, and no failed the desktop request reached the door in the window. The stop came from the guard's own seat canary, not from the door. The reader also kept the desktop's heartbeat fresh, so the 09-28 failure (the reader dying on a UTF-8 cut) did not recur.

### 6.3 Did the think-on arm's long generations contend with the live seats on the same card?

**Yes, by the registered instrument and by the card's own trace.** Each think-on item decoded for 8 to 42 s (377 to 2,048 tokens). The items ran back to back: 154.6 s of item time in the 202.7 s from the first item to the stop, and the guard's pause was 48 s of the remainder. While an item ran, the desktop's larger card sat at its 300 W cap and its SM clock fell to a median of 1,117 MHz. The seat's canary, a short `/api/generate` on the ollama seat (which holds gemma4:26b and nomic on the same card), then took 920.0 and 1,100.8 ms: 4.2 and 5.0 times the registered median of 218.1 ms. Canaries that landed with no item in flight read 204.8 and 197.5 ms. The four think-off arms' items took a median of 0.49 to 1.31 s each (at most 1.94 s; `items.jsonl`), and their tasks drew a median of 124 to 182 W with clocks at 2,610 to 2,835 MHz. Their 10 in-flight canaries peaked at 529.5 ms.

This fold does not separate the two mechanisms: two processes time-sharing one card, and the card power-limited at 300 W. Both are in the trace, and neither was varied tonight. After the stop the seat recovered fully: `analyse.py`'s AFTER window (30 min after the last bench sample, n 26) reads a median of 216.0 ms and p95 of 393.1 ms, against BEFORE (the 60 min before the first bench load, n 54) at a median of 218.8 ms and p95 of 400.0 ms.

**The docent seat's downtime.** The research hub's assistant and the long table's four gemma roles were down from the open (`docent-vllm.service inactive` at 08:00:11Z) to RESTORED at 08:22:13Z, about 22 minutes against the 60 to 90 planned.

### 6.4 What a re-run would need

Each need below is read from the files above or from the rulings. The minutes are derived, not measured.

1. **Its own night and its own paper.** A-24 (3): "a later window needs its own arms file, named by its own amendment". The pastes page: an arm stopped mid-run "needs another the desktop night before 10-13, on an operator's word, with its own arms file and amendment". A-24 (5): a row measured after 2026-10-14T00:00Z is reading 1, not 0.1. A guard stop is "never a verdict, never a failure; the arm re-runs" (PREREG-S0 §6), and the ledger adds: "A stop is a FINDING: deepseek's arm is never re-run to a pass" (D-20261002-013).
2. **About 40 to 45 minutes of window for this one arm.** The arithmetic: 108 items × the 8 items' median of 16.2 s ≈ 29 min. Or the 3090's 78,981 eval tokens for the whole pass at the 49.7 to 53.0 tok/s the desktop's larger card decoded on these 8 items ≈ 25 to 26 min of decode. Then add the load (10 s warm), prefill, and any guard pauses.
3. **A change to the co-tenancy. This is the crux.** Under shape S the ollama seat shares the desktop's larger card. The items run back to back, the card sits at its cap during each one, and canaries arrive every 60 to 75 s. So with I-1 as registered, a canary lands mid-item, the guard pauses, the next canary lands mid-item, and the guard trips. That is expected within about 3 to 4 minutes of the first item, as tonight's 3 m 23 s did. This is derived from the rule and tonight's two in-flight readings, not re-measured. The options:
   - **(a) The seats moved: the ollama seat off the desktop's larger card for the slot.** This is the one option that removes the contention the guard measured. Its products refuse for about 45 minutes, and the Beat Lab's genie runs on that seat (`PASTES-CB5B-2026-10-02.md`), a 24/7 product, so it is an operator's call under the 24/7 law. It comes in two forms:
     - **(a1) A new shape that stops the ollama seat as well as the docent.** Today's root scripts stop and restore only the docent seat (`open.sh`, `restore.sh`), so this needs kit work first: the dead-man restoring both seats, its audit, new root-script pins in the paste, and an amendment.
     - **(a2) The existing full shape** (09-24's falcon window: every GPU seat on the desktop stopped by an operator's paste and brought back by `restore-full.sh`). It darkens more than this arm needs.
     
     Moving the seat to another card for the slot does not work here: the desktop's 3090 Ti holds its own seat at 18,099 of 24,564 MiB, so gemma4:26b does not fit beside it. Another box would be a failover move, outside this fold's scope.
   - **(b) A lower think budget.** It shortens each item but not its draw: the card still sits at its cap while it decodes, and the items still run back to back, so a canary still lands mid-item. It also changes the registered cell (budget 2,048, `num_ctx` 8,192; A-11, A-17 (2)) and breaks its pairing with the 3090's and the laptop's rows. **Not a fix.**
   - **(c) A different cap for the arm.** Unmeasured: tonight did not vary the cap. It is a posture change against D-20260927-008's 300 W for the whole window, so it needs an operator's word and an amendment, and the row would no longer be a 300 W row.
   - **(d) A relaxed I-1.** It would knowingly accept a seat canary 4 to 5 times slower on a live 24/7 seat for about 30 minutes. That takes a ruling and an amendment. **This fold does not recommend it.**
4. **What a whole re-read would add.** The two whole think-on rows on the other cards read 1/108 strict. The desktop's larger card's first 8 items agree with both, item by item, on class and lenient choice. If the desktop's larger card's whole pass followed them, its strict count would sit far below B-chance, and its J per correct would divide by about one answer: uninformative (§7.2's caution). The desktop's larger card's cell would add the 96 GB card's think-on speed and J per token, not a capability reading. This is a conditional, not a prediction of record.

**Rec (the lead's and an operator's call).** Do not re-run the arm under shape S. Either (i) give it its own night with the ollama seat off the desktop's larger card for about 45 minutes, which is an operator's 24/7 call and needs kit work first (a1) or the full shape (a2), or (ii) record the desktop's larger card's 2025H1 think-on cell as **NOT RUN (guard I-1, 2026-10-02T08:19:34Z; this fold as its receipt)**, and let the 2025H1 ★ think-on row stand whole on the reference 3090 (reading 0) and on the laptop (CB-7, once its fold lands). Rec (ii), unless an operator wants the 96 GB card's think-on speed figure enough to darken that seat for a night slot.

## §7 · What this fold does not claim

- **No ratio.** THE RATIO comes from `series.jsonl` only (PREREG-S0 §4.4), and these 0.1 rows are not in it (T-12). The cross-card columns in §2 and §6.1 are counts side by side for context, never a ratio. No J or speed figure here is divided by another card's.
- **No dollar figure.** P-6: the desktop's larger card gets energy only.
- **No ladder verdict and no B-anchor test.** The ladder tests reading-0 headline rows; these are 0.1 cells. The B-chance column in §2 is §5's test read for context.
- **No row in `series.jsonl` and no `cells.py` placement.** The fold's tables are its own files (§9).
- **For deepseek:** no rate (8 of 108, counts only), no energy (void), and no speed figure of record (the decode timing sizes a re-run only). It makes no claim that a different cap, budget or shape would let the arm finish (§6.4 (c) is unmeasured), and no claim about how much of the 4,718.6 ms chat was contention.
- **Not a judgement of the I-1 rule.** It is registered (A-17 (3)) and it did what it says.
- **No correction of the pre-load idle spread** under "net of the seats' idle" (§4). The net figures are printed as `analyse.py` prints them.
- **One repeat is not a determinism result.** gemma2's byte-identical re-read is one model on one card.
- **The second board's power limit during the window is not read here** (the kit does not record it in window mode). The fold claims only that the bench never held memory on it and that nothing in the window's scripts set its limit.
- **CB-7's laptop row is cited before its own fold**, for context only.

## §8 · What is owed, in order

1. **The series PR before any CB-5 or CB-5b row enters `series.jsonl`** (A-17 (8), A-24 (5), the gap sweep's T-12): CB-5's and CB-5b's rows go into a new `rtx-pro-6000-reading-0.1/` on a branch, with `cells.py` placing a listed cell by its rows' measured time. The row of record for gemma2 is CB-5b's (§3). CB-5's superseded run rides along as the repeat.
2. **an operator's word on the desktop's larger card's 2025H1 think-on cell** (§6.4): its own night with the ollama seat off the desktop's larger card (a kit PR for a shape that stops and restores both seats, or the full shape), or NOT RUN with this fold as the receipt. Any the desktop night needs an operator's word (D-20261001-040) and its own arms file and amendment (A-24 (3)).
3. **Three small notes for the post-window kit PR or METRICS** (none of them changed a figure tonight):
   - `WINDOW-DONE` reads `bench rc=none: the window ended while the bench was still running (a stop or a signal) at ` with **the time blank**. The EXIT trap's `$(date -u …)` printed nothing in the stop; the trap's state copy did work, and its own receipt says 08:19:39Z.
   - **The pre-load idle baseline spread** (§4): the desktop's larger card steps between about 19 W and 91 W inside the 15 s window, 22.0 W to 81.8 W tonight and 27.2 W to 89.8 W on 09-28. A longer or state-aware baseline is a `METRICS.md` change by amendment, not an edit.
   - **The guard's recovery watch read NOT-JUDGED in both windows**, because the restore stops the guard. `analyse.py`'s AFTER canary is the recovery reading that exists (§6.3).
4. **A should-fix that landed and worked:** CB5-FOLD §10 (6)'s EXIT-trap copy of `state/` into the session (A-24 (3)). This session has its own `state/`, unlike CB-5's.

## §9 · Provenance: what was read, and how

- **The archive** (read-only): `~/bench-archive/coi-cb5b-2026-10-02/` as L6b brought it home at 09:3xZ: `rows/` (the five arms), `rows-superseded/st-gemma2-27b-cd.20261002T081131Z/` (CB-5's run), `sessions/20261002T080012Z-window/`, `window-run/` (`current.log`, `open-at.log`, the receipts, the staged kit), `state-live/` (the guard's files) and `i3-reader.jsonl`, `restore-watch.jsonl`. The rows of the two rehearsal sessions that morning (`20261002T034541Z-window`, `20261002T034933Z-window`; `r-w-cb5-*`, in `rows/` and `rows-superseded/`) are never cells (A-17 (2)) and are not read here. The CB-5 fold of record is `~/bench-archive/plans-2026-09-28/quick-wins/CB5-FOLD.md` (§1's posture pins, §2, §5). The window paste set is `PASTES-CB5B-2026-10-02.md` and the amendments are `PREREG-S0.md` (sha `withheld-2026-09-29`, A-17, A-24), both at estate origin/master `7ae18596`.
- **The tooling.** `git archive` of origin/master `7ae18596`'s `bench/cost-of-intelligence-2026-09-23/` into this lane's session scratch folder (no worktree). `parse_v2.py` `689254c5…` (the PREREG-S0 §3.1 pin, checked at import; `parse_v2 selftest: 48 cases OK`), `series/v2score.py` `f6fecb59…`, `series/stats.py` `86727c4f…`, `KIT.lock.json` `0bca44b4…` (corrected 2026-10-02 by the lead from the checker's M-1..M-3: the three labels were swapped; no figure moves), `rtx-pro-6000-reading-0/instrument/analyse.py` `b689832f…` (A-17 (3)), `benchbox_parser.py` `08a158f6…`. The scoring path reproduces CB-5's gemma2 counts (72 and 41, CB5-FOLD §2) and `series.csv`'s strict counts on the 14 reading-0 rows in §2's context table.
- **This fold's own files** (in `fold/`): `cb5b_fold.py`, the script that computed §1, §2, §3, §5 and §6's tables from the files (sha256 at the final run: §9's last line); `cb5b-fold-tables.json`, its output, with card UUIDs replaced by names and no address; `ANALYSE-cb5b.md`, `analyse.py`'s Markdown, verbatim (sha `a8a9f9d1…`); and `analyse-figures-cb5b.scrubbed.json`, its JSON with card UUIDs and client addresses scrubbed. No `series.jsonl` was written.
- **`analyse.py`** ran at 2026-10-02T09:47:50Z with `PYTHONDONTWRITEBYTECODE=1` and `TZ=UTC` on a scratch copy of the session and the five arms' rows, with the default BEFORE window (the 60 min before the session's first bench sample, 07:00:42Z → 08:00:42Z; the day's two rehearsal sessions, 03:45Z and 03:49Z, lie outside it). Its two `journalctl` reads (the ollama seat's `[GIN]` lines; the reranker's user unit) went through a shim that runs `journalctl` with the same arguments on the desktop over ssh. That is read-only, and it returns the journal `analyse.py` reads when it runs on the desktop, as its docstring asks (the same method as CB5-FOLD §11).
- **Other reads of the desktop**, read-only over ssh: `journalctl --user -u coi-guard-desktop.service` for 08:00Z → 08:21:40Z (the guard's own lines in §6.2), and line counts of the seat's and the reranker's journals for 07:00Z → 09:00Z (the reranker logged no `POST /rerank`). On the laptop, `the private network's status command` was read once to name the box behind the two remote chat requests (the public host) and the canary (the laptop); no address is printed. Nothing on the desktop, the mini node or the laptop was started, stopped or written.
- **What this page leaves out on purpose:** card UUIDs, the private network addresses, the local clock's offset (every time here is UTC, from file contents or `date -u`), and account names.
- **The fold script's sha256 at its final run (10:02:06Z):** `9368f3f1…` (`cb5b_fold.py`); its output `cb5b-fold-tables.json` `5aea2704…` (the output carries its own `generated_utc`, so a re-run changes its sha, never its tables).

## Appendix · `analyse.py`'s table, verbatim

This is the tool's own Markdown, as it wrote it at the 09:47:50Z run (`ANALYSE-cb5b.md`). Its strict column is the lane parser's, which equals v2's on every complete task here (§2). Its header says "the desktop's larger card reading 0", the tool's fixed title; these rows are reading 0.1 cells (A-24 (5)).

**the desktop's larger card reading 0 — generated by analyse.py (2026-10-02T09:47:50Z); every figure from the rows; strict = benchbox's lane parser (provisional until parser v2), v1 = run.py decide(); J per correct uses STRICT correct**

**session 20261002T080012Z-window (bench resident ['08:00:42Z', '08:19:34Z'])**

| arm | model · digest | task | strict correct / n (lane parser v2-benchbox-1; v1 beside) | J/correct board gross (whole window) | J/correct net of the seats' idle | J/correct compute-phase | box-delta J/correct | median s/item | median load ms | collided | clean J/item gross | decode tok/s | prefill tok/s | TTFT median s | J/1k decode (probe) |
|---|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| st-phi4-14b-cd | phi4:14b-q4_K_M · ac896e5b8b34 | c | 82 / 108 (v1 84) | 108.0 | 66.5 | 20.7 | 52.8 | 0.468 | 328 | 7 of 108 | 80.3 | 114.6 | 5545 | 0.435 | 2646.2 |
| st-phi4-14b-cd | phi4:14b-q4_K_M · ac896e5b8b34 | d | 0 / 48 (v1 12) | — | — | — | — | 0.557 | 342 | 0 of 48 | 100.4 | 114.6 | 5545 | 0.435 | 2646.2 |
| st-qwen3-30b-a3b-2507-cd | qwen3:30b-a3b-instruct-2507-q4_K_M · 19e422b02313 | c | 71 / 108 (v1 71) | 101.8 | 83.8 | 12.1 | 44.8 | 0.544 | 439 | 0 of 108 | 67.1 | 245.6 | 8786 | 0.510 | 1326.5 |
| st-qwen3-30b-a3b-2507-cd | qwen3:30b-a3b-instruct-2507-q4_K_M · 19e422b02313 | d | 8 / 48 (v1 20) | 447.4 | 373.0 | 65.5 | 306.0 | 0.588 | 444 | 0 of 48 | 77.0 | 245.6 | 8786 | 0.510 | 1326.5 |
| st-qwen3.6-27b-cd | qwen3.6:27b-q4_K_M · 3a40c32f1450 | c | 95 / 108 (v1 95) | 209.8 | 91.8 | 37.2 | 125.0 | 1.282 | 803 | 0 of 108 | 185.6 | 62.0 | 2161 | 1.622 | 5454.4 |
| st-qwen3.6-27b-cd | qwen3.6:27b-q4_K_M · 3a40c32f1450 | d | 33 / 48 (v1 34) | 355.1 | 156.7 | 81.6 | 158.2 | 1.684 | 799 | 0 of 48 | 243.9 | 62.0 | 2161 | 1.622 | 5454.4 |
| st-gemma2-27b-cd | gemma2:27b-instruct-q4_K_M · cfd95e5696e9 | c | 72 / 108 (v1 72) | 200.5 | 109.4 | 39.8 | 106.3 | 0.822 | 533 | 0 of 108 | 134.2 | 61.8 | 1820 | 0.786 | 5159.9 |
| st-gemma2-27b-cd | gemma2:27b-instruct-q4_K_M · cfd95e5696e9 | d | 41 / 48 (v1 41) | 187.0 | 101.6 | 44.0 | 59.7 | 0.983 | 528 | 0 of 48 | 160.6 | 61.8 | 1820 | 0.786 | 5159.9 |
| st-deepseek-r1-32b-on-c | — | — | absent: STOPPED.json,box.csv,idle-preload.board.csv,preflight.json | | | | | | | | | | | | |

Interference: canary BEFORE 60 min (n 54, median 218.786006 ms, p95 400.022642) · DURING (n 17, median 249.422962, p95 920.048181, max 1100.768226; 12 overlapping a bench item, 2 over 805 ms) · AFTER (n 26, median 216.02394299999997, complete=True) · docent ITL windows 0 (max None ms vs 8.43) · trip I-1 · UPS load max 44.0 % · the desktop's larger card free min 54301.0 MiB · bench max 21610.0 MiB · temp max 60.0 C
