Skip to content

feat(t27b): the ratchet decides in steward.t27 - #6218

Merged
gHashTag merged 1 commit into
masterfrom
claude/t27b-ratchet-in-t27
Oct 4, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/t27b-ratchet-in-t27

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Closes #6217. Refs #6198, #6063.

This is the second slice of the owner's rule "t27b is written in t27". The per-entry if chain in tri t27b ratchet is now in specs/tri/t27b/steward.t27.

What moved

  • New spec functions: is_pass, entry_code, unlisted, over_cap, ratchet_is_red, with 17 new tests (31 tests and 1 invariant in all).
  • Two new verdict codes: MISSING = 10 and LAB_ERROR = 11. lab_error is a reference verdict the lab really emits and had no code.
  • gen/c/tri/t27b/steward.c is regenerated. t27b_rules.py binds the new functions, and ratchet() now only words the findings.

Evidence

  • t27c test-report: 31/31. t27b test --check: 31/31, invariant held.
  • The generated C is byte-identical to what the t27c Railway lab's master build (bae81ae) produces. That build's gen-python lowers declarations only, not function bodies, so this PR keeps gen-c plus ctypes.
  • Old (master) and new ratchet() agree on all 205 cases: 5 lab runs, each checked against the committed ledger and 40 randomly perturbed ledgers, with perturbed run verdicts. 0 cases differ, and all 9 finding kinds fire.
  • scripts/ci/test_the_t27b_steward_decides_in_t27.py: PASS. New checks cover the ratchet cases, the red set, unlisted and over_cap, and confirm ratchet() keeps no branch of its own.
  • scripts/ci/test_a_t27b_spec_cannot_move_silently.py: PASS. Its mutation control now removes the UNEXPECTED PASS branch from the generated C, and the mutant misses the planted case.

Not done

🤖 Generated with Claude Code

tri t27b ratchet's per-entry if-chain moves into specs/tri/t27b/steward.t27
(entry_code, unlisted, over_cap, ratchet_is_red, is_pass; 31 tests).
gen/c/tri/t27b/steward.c regenerated (same bytes as the t27c lab's master
build); t27b_rules.py binds it; ratchet() only words the findings.
Old and new ratchet agree on 205 cases over 5 lab runs. lab_error gets
verdict code 11. The ratchet test's mutation control now mutates the
generated rules.

Closes #6217
Refs #6198

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

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-04 17:57:58 UTC

Summary

Status Count
Total Open PRs 41
PRs with Failing Checks 28
PRs with All Checks Green 13
READY 12
FAILING 28
PENDING 0
NO CHECKS YET 0

These columns do not partition: 12 + 28 + 0 + 0 = 40, and there are 41 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 commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

Steward note before merge: required checks validate / check-linked-issue / parse-ratchet are SUCCESS. Non-required reds: Corpus ratchet, coverage, duplicate-bodies and gate-topology are red on master too. spec-guards fails on stale seals of other specs (none of them steward.t27) and does not run on master. Check L1 TRACEABILITY fails only its L2 step, because gen/c/tri/t27b/steward.c is modified. That file is t27c gen-c specs/tri/t27b/steward.t27, byte-identical (sha256 b103e280... at the 30-test revision) to the output of the t27c Railway lab's master build bae81ae, and it passes the spec's 31 tests in loop-tools-gate. The L2 step cannot tell a regenerated file from a hand edit; that gap is filed separately.

@gHashTag
gHashTag merged commit c129a5b into master Oct 4, 2026
21 of 27 checks passed
@gHashTag

gHashTag commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

Follow-up: the merged gen/c/tri/t27b/steward.c (31-test revision, sha256 89770fdc...) was regenerated after merge by the t27c Railway lab's master build. /data/target/release/t27c gen-c gives the same sha256.

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.

t27b steward: the ratchet decides in specs/tri/t27b/steward.t27

1 participant