opus audit v5: final check of the v4 doc fixes (audits/opus_audit_phase0_2_m5_v4.md §what to fix) #
scope: read-only. i checked every number on PLAN L274–282 (§2.7.A #29, #30) and L571–586 (§7.1 #5) against results/phase0_phase2_m5_validation.json (V), results/phase0_phase2_m5_unpatched_baseline.json (U) and audits/opus_audit_phase0_2_m5_v3.md (v3). i used a strict pass over the 5 strata perf dicts, 9 TF runs, 4 + 4 llama runs and the raw STRATA_RESULT tails, plus a numeric sweep of every token on those lines. no repo files were edited except this report.
what i ran:
scripts/run_phase0_phase2_m5_validation.py --self-test→ PASSvendor/strata/build-metal/route_parity, default math andSTRATA_METAL_MATH=fast→ 0 mismatches,2.16e-07 / 3.06e-07and2.15e-07 / 4.00e-07, PASS (same as PLAN L278)- SHA-256 of the 5 scripts/binaries and 7 prompt files against
provenance - a GGUF-vocab detokenization of the last 64 ids of each
eval_tf_*.txt(vocab length248,320✓)
final verdict: PASS (after the fixes, see the addendum). the first pass was a FALSIFIER HIT: 3 numbers had no source, 2 of them regressions from the v5 rewrite. the 5 requested fixes themselves landed.
falsifier hits #
| PLAN | claim | source says | status |
|---|---|---|---|
| L579 | IQ3_S MoCE=0 4.88 tok/s (204.78 ms/tok) |
V strata_iq3s_moce0_short_43tok: decode_ms_per_tok=205.02 (STRATA_RESULT, perf, summary_comparison all say 205.02; T=1 window line 205.00) |
wrong, regression. 204.78 is in no file on disk. v4 passed every ms/tok on this line, and parent transcript row 177171 (the v5 PLAN rewrite) is the first place 204.78 shows up. |
| L580 | Q2_0 MoCE=0 6.32 tok/s (158.13 ms/tok) |
V: 158.22 (T=1 window 158.20) |
wrong, regression, same origin |
| L275 | 175.4 MiB > 64.0 MiB on step1_ngl20_cmoe_smoke before -nr |
not in U and not in V or any file under results/, audits/, scripts/, bench/. all 4 runs in U (and V's 4 unpatched runs) already pass -nr and have max_swapout_delta_mib = 0.0 |
unarchived. the value is real but lives only in parent transcript row 175706 (trip_reason: swapouts increased by 175.4 MiB (> 64.0 MiB cap)) from a tripped run that was never saved. so the brief's claim that it comes "from results/phase0_phase2_m5_unpatched_baseline.json" is false. |
fix:
- L579
204.78→205.02 - L580
158.13→158.22 - L275: archive the tripped run's
trip_reason+ vm deltas (for example as an extra entry in U), or cite it as "[unarchived: parent transcript row 175706]".
the 5 requested fixes #
- the 8 "cool in v3" values: PASS. none of
7.27,137.56,105.12,73.94,13.63,73.37,13.22,75.62appears anywhere in PLAN.md. every remaining v3-attributed number is in v3:320.58/353.493,194.19/5,793.65339.50–356.06(MoCE speed init)9.51 → 13.52(the MoCE 0 → 0.85 pair)16.11 + 56.29
- #29 / #30 stale claims: PASS for the removals.
17.0 GiB,L1914,96 graph splits,93..163pages, "63 generated tokens" and "generating 63" are all gone.- L276 now says
-n 64, ~64 generated tokens / 63 decode steps, which matches the cmd (-n 64) and v4's ≈64-token detok. - the
175.4 MiBthat replaced17.0 GiBis unarchived (see above).
- thermal label: PASS.
- L577 and L282 carry
[hypothesis: passive SoC thermal throttling + concurrent background CPU load]. - "thermal soak", "soaked" and "fanless thermal" no longer appear.
- the runner comment on L506 still says "thermally unthrottled" (v4 fix 4b). it can't be fixed without touching scripts, which this round kept frozen. it's an open nit, not a falsifier.
- L577 and L282 carry
- L583 scoring wording: PASS, verified on tokens.
- the last 64 ids of
eval_tf_ops_tools.txtcontain no<think>(248068) or</think>(248069) and detokenize to the tail of the visible JSON (…"commands": [], "task_complete": true}). chat_jsonandjaeach have exactly one</think>in the scored span, with reasoning before it and visible JSON / Japanese after it.- no
<think>opening tag is in any scored span. - prompt lengths:
308−64=244,223−64=159,520−64=456✓.
- the last 64 ids of
- untouched since v4: PASS.
- V still has
generated_at_utc 2026-10-15T13:00:39Zand mtime 16:00:39, which is before v4.md (16:15:42). its sha256 is6bdd729f…ffca6. - all 5
provenancehashes (run script, patch_strata_metal, patch_m5_lazy_moe, prepare_strata_k256, strata_window_cli) and all 7 prompt hashes match. - mtimes:
route_parityand the CLI are 15:57, the runner 15:56:59, all before the run. - the v4 checks still hold: the self-test and route_parity were re-run above.
- V still has
everything else that recomputes (✓) #
- run count and watchdog: 22 runs =
5 + 9 + 4 + 4, max swapout delta over all 22 =0.0, watchdog0.25 / 2.2 / 64.0. - llama:
- unpatched
1.4/14.3/21.7, disk0105,851.73/85,725.73 - patched
3.22/38.11/63.27/0.28, disk033,428.34/46,808.58/28,272.94;22+63decode tokens,1,264prompt tokens - flags
-ngl 99 -cmoe -nr -lzm on -n 64✓ /tmp/m5_prompt_1600tok.txtstill exists and is byte-identical tollama_prompt_1264tok.txt- nit (carried over): the unpatched ub2048 run decoded at
1.3, so1.40is the ub1024 run only
- unpatched
- strata init:
424.45–504.58(MoCE speed),424.45–506.90(all 14) - strata fill:
0.6–1.3 s;2.69–5.92 GB/s(10 Q2_0 runs),3.98–5.04(4 IQ3_S runs); slots1,550 / 2,441 - prefill:
229.99 / 268.23tok/s,4,452.38 / 7,635.20ms - steady-state decode:
8.04 / 124.31(34.15 + 88.35),9.33 / 107.20(30.78 + 73.87),8.37 / 119.51(24.38 + 92.44) - hit rates: every hit split, misses/tok and MB/tok on L579–582;
51.5%/62.4% - memory:
4.73→4.68,7.41→7.36,1.36,2.90 / 0.34 / 1.28 / 4.53 - KLD blocks:
0.0588/96.88(0.1477 / 0.0052 / 0.0234)0.2032/90.63(0.4621 / 0.0395 / 0.1081)0.2386/89.58(0.5640 / 0.0406 / 0.1112)- all PPL pairs and per-domain top-1 match
addendum: re-check after the parent's fixes → final verdict: PASS #
- L579:
4.88 tok/s (205.02 ms/tok). this equals V'sdecode_ms_per_tok✓ - L580:
6.32 tok/s (158.22 ms/tok). equals V ✓ - L275: the
175.4 MiBfigure is gone. the line now says "tripping the64.0 MiBswapout watchdog before adding--no-repack/-nr([unarchived pre-baseline smoke run])".64.0 MiB=watchdog_policy.max_swapout_delta_mib✓, and the claim is honestly labelled unarchived ✓ 204.78,158.13and175.4no longer occur anywhere in PLAN.md.- i re-ran the numeric sweep over L274–282 and L571–586. the only tokens it can't match are non-measurements:
Niko1221(a repo name),256..511(route_parity trap range, printed by the binary),top-3, and248,320(GGUF vocab length, verified). so there are 0 unsourced numbers. - V's sha256 is still
6bdd729f…ffca6, and all 5 provenance hashes still match.
the falsifier is cleared. the only open item is the runner's L506 "thermally unthrottled" comment, which is a script-side nit.