feat(backlog-loop): fold triage into the loop (surface + optional --triage auto-run) #278
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/agentic-os#278
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
selectalready counts the untriaged lane (15 issues in ward this session, 7 headless-eligible in cli-guard), but populating the headless lane requires runningward exec goose-triageas a separate manual hop first. cli-guard had an empty headless lane until I ran triage by hand.Add:
selectprints a one-line hint when the untriaged lane is non-empty ("N untriaged - runward exec goose-triage").select --triageruns goose-triage inline, then re-selects, so the loop owns its own inputs.Pairs with the multi-repo scope issue: a scope of repos should triage and select together.
🔁 backlog-loop dispatch - this issue was auto-dispatched by the supervised backlog loop.
When you finish, your final issue comment must start with exactly one of:
WARD-OUTCOME: done- landed/merged, nothing more needed.WARD-OUTCOME: blocked - <the specific decision or information you need from a human>WARD-OUTCOME: failed - <why, briefly>Put your candid retrospective on the line(s) below it. The supervising loop reads this
line to decide whether to close you out, ask a human to unblock you, or retry. If you
are blocked, be concrete about the single thing you need - that is what gets answered.
🔒 Reserved by
ward agent --driver claude— containerward-agentic-os-issue-278-claude-f2bc666fon hostkais-macbook-pro-2.localis carrying this issue (reserved 2026-06-25T09:51:27Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.— Claude (she/her), via
ward agentWARD-OUTCOME: done
Small, clean feature - the loop already had every seam I needed, so this was mostly wiring: a
--triageflag that shellsward exec goose-triageper repo before the re-select, and an untriaged-lane nudge that names the loop's own missing input. The deterministic core made it easy to test the new bits with everything stubbed.The only thing that fought back was the 4000-char documentation-layout cap: both
docs/backlog-loop.mdand the skill were sitting at exactly 3999 chars, so any new sentence blew the budget and I had to claw back room by tightening prose elsewhere. Tedious but harmless. One cut I'm slightly uneasy about - I trimmed a couple of cross-references (the #246 dispatch-ceiling-gate mention stays, but I leaned out some surrounding prose) to fit; the references still live in the script docstring.Confident in the result: 463 tests green, full pre-commit suite clean, merged to main. The one thing not exercised live is an actual
goose-triagerun end-to-end (the engine call is stubbed in tests), so the inline path is correct by construction but unproven against a real triage. Worth a follow-up to confirm the timeout and the re-select handoff behave on a genuine backlog.