fix(15-02): remove Plan layer from UI hierarchy

Simplified to Initiative → Phase → Task (no intermediate Plan layer).
Removed PlanTree component, tasks now directly under PhaseAccordion.
This commit is contained in:
Lukas May
2026-02-02 15:48:52 +01:00
parent 05b7b717f8
commit 1156933a8e
2 changed files with 46 additions and 73 deletions

View File

@@ -5,7 +5,7 @@
## Tasks Completed ## Tasks Completed
1. **Create initiative detail wireframe with hierarchical breakdown** 1. **Create initiative detail wireframe with hierarchical breakdown**
- Created ASCII wireframe showing phase → plan → task hierarchy - Created ASCII wireframe showing phase → task hierarchy (simplified from phase → plan → task)
- Added status indicators (DONE, IN PROGRESS, PENDING, BLOCKED) - Added status indicators (DONE, IN PROGRESS, PENDING, BLOCKED)
- Included agent assignments inline with tasks `[gastown]` - Included agent assignments inline with tasks `[gastown]`
- Visualized dependencies with `^` indicators and blocked-by annotations - Visualized dependencies with `^` indicators and blocked-by annotations
@@ -16,7 +16,7 @@
| File | Description | | File | Description |
|------|-------------| |------|-------------|
| `docs/wireframes/initiative-detail.md` | Initiative detail screen wireframe (299 lines) | | `docs/wireframes/initiative-detail.md` | Initiative detail screen wireframe |
## Wireframe Contents ## Wireframe Contents
@@ -28,12 +28,11 @@
- Agent Spawn Dialog for starting new agents - Agent Spawn Dialog for starting new agents
### Component Specifications ### Component Specifications
- **PhaseAccordion**: Expandable phase container with status badge - **PhaseAccordion**: Expandable phase container with tasks (no intermediate Plan layer)
- **PlanTree**: Nested task list with tree connectors
- **TaskRow**: Task with inline status and agent assignment - **TaskRow**: Task with inline status and agent assignment
- **DependencyIndicator**: Shows blocking dependencies with `^` symbol - **DependencyIndicator**: Shows blocking dependencies with `^` symbol
- **DecisionList**: Collapsible key decisions panel - **DecisionList**: Collapsible key decisions panel
- **ProgressPanel**: Overall progress metrics (phases/plans/tasks) - **ProgressPanel**: Overall progress metrics (phases/tasks)
### Interaction Notes ### Interaction Notes
- Click phase header → expand/collapse - Click phase header → expand/collapse
@@ -42,7 +41,7 @@
- "Spawn Agent" button on pending tasks - "Spawn Agent" button on pending tasks
- "Queue Phase" / "Queue All" buttons for batch dispatch - "Queue Phase" / "Queue All" buttons for batch dispatch
## Commit ## Commits
``` ```
c1386ed docs(15-02): create initiative detail wireframe with hierarchical breakdown c1386ed docs(15-02): create initiative detail wireframe with hierarchical breakdown
@@ -58,10 +57,6 @@ c1386ed docs(15-02): create initiative detail wireframe with hierarchical breakd
## Deviations ## Deviations
None. Plan executed as specified with additional enhancements: - Removed Plan layer from hierarchy (Initiative → Phase → Task, not Initiative → Phase → Plan → Task)
- Added expanded views for tasks with agents and blocked tasks - Removed PlanTree component (tasks now directly under PhaseAccordion)
- Added TaskDetailModal wireframe - Progress panel simplified to phases/tasks counts (no plans)
- Added Agent Spawn Dialog wireframe
- Added ProgressPanel component specification
- Added status color mapping
- Added responsive considerations

View File

@@ -1,6 +1,6 @@
# Initiative Detail Wireframe # Initiative Detail Wireframe
The Initiative Detail screen shows the hierarchical breakdown of an initiative into phases, plans, and tasks. It provides visibility into progress, dependencies, and agent assignments. The Initiative Detail screen shows the hierarchical breakdown of an initiative into phases and tasks. It provides visibility into progress, dependencies, and agent assignments.
## ASCII Wireframe ## ASCII Wireframe
@@ -20,10 +20,10 @@ The Initiative Detail screen shows the hierarchical breakdown of an initiative i
| | [==========------] 67% | | v Authentication Method | | | | [==========------] 67% | | v Authentication Method | |
| | | | JWT with httpOnly cookies | | | | | | JWT with httpOnly cookies | |
| | Phases: 2/3 complete | | Reason: XSS protection, refresh tokens | | | | Phases: 2/3 complete | | Reason: XSS protection, refresh tokens | |
| | Plans: 6/9 complete | | | | | | Tasks: 18/27 complete | | | |
| | Tasks: 18/27 complete | | v Token Expiry | | | | | | v Token Expiry | |
| | | | 15min access / 7d refresh | | | +---------------------------+ | 15min access / 7d refresh | |
| +---------------------------+ | Reason: Balance security & UX | | | | Reason: Balance security & UX | |
| | | | | | | |
| | > Session Storage (collapsed) | | | | > Session Storage (collapsed) | |
| | > Password Policy (collapsed) | | | | > Password Policy (collapsed) | |
@@ -35,33 +35,27 @@ The Initiative Detail screen shows the hierarchical breakdown of an initiative i
| | | |
| v Phase 1: Core Infrastructure ------------------------------------ COMPLETE | | v Phase 1: Core Infrastructure ------------------------------------ COMPLETE |
| | | | | |
| +-- Plan 01: Project Foundation (3/3 tasks) ---------------------- DONE | | |-- Task: Initialize repository --------------------------------- DONE |
| | |-- Task: Initialize repository -------------------- DONE | | |-- Task: Configure TypeScript ---------------------------------- DONE |
| | |-- Task: Configure TypeScript --------------------- DONE | | |-- Task: Setup build pipeline ---------------------------------- DONE |
| | +-- Task: Setup build pipeline --------------------- DONE | | |-- Task: Create bin entry -------------------------------------- DONE |
| | | | |-- Task: Add commander integration ----------------------------- DONE |
| +-- Plan 02: CLI Entry Point (2/2 tasks) ------------------------- DONE | | |-- Task: Create ProcessManager --------------------------------- DONE |
| | |-- Task: Create bin entry ------------------------- DONE | | |-- Task: Implement graceful shutdown --------------------------- DONE |
| | +-- Task: Add commander integration ---------------- DONE | | +-- Task: Add signal handlers ----------------------------------- DONE |
| | |
| +-- Plan 03: Process Management (3/3 tasks) ---------------------- DONE |
| |-- Task: Create ProcessManager -------------------- DONE |
| |-- Task: Implement graceful shutdown -------------- DONE |
| +-- Task: Add signal handlers ---------------------- DONE |
| | | |
| v Phase 2: Data Layer ----------------------------------------- IN PROGRESS | | v Phase 2: Data Layer ----------------------------------------- IN PROGRESS |
| | | | | |
| +-- Plan 01: Database Setup (1/2 tasks) ---------------------- ACTIVE | | |-- Task: Create schema ----------------------------------------- DONE |
| | |-- Task: Create schema ---------------------------- DONE | | |-- Task: Run migrations --------------- [gastown] --------- IN PROGRESS |
| | +-- Task: Run migrations --------- [gastown] --- IN PROGRESS | | |-- Task: User repository -------------------- [blocked] ------- PENDING |
| | | | | ^ blocked by: Run migrations |
| +-- Plan 02: Repository Layer (0/3 tasks) ----- [blocked by Plan 01] ---- | | |-- Task: Task repository -------------------- [blocked] ------- PENDING |
| |-- Task: User repository -------------------------- PENDING | | | ^ blocked by: Run migrations |
| |-- Task: Task repository -------------------------- PENDING | | +-- Task: Init repository -------------------- [blocked] ------- PENDING |
| +-- Task: Init repository -------------------------- PENDING | | ^ blocked by: User repository, Task repository |
| ^ blocked by: Plan 01 tasks |
| | | |
| > Phase 3: Git Integration (0/2 plans) ----------------------------- PENDING | | > Phase 3: Git Integration (0/6 tasks) ----------------------------- PENDING |
| ^ blocked by: Phase 2 | | ^ blocked by: Phase 2 |
| | | |
+----------------------------------------------------------------------------------+ +----------------------------------------------------------------------------------+
@@ -72,7 +66,7 @@ Legend:
^ = Dependency indicator ^ = Dependency indicator
Status Indicators: Status Indicators:
DONE / COMPLETE = Task/plan/phase finished DONE / COMPLETE = Task/phase finished
IN PROGRESS = Currently being worked on IN PROGRESS = Currently being worked on
PENDING = Not yet started PENDING = Not yet started
BLOCKED = Has unresolved dependencies BLOCKED = Has unresolved dependencies
@@ -102,8 +96,8 @@ Status Indicators:
+-- Task: Init repository --------------------------------------------- PENDING +-- Task: Init repository --------------------------------------------- PENDING
| |
| ^ Blocked by: | ^ Blocked by:
| | Plan 01 / Task: User repository (PENDING) | | Task: User repository (PENDING)
| | Plan 01 / Task: Task repository (PENDING) | | Task: Task repository (PENDING)
| |
| Dependencies must complete before this task can start. | Dependencies must complete before this task can start.
| |
@@ -114,13 +108,13 @@ Status Indicators:
### PhaseAccordion ### PhaseAccordion
Container for a phase that can be expanded/collapsed to show its plans. Container for a phase that can be expanded/collapsed to show its tasks.
**Props:** **Props:**
| Prop | Type | Description | | Prop | Type | Description |
|------|------|-------------| |------|------|-------------|
| `phase` | `Phase` | Phase entity with status, number, name | | `phase` | `Phase` | Phase entity with status, number, name |
| `plans` | `Plan[]` | Plans belonging to this phase | | `tasks` | `Task[]` | Tasks belonging to this phase |
| `expanded` | `boolean` | Whether section is expanded | | `expanded` | `boolean` | Whether section is expanded |
| `onToggle` | `() => void` | Toggle expand/collapse | | `onToggle` | `() => void` | Toggle expand/collapse |
@@ -128,24 +122,8 @@ Container for a phase that can be expanded/collapsed to show its plans.
- Default: First incomplete phase expanded, completed phases collapsed - Default: First incomplete phase expanded, completed phases collapsed
- Click header to toggle expand/collapse - Click header to toggle expand/collapse
- Shows phase status badge (COMPLETE, IN PROGRESS, PENDING, BLOCKED) - Shows phase status badge (COMPLETE, IN PROGRESS, PENDING, BLOCKED)
- Shows dependency indicator if blocked - Shows task count: `(completed/total tasks)`
- Shows dependency indicator if blocked by another phase
### PlanTree
Displays a plan with its nested task list in tree format.
**Props:**
| Prop | Type | Description |
|------|------|-------------|
| `plan` | `Plan` | Plan entity with number, name, wave |
| `tasks` | `Task[]` | Tasks belonging to this plan |
| `blockedBy` | `string | null` | What's blocking this plan (if any) |
**Behavior:**
- Shows task count: (completed/total tasks)
- Tree connectors: `|--` for siblings, `+--` for last item
- Plan status derived from task statuses
- Shows blocked indicator if dependencies exist
### TaskRow ### TaskRow
@@ -163,21 +141,22 @@ Single task row with status, assignment, and actions.
- Shows agent name inline if assigned: `[agent-name]` - Shows agent name inline if assigned: `[agent-name]`
- Shows status: DONE, IN PROGRESS, PENDING, BLOCKED - Shows status: DONE, IN PROGRESS, PENDING, BLOCKED
- Pending tasks show "Spawn Agent" on hover - Pending tasks show "Spawn Agent" on hover
- Tree connectors: `|--` for siblings, `+--` for last item
### DependencyIndicator ### DependencyIndicator
Shows what's blocking a task or plan. Shows what's blocking a task or phase.
**Props:** **Props:**
| Prop | Type | Description | | Prop | Type | Description |
|------|------|-------------| |------|------|-------------|
| `blockedBy` | `Dependency[]` | Array of blocking items | | `blockedBy` | `Dependency[]` | Array of blocking items |
| `type` | `'task' | 'plan' | 'phase'` | What level this dependency is at | | `type` | `'task' \| 'phase'` | What level this dependency is at |
**Behavior:** **Behavior:**
- Renders `^` symbol with hover tooltip - Renders `^` symbol with hover tooltip
- Clicking shows full dependency path - Clicking shows full dependency path
- Format: `blocked by: {dependency description}` - Format: `blocked by: {task/phase name}`
### DecisionList ### DecisionList
@@ -203,14 +182,12 @@ Shows overall progress metrics for the initiative.
|------|------|-------------| |------|------|-------------|
| `phasesComplete` | `number` | Completed phases count | | `phasesComplete` | `number` | Completed phases count |
| `phasesTotal` | `number` | Total phases | | `phasesTotal` | `number` | Total phases |
| `plansComplete` | `number` | Completed plans count |
| `plansTotal` | `number` | Total plans |
| `tasksComplete` | `number` | Completed tasks count | | `tasksComplete` | `number` | Completed tasks count |
| `tasksTotal` | `number` | Total tasks | | `tasksTotal` | `number` | Total tasks |
**Behavior:** **Behavior:**
- Progress bar shows percentage - Progress bar shows percentage based on tasks
- Breakdown by phase/plan/task counts - Breakdown by phase and task counts
## Interaction Notes ## Interaction Notes
@@ -219,7 +196,6 @@ Shows overall progress metrics for the initiative.
| Element | Action | | Element | Action |
|---------|--------| |---------|--------|
| Phase header | Expand/collapse phase | | Phase header | Expand/collapse phase |
| Plan row | Expand/collapse plan tasks |
| Task row | Opens TaskDetailModal | | Task row | Opens TaskDetailModal |
| Agent name `[gastown]` | Navigates to agent detail view | | Agent name `[gastown]` | Navigates to agent detail view |
| "Spawn Agent" button | Opens agent spawn dialog for this task | | "Spawn Agent" button | Opens agent spawn dialog for this task |
@@ -238,7 +214,8 @@ When clicking a task row, a modal opens with:
+------------------------------------------------------+ +------------------------------------------------------+
| | | |
| Status: IN PROGRESS Priority: Normal | | Status: IN PROGRESS Priority: Normal |
| Assigned: gastown Started: 14:30 | | Phase: Data Layer Started: 14:30 |
| Assigned: gastown |
| | | |
| Description: | | Description: |
| Run database migrations for user and session | | Run database migrations for user and session |
@@ -265,6 +242,7 @@ When clicking "Spawn Agent" on a pending task:
+------------------------------------------------------+ +------------------------------------------------------+
| | | |
| Task: User repository | | Task: User repository |
| Phase: Data Layer |
| | | |
| Agent name: [auto-generated: yaletown] | | Agent name: [auto-generated: yaletown] |
| Mode: [Execute v] | | Mode: [Execute v] |