codes/198-12-7.json is @FarLab and @vprusso's construction; this is a reduction of it, following the precedent @mathysrennela set with codes/240-12-12-graft.json. 23 qubits come out under the general form of the move below, and the accepted grafts were |S| = 2 three times, |S| = 4 three times, |S| = 6 14 times.
Let S be any element of the row space of H_X — an element of the stabilizer group, not necessarily one of the published generators — with support T, and let a ∈ T.
1. Replace one generator of the subset summing to S by S itself. The span is unchanged: that generator equals S plus the rest of the subset. 2. Add S into every other X row meeting a, so a survives only in S. 3. Apply the CNOT fan-out from a to T \ {a}, which acts on the check matrices as H_X[:, b] ^= H_X[:, a] and H_Z[:, a] ^= H_Z[:, b].
After step 2 only S meets a, so step 3 turns S into the weight-1 stabilizer X_a and leaves every other X row alone; and column a of H_Z becomes the XOR of its entries over T, which commutation forces to be 0. Qubit a is disentangled and is deleted: n → n-1, k unchanged, and the Z rows only lose an index, so their weights and support diameters cannot rise.
The weight of S selects the regime, entirely through the clearing step R ^= S:
|S| = 1 — nothing is added anywhere, so weight, radius and distance are allpreserved exactly and no distance search is needed. This is the row-space form of the weight-1 stabilizer cleanup of Liang, Eberhardt and Chen (arXiv:2504.08887 Sec. III D step 4); research/local2d/boundary_engine.py fires only on a *literal* weight-1 generator ROW, and row-space membership is strictly weaker.
|S| = 2 — the row loses a and toggles one other index, so its weight changes by 0or −2 and can never rise.
|S| ≥ 3 — the row can grow, so every touched row is checked against the code's weightclass and its locality radius, measured in the source's own layout.
Low-weight row-space elements are enumerated as sums of at most three checks with a connected overlap pattern.
Fresh-seed RIS ladder: 7 at 20k → 200k → 1M → 5M → 20M trials per rung, independent seeds, both sides searched jointly. Nothing lighter than 7 appeared. Each graft was also screened and confirmed twice in the loop with independent seeds; those rungs are a filter, not the evidence. The distance is a witness-backed upper bound — on this project a [[682,10,38]] candidate survived three fresh seeds to five million trials and then fell at twenty million, so a flat ladder is not a proof.
verify/validate_candidate.py passes: board_advancing: true, dominated_by: [], no duplicate and no WL-equivalent entry, cell weight-6 × local-2d-bilayer.
Max check weight 6 throughout. Interaction radius 4.47214 → 5, inside the local-2d-bilayer cap of 7; layers unchanged. An |S| ≥ 3 graft can widen a check and is capped by the locality class rather than by the source's own radius, so the reduced code is less local while staying in the same cell. Qubit positions are the source's — every surviving qubit keeps the coordinate it has in codes/198-12-7.json, and the reduction only deletes. kd²/n 2.970 → 3.360.
It dominates 198-12-7 on (n, k, d, w).