meta: sibling sweeps are asserted rather than measured
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 70/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- documentation
Research direction
Read .claude/rules/grammar-dispatch.md to see the current sibling-sweep requirement and docs/development/lessons_learned.md lesson #84. Update the rule to require paste-able measurements (command and output per language) instead of claims, and ensure sweeps cover the whole predicate membership. Done when the rule explicitly demands measurable evidence and references the aging-premises pattern.
Written by the indexing model from the issue text.
Description
Summary
A meta-observation from the 2026-09-13 batch (#1420, #1406, #1422, #1421,
#1407, #1410), worth recording because the pattern is about how these issues
get found and filed, not about any one fix.
Five of the six fixes were correct in the language they targeted and
unswept to at least one sibling that shares the defect. Each issue carried
a sibling-sweep section; each was either absent, incomplete, or — twice —
actively wrong.
The seven gaps the batch left behind
| gap | issue | how it surfaced |
|---|---|---|
Ruby subject-less case double-counts |
#1453 | #1421's body said Ruby was swept clean; two agents independently measured otherwise |
| Java 21 / Rust / Python match guards | #1454 | #1422's own "Rust is the convention" argument is false for Java |
| Elixir / Ruby guards | #1454 | whole-branch review |
Objective-C @available |
#1457 | #1410 surveyed this neighbourhood and excluded the wrong node |
| Comment in a condition slot zeroes it | #1455 | #1422 wrote its own slot extras-safe and left the siblings |
goto case counts as a decision |
#1451 | #1420 had to enumerate what emits Case |
is_call vs abc.branches |
#1456 | #1406 |
Plus three found within the batch and fixed there, all of the same class:
C#'s catch_filter_clause (#1422's body named only when_clause), C#'s bare
is type test (the Kotlin half landed in the same branch and the C# half did
not), and Kotlin's infix and / or / xor.
What is actually going wrong
.claude/rules/grammar-dispatch.md already closes with "when you fix one
language, sweep the rest", and every issue body has a sibling-sweep heading.
The rule is being followed as prose and not as a procedure:
- Sweeps are asserted rather than measured. #1421's body listed four
languages as clean "measured as part of #1383 … so no need to re-derive".
Ruby was not clean. Nothing distinguishes a measured row from a remembered
one once it is written down. - The sweep is scoped to the construct the issue names, not to the
predicate being changed. #1410 swept for numeric literals and missed
available_expression, which is not numeric but occupies the same slot in
the same set. - Two fixes in one batch can share a defect and not see each other. The
C# and Kotlin halves of the bare-type-test gap landed in the same branch,
four commits apart, and only a whole-branch read connected them.
Suggested changes
- Require a paste-able measurement, not a claim. A sibling-sweep section
should carry the command and its output per language, the way the
measurement tables in these issue bodies already do. A row without numbers
should read as un-swept. - Sweep the predicate's whole membership, not the construct. When a
terminal-kind set or dispatch arm changes, enumerate what else can occupy
that slot in each language sharing the set —bca dumpon a fixture per
candidate production, not a grep for the construct. - Make the batch-level cross-check explicit. The whole-branch review found
two of the three within-batch gaps; per-issue review found neither. That
step already exists inbatch-fix; this is evidence it should not be
skipped and should specifically look for two fixes that share a predicate. - Re-verify a quoted sweep before building on it, the same way
AGENTS.mdalready requires for a deferred issue's premises. The failure
mode is identical: the claim ages, and nothing about reading it says so.
Related
.claude/rules/grammar-dispatch.md, closing section.docs/development/lessons_learned.md— lesson #84 (deferred premises age)
is the same shape one level up.
- Dominant language
- Rust
- Stars
- 32
- Forks
- 3
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 52
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dekobon/big-code-analysis
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
dekobon/big-code-analysis#1644 ·
Maintainers usually reply within 1 day
-
bug python vcs
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
dekobon/big-code-analysis#1624 · 1 comment ·
Maintainers usually reply within 1 day
-
cli documentation
Difficulty 1/5 Under an hour Newbie friendliness 85/100
dekobon/big-code-analysis#1485 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 85/100
dekobon/big-code-analysis#1484 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 85/100
dekobon/big-code-analysis#1444 ·
Maintainers usually reply within 1 day
All issues in dekobon/big-code-analysis
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
foxglove/mcap#1907 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
good first issue help wanted r-feature
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
servo/rust-smallvec#792 ·
Maintainers usually reply within 1 day
-
A-Unicode C-bug P-low
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
rust-lang/rustfmt#7210 · 1 comment ·
Maintainers usually reply within 1 day
-
callTracer with withLog: true includes logs from a reverted top-level call (diverges from geth)Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
paradigmxyz/revm-inspectors#570 ·
Maintainers usually reply within 1 day