mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
151 lines
9.2 KiB
Markdown
151 lines
9.2 KiB
Markdown
# Task Status Transitions
|
|||
|
|
|
||
|
|
## Complete Lifecycle
|
||
|
|
|
||
|
|
```
|
||
|
|
┌─────────────────────────────────────────────────────────────────────────────────┐
|
||
|
|
│ FULL TASK LIFECYCLE │
|
||
|
|
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
|
|
|
||
|
|
PM CREATES
|
||
|
|
│
|
||
|
|
▼
|
||
|
|
┌──────────┐
|
||
|
|
│ BACKLOG │ ◄─── PM setup phase
|
||
|
|
└────┬─────┘ (create session, plan)
|
||
|
|
│
|
||
|
|
PM ACTIVATES
|
||
|
|
│
|
||
|
|
▼
|
||
|
|
┌──────────┐
|
||
|
|
┌──────│ PENDING │◄─────────────────────────────────┐
|
||
|
|
│ └────┬─────┘ │
|
||
|
|
│ │ │
|
||
|
|
DEV or QA DEV or PM │
|
||
|
|
CLAIMS ASSIGNS │
|
||
|
|
│ │ │
|
||
|
|
▼ ▼ │
|
||
|
|
┌──────────┐ │
|
||
|
|
│ CLAIMED │ ◄─── Agent owns it │
|
||
|
|
└────┬─────┘ │
|
||
|
|
│ │
|
||
|
|
DEV STARTS │
|
||
|
|
│ │
|
||
|
|
▼ │
|
||
|
|
┌─────────────┐ │
|
||
|
|
┌──────────│ IN_PROGRESS │──────────┐ │
|
||
|
|
│ └──────┬──────┘ │ │
|
||
|
|
│ │ │ │
|
||
|
|
BLOCKED PAUSED WORKING │
|
||
|
|
│ │ │ │
|
||
|
|
▼ ▼ │ │
|
||
|
|
┌──────────┐ ┌─────────┐ │ │
|
||
|
|
│ BLOCKED │ │ PAUSED │ │ │
|
||
|
|
└────┬─────┘ └────┬────┘ │ │
|
||
|
|
│ │ │ │
|
||
|
|
UNBLOCK RESUME │ │
|
||
|
|
│ │ │ │
|
||
|
|
└────────►───────►└─────────►───────┘ │
|
||
|
|
│ │
|
||
|
|
DEV VERIFIES │
|
||
|
|
│ │
|
||
|
|
▼ │
|
||
|
|
┌───────────┐ │
|
||
|
|
│ VERIFYING │ ◄─── Self-check │
|
||
|
|
└─────┬─────┘ │
|
||
|
|
│ │
|
||
|
|
DEV SUBMITS QA │
|
||
|
|
│ │
|
||
|
|
▼ │
|
||
|
|
┌─────────────┐ │
|
||
|
|
│ AWAITING_QA │ ◄─── QA picks up │
|
||
|
|
└──────┬──────┘ │
|
||
|
|
│ │
|
||
|
|
┌───────────┴───────────┐ │
|
||
|
|
│ │ │
|
||
|
|
QA PASS QA FAIL │
|
||
|
|
│ │ │
|
||
|
|
▼ ▼ │
|
||
|
|
┌───────────────────────────┐ ┌─────────────────┐ │
|
||
|
|
│ AWAITING_DOCUMENTATION │ │ NEEDS_REVISION │───────────────────┘
|
||
|
|
└───────────┬───────────────┘ └─────────────────┘
|
||
|
|
│ (back to dev)
|
||
|
|
DOCS COMPLETE
|
||
|
|
│
|
||
|
|
▼
|
||
|
|
┌────────────────────┐
|
||
|
|
│ AWAITING_PM_REVIEW │ ◄─── PM final review
|
||
|
|
└─────────┬──────────┘
|
||
|
|
│
|
||
|
|
PM COMPLETES
|
||
|
|
│
|
||
|
|
▼
|
||
|
|
┌───────────┐
|
||
|
|
│ COMPLETED │
|
||
|
|
└───────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
## Status Definitions
|
||
|
|
|
||
|
|
| Status | Description | Who Owns It |
|
||
|
|
|--------|-------------|-------------|
|
||
|
|
| `backlog` | PM is setting up the task | PM |
|
||
|
|
| `pending` | Ready for someone to claim | Unassigned or pre-assigned |
|
||
|
|
| `claimed` | Agent has taken ownership | Developer/QA/Documenter |
|
||
|
|
| `in_progress` | Active work happening | Developer/QA/Documenter |
|
||
|
|
| `blocked` | Waiting on another task | Developer |
|
||
|
|
| `paused` | Temporarily stopped | Developer |
|
||
|
|
| `verifying` | Developer self-checking | Developer |
|
||
|
|
| `awaiting_qa` | Ready for QA review | QA |
|
||
|
|
| `needs_revision` | QA found issues | Developer |
|
||
|
|
| `awaiting_documentation` | QA passed, needs docs | Documenter |
|
||
|
|
| `awaiting_pm_review` | Docs done, PM reviews | PM |
|
||
|
|
| `completed` | Done | - |
|
||
|
|
| `cancelled` | Cancelled | - |
|
||
|
|
|
||
|
|
## Transition Rules
|
||
|
|
|
||
|
|
### Who Can Trigger What
|
||
|
|
|
||
|
|
| Transition | Triggered By | Tool |
|
||
|
|
|------------|--------------|------|
|
||
|
|
| backlog → pending | PM | `roboco_task_activate()` |
|
||
|
|
| pending → claimed | Any agent | `roboco_task_claim()` |
|
||
|
|
| claimed → in_progress | Owner | `roboco_task_start()` |
|
||
|
|
| in_progress → blocked | Owner | `roboco_task_block()` |
|
||
|
|
| in_progress → paused | Owner | `roboco_task_pause()` |
|
||
|
|
| blocked → in_progress | Owner or PM | `roboco_task_unblock()` |
|
||
|
|
| paused → in_progress | Owner | `roboco_task_start()` (resume) |
|
||
|
|
| in_progress → verifying | Developer | `roboco_task_submit_verification()` |
|
||
|
|
| verifying → awaiting_qa | Developer | `roboco_task_submit_qa()` |
|
||
|
|
| awaiting_qa → claimed | QA | `roboco_task_claim()` |
|
||
|
|
| awaiting_qa → awaiting_documentation | QA | `roboco_task_qa_pass()` |
|
||
|
|
| awaiting_qa → needs_revision | QA | `roboco_task_qa_fail()` |
|
||
|
|
| needs_revision → claimed | Developer | `roboco_task_claim()` |
|
||
|
|
| awaiting_documentation → claimed | Documenter | `roboco_task_claim()` |
|
||
|
|
| awaiting_documentation → awaiting_pm_review | Documenter | `roboco_task_docs_complete()` |
|
||
|
|
| awaiting_pm_review → completed | PM | `roboco_task_complete()` |
|
||
|
|
| any → cancelled | PM | `roboco_task_cancel()` |
|
||
|
|
|
||
|
|
## What Each Role Can Claim
|
||
|
|
|
||
|
|
| Role | Can Claim From |
|
||
|
|
|------|----------------|
|
||
|
|
| Developer | `pending`, `needs_revision` |
|
||
|
|
| QA | `awaiting_qa` |
|
||
|
|
| Documenter | `pending`, `awaiting_documentation` |
|
||
|
|
| PM | `pending`, `backlog` |
|
||
|
|
|
||
|
|
## Blocking Rules
|
||
|
|
|
||
|
|
An agent **CANNOT claim a new task** if they have:
|
||
|
|
- A task in `in_progress`
|
||
|
|
- A task in `claimed` (should start it first)
|
||
|
|
- A task in `verifying` (should submit to QA first)
|
||
|
|
|
||
|
|
An agent **CAN claim** even if they have:
|
||
|
|
- A task in `paused` (can work on something else while waiting)
|
||
|
|
- A task in `blocked` (can work on something else while waiting)
|
||
|
|
|
||
|
|
**Exception:** If claiming a task already assigned to them (PM pre-assigned), the blocking check is skipped for THAT specific task.
|