Skip to content

feat(t27b): tri t27b next ranks the next lane from reference passes only (Closes #6317) - #6318

Merged
gHashTag merged 1 commit into
masterfrom
claude/t27b-next
Oct 5, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/t27b-next

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Closes #6317
Refs #6063

What

tri t27b next -- the reference-backed lane picker. Skill slip Q38 as a tool: the ExprBinary-statement lane (#6316) was picked from t27b corpus --blockers without the reference, and all its files fail in the reference, so it moved the counted pass number by 0.

It reads the lab's latest.json (or --fixture DIR; --json, --top N) and:

  • ranks blocker families counting ONLY files where reference == pass and t27b == blocked: sole (the only blocker: unlocks on its own) above first (the first blocker);
  • prints the honest denominator: reference passes split into t27b pass / pass_vacuous / blocked / other, and t27b pass over reference passes with tests;
  • lists families whose files fail in the reference separately, unranked as lanes: reference bugs to file.

Where the decisions live

specs/tri/t27b/steward.t27 (AGENTS.md "t27b is written in t27"):

  • lane_kind(reference, t) -> u8: 0 not counted, 1 lane, 2 reference bug (a lab error / not run counts nowhere);
  • lane_score(sole, first) -> u32 = sole * 1000 + first;
  • with_tests(reference, vacuous) -> u32 (never wraps).

13 new tests, 104 in all. gen/c/tri/t27b/steward.c was generated on the t27c lab (/data/target/release/t27c, source 65e6ddb), fetched between B64BEGIN/B64END markers, sha256 b3798b34ffb96611dd06910789025c625add3a594ae844cbee1bf7613eb05712 equal to the lab's sha256sum (Q34); the lab's test-report passes 104/104. The only non-additive change in the C is the test count line. scripts/tri_loop/t27b_rules.py wraps the three functions; t27b.py next only fetches, counts and sorts by the score the spec returns. The counting plumbing is debt under port epic #6198 (AGENTS.md line count for t27b.py updated: 894 -> 1481).

Live output (lab run 26c447a, master)

lab run 26c447ad8 (master), finished 2026-10-05T00:40:42Z
reference passes 720: t27b pass 307, pass_vacuous 271 (0 tests), blocked 141, other 1
t27b pass 307 / 449 with tests (68.4%)

next lane -- 141 files where the reference passes and t27b is blocked
  rank  sole  first   any  family   (sole: unlocks on its own; order: steward.t27 lane_score)
     1     9      9    11  ExprCall(@compileAssert)
     2     5      6     6  ConstDecl(str field)
     3     4      9    10  StmtExpr
     4     4      6    14  ExprLiteral(char literal)
     5     4      6    10  ExprIf
     6     3      9    11  type [N]T
     7     3      7     7  ExprLiteral(negative literal)
     8     3      3     7  ExprUnary(try) statement
     9     3      3     4  ExprCall(std.*)
    10     3      3     4  StmtFor(range)
  ... 39 more families (--top N)

reference bugs to file, not lanes -- 477 files t27b blocks where the reference does not pass (Q38)
        sole  first   any  family
           4     24   192  ExprArrayLiteral
           6     17   178  ExprCall(undeclared fn)
           0      0   155  ExprCall(rejected fn)
           2     17    77  ExprCall(method)
           3     10    73  type mismatch
           2     64    71  type f32
           1     31    59  type ?T
           2     39    55  type (undeclared)
           1      3    52  StmtLocal
           0      0    50  ExprCall(@setEvalBranchQuota)
  ... 125 more families (--top N)

Note the reference-bug list: ExprBinary statement has 11 sole files there (the #6316 lane), none in the lane list.

Tests

  • python3 scripts/ci/test_the_t27b_steward_decides_in_t27.py -- PASS (now expects "104 tests passed"; loader checks for lane_kind/lane_score/with_tests; a structural check that next_lanes calls the spec and holds no == "blocked" or 1000 of its own)
  • python3 scripts/ci/test_a_t27b_tick_reads_before_it_acts.py -- PASS (new next fixture: sole outranks a wider first-blocker family, reference failures listed apart, lab_error counts nowhere, denominator 2 / 8 = 25.0%, a summary-only run is UNREADABLE rather than an empty ranking)
  • test_a_t27b_spec_cannot_move_silently.py, test_the_t27b_gen_check_asks_the_lab.py, test_the_t27b_lab_heals_its_clone.py -- PASS
  • Mutation control: swapping sole and first in the generated C fails next_sole_outranks_first.
  • NOW entry checked with tools/check_now_entry_shape.py.

🤖 Generated with Claude Code

…nly (Closes #6317)

Refs #6063. Skill slip Q38 as a tool: the ExprBinary-statement lane (#6316)
was picked from blockers without the reference and moved the counted pass
number by 0. `tri t27b next` reads the lab's latest run and ranks blocker
families by files where the reference passes and t27b is blocked (sole above
first), prints the honest denominator (t27b pass over reference passes with
tests), and lists reference-failing families apart as bugs to file.

The decisions are steward.t27 `lane_kind`, `lane_score`, `with_tests`
(13 new tests, 104 in all). gen/c/tri/t27b/steward.c was generated on the
t27c lab (master t27c, src 65e6ddb), sha256 b3798b34ffb9..., matching the
lab's sha256sum; the lab's test-report passes 104/104.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-05 00:45:04 UTC

Summary

Status Count
Total Open PRs 45
PRs with Failing Checks 33
PRs with All Checks Green 12
READY 11
FAILING 33
PENDING 0
NO CHECKS YET 0

These columns do not partition: 11 + 33 + 0 + 0 = 44, and there are 45 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=8597b6ded596 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 241d7a9 into master Oct 5, 2026
25 of 27 checks passed
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.

tri t27b next: the reference-backed lane picker (slip Q38 as a tool)

1 participant