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
PR state drives orders: a red required check reaches its owner; PRs carry orders; board derived from PRs #3541
The slop: "what work is current, and what state is it in" has several writable copies (the commander's board file, Core orders, PRs, issues, chat), and the PR's live state reaches nobody mechanically. Result, 2026-10-27: #3535 sat with mergeStateStatus=BLOCKED (debt-src and debt-tools red: InheritanceCleanupPhase no longer holds, PlainStrIdAnnotation, StringSubscript ×2, StringIdentity, TypeErrors) while auto-merge was queued and review-verdict was green. No agent knew; it surfaced only because Tristan asked "how long before 3535 lands". The rules cover green ("the tick a PR goes green it is enqueued") but nothing covers red.
Across Tristan's 8 repos at the same time: 27 open PRs, 20 drafts, 17 untouched for over a week; 6 of the 14 stalled ones end in an "agent stopped at the usage limit" checkpoint commit nobody resumed (triage: claude-nra, 2026-10-27).
Shape (Tristan's direction, 2026-10-27): an order is an order; one PR carries one or more orders (batching is a judgment: "think like a compiler, time is a currency"). The PR plus its linked issues is the record of current work; everything else derives from it.
A red required check reaches its owner mechanically. The moment a required check on a PR that carries an open order fails, the carrying order's holder (and the commander) get one bus message naming the check, the failing measure lines, and the head; repeated failures of the same head don't repost (post on change). Green → enqueue stays as is.
Each order names the PR that carries it (many-to-one); an order with no carrying PR shows as unbatched.
The board/HUD derives from open PRs, their checks, their linked issues and the orders they carry — no hand-written board table.
A draft PR with no commit within its order's timer surfaces as stale against its owner: commit, or close with a one-line reason on its issue. A draft PR is a commitment ("somebody is fixing these; they close when it merges"), never a silent placeholder.
Correction after reading the source: the red-check rule already exists and is live. standing_rules.py:955-995 scans each PR's merge_blocks (from statusCheckRollup, todos.py:1119-1148) and posts the block, its remedy and "order ", but only for PRs linked to the commander's orders (pulls.linked_among(ordered, repo)). #3535 was opened by claude-nra outside any order, so the heartbeat had nothing to look at. The gap is work outside the order system: a PR with no carrying order is invisible to the heartbeat. First item changes to: every open PR by a fleet thread either carries an order or shows as unordered on the board, and its blocks reach its author.
Pattern: 6 of the stalled openhcs PRs end in an "agent stopped at the usage limit" checkpoint from the 2026-10-12 consolidation burst, never resumed.
Full table: claude-nra job tmp pr-triage.md. These are exactly the PRs this issue's "unordered/stale PR surfaces against its owner" item must catch.
Draft pushes don't pay full CI. On 2026-10-27, comms_threads summarizes each sent message once #3536 was pushed about five times (review send-backs), and each push reran every check on the new head. The early-push rule exists so work never lives only locally, not so every push buys a full CI run. Heavy checks (debt-src, debt-tools, suites) run when a PR is marked ready and when an integration batch builds; draft pushes run only the cheap checks. Paired practice: the reviewing fork reads the diff in the worktree before the first push, so send-backs cost a commit, not a CI run.
Deliver a PR's blocks to the threads working on it, not only to the commander.The heartbeat sees open requests no order links, and names who works on them #3547 names branch workers on the board, but the heartbeat packet still targets only the commander (CommanderUpdate.send → self.commander.name, task_attachments/commander_pings.py:287; per-commander loop at commander_heartbeat.py:119). Shape (commander, bus efe7a1500d5b): use the existing notification publication owner and keep per-recipient changed-state evidence there; don't parse board text for names; no second timer.
Activity
trissim commentedon Oct 27, 2026
Correction after reading the source: the red-check rule already exists and is live.
standing_rules.py:955-995scans each PR'smerge_blocks(fromstatusCheckRollup,todos.py:1119-1148) and posts the block, its remedy and "order ", but only for PRs linked to the commander's orders (pulls.linked_among(ordered, repo)). #3535 was opened by claude-nra outside any order, so the heartbeat had nothing to look at. The gap is work outside the order system: a PR with no carrying order is invisible to the heartbeat. First item changes to: every open PR by a fleet thread either carries an order or shows as unordered on the board, and its blocks reach its author.trissim commentedon Oct 27, 2026
Snapshot for the board (claude-nra triage, 2026-10-27, read-only, then verified): 21 open PRs not from today across Tristan's 8 repos.
validatefailure is unrelated), ObjectState#59 (re-run one cancelled macOS job)..scratch/files), P270: fix/bounded-core-observation #1241 (DL2 A), P270: refactor/native-thread-settings #1240 (DL1 arraybridge 0.5.1, blocks DL3), P270: checkpoint/core-read-locks #1239 (OS4 ObjectState 4.0.0), P270: feat/commanded-goals-slice-one #1237 (CP1 CellProfiler plugins), P270: refactor/native-formbridge #1236 (DL3), P270: checkpoint/core-native-runtime #1235 (DL4; check overlap with merged P259: narrow operational failure handlers and propagate unknown faults #1231); DQDock Add durable coordination, goals, claims and read state to agent-comms #1-Retry Windows snapshot replacement and fix the provider retry test #4 (each owes a docking smoke); NRA#16 (12 commits not on main by patch; NOT superseded).Full table: claude-nra job tmp
pr-triage.md. These are exactly the PRs this issue's "unordered/stale PR surfaces against its owner" item must catch.trissim commentedon Oct 27, 2026
The heartbeat sees open requests no order links, and names who works …
trissim commentedon Oct 27, 2026
CommanderUpdate.send→self.commander.name,task_attachments/commander_pings.py:287; per-commander loop atcommander_heartbeat.py:119). Shape (commander, bus efe7a1500d5b): use the existing notification publication owner and keep per-recipient changed-state evidence there; don't parse board text for names; no second timer.trissim commentedon Oct 27, 2026