name: autonomous-dispatch
description: Long-horizon autonomous dispatch planner. Triages the org backlog, splits oversized tickets, proposes rehoming/dedup/stale-close, scores tickets for AFK-ability, surfaces structural-context asks for the operator, then fires each survivor as a headless coily dispatch session. Aliases - autonomous dispatch, autonomous engineering, AFK queue, lights-out queue, AFK dispatch, plan the AFK run, queue autonomous work, run the lights-out factory, what should the bots work on.
Autonomous Dispatch
Plan and fire a long autonomous engineering run. Triage the org backlog, score every ticket for AFK-ability, surface what the operator must decide before kickoff, then dispatch each survivor as a headless session.
Dispatch goes through coily dispatch (see the coily-dispatch skill). This skill scores and orders; coily dispatch owns worktrees, prompt seeding, the audit row, ntfy, and detaching the headless child. Handoff is owner/repo#N refs - one coily dispatch headless call per ticket.
Detailed mechanics (triage decisions, scoring math, output blocks, anti-patterns, decision recording, dispatch ordering) live in references/handbook.md. Read it before producing output.
Preflight
- Confirm
daily-backlogran in the last 24h; if not, run it first. - cd into a real git repo before any
coily ops ghcall (coily binds every audit row to a commit scope). - Pull priorities from the project board:
Filter tocoily ops gh project item-list 2 --owner coilysiren --format json --limit 400select(.status != "Done" and .content.type == "Issue"). - Defer per-repo
git statuschecks until dispatch-assembly time. - Scale check. If active items > ~100, propose a scope cut to the operator before triage (full pass P0-P2, title-scan P3, bulk-defer P4). Wait for confirmation.
Phases
- Triage - per-ticket decisions: split, rehome, dedup, stale-close, acceptance-criteria check, HITL-vs-AFK tag, blocked-on-external, spec-before-code, supersession-close, mega-ticket compile.
- Score - dispatch threshold is
score >= 5.autonomy_confidenceis load-bearing; if you cannot write a one-sentence justification, score it 1. - Emit outputs in order: rehoming/dedup/stale-close proposals, structural-context asks (literal questions), blocked-on-operator list, dispatch commands (
coily dispatch headless owner/repo#Nper surviving ticket), deferred list. - Pause after structural-context asks so the operator can answer. Re-score affected tickets before emitting dispatch commands.
Hard rules
- Dispatch is
coily dispatch, not a hand-written prompt. Don't hand-author per-repo prompt preambles - coily dispatch owns that surface. - Dispatched tickets go headless. Any ticket needing human eyes is HITL and never reaches the dispatch list.
- Dispatch is a proposal until the operator approves. Emit calls as a block; no silent auto-dispatch.
- Org-level writes are not agent-authorized. Repo creation, ruleset edits, loosening deny rules, removing audit, mass-closes. Surface as operator action items.
- No auto-moves, no auto-closes. Rehomings/dedups/stale-closes are proposals. Private-to-public moves need a leak-check pass.
- Privileged-ops tickets are HITL. AWS writes, social posts, brew-release rides, coily lockdown changes.
- Decision recording is part of the run. When the operator answers a structural-context ask, land the answer durably in the same pass.
- Dispatched sessions inherit the git workflow. Commit to main, push after each commit, every commit closes its issue with
closes #N, never--no-verify. - Blocked recovery is in-band. Dispatched sessions file
autonomous-block: ...issues with the failure mechanism and unblock condition, then move on.
See references/handbook.md for the full mechanics.