Skip to content

gate(#378): the first DEVICE run of the warp MoE router, and two record corrections - #481

Open
localai-bot wants to merge 3 commits into
mainfrom
row/A-35B-RESIDUAL
Open

gate(#378): the first DEVICE run of the warp MoE router, and two record corrections#481
localai-bot wants to merge 3 commits into
mainfrom
row/A-35B-RESIDUAL

Conversation

@localai-bot

Copy link
Copy Markdown
Collaborator

Closes part of #378. Dispatched as punch-list item 5 of roadmap-v1-completion.md
§3 (ROAD-V1-A, "close the 35B c1/c2 residual"). Re-verifying the gap first, as
AGENTS.md requires, changed what the task was — so this PR is a device gate plus
two record corrections, not an optimisation.

The router had not landed

The premise this work was dispatched on — that the warp-shuffle router landed and
took 35B c1/c4 to ~0.98x — is false in both halves.

  • git merge-base --is-ancestor: none of 9f7afa7a, cce81c7e, be6a1f57,
    4f4ee725 is an ancestor of bbc482a2.
  • git log -S on MoeRouterTopKWarpKernel, MoeRouterWarpEnabled,
    VT_MOE_ROUTER_WARP, MoeRouterWarpTreeSum, moe_router_warp: 0 commits on
    main
    for every one.

It sat on a local-only branch, never pushed, no PR, 9 commits behind main, and
cce81c7e says plainly that the .cu was never compiled or run. The tree never
claimed otherwise — KERNEL-MOE-ROUTER-WARP is in no matrix and no doc on main —
so the drift was in the dispatch, not the repo. The ~0.98x / 0.87x / 0.92x
figures belong to SPEC-DSPARK (#442), a different row, and main has since
superseded those too.

So the 35B residual was, in this part, a landing problem. This PR does the one
thing the branch always needed and its authors could not do: run it on a GPU.

First device verification

It compiles — not previously known. All under one flock $HOME/gpu.lock per
group, GB10, source 1d50cafe, RelWithDebInfo, pinned nvcc, arch 121a,
CUTLASS + Triton on, FA-2 ENABLED verified in the configure log.

gate suite cases assertions Status
1 test_moe_router_warp_map 9 4597 SUCCESS
2 test_ops_moe_grouped (self-pins both arms) 14 1907 SUCCESS
2 same, ambient VT_MOE_ROUTER_WARP=0 14 1907 SUCCESS
3 test_ops_moe 9 33451 SUCCESS
3 test_ops_moe_router_grouped 14 3880 SUCCESS
3 test_ops_moe_grouped_bf16 7 19 SUCCESS
6 test_qwen36_paged_engine warp ON 2 315 SUCCESS
6 test_qwen36_paged_engine =0 rollback 2 315 SUCCESS

Counts land exactly on the spec §11 predictions. Mutation RED re-proven: a
left-linear fold fails 76 assertions / 2 cases. The 35B gate is confirmed to
have run, not skipped — real snapshot @491c2f1e, real continuation.

Which kernel ran is proven by name, not inferred, in nsys --cuda-graph-trace=node: MoeRouterTopKWarpKernel<__nv_bfloat16,(int)8> (VPT=8 =
E=256) in the ON arm with no block kernel present, and the converse under =0.
That closes the F1 hazard at the model level — the 315/315 could not have come
from either kernel.

What it is worth, honestly

Kernel-level, ESTABLISHED (3 reps/arm, order-alternated, 1280 router calls
every leg): warp 10.422 ms (10.307/10.529) vs block 14.201 ms
(14.141/14.275) — -3.779 ms, -26.6%, 1.363x, bands non-overlapping.

Step-level: NOT SEPARABLE, and not claimed. Total GPU-busy read 1601.890 vs
1619.395 ms, but the kernels this change does not touch — identical code,
identical 155,310 launches — differ 13.726 ms between arms with a 24.140 ms spread
across the six legs, 6.4x the effect. The window is prefill+decode aggregated,
diluting 40 router calls/step across ~1600 ms. Sized against #378's 16.1863 ms/step
decode GPU-busy, the saving is ~0.5-0.75% of decode GPU-busybelow #378's
~1.5% estimate, because the warp kernel closes ~79% of the gap to topkGating
(12.98 → 8.14 us/call vs 6.85), not all of it.

Per spec gate 7 that is diagnostic evidence, not default-flip credit. The
default is left ON as cce81c7e authored it because that is the reviewed author's
decision and the standing parity-enabler policy — not because this measurement
earned it. Whether default-ON is right here is a NEEDS_DECISION for the
operator.

The canonical 35B grid is stale

docs/BENCHMARKS.md carried "CANONICAL @348c265d: 0.918x-0.972x" as current.
348c265d is an ancestor of main, but 136 src/+include/ commits have landed
since
, including 972a152c "+2.05% c8, one CastF32 per layer-step gone", which
merged 1 h 36 min after the grid was captured. Holding vLLM fixed that implies
c8 ~0.937 and c4 ~0.980 today — an estimate, not a measurement. BENCHMARKS and
STATUS now say stale and regrid-owed rather than asserting a number nobody has
measured on current main.

So: where is the 35B gap today? Nobody knows, and a regrid is owed. The last
measured value is stale in our favour by at least one landed lever.

Also repaired

The roadmap issue table named KERNEL-MOE-ROUTER-WARP as a stable row, which
check-agent-record rejects — the spec says this is a lever inside
KERNEL-MOE-ROUTING and registers no new row. That defect would have been caught
the first time the branch met the gate, which is itself evidence it never did.

The measurement lands in .agents/benchmark-record.md, not the scoreboard: no vLLM
arm was run, and the scoreboard's canonical sections are reference engines and
resource axes, not kernel levers.

Not verified here

  • Gate 5 compute-sanitizer memcheck.
  • A decode-only profiler window (would turn the 0.5-0.75% estimate into a number).
  • Any vLLM denominator — none was run, so no ratio-vs-vLLM is asserted. The
    pinned oracle source is at 5559679229bc (asserted by commit), but the shared
    ~/venvs/vllm-oracle symlink resolves to v0.25.0-stage, not the pin. Left
    untouched for other sessions; recorded as a hazard.
  • The 35B canonical regrid on current main.

Correctness gates were re-run on this exact head under load 8.94; the timing
evidence was taken earlier in a quiet window (load 0.50-1.52). No timing claim is
made from the contended run.

Next traceable hypotheses, no ceiling declared: the decode-only window, then
folding the router into the preceding gate-GEMM epilogue and batching the 40
per-step launches.

mudler added 3 commits August 12, 2026 14:30
Replayed onto current main from the local-only branch row/KERNEL-MOE-ROUTER-WARP,
which was never pushed and never opened as a PR. This squashes its four authored
commits, whose messages carry the full derivation and review history:

  9f7afa7a spec(kernel): MoE router top-k as one warp per token, byte-exact
  cce81c7e perf(kernel): MoE router top-k as one warp per token, byte-exact
  be6a1f57 fix(test): moe_router_topk device case fed the op an input it rejects
  4f4ee725 fix(test): moe_router_topk gates could not see the kernel they gated

They are squashed rather than cherry-picked because the branch carried three
internal merge commits with no protocol trailers, and its base is far enough back
that replaying them individually conflicts with rows landed since. Nothing in the
kernel, the lane map or the tests is modified here; the tree is byte-for-byte the
branch's, rebased.

Adds MoeRouterTopKWarpKernel<Tin,VPT>: one WARP per token with the whole logit row
in registers, no shared memory, no __syncthreads(), and ONE global read of the row.
Dispatched by default (VT_MOE_ROUTER_WARP, =0 rolls back on the same binary) for
the ungrouped softmax router at E in {32,64,128,256}. Every other E, the grouped
noaux_tc router and the Serial byte-exact oracle fall through to the UNCHANGED
block kernel, which at E=256 spends 37 barriers, 3 KiB of dynamic shared memory
and two full reads of the row.

BYTE-IDENTICAL by structural congruence, not by an appeal to associativity: the
block reduction's s=128,64,32 levels are all multiples of the warp width, so they
never cross a lane and are exactly a per-lane halving tree over
`expert = lane + 32*slot`; levels s=16..1 live inside warp 0 and are what
__shfl_down_sync reproduces. SHAPE port only -- the divide, the sum>0 guard, the
isfinite clamp, the -INFINITY mask and seed, the denom<=0 guard and the best<0
sentinel all stay the incumbent's, because vLLM does five of them differently and
porting any would change tokens.

The device evidence this kernel never had is in the commit that follows.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
…rd corrections

Dispatched as punch-list item 5 of roadmap-v1-completion.md §3 (ROAD-V1-A, "close
the 35B c1/c2 residual"). Re-verifying the gap first, per AGENTS.md, changed what
the task was.

THE ROUTER HAD NOT LANDED. The premise -- that the warp-shuffle router landed and
took 35B c1/c4 to ~0.98x -- is false in both halves. `git merge-base
--is-ancestor` says none of 9f7afa7a, cce81c7e, be6a1f57, 4f4ee725 is an ancestor
of bbc482a, and `git log -S` on MoeRouterTopKWarpKernel, MoeRouterWarpEnabled,
VT_MOE_ROUTER_WARP, MoeRouterWarpTreeSum and moe_router_warp returns 0 commits on
main for every one. It sat on a local-only branch, never pushed, no PR, 9 commits
behind, and cce81c7e says plainly the .cu was never compiled or run. The tree
never claimed otherwise -- KERNEL-MOE-ROUTER-WARP is in no matrix and no doc on
main -- so the drift was in the dispatch, not the repo. The ~0.98x/0.87x/0.92x
figures belong to SPEC-DSPARK (#442), a different row.

So this commit does the one thing the branch always needed and its authors could
not do: run it on a GPU.

FIRST DEVICE VERIFICATION (GB10, source 6c3be5c3, one flock per group). It
COMPILES -- not previously known. Gates 1/2/3/6 all green; 35B
test_qwen36_paged_engine 315/315 on BOTH arms of the same binary, plus six more
green legs during the A/B. Counts land exactly on §11's predictions (9/4597,
315/315); gate 2's 1907 is the post-§8.3 doubled count. Mutation RED re-proven:
a left-linear fold fails 76 assertions / 2 cases. The 35B gate is confirmed to
have RUN, not skipped.

WHICH KERNEL RAN, proven by name in nsys --cuda-graph-trace=node rather than
inferred: MoeRouterTopKWarpKernel<__nv_bfloat16,(int)8> (VPT=8 = E=256) in the ON
arm with no block kernel present, and the converse under =0. That closes the F1
hazard at the model level -- the 315/315 could not have come from either kernel.

KERNEL-LEVEL WIN, ESTABLISHED. 3 reps/arm, order-alternated, 1280 router calls
every leg: warp 10.422 ms (10.307/10.529) vs block 14.201 ms (14.141/14.275) --
-3.779 ms, -26.6%, 1.363x, bands non-overlapping.

STEP-LEVEL: NOT SEPARABLE, and NOT CLAIMED. Total GPU-busy read 1601.890 vs
1619.395 ms, but the kernels this change does not touch -- identical code,
identical 155,310 launches -- differ 13.726 ms between arms with a 24.140 ms
spread across six legs, 6.4x the effect. The window is prefill+decode aggregated,
diluting 40 router calls/step across ~1600 ms. Sized against #378's 16.1863 ms/step
decode GPU-busy the saving is ~0.5-0.75% of decode GPU-busy -- BELOW #378's ~1.5%
estimate, because the warp kernel closes ~79% of the gap to topkGating
(12.98 -> 8.14 us/call vs 6.85), not all of it. Per gate 7 that is diagnostic
evidence, NOT default-flip credit; the default stays ON as cce81c7e authored it
because that is the reviewed author's decision, not because this earned it.
Whether default-ON is right here is a NEEDS_DECISION for the operator.

THE CANONICAL 35B GRID IS STALE. docs/BENCHMARKS.md carried "CANONICAL @348c265d:
0.918x-0.972x" as current. 348c265 is an ancestor of main, but 136 src/include
commits have landed since -- including 972a152 ("+2.05% c8", one CastF32 per
layer-step gone), which merged 1h36m AFTER the grid was captured. Holding vLLM
fixed that implies c8 ~0.937 and c4 ~0.980 today, an ESTIMATE not a measurement.
BENCHMARKS and STATUS now say stale and regrid-owed rather than asserting a
number nobody has measured on current main.

Also repaired: the roadmap issue table named KERNEL-MOE-ROUTER-WARP as a stable
row, which check-agent-record rejects -- the spec says this is a lever inside
KERNEL-MOE-ROUTING and registers no new row. That defect would have been caught
the first time the branch met the gate, which is itself evidence it never did.

The measurement lands in .agents/benchmark-record.md, not the scoreboard: it has
no vLLM arm, and the scoreboard's canonical sections are reference engines and
resource axes, not kernel levers.

NOT VERIFIED HERE: gate 5 compute-sanitizer memcheck; a decode-only window; and
any vLLM denominator -- none was run, so no ratio-vs-vLLM is asserted. The pinned
oracle SOURCE is at 5559679229bc (asserted by commit), but the shared
~/venvs/vllm-oracle symlink resolves to v0.25.0-stage, NOT the pin; left untouched
for other sessions and recorded as a hazard.

Next traceable hypotheses, no ceiling declared: a decode-only window to turn the
0.5-0.75% into a measurement, then the gate-GEMM epilogue fold and batching the
40 per-step launches.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]

# Conflicts:
#	.agents/benchmark-record.md
localai-bot pushed a commit that referenced this pull request Aug 12, 2026
…again

Found while doing #460. MAX_README_CHARS = 30000 in check-readme-structure.py is
a budget on a whole shared file, and README.md measures 29,965: THIRTY-FIVE
characters free, tighter than any of the three budgets already retired for this
exact reason.

Measured over the last 20 commits touching README.md: 13 sat under 60 characters
free, and 031410e landed the file 52 characters OVER the cap. There is a whole
merged row whose only purpose was paying rent, row/DOCS-README-BUDGET (#161),
plus 44206e4 "restore the landing-page budget after the MANIFESTO link".

FILED, NOT FIXED. This is a third checker with its own mutation suite, so per
AGENTS.md it needs its own spec and its own red-before in
tests/scripts/test_check_readme_structure.py rather than riding along in a PR
scoped to the two benchmark-surface checkers. Recorded in the roadmap intake
table and as spec W7.

Also reconciles two claims the spec made before the code existed and that the
diff does not contain: docs/BENCHMARKS.md is UNCHANGED, because #481 is open and
rewrites the 35B row in place, so writing a second copy of "regrid owed" would
duplicate a keyed row the moment both merge. The surface's ability to accept the
row is what this row owes, and it is proven by
test_the_shipped_page_can_accept_the_next_measurement_row, which adds the row to
the real page and drops it again: 44,832 chars and 162 rows to 45,173 and 163,
errors [], every pre-existing row asserted still present.

Issue: #498

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
localai-bot pushed a commit that referenced this pull request Aug 12, 2026
… does not make

Left over from the pre-code spec: it said "the row added here is additive and
placed in ## Open gaps" and described how to resolve a conflict with #481 over
it. There is no such edit. docs/BENCHMARKS.md is untouched, #481 keeps ownership
of the "regrid owed" fact, and the two branches cannot conflict at all.

Also records the mid-row base move, 918c568 -> e1087a8 (12 commits), and that
every gate was rerun on the merged tree rather than the pre-merge one. The
figures in Our baseline are as taken at 918c568 and are deliberately not
restated: they are the measurement that justified the change.

Spec text only. No checker, test or public document changes.

Issue: #460

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
localai-bot pushed a commit that referenced this pull request Aug 12, 2026
…d pair fences the way CommonMark does (#460)

Review returned FAIL on PR #494 with two blocking findings and seven smaller
ones. The design is unchanged: AGENTS.md, Records, says cap the entry, never
the file, and the byte cap stays retired.

F1. "Strictly tighter than the byte cap" was FALSE, and the gap was the
append-log class this row's own stop condition names. `_prose_paragraphs`
excluded every line starting with `-`, `*`, `>`, `|` or `#`, so a bulleted or
quoted wall was counted by NOTHING: not the paragraph count, not
MAX_PARAGRAPH_CHARS, not MAX_CELL_CHARS, not MAX_ROW_CHARS, and not the heading
guard, which fires on a DATE. Measured: 3,000 appended bullet lines took
docs/BENCHMARKS.md to 113,833 chars with the checker reporting `[]` (BASE
rejects the same mutant on size), and 500 UNDATED `### Attempt N` sections with
bulleted forensics reached 117,222 chars at exit 0 with 68/68 green.

Fixed both ways the finding asked. The claim is corrected wherever it appeared,
to the narrower true statement -- tighter than the canonical-section allowlist,
which sees `## ` only -- in the checker comment, spec Design 3, spec Risks and
the PR body. And the channel is closed: list items and blockquote lines fold
into `_prose_paragraphs`, so a contiguous run is ONE paragraph and trips
MAX_PARAGRAPH_CHARS while a run per section trips the count. BENCHMARKS carries
no list item and is unmoved at 35; FEATURES carries one, so
`max_prose_paragraphs` re-baselines 20 to 21; STATUS moves the other way, 82
long paragraphs to 75, so STATUS_RATCHET follows the measurement DOWN rather
than banking 7 units of slack.

An emphasis-lead paragraph still starts with `*` and is still excluded, so a
`**bold**`-led wall remains unbounded. That is stated plainly, not glossed:
closing it turns four paragraphs already shipped on docs/BENCHMARKS.md red at
717, 719, 748 and 1,084 chars against MAX_PARAGRAPH_CHARS, so it owes an edit to
a page #481 holds open. Filed as #507, deferred as spec W8, and pinned by
test_an_EMPHASIS_lead_wall_is_a_KNOWN_residue, which goes red the day it lands.

F2. `strip_code_spans` closed a block on any line matching a fence, including
one with an info string, which is not CommonMark and does not fail safe: it
INVERTS fence phase for the rest of the file. With the one unbalanced fence this
tree has, the bare fence at STATE-LEGACY-000001.md:17697 was "closed" by the
```sh at :17948, and ordinary prose at :18297 was blanked, so a live
reader-followable link stopped being validated. A closing fence now must match
the opener's character, be at least as long, and carry nothing but whitespace
after the marker. Re-measured: 4,114 raw targets, 4,110 after the strip, and all
4 losses are genuine samples. The Risk said 4 and was measuring 5.

F3. Deleted the `assertGreater(len(grown), RETIRED_PAGE_BUDGET)` on the LIVE
page. It stored a measurement of docs/BENCHMARKS.md inside a test file with 173
chars of margin, which is the corollary this row removed; 887e04f shrank the
page by 280.

F4 to F9, same pass. The second-base docstring now says what it enforces (the
evidence still exists under a declared base) instead of "no reader can follow
it", which is false of the links it accepts, and names W5 as what would make the
archived copy followable. `[`name`](path)` wrapped in stray backticks hid the
non-existent target `path` in this row's own spec: fixed and pinned by a test.
"Line numbers stay honest" is no longer cited as evidence, because check_links
reports none. The PageRules docstring now says the no-eviction property is true
of ROWS only, with both pages sitting on the paragraph count. The heading survey
is re-measured: 282 of 305 archived titles dated, 0 of 36 live headings, not
278/301 and 0/32. The acceptance test inserts the owed row directly under the
last Open gaps row so markdown renders it in that table.

Mutation set, three trees, in spec Risks. M7, M8, M8b and M9 flip SURVIVED to
CAUGHT. M6 survives by design and M11 is the filed residue.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
localai-bot pushed a commit that referenced this pull request Aug 12, 2026
…RELIEF (#494)

Merges `row/BENCHMARKS-CAP-RELIEF` at 5f1a7fe into main at ee9bc7a.
Closes #460. Row `ENG-RECORD-CONFLICT-SURFACES`.
Spec: `.agents/specs/benchmarks-entry-cap.md`.

## What it does

`docs/BENCHMARKS.md` was gated by a 45,000-character budget on the WHOLE FILE
and measured 44,795, so 205 characters were free. Adding a measurement row meant
deleting a row somebody else owns, and the documented way to delete one, moving
it byte-for-byte into `.agents/benchmark-record.md`, did not work for exactly
the rows carrying evidence links (#460). Worse, the success mode was unsafe:
04b2b9f is a CLEAN automatic merge that landed the page at 45,007 chars,
because two PRs each paid by evicting a DIFFERENT row and the three-way merge
applied both additions and neither eviction. That is AGENTS.md, Records,
verbatim: "merging two such edits cleanly is worse than conflicting".

This applies the corollary instead of raising anything.

- `max_chars` is removed from `PageRules`, with the measurement recorded in
  place. Third instance of a defect this row already retired twice: 87308de
  removed `MAX_CHARS` from check-now-current.py and the `chars` key from
  `STATUS_RATCHET` under #364, on this exact argument.
- `MAX_ROW_CHARS = 600` caps one ENTRY, so an author bounds their own row and
  never anyone else's. Set from the shipped pages (longest live row 520 on
  BENCHMARKS, 580 on FEATURES) and tighter than the cell cap it joins.
- `DATED_HEADING_RE` rejects a per-attempt heading at EVERY depth, not just the
  `## ` the canonical-section allowlist sees.
- `_prose_paragraphs` folds list items and blockquote lines into the paragraph
  running through them, which is the regrowth guard that actually holds.
- `check_links` stops validating text no reader can follow, and pairs fences the
  way CommonMark does; `.agents/benchmark-record.md` gains `docs/` as a second
  link base because it is the declared archive of `docs/BENCHMARKS.md`.

## The independent review returned FAIL, on two blocking findings

Both were real, both are fixed on the branch, and neither is a design change.

F1: the claim that the entry cap was "strictly tighter than the byte cap" was
FALSE. `_prose_paragraphs` excluded every line starting with `-`, `*`, `>`, `|`
or `#`, so a bulleted, blockquoted or UNDATED-subsection wall was counted by
nothing at all: not the paragraph count, not `MAX_PARAGRAPH_CHARS`, not
`MAX_CELL_CHARS`, not `MAX_ROW_CHARS`, and not the heading guard, which fires on
a date. The proof was the deleted `test_oversized_page_fails`'s OWN mutant
surviving: 3,000 appended bullet lines took the page to 113,833 characters and
the checker reported no errors.

F2: `strip_code_spans` mis-paired fences and silently dropped a LIVE link from
validation. It closed a block on any line matching a fence, including one with
an info string, which CommonMark forbids; getting that wrong INVERTS fence phase
for the rest of the file. With the one unbalanced fence this tree already has,
the bare fence at
`.agents/completed/state-events/0000-00/STATE-LEGACY-000001.md:17697` was
"closed" by the ```sh at :17948, and ordinary prose at :18297 was blanked, so a
reader-followable spec link stopped being checked.

## How the repair answered them

F1(a): the false claim is corrected wherever it appeared, in the checker
comment, in spec Design and Risks, and in the PR body. The true statement is the
narrow one: the guard is tighter than the canonical-section allowlist, which
sees `## ` only. It is NOT tighter than the retired byte cap in general.

F1(b): the channel is closed entry-shaped. List items and blockquote lines fold
into the surrounding paragraph, so a contiguous run is ONE paragraph and trips
`MAX_PARAGRAPH_CHARS`, and a run per appended section trips the paragraph COUNT.
The re-baselining is a re-measurement under a larger counted population, not
slack: BENCHMARKS unmoved at 35 of 35, FEATURES 20 to 21 for its one list item,
and `STATUS_RATCHET["long_paragraphs"]` moved the OTHER way, 82 down to 75,
because STATUS's 29 list items now join neighbouring paragraphs. Leaving 82
would have banked 7 units of slack this row did not earn.

F2: a closing fence must now use the opener's character, be at least as long,
and carry nothing but whitespace after the marker. The corrected rule validates
strictly MORE than the loose one, and its remaining losses are code samples.

F3 to F9, all non-blocking, were taken in the same pass: the stored measurement
of BENCHMARKS.md inside a test file removed, the second-base docstring corrected
to claim only that the evidence still EXISTS rather than that it is clickable,
two stray backticks that hid a non-existent target fixed and pinned, the "line
numbers stay honest" justification withdrawn, the row-only scope of the
no-eviction property stated in the `PageRules` docstring, the heading census
re-measured (18 per page, 36 total; archive 284 of 307 dated), and the
acceptance test's owed row inserted where markdown actually renders it.

## Two mutants the byte cap caught are not caught after this, both disclosed

M6 SURVIVES BY DESIGN. 200 legal rows of 599 characters each grow the page
without limit and the checker stays green. That is the point of the row, not an
oversight: total page size is now unbounded for rows, because rows are the
growth mode of a keyed table, each one is capped at 600, and nobody pays for a
new measurement by deleting a row someone else owns. AGENTS.md, Records: "cap
the entry, never the file."

#507 IS A DISCLOSED RESIDUE. A line beginning with emphasis still starts with
`*` and is still excluded, so a `**bold**`-led prose wall is unbounded. Closing
it turns four paragraphs already shipped on `docs/BENCHMARKS.md` red at 717,
719, 748 and 1,084 characters against `MAX_PARAGRAPH_CHARS = 700`, so it owes an
edit to a page #481 holds open and it changes what an existing gate counts. It
is filed as #507, deferred as spec W8, and pinned by
`test_an_EMPHASIS_lead_wall_is_a_KNOWN_residue`, which goes RED the day the
residue is closed. Visible debt, not success. #495 and #498 are filed on the
same terms.

## Operator gate, rerun by the operator on a scratch copy of 5f1a7fe

Not quoted from the implementer's table. Measured here, each mutant applied to
`docs/BENCHMARKS.md`, the real `scripts/check-public-doc-tables.py` run, then
the tree restored and verified byte-for-byte by sha256 and `git status`.

- M8, 3,000 appended bullet lines, the exact mutant the deleted
  `test_oversized_page_fails` used and the one that SURVIVED before the repair:
  page 45,024 -> 256,915 bytes, exit 1, CAUGHT. Two errors, 36 paragraphs over
  the 35 budget AND a 211,889-char paragraph over the 700 cap.
- M8b, 3,000 appended blockquote lines: exit 1, CAUGHT, same two errors.
- M7, 500 UNDATED `### Attempt N` sections with two bulleted lines each: page
  113,305 bytes, exit 1, CAUGHT, 535 prose paragraphs over the 35 budget.
- M6, 200 rows of exactly 599 chars inserted under the last table row: page
  45,024 -> 165,024 bytes, exit 0, SURVIVED. Intended, per above; the repair did
  NOT over-tighten.
- M11, 500 `**bold**`-lead paragraphs: exit 0, SURVIVED, the #507 residue
  reproducing exactly as disclosed.
- M9, the fence/link case: `scripts/check-agent-record.py` is OK on the clean
  tree. The corrected rule extracts 87 targets from STATE-LEGACY-000001.md where
  the loose rule extracts 86, and the one it adds is precisely the live
  `specs/cpu-llamacpp-floor-remeasure-2026-07-22.md` link at :18297. Removing
  that target turns the checker RED with a dangling-link error naming that file;
  restoring it returns exit 0.

## Gate on the merged tree

- `python3 -m pytest tests/scripts/ -q --continue-on-collection-errors`:
  8 failed, 1274 passed, 3 skipped, 1 error, 1506 subtests passed. A clean
  `origin/main` worktree was RUN rather than assumed and reports 8 failed,
  1238 passed, 3 skipped, 1 error, 1502 subtests passed: the same failure SET
  name for name (mlx system headers, now-render, 6 vulkan spirv subtests, and
  the `test_cpu_kernel_bench.py` collection error), with the merged tree's 36
  extra passes being this row's new tests. One intermediate run reported 137
  failures and was discarded as an ARTEFACT, not a result: the box was at 100%
  disk with 127 MB free, and the run reproduced the 8-failure set exactly once
  space was reclaimed.
- `check-public-doc-tables.py`, `check-agent-record.py` (ENGINE=152 MODEL=362
  QUANT=82 KERNEL=51 BACKEND=81), `check-doc-checkpoint.py`,
  `check-now-current.py`, `check-commit-trailers.py`, `check-pr-size.py`: OK.
- `scripts/agent-preflight.sh --staged`: 68 gates ok, 0 failed.
- Main landed a benchmark row while the branch sat, so the merged pages were
  re-verified against the NEW rules rather than the retired one:
  `docs/BENCHMARKS.md` 44,979 chars, 163 rows, longest row 520 of 600,
  paragraphs 35 of 35, longest paragraph 685 of 700; `docs/FEATURES.md` 29,967
  chars, 178 rows, longest row 580 of 600, paragraphs 21 of 21;
  `docs/STATUS.md` on its ratchet at 11 H2, 75 long paragraphs, 44 oversized
  cells. Under the RETIRED 45,000-char cap the scoreboard would now have 21
  characters free, which is the argument this row makes, landing on its own
  gate.
- Main moved from 10bde85 to ee9bc7a mid-gate, gaining NemotronH and two
  SPEC-DSPARK measurements. Re-fetched, re-merged and re-gated in full rather
  than forced.
- `.agents/roadmap_v1.md` is a keyed record and was not left at git's three-way
  result: main's version at ee9bc7a was taken WHOLESALE and the branch's four
  issue rows (#495, #498, #503, #507) reapplied as two pure insertion hunks,
  each anchor asserted to match exactly once, each issue ID asserted to appear
  exactly once, and zero pre-existing main lines lost. The reconstruction was
  then compared against git's three-way output and matched it, which is a
  verification of the automatic merge rather than a substitute for one.
- CPU only. No GPU was used.
- A red `windows-msvc-*` is not this row's: main itself does not compile under
  MSVC, filed as #503, and this branch touches no `src/`, `include/`,
  `tests/vt/`, `cmake/` or `.ps1` path.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: ClaudeCode:claude-opus-5 [ClaudeCode]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants