Issue States
See State vs Status for an explanation of the difference between state and status.
States
| State | Color | Terminal | Meaning |
|---|---|---|---|
New | Gray | No | Just created, not yet started |
Research | Blue | No | Research stage running or pending |
Implement | Purple | No | Implementation in progress |
Review | Amber | No | Awaiting code review |
Rework | Red | No | Reviewer requested changes |
Deploy | Green | No | Approved, awaiting merge/deploy |
Complete | Teal | Yes | Done — issue is closed |
When an issue reaches Complete, isClosed is set to true and a closedAt timestamp is recorded. Issues in a terminal state cannot be transitioned to another state except by reopening (back to Implement).
Valid transitions
The table below covers human-initiated moves in the UI. Signal-driven jumps bypass this table — when a skill emits a flux:signal with hold/already_complete, the orchestrator calls stateOverride() directly and transitions the issue to meta.targetState regardless of whether that transition appears here.
| From | To | How |
|---|---|---|
New | Research | Pipeline trigger or manual |
New | Implement | Manual (skip research) |
Research | Implement | Research stage passes |
Implement | Review | Implement stage passes |
Implement | Research | Manual |
Review | Rework | Review stage fails |
Review | Deploy | Review stage passes |
Rework | Review | Rework stage passes |
Deploy | Complete | Deploy stage passes |
Complete | Implement | Manual reopen |
Statuses
| Status | Meaning |
|---|---|
Open | Active, not currently running |
Queued | In the queue, waiting for the daemon to pick it up |
Running | A stage is actively executing |
Blocked | Needs human intervention (skill emitted blocked verdict or needs_human signal) |
Completed | Most recent pipeline run finished |
Status is set automatically by the daemon. It is not user-configurable.
Priorities
| Priority | Weight | Meaning |
|---|---|---|
Critical | 100 | Highest urgency |
High | 200 | |
Medium | 300 | |
Low | 400 | Lowest urgency |
Lower weight = higher priority in queue ordering. The daemon picks up higher-priority runs first.