Repository navigation
claw: table checks take their table so a test can show they fail; auto-rows check covers row 21 - #10687
Merged
Conversation
…to-rows check covers row 21 every_row_filled, all_kinds_unique, all_surfaces_unique, auto_rows_carry_their_brief and plan_fits_grant only read constant, correct tables, so their return-false branches were dead under test and 24 mutants survived. Each check now takes its table as a fixed-size array parameter; the public names wrap the constant tables. New tests hand in a copy with one hole, one repeated row, or one level past the grant. auto_rows_carry_their_brief looped 0..21 over 22 rows: row 21 was never checked. Re-run on the new code lines: 24 of 27 mutants caught, 3 equivalent. Closes #10686 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 22:12
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The mutation sweep of #10673 left 41 survivors in
specs/claw/recipes.t27andspecs/claw/github_surface.t27. 17 of them are inside the tables' prose strings. The other 24 came from one cause: the table checks only ever read the constant tables, which are correct, so they could never fail under test.rows_filled(g, k, t, c, cl, cmd);every_row_filled()wraps it. Test: one empty cell per column, and an OWNER row with a commandreturn falsetoreturn trueon gate, kind, tool, condition and the OWNER-command checkkinds_unique_in(xs, n);all_kinds_unique(n)wraps it. Test: a repeat at rows 4-5 and at rows 20-21i + 1toi + 2, innerj < nto<=, and thereturn falseon a matchauto_rows_carry(cl, cmd), bound fixed from0..21to0..22. Test: AUTO row 21 with no commandreturn false, and0..22back to0..21rows_filled,surfaces_unique_in,levels_fit_grant, same pattern. Test: a level of 3 on a planned row, on a refused row, and on the owner-only row with and without the yesreturn falseon the filled check, the uniqueness pair, the grantreturn false, and>to>=at an equal grantrow_zero_answers_its_own_lookupsr < 0tor <= 0inclass_of,tool_of,cond_of,gate_ofThe public names keep their signatures. gates.t27 and gates_pins.t27 pass unchanged (20 and 5 tests).
[]const strslices do not lower in t27c, so the parameters are fixed-size arrays ([22]str,[27]u8). A lab probe showed these work in both t27c and t27b.Verification (Railway lab)
t27c test-report: recipes 16 tests, 16 pass; github_surface 18 tests, 18 pass. 0 vacuous passes in both.cmd_ofr < 0tor <= 0: row 0 is OWNER, so its command is already"".while (i < n)to<=: ati == nthe inner loop starts atn + 1and never runs.seal --savefor both specs, thenseal --verifyon all 31 claw specs: 31 match, 0 differ.Closes #10686
🤖 Generated with Claude Code