Repository navigation
feat(t27b): tri t27b reduce -- ddmin repro reducer with a reference guard (Closes #6445) - #6830
Merged
Merged
Conversation
…uard (Closes #6445) `tri t27b reduce SPEC [--family X | --disagree]` runs delta debugging over declarations, then statements, then expressions. Every candidate is parsed by t27c first. Every decision is specs/tri/t27b/reduce.t27 (gen-c); the Python is I/O plumbing, an owner-approved-foreign exception (debt #6198). - reference guard first: REFERENCE-NOT-PASS / REFERENCE-RAN-NO-TEST are never kept; a spec that fails it is refused (Q38: a reference bug). - specs/isa/ternary_encoding.t27 360 -> 9 lines, family "ExprBinary(value ignored) statement", fixture cli/t27b/tests/reduced/exprbinary_value_ignored_statement.t27. - tri t27b next links each lane's repro (`repro:` / json `repro`). - --only-hash bisect not done (needs Rust JIT changes). Refs #6488 #6063 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 6, 2026 13:06
Contributor
This was referenced Oct 6, 2026
Merged
Merged
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.
Closes #6445
Refs #6488 #6063
What
tri t27b reduce SPEC [--family X | --disagree]is a delta-debugging (ddmin) reducer.t27c parsefirst, so the search spends no time on files that do not parse.t27c test-report) passes and runs at least one test, and t27b is still blocked with the same first-blocker family. With--disagree, a reference/t27b test disagreement counts instead.cli/t27b/tests/reduced/<family-slug>.t27. Its header names the family, the origin spec, line count and commit, the reference verdict, and the command that regenerates it.--reference-cache. Each candidate is written to the spec's own path, so the cache key stays stable.tri t27b nextnow prints arepro:line under every lane that has a fixture (reproin--json).Own language first
specs/tri/t27b/reduce.t27. That covers the answer and the reference guard, the chunk arithmetic, the level order, the candidate budget and the 20-line goal. The spec has 13 tests and an invariantguard_first.gen/c/tri/t27b/reduce.cist27c gen-coutput. It is byte-identical to the Railway lab's master t27c (sha256656176e2fbc1717f).scripts/tri_loop/t27b_reduce.py(632 lines) and thet27b.pywiring only do I/O: running parse and corpus, splitting the source into spans, and writing the file.Owner approval: the owner put the label
owner-approved-foreignon #6445 on 2026-10-06 and said (translated) "add the label yourself and do the work". The new Python file is listed intools/policy/foreign-exceptions.txt, the debt is #6198, and the AGENTS.md debt line counts are updated.Evidence
1. Blocked spec reduced under 20 lines, family kept.
specs/isa/ternary_encoding.t27, one of the 11 files in the top laneExprBinary(value ignored) statement.cli/t27b/tests/reduced/exprbinary_value_ignored_statement.t27. The reducer re-judged the file with its header before writing it.A second run reduced
specs/compiler/zig_value_ignored.t27from 23 to 10 lines with the same family.2.
tri t27b nextlinks the repro for rank 1.3. Negative control: the reference guard. The input is a copy of zig_value_ignored with one function returning an undeclared name. t27b still blocks on the same family, but the reference does not pass.
specs/igla/race/cordic.t27is refused the same way. Inside the spec, the testguard_firstand a mutation check show that removing the guard is caught.4. Gates.
scripts/ci/test_a_t27b_tick_reads_before_it_acts.py: PASSscripts/ci/test_the_t27b_steward_decides_in_t27.py: PASS (thenext_lanesbody is unchanged)scripts/ci/loop-tools-tracked.sh: PASStools/check_now_entry_shape.py: OKThe ledger
docs/reports/t27b_expectations.jsonis untouched, so no ledger move is needed. No cargo build ran on the Mac.Not done
--only-hashbisect: it needs changes to the Rust JIT, so it is left for a follow-up.🤖 Generated with Claude Code