--- name: run-github-project description: Use when asked to set up, review, or operate a repository's GitHub Project workflow, including ready claims, role-labelled human work, unknown remote mutation outcomes, Todo triage, epics, checkpoints, next-issue execution, or an authorized drain. compatibility: "External skill providers are mode-specific: review and setup require none; execution, triage, and Wayfinder lanes use the providers documented in references/workflow-providers.md." disable-model-invocation: true --- # Run GitHub Project ## Core principle Use `Backlog` → `Todo` → `Ready to implement` → `In progress` → `Done` as the default board lanes. `Todo` queues planning. Resolve lane names in this procedure and its references through the trusted binding's verified names and option IDs; preserve existing configured names. Current column membership supplies ticket authorization; never inspect column transition history for permission, plan freshness, or a Ready handoff. Backlog is read-only: never claim, plan, triage, close epics, resume cleanup, or promote its items. Only humans move items out of Backlog. Continue automatic work only in Todo and later applicable columns, subject to ownership, dependencies, plan integrity, and the current run's operation-specific grants. A verified ticket handoff covers in-scope local implementation, tests and repairs. The ticket lead may work solo or delegate when justified; retain one independent integrated-candidate review and reuse valid evidence under `deliver-spec`. The Project is the live control plane. Apply these invariants throughout: 1. **Live authority:** claims, selection, and finish decisions require complete, fresh GitHub and Project state; cache and partial reads are hints only. 2. **Controller ownership:** only the controller claims, assigns, mutates shared Project state, merges, closes issues, and reconciles. A ticket agent owns its worktree, branch, and non-merge PR mutations only. 3. **Unknown outcomes:** reconcile a failed or timed-out remote mutation before retrying or reporting success. 4. **Preservation:** retain blocked, dependency-gated, and role-labelled human work in its authoritative frontier or partial-drain report; never change state merely to make the queue appear empty. Preserve verified plan state through contract-preserving replans, return true human work to a decision pause, and in `drain` pair occupied slots with warm worktrees and persistent ticket agents. Park verified authority pauses and qualifying terminal required-CI claims outside capacity before refreshing the control plane. Before dispatch, apply the execution controller's [unattended readiness](references/execution-controller.md#unattended-readiness) pass. Preserve required qualification and bounded grants while independent runnable work continues. ## Select the mode - `review`: inspect or explain only; finish under the review contract. - `setup`: configure or validate the binding only; finish under the setup contract. Neither mode dispatches Project work or requires execution dependencies. - `next`: default execution; process at most one selected issue. - `drain`: only on explicit drain/run-all/repeat/until-empty request; no skill-defined ticket cap. A merge pause remains resumable work. A named Wayfinder child remains `next`; it grants neither drain authority nor a claim bypass. Before any mode-specific action, read the matching mandatory lane: | Mode | Mandatory reference | | --- | --- | | `review` or `setup` | [Review and setup](references/review-and-setup.md) | | `next` or `drain` | [Review and setup](references/review-and-setup.md) for binding validation, then [execution controller](references/execution-controller.md) and [ticket lifecycle](references/ticket-lifecycle.md) | For execution, read [workflow providers](references/workflow-providers.md) before preconditions; it is authoritative on required, conditional, optional providers, sources, installation commands, and lane-specific fallback. Never install a provider implicitly. Read all providers and specialist contracts required by the execution-controller lane before their relevant action. Read [run authority and ticket pauses](references/authority-and-pauses.md). Use `next --auto-merge` or `drain --auto-merge` to grant merge authority for this invocation. Without it, deliver to ready PRs and pause only their merges while the board continues. When the trusted configuration enables agent profiles, read [agent routing](references/agent-routing.md) before assigning a planner, ticket agent, or helper. For `drain`, read [drain scheduler](references/drain-scheduler.md) completely before drain queue work. For `next` or `drain`, read [review contracts](references/review-contracts.md) completely before acceptance work. ## Final report Use the selected lane's terminal state and report contract. Lead an execution report with the outcome, completed tickets, work still moving, exact blockers, and the user's next action, if any. Link to durable issue, PR, and checkpoint evidence instead of repeating unchanged queries or no-op events. Keep mode, capacity, configuration digest, live-query and authority evidence, routing ledger, frontiers, parked/triage/reconciliation outcomes, and per-ticket selection, lease/plan, branch/commit/PR, verification/review, reconciled mutation/merge, and preserved or cleaned state available in a concise appendix when needed to audit a decision or resume work. Include changed unattended readiness blockers, complete-refresh/invalidation reasons, and observed planning/implementation/repair/review/CI intervals and capacity/resource waits under the [timing procedure](references/drain-scheduler.md#phase-timing-and-stalls). Distinguish overlapping phase durations, total wall time and unknown timing; link repeated-cycle diagnosis and the bounded next action without claiming unmeasured savings.