You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
tri t27b watch: merge a stacked t27b PR chain, decided in steward.t27 #6285
The steward merges a stack of t27b PRs (#6247 -> #6249 -> #6254 -> #6258 on 2026-10-04) with throwaway Python watchers under /tmp. They are not in the repo, so the next cron tick or a new session cannot reuse them, and one of them was wrong: watcher s11 skipped the retarget of #6254 when a single tri t27b ready read failed, then stopped at RETARGET (skill slip Q33). The decision "what to do with this PR now" lived in an untracked script, not in the steward's spec.
Goal
tri t27b watch N... merges a stack in order: merge on READY, wait on WAIT, retarget to master once the stacked parent merged and bring master in, stop and report on anything red. The decision is a function in specs/tri/t27b/steward.t27; Python only reads GitHub and runs the action.
Acceptance criteria
watch_action(verdict, parent) in specs/tri/t27b/steward.t27 with tests for every verdict, gen/c/tri/t27b/steward.c regenerated by t27c gen-c and equal to the t27c lab's output.
The parent state is read from gh pr view --json baseRefName and the parent PR's state, never inferred from a failed read (Q33). An unreadable read waits and retries; it never skips an action.
Bringing master in is gh pr update-branch (a merge commit on the PR branch, no force-push).
It merges only with gh pr merge --merge on READY, never --admin or auto-merge.
--fixture DIR --once prints the action without running it; a CI test covers merge, wait, retarget, stop and done.
Boundary
specs/tri/t27b/steward.t27, gen/c/tri/t27b/steward.c, scripts/tri_loop/t27b.py, scripts/tri_loop/t27b_rules.py, scripts/ci/test_*t27b*, one docs/now entry.
Activity
docs(t27b): watch cites skill slip Q33, not Q30 (a cron tick took Q30…
Merge pull request #6287 from gHashTag/claude/t27b-watch