diff --git a/docs/sprint-7.md b/docs/sprint-7.md new file mode 100644 index 00000000..28836fb6 --- /dev/null +++ b/docs/sprint-7.md @@ -0,0 +1,99 @@ +# Sprint 7: Archive, Organization & Advanced Features + +**Goal:** Complete the backlog - archive management, subtasks, dependencies, and quality-of-life features. + +**Started:** 2026-01-26 +**Status:** In Progress + +--- + +## Stories + +| ID | Title | Status | Dependencies | Notes | +|----|-------|--------|--------------|-------| +| US-701 | Archive sidebar | ⏳ Todo | None | Slide-out viewer with search/filter for archived tasks | +| US-702 | Restore from archive | ⏳ Todo | US-701 | Unarchive tasks back to board | +| US-703 | Subtasks | ⏳ Todo | None | Nested tasks with parent completion logic | +| US-704 | Task dependencies | ⏳ Todo | US-703 | Block tasks until dependencies complete | +| US-705 | Multiple task attempts | ⏳ Todo | None | Retry with different agent, preserve history | +| US-706 | Auto-archive suggestions | ⏳ Todo | US-701, US-703 | Suggest archiving when project complete | +| US-707 | GitHub PR creation | ⏳ Todo | None | Create PR from task detail UI | +| US-708 | Preview mode | ⏳ Todo | None | Embedded browser for dev server preview | +| US-709 | Merge conflict resolution | ⏳ Todo | None | Visual conflict resolver UI | +| US-710 | Time tracking | ⏳ Todo | None | Start/stop timer, manual entry, reports | + +--- + +## Story Details + +### US-701: Archive sidebar +- Slide-out panel (like Activity log) +- List all archived tasks +- Search by title/description +- Filter by project, type, date range +- Click to view task details + +### US-702: Restore from archive +- "Restore" button in archive sidebar +- Returns task to Done column +- Preserves all task data + +### US-703: Subtasks +- Add subtasks to any task +- Subtasks displayed nested under parent +- Checkbox completion +- Parent shows progress (3/5 complete) +- Parent auto-completes when all subtasks done (optional) + +### US-704: Task dependencies +- "Blocked by" field in task detail +- Visual indicator for blocked tasks +- Cannot move blocked task to In Progress +- Auto-unblock when dependency completes + +### US-705: Multiple task attempts +- "New Attempt" button on completed/failed tasks +- Select different agent for retry +- Previous attempts preserved in history +- View logs from any attempt + +### US-706: Auto-archive suggestions +- Detect when all tasks in a project are Done +- Show notification/banner suggesting archive +- One-click archive all completed project tasks + +### US-707: GitHub PR creation +- "Create PR" button on tasks with branches +- Pre-fill title/description from task +- Select target branch +- Opens PR in browser on success +- Shows PR link in task detail + +### US-708: Preview mode +- Configure dev server command per repo +- Embedded iframe preview panel +- URL detection from dev server output +- Refresh button +- Open in external browser option + +### US-709: Merge conflict resolution +- Detect conflicts on rebase/merge +- Show conflicting files with diff +- Side-by-side conflict viewer +- Accept theirs/ours/manual buttons +- Mark resolved and continue merge + +### US-710: Time tracking +- Start/stop timer on tasks +- Manual time entry option +- Time displayed on task card +- Time summary per project +- Export time report + +--- + +## Progress Log + +### 2026-01-26 + +(Starting Sprint 7) diff --git a/server/.veritas-kanban/activity.json b/server/.veritas-kanban/activity.json new file mode 100644 index 00000000..80a75cf6 --- /dev/null +++ b/server/.veritas-kanban/activity.json @@ -0,0 +1,150 @@ +[ + { + "id": "activity_1769426654428_vcko3ka0i", + "type": "task_created", + "taskId": "task_20260126_elXGhz", + "taskTitle": "US-710: Time tracking", + "details": { + "type": "code", + "priority": "low", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.428Z" + }, + { + "id": "activity_1769426654373_3sx4g575u", + "type": "task_created", + "taskId": "task_20260126_FTRJ_R", + "taskTitle": "US-709: Merge conflict resolution", + "details": { + "type": "code", + "priority": "medium", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.373Z" + }, + { + "id": "activity_1769426654317_vz3lqt7sc", + "type": "task_created", + "taskId": "task_20260126_d6o4vo", + "taskTitle": "US-708: Preview mode", + "details": { + "type": "code", + "priority": "low", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.317Z" + }, + { + "id": "activity_1769426654262_g4s2n5id1", + "type": "task_created", + "taskId": "task_20260126_byvNgE", + "taskTitle": "US-707: GitHub PR creation", + "details": { + "type": "code", + "priority": "medium", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.262Z" + }, + { + "id": "activity_1769426654206_6mkga8z5k", + "type": "task_created", + "taskId": "task_20260126_P376Wt", + "taskTitle": "US-706: Auto-archive suggestions", + "details": { + "type": "code", + "priority": "low", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.206Z" + }, + { + "id": "activity_1769426654151_v10yku57g", + "type": "task_created", + "taskId": "task_20260126_SqIKXl", + "taskTitle": "US-705: Multiple task attempts", + "details": { + "type": "code", + "priority": "medium", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.151Z" + }, + { + "id": "activity_1769426654094_4yg4jtf9p", + "type": "task_created", + "taskId": "task_20260126_XH-580", + "taskTitle": "US-704: Task dependencies", + "details": { + "type": "code", + "priority": "medium", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.094Z" + }, + { + "id": "activity_1769426654037_1xexkmken", + "type": "task_created", + "taskId": "task_20260126_PoYogZ", + "taskTitle": "US-703: Subtasks", + "details": { + "type": "code", + "priority": "high", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:14.037Z" + }, + { + "id": "activity_1769426653980_n61qyzkco", + "type": "task_created", + "taskId": "task_20260126_LC4p7w", + "taskTitle": "US-702: Restore from archive", + "details": { + "type": "code", + "priority": "high", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:13.980Z" + }, + { + "id": "activity_1769426653910_4i0p9vgob", + "type": "task_created", + "taskId": "task_20260126_wzj1d0", + "taskTitle": "US-701: Archive sidebar", + "details": { + "type": "code", + "priority": "high", + "project": "veritas-kanban" + }, + "timestamp": "2026-01-26T11:24:13.910Z" + }, + { + "id": "activity_1769426109397_ly0ytott4", + "type": "task_deleted", + "taskId": "task_20260126_RUfUa_", + "taskTitle": "Research competitor pricing", + "timestamp": "2026-01-26T11:15:09.397Z" + }, + { + "id": "activity_1769426106655_ixe9eypey", + "type": "task_deleted", + "taskId": "task_20260126_ZnrflF", + "taskTitle": "Testing Code task", + "timestamp": "2026-01-26T11:15:06.655Z" + }, + { + "id": "activity_1769426103592_0ffbky6lq", + "type": "task_deleted", + "taskId": "task_20260126_dXDEPj", + "taskTitle": "Write blog post on AI agents", + "timestamp": "2026-01-26T11:15:03.592Z" + }, + { + "id": "activity_1769426100268_ha59nz9x5", + "type": "task_deleted", + "taskId": "task_20260126_z6KAvr", + "taskTitle": "Implement user authentication", + "timestamp": "2026-01-26T11:15:00.268Z" + } +] \ No newline at end of file