Skip to content

feat(tri): tri t27b status/doctor -- the t27b steward reads its state before it acts - #6114

Merged
gHashTag merged 3 commits into
masterfrom
claude/tri-t27b-doctor
Oct 4, 2026
Merged

gHashTag merged 3 commits into
masterfrom
claude/tri-t27b-doctor

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Summary

This adds tri t27b status and tri t27b doctor, in scripts/tri_loop/t27b.py. The t27b steward (epic #6063) has been reading seven sources by hand at the top of every tick, and this command reads them all in one pass. It writes nothing, needs no compiler, and needs no network in fixture mode.

On 2026-10-04 those hand reads caused four slips. Each one is now an anomaly code:

slip code
A tick saw a live subagent's mid-merge worktree, decided it was abandoned, and sent a second subagent into the same path. That subagent reverted the first one's merge. WORKTREE-MIDOP, which names the processes whose working directory is inside the worktree
railway whoami said Unauthorized after the owner had logged in, because the first railway on PATH was 4.5.4 RAILWAY-OLD-CLI
A branch's lab numbers were quoted as master's LAB-NOT-MASTER, LAB-BEHIND
A 3-hour local reference run kept the Mac at load 700 while the lab produced the same number in 321 s LOCAL-REFERENCE

There are 10 more codes, all listed in the module docstring. They cover lab mismatches and errors, PR conflicts, red required checks, dead claims and a quiet ledger. GitHub's search for t27b also returns PRs that only mention t27b in passing: live, it returned 16, and 2 were t27b work. So a PR only counts if t27b is in its title or branch name, or it refers to #6063 or #5977.

Test

scripts/ci/test_a_t27b_tick_reads_before_it_acts.py is wired into loop-tools-gate.

  • The healthy fixture produces 0 anomalies and exits 0. It is the negative control for every code.
  • The broken fixture produces each of the 16 codes exactly once and exits 1.
  • With lab.json missing, the doctor reports LAB-UNREADABLE and makes up no other lab finding.
  • The worktrees in the test are real git repositories, one of them with a merge conflict, and the test checks their git state is unchanged afterwards. A control shows that an added file does change that state.
  • 25 of 25 checks pass. As a mutation check, I broke the CONFLICTING check and the railway version threshold in the tool, and the test went red with 3 failures.

tri loop-help used to print an empty description for t27b, because its pattern did not allow digits in a helper name. It now allows them.

Live run (2026-10-04, before this PR)

The doctor found 10 anomalies, and each was real: the lab on claude/t27b-railway-lab and behind master, 4 PRs CONFLICTING, /tmp/t27b-cast-merge mid-merge with no process inside, 2 dirty worktrees, and railway 4.5.4 first on PATH. The filter that drops PRs only mentioning t27b was added after that run, so 2 of the 4 conflicting PRs (#5970, #5947) are not t27b work and the doctor no longer reports them. The other 2 were #6098 and #6102; #6102 fails the filter too and drops out, leaving only #6098.

Closes #6112

🤖 Generated with Claude Code

… before it acts

One read-only loop helper replaces the seven hand reads at the top of a
t27b steward tick: lab latest.json, master tip, open t27b PRs with their
required checks, the claim, the ledger, the /tmp/t27b-* worktrees (with
the processes inside them), local processes and the railway CLI version.
doctor prints one anomaly code per finding; each code is a slip the loop
made by hand on 2026-10-04. Fixture-tested in loop-tools-gate with real
git worktrees and a healthy negative control.

Closes #6112

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 15:42:35 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 42
PRs with All Checks Green 8
READY 6
FAILING 42
PENDING 0
NO CHECKS YET 0

These columns do not partition: 6 + 42 + 0 + 0 = 48, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=32e37152eb23 != 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 and others added 2 commits October 4, 2026 22:58
The loop-tools gate gained one step, "The t27b steward reads its state
before it acts", which runs the new fixture test. That is the only number
that moved; cli-tri's "No census moved without saying so" was red on it.

Closes #6112

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 16:08:59 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 44
PRs with All Checks Green 6
READY 4
FAILING 44
PENDING 0
NO CHECKS YET 0

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=32e37152eb23 != 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).

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: the steward's tick card and anomaly doctor in one read-only command

1 participant