mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Documentation had drifted behind the post-0.8.0 work. Adds a CHANGELOG [Unreleased] section, documents the three new feature flags in the config reference (and removes the retired ROBOCO_RAG_USE_HYDE), a new Architectural Conventions Standard page, the provider-overload break in CLAUDE.md, the >=3.13 Python floor + feature flags in the README, and the toolchain/conventions delivery gates + structured-note model across the developer / QA / PR-reviewer role docs and the task-model doc.
86 lines
3.2 KiB
Markdown
86 lines
3.2 KiB
Markdown
# Task Model
|
|
|
|
## Core Fields
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `id` | UUID | Primary key |
|
|
| `title` | String | Task title |
|
|
| `description` | Text | Detailed description |
|
|
| `acceptance_criteria` | Array | How we know it's done |
|
|
| `acceptance_criteria_ids` | Array | Stable per-criterion id (1:1 with `acceptance_criteria`) |
|
|
| `parent_ac_refs` | Array | Parent AC ids this subtask is responsible for |
|
|
| `status` | Enum | Lifecycle state |
|
|
| `priority` | Int | 0=P0 (highest) to 3=P3 |
|
|
| `team` | Enum | backend, frontend, ux_ui |
|
|
|
|
## Acceptance-Criteria Tracking
|
|
|
|
Every task's `acceptance_criteria` get a parallel list of stable `acceptance_criteria_ids` — one id per criterion, generated automatically when a task is created. The ids are stable across edits, so other tasks can reference a specific criterion.
|
|
|
|
When a parent task is decomposed, each subtask declares which parent criteria it covers in `parent_ac_refs` (set from the `covers_parent_criteria` argument to `delegate`). That child→parent link is what lets the org guarantee a decomposition actually covers the parent's full intent. See `docs/rag/workflows/task-planning.md` for the coverage gates and the PM's coverage briefing.
|
|
|
|
## Task Types
|
|
|
|
| Type | Description |
|
|
|------|-------------|
|
|
| `code` | Development work |
|
|
| `documentation` | Writing docs |
|
|
| `research` | Investigation |
|
|
| `planning` | Task breakdown |
|
|
| `design` | UX/UI design |
|
|
| `administrative` | Admin work |
|
|
|
|
## Git Fields
|
|
|
|
| Field | Description |
|
|
|-------|-------------|
|
|
| `project_id` | Associated project (required) |
|
|
| `branch_name` | Git branch for task |
|
|
| `work_session_id` | Active work session |
|
|
| `pr_number` | PR number |
|
|
| `pr_url` | Full PR URL |
|
|
| `docs_complete` | Documenter finished |
|
|
| `pr_created` | Developer created PR |
|
|
| `commits` | Linked commits |
|
|
|
|
## Assignment Fields
|
|
|
|
| Field | Description |
|
|
|-------|-------------|
|
|
| `created_by` | Agent who created |
|
|
| `assigned_to` | Currently assigned |
|
|
| `parent_task_id` | Parent for subtasks |
|
|
| `dependency_ids` | Blocking tasks |
|
|
|
|
## Context Fields
|
|
|
|
| Field | Description |
|
|
|-------|-------------|
|
|
| `plan` | Implementation plan |
|
|
| `quick_context` | 2-3 sentence summary |
|
|
| `proactive_context` | RAG context at claim |
|
|
| `dev_notes` | Developer notes |
|
|
| `qa_notes` | QA feedback |
|
|
|
|
### Structured notes & toolchain marker
|
|
|
|
Each role's handoff note is stored as a validated structured model in `notes_structured`. The legacy text columns (`dev_notes`, `qa_notes`, `doc_notes`, `pr_reviewer_notes`, `quick_context`) are DERIVED mirrors regenerated from it through a single chokepoint — never hand-authored.
|
|
|
|
When toolchain matching is enabled, the agent's workspace clone carries a `.git/.roboco-toolchain` marker recording the resolved Python and a status (`ok` / `broken` / `unknown`), and the WorkSession records the toolchain columns. A `broken` status blocks the delivery gates.
|
|
|
|
## Timestamps
|
|
|
|
| Field | Description |
|
|
|-------|-------------|
|
|
| `claimed_at` | When claimed |
|
|
| `started_at` | When started |
|
|
| `completed_at` | When completed |
|
|
| `target_date` | Target date |
|
|
|
|
## Indexes
|
|
|
|
- `ix_tasks_team_status` - Team + Status queries
|
|
- `ix_tasks_assigned_status` - Assignee + Status
|
|
- `ix_tasks_project_status` - Project + Status
|