orchestrix-yuri 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,239 @@
1
+ # Change Management
2
+
3
+ **Command**: `*change "{description}"`
4
+ **Purpose**: Handle mid-project requirement changes by assessing scope and routing to the appropriate workflow.
5
+
6
+ ---
7
+
8
+ ## Step 0: Load Memory and Context
9
+
10
+ 1. Read `.yuri/memory.yaml` — restore project context
11
+ 2. Set `PROJECT_DIR` from `project.project_root`
12
+ 3. Determine current phase from `lifecycle.current_phase`
13
+ 4. Extract the change description from the user's command argument
14
+
15
+ Update memory:
16
+ - `lifecycle.current_step` → "change_management"
17
+ - Save immediately
18
+
19
+ ---
20
+
21
+ ## Step 1: Scope Assessment
22
+
23
+ Assess the change size based on the current phase and change description.
24
+
25
+ ### Scope Assessment Matrix
26
+
27
+ | Current Phase | Change Size | Action | Needs Planning Session? |
28
+ |---------------|-------------|--------|------------------------|
29
+ | Phase 2 | Any | Modify current/subsequent planning step inputs | Already exists |
30
+ | Phase 3 | Small (≤5 files) | Dev `*solo "{description}"` | No |
31
+ | Phase 3 | Medium | PO `*route-change` → standard workflow | **Yes** |
32
+ | Phase 3 | Large (cross-module/DB/security) | Pause dev → partial Phase 2 re-plan | **Yes** |
33
+ | Phase 4 | Any | Queue for next iteration | No (record only) |
34
+ | Phase 5+ | New iteration | PM `*start-iteration` → plan → dev → test | **Yes** |
35
+
36
+ Present assessment to user:
37
+
38
+ ```
39
+ ## 📋 Change Assessment
40
+
41
+ | Item | Detail |
42
+ |------|--------|
43
+ | **Current Phase** | Phase {n} ({phase_name}) |
44
+ | **Change** | {description} |
45
+ | **Assessed Size** | {Small / Medium / Large} |
46
+ | **Recommended Action** | {action} |
47
+
48
+ Proceed with this approach? (Y/N, or specify alternative)
49
+ ```
50
+
51
+ Wait for user confirmation.
52
+
53
+ ---
54
+
55
+ ## Step 2: Execute Based on Scope
56
+
57
+ ### Small Change (Phase 3, ≤5 files)
58
+
59
+ No planning session needed. Use Dev directly:
60
+
61
+ ```bash
62
+ SESSION="{tmux.dev_session}"
63
+ # Ensure dev session is alive
64
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
65
+ SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" dev "$PROJECT_DIR")
66
+
67
+ # Send to Dev
68
+ tmux send-keys -t "$SESSION:2" "/clear" Enter
69
+ sleep 2
70
+ tmux send-keys -t "$SESSION:2" "/o dev" Enter
71
+ sleep 12
72
+ tmux send-keys -t "$SESSION:2" "*solo \"$CHANGE_DESCRIPTION\"" Enter
73
+ ```
74
+
75
+ Monitor Dev completion, then resume normal Phase 3 monitoring.
76
+
77
+ ### Medium Change (Phase 3)
78
+
79
+ Requires planning session for PO routing:
80
+
81
+ ```bash
82
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
83
+
84
+ # 1. Ensure planning session
85
+ PLAN_SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" planning "$PROJECT_DIR")
86
+
87
+ # 2. Activate PO and route change
88
+ tmux send-keys -t "$PLAN_SESSION:0" "/o po" Enter
89
+ sleep 15
90
+ tmux send-keys -t "$PLAN_SESSION:0" "*route-change \"$CHANGE_DESCRIPTION\"" Enter
91
+ ```
92
+
93
+ Wait for PO routing result. Then:
94
+
95
+ - IF routes to **Architect**:
96
+ ```bash
97
+ tmux send-keys -t "$PLAN_SESSION:0" "/clear" Enter
98
+ sleep 2
99
+ tmux send-keys -t "$PLAN_SESSION:0" "/o architect" Enter
100
+ sleep 15
101
+ tmux send-keys -t "$PLAN_SESSION:0" "*resolve-change" Enter
102
+ ```
103
+
104
+ - IF routes to **PM**:
105
+ ```bash
106
+ tmux send-keys -t "$PLAN_SESSION:0" "/clear" Enter
107
+ sleep 2
108
+ tmux send-keys -t "$PLAN_SESSION:0" "/o pm" Enter
109
+ sleep 15
110
+ tmux send-keys -t "$PLAN_SESSION:0" "*revise-prd" Enter
111
+ ```
112
+
113
+ Wait for Proposal output (PCP/TCP).
114
+
115
+ Then switch to dev session:
116
+ ```bash
117
+ DEV_SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" dev "$PROJECT_DIR")
118
+
119
+ # In SM window: apply proposal
120
+ tmux send-keys -t "$DEV_SESSION:1" "/clear" Enter
121
+ sleep 2
122
+ tmux send-keys -t "$DEV_SESSION:1" "/o sm" Enter
123
+ sleep 12
124
+ tmux send-keys -t "$DEV_SESSION:1" "*apply-proposal {proposal_id}" Enter
125
+ ```
126
+
127
+ SM → Architect → Dev → QA auto-loop resumes.
128
+
129
+ ### Large Change (Phase 3, cross-module/DB/security)
130
+
131
+ Same as medium change flow but with explicit pause notification:
132
+
133
+ ```
134
+ ⚠️ Large change detected. Pausing development loop for re-planning...
135
+ ```
136
+
137
+ Follow the medium change flow, then resume Phase 3 monitoring.
138
+
139
+ ### Phase 4 Change (Queue for next iteration)
140
+
141
+ Record only — do not execute during testing:
142
+
143
+ ```
144
+ 📝 Change recorded for next iteration: {description}
145
+ Current testing will continue. This change will be addressed in the next development cycle.
146
+ ```
147
+
148
+ ### Post-MVP Iteration (Phase 5+)
149
+
150
+ Full iteration flow using PM `*start-iteration`:
151
+
152
+ ```bash
153
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
154
+
155
+ # Step 1: PM generates next-steps.md
156
+ PLAN_SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" planning "$PROJECT_DIR")
157
+ tmux send-keys -t "$PLAN_SESSION:0" "/o pm" Enter
158
+ sleep 15
159
+ tmux send-keys -t "$PLAN_SESSION:0" "*start-iteration" Enter
160
+ ```
161
+
162
+ Monitor PM completion. PM creates: `docs/prd/epic-*.yaml` + `docs/prd/*next-steps.md`
163
+
164
+ **Step 2: Parse next-steps.md**
165
+
166
+ Read the generated next-steps file. Split on `🎯 HANDOFF TO {agent}:` markers.
167
+ Build ordered execution queue:
168
+ ```
169
+ [{agent: "ux-expert", content: "..."},
170
+ {agent: "architect", content: "..."},
171
+ {agent: "sm", content: "..."}]
172
+ ```
173
+
174
+ **Step 3: Execute each HANDOFF section (STOP before SM)**
175
+
176
+ FOR EACH section WHERE agent != "sm":
177
+ 1. Create new window in planning tmux session
178
+ 2. Start `cc`, wait for startup
179
+ 3. Activate agent: `/o {agent}`
180
+ 4. Paste the section content as instructions to the agent
181
+ 5. Monitor completion (detect "Xed for Ns" / ○ idle)
182
+ 6. Report to user, offer review
183
+ 7. Save progress to memory
184
+
185
+ **Step 4: SM handoff → transition to dev automation**
186
+
187
+ When reaching `🎯 HANDOFF TO sm:`:
188
+ 1. Kill planning session (done)
189
+ 2. Ensure dev session:
190
+ ```bash
191
+ DEV_SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" dev "$PROJECT_DIR")
192
+ ```
193
+ 3. In SM window (window 1) of dev session:
194
+ ```bash
195
+ tmux send-keys -t "$DEV_SESSION:1" "/clear" Enter
196
+ sleep 2
197
+ tmux send-keys -t "$DEV_SESSION:1" "/o sm" Enter
198
+ sleep 12
199
+ tmux send-keys -t "$DEV_SESSION:1" "*draft" Enter
200
+ ```
201
+ SM creates first story → handoff chain auto-starts (SM → Arch → Dev → QA)
202
+
203
+ **Step 5: Resume Phase 3 monitoring**
204
+
205
+ Enter standard development monitoring loop (see `tasks/yuri-develop-project.md` Step 2).
206
+ When all new stories complete → Phase 4 testing → Phase 5 incremental deployment if needed.
207
+
208
+ ---
209
+
210
+ ## Step 3: Record Change
211
+
212
+ Save change record to memory regardless of scope:
213
+
214
+ ```yaml
215
+ changes.history:
216
+ - timestamp: "{ISO 8601}"
217
+ phase: {current_phase}
218
+ description: "{change_description}"
219
+ scope: "{small/medium/large}"
220
+ action_taken: "{what was done}"
221
+ ```
222
+
223
+ Save memory immediately.
224
+
225
+ ---
226
+
227
+ ## Step 4: Resume Normal Flow
228
+
229
+ After change is handled:
230
+ - If in Phase 3 → resume development monitoring loop
231
+ - If in Phase 4 → continue testing
232
+ - If post-MVP iteration → follow through Phase 3 → 4 → 5 cycle
233
+
234
+ Report to user:
235
+ ```
236
+ ✅ Change handled: {description}
237
+ Action taken: {action_summary}
238
+ Resuming {current_phase_name}...
239
+ ```
@@ -0,0 +1,158 @@
1
+ # Phase 2: Plan Project
2
+
3
+ **Command**: `*plan`
4
+ **Purpose**: Drive all planning agents (Analyst → PM → UX-Expert → Architect → PO) via tmux to generate complete project documentation.
5
+
6
+ ---
7
+
8
+ ## Prerequisites
9
+
10
+ - Phase 1 (Create) must be complete
11
+ - `.yuri/memory.yaml` must exist with `phase1_create: complete`
12
+
13
+ ---
14
+
15
+ ## Step 0: Load Memory and Validate
16
+
17
+ 1. Read `.yuri/memory.yaml` — restore project context
18
+ 2. Verify `lifecycle.phase_status.phase1_create == complete`
19
+ - If not → "Phase 1 not complete. Run `*create` first."
20
+ 3. Set `PROJECT_DIR` from `project.project_root`
21
+ 4. If `phase2_plan == in_progress` → find last completed planning step, resume from next
22
+ 5. If `phase2_plan == complete` → offer skip to Phase 3
23
+
24
+ Update memory:
25
+ - `lifecycle.current_phase` → 2
26
+ - `lifecycle.phase_status.phase2_plan` → "in_progress"
27
+ - Save immediately
28
+
29
+ ---
30
+
31
+ ## Step 1: Create Planning tmux Session
32
+
33
+ Use the lazy session creation script:
34
+
35
+ ```bash
36
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
37
+ SESSION=$(bash "$SCRIPT_DIR/ensure-session.sh" planning "$PROJECT_DIR")
38
+ ```
39
+
40
+ This creates an `op-{project-name}` tmux session with an initial window running Claude Code.
41
+
42
+ Update memory:
43
+ - `tmux.planning_session` → `$SESSION`
44
+ - Save immediately
45
+
46
+ ---
47
+
48
+ ## Step 2: Execute Planning Agents
49
+
50
+ Execute each agent step sequentially. Each step runs in a NEW tmux window.
51
+
52
+ ### Agent Sequence
53
+
54
+ | Window | Agent | Command | Expected Output |
55
+ |--------|-------|---------|-----------------|
56
+ | 0 | analyst | `*create-doc project-brief` | `docs/project-brief.md` |
57
+ | 1 | pm | `*create-doc prd` | `docs/prd.md` |
58
+ | 2 | ux-expert | `*create-doc front-end-spec` | `docs/front-end-spec.md` |
59
+ | 3 | architect | `*create-doc fullstack-architecture` | `docs/architecture.md` |
60
+ | 4 | po | `*execute-checklist po-master-validation` | Validation report |
61
+ | 5 | po | `*shard` | `docs/prd/` + `docs/architecture/` |
62
+
63
+ ### FOR EACH step (window_idx = 0..5):
64
+
65
+ **2.1** Report to user:
66
+ ```
67
+ Starting {agent} ({n}/6)...
68
+ ```
69
+
70
+ **2.2** Create new tmux window + start Claude Code:
71
+ ```bash
72
+ if [ "$WINDOW_IDX" -gt 0 ]; then
73
+ tmux new-window -t "$SESSION:$WINDOW_IDX" -n "{agent}" -c "$PROJECT_DIR"
74
+ fi
75
+ tmux send-keys -t "$SESSION:$WINDOW_IDX" "cc" C-m
76
+ sleep 2 # Wait for Claude Code to start
77
+ ```
78
+
79
+ **2.3** Activate agent and send command:
80
+ ```bash
81
+ tmux send-keys -t "$SESSION:$WINDOW_IDX" "/o {agent}" Enter
82
+ sleep 15 # Wait for agent to load
83
+ tmux send-keys -t "$SESSION:$WINDOW_IDX" "{command}" Enter
84
+ ```
85
+
86
+ **2.4** Monitor completion:
87
+ ```bash
88
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
89
+ RESULT=$(bash "$SCRIPT_DIR/monitor-agent.sh" "$SESSION" "$WINDOW_IDX" "{expected_file}" 30 30)
90
+ ```
91
+
92
+ Detection priority:
93
+ 1. `/[A-Z][a-z]*ed for [0-9]/` — Claude Code completion (e.g. "Baked for 31s")
94
+ 2. `○` idle indicator
95
+ 3. `◐` approval prompt → auto-send `y` Enter
96
+ 4. Content hash stable 3 polls (90s)
97
+
98
+ **2.5** Verify output file exists (if applicable):
99
+ ```bash
100
+ test -f "$PROJECT_DIR/{expected_file}"
101
+ ```
102
+
103
+ **2.6** Report to user and confirm:
104
+ ```
105
+ ✅ {agent} complete. Output: {file}
106
+ Continue / Review / Modify?
107
+ ```
108
+
109
+ - **Continue** → next step
110
+ - **Review** → show file content summary
111
+ - **Modify** → user specifies changes, resend to agent in same window
112
+
113
+ **2.7** Save memory:
114
+ ```
115
+ planning.steps[n].status = complete
116
+ planning.steps[n].output = "{expected_file}"
117
+ planning.steps[n].completed_at = "{ISO 8601 timestamp}"
118
+ ```
119
+
120
+ ### Special: Steps 4-5 (PO validate + shard)
121
+
122
+ Steps 4 and 5 share the same window (window 4):
123
+ 1. Run `*execute-checklist po-master-validation` first, monitor completion
124
+ 2. Then send `*shard` in the same window, monitor completion
125
+
126
+ ---
127
+
128
+ ## Step 3: All Complete
129
+
130
+ 1. Kill planning session:
131
+ ```bash
132
+ tmux kill-session -t "$SESSION"
133
+ ```
134
+
135
+ 2. Save checkpoint:
136
+ - `lifecycle.phase_status.phase2_plan` → "complete"
137
+ - `lifecycle.current_step` → "phase2.complete"
138
+ - Write checkpoint → `.yuri/checkpoints/checkpoint-phase2.yaml`
139
+
140
+ 3. Output summary:
141
+ ```
142
+ ## ✅ Planning Phase Complete
143
+
144
+ All planning documents generated:
145
+ - `docs/project-brief.md` — Project brief
146
+ - `docs/prd/*.md` — Product requirements (sharded)
147
+ - `docs/front-end-spec*.md` — Frontend spec (if applicable)
148
+ - `docs/architecture*.md` — Architecture doc (sharded)
149
+ - Sharded context files for development
150
+ ```
151
+
152
+ 4. Ask:
153
+ ```
154
+ 🚀 Ready to start automated development? (Y/N)
155
+ ```
156
+
157
+ - If Y → execute `tasks/yuri-develop-project.md`
158
+ - If N → save state, end with reminder: "Run `/yuri *develop` when ready."
@@ -0,0 +1,132 @@
1
+ # Resume from Checkpoint
2
+
3
+ **Command**: `*resume`
4
+ **Purpose**: Detect interrupted state and resume project execution from the last saved checkpoint.
5
+
6
+ ---
7
+
8
+ ## Step 1: Read Memory
9
+
10
+ ```bash
11
+ MEMORY_FILE=".yuri/memory.yaml"
12
+ ```
13
+
14
+ - If `.yuri/memory.yaml` not found → "No project state found. Use `*create` to start a new project."
15
+ - If found → read and parse full memory state
16
+
17
+ ---
18
+
19
+ ## Step 2: Display Status Summary
20
+
21
+ Present current project state:
22
+
23
+ ```
24
+ ## 📊 Project Status
25
+
26
+ | Item | Detail |
27
+ |------|--------|
28
+ | **Project** | {project.name} |
29
+ | **Path** | {project.project_root} |
30
+ | **Current Phase** | Phase {lifecycle.current_phase} |
31
+ | **Current Step** | {lifecycle.current_step} |
32
+ | **Last Active** | {timestamp from memory file mtime} |
33
+
34
+ ### Phase Progress
35
+ | Phase | Status |
36
+ |-------|--------|
37
+ | 1. Create | {phase1_create} |
38
+ | 2. Plan | {phase2_plan} |
39
+ | 3. Develop | {phase3_develop} |
40
+ | 4. Test | {phase4_test} |
41
+ | 5. Deploy | {phase5_deploy} |
42
+ ```
43
+
44
+ If in Phase 3 (Develop), also show:
45
+ ```
46
+ ### Development Progress
47
+ - Stories: {stories_done}/{total_stories}
48
+ - In Progress: {stories_in_progress}
49
+ - Stuck Count: {stuck_count}
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Step 3: Check Recoverability
55
+
56
+ Perform diagnostic checks:
57
+
58
+ 1. **tmux sessions alive?**
59
+ ```bash
60
+ # Check planning session
61
+ tmux has-session -t "{tmux.planning_session}" 2>/dev/null && echo "ALIVE" || echo "DEAD"
62
+
63
+ # Check dev session
64
+ tmux has-session -t "{tmux.dev_session}" 2>/dev/null && echo "ALIVE" || echo "DEAD"
65
+ ```
66
+
67
+ 2. **Expected files exist?**
68
+ - Check for output files of completed planning steps
69
+ - Check for story files if in development phase
70
+
71
+ 3. **Incomplete operations?**
72
+ - Any planning step marked `in_progress`?
73
+ - Any stories stuck in `InProgress` or `Review`?
74
+
75
+ Report findings:
76
+ ```
77
+ ### Recovery Diagnostics
78
+ - Planning session: {ALIVE/DEAD}
79
+ - Dev session: {ALIVE/DEAD}
80
+ - Expected files: {all present / missing: list}
81
+ - Incomplete operations: {none / list}
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Step 4: Offer Resume Options
87
+
88
+ Based on the interrupted state, present options:
89
+
90
+ ```
91
+ Detected interruption at Phase {n}, Step {m}.
92
+
93
+ Options:
94
+ 1. **Resume from checkpoint** — Continue from last saved state
95
+ 2. **Re-execute current step** — Retry the step that was interrupted
96
+ 3. **Skip to next phase** — Mark current phase complete and advance
97
+
98
+ Select (1/2/3):
99
+ ```
100
+
101
+ Wait for user selection.
102
+
103
+ ---
104
+
105
+ ## Step 5: Execute Recovery
106
+
107
+ Based on user's choice:
108
+
109
+ ### Option 1: Resume from checkpoint
110
+
111
+ 1. Load the latest checkpoint from `.yuri/checkpoints/`
112
+ 2. Recreate any needed tmux sessions using `ensure-session.sh`
113
+ 3. Call the appropriate phase task file with resume context:
114
+ - Phase 2 → `tasks/yuri-plan-project.md` (will detect `in_progress` and resume)
115
+ - Phase 3 → `tasks/yuri-develop-project.md` (will re-enter monitoring loop)
116
+ - Phase 4 → `tasks/yuri-test-project.md` (will resume from last untested epic)
117
+ - Phase 5 → `tasks/yuri-deploy-project.md` (will resume deployment)
118
+
119
+ ### Option 2: Re-execute current step
120
+
121
+ 1. Reset the current step status to `pending` in memory
122
+ 2. Recreate any needed tmux sessions
123
+ 3. Call the appropriate phase task file (step will re-run from beginning)
124
+
125
+ ### Option 3: Skip to next phase
126
+
127
+ 1. Mark current phase as `complete` in memory
128
+ 2. Write checkpoint
129
+ 3. Advance `lifecycle.current_phase` by 1
130
+ 4. Call the next phase task file
131
+
132
+ After any option, save updated memory immediately.
@@ -0,0 +1,156 @@
1
+ # Project Status Query
2
+
3
+ **Command**: `*status`
4
+ **Purpose**: Display comprehensive project status without modifying any state.
5
+
6
+ ---
7
+
8
+ ## Step 1: Read Memory
9
+
10
+ ```bash
11
+ MEMORY_FILE=".yuri/memory.yaml"
12
+ ```
13
+
14
+ - If `.yuri/memory.yaml` not found → "No project state found. Use `*create` to start a new project."
15
+ - If found → read and parse full memory state
16
+
17
+ ---
18
+
19
+ ## Step 2: Display Project Overview
20
+
21
+ ```
22
+ ## 📊 Project Status: {project.name}
23
+
24
+ | Item | Detail |
25
+ |------|--------|
26
+ | **Project** | {project.name} |
27
+ | **Path** | {project.project_root} |
28
+ | **Description** | {project.description} |
29
+ | **Tech Stack** | {project.tech_stack} |
30
+ | **Created** | {project.created_at} |
31
+ | **License** | {configured / pending} |
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Step 3: Display Phase Progress
37
+
38
+ ```
39
+ ### Lifecycle Progress
40
+
41
+ | Phase | Status | Detail |
42
+ |-------|--------|--------|
43
+ | 1. Create | {✅/🔄/⏳} {status} | Project scaffold |
44
+ | 2. Plan | {✅/🔄/⏳} {status} | Planning docs |
45
+ | 3. Develop | {✅/🔄/⏳} {status} | Story implementation |
46
+ | 4. Test | {✅/🔄/⏳} {status} | Smoke testing |
47
+ | 5. Deploy | {✅/🔄/⏳} {status} | Deployment |
48
+
49
+ **Current**: Phase {current_phase} — {current_step}
50
+ ```
51
+
52
+ Status icons:
53
+ - `✅` = complete
54
+ - `🔄` = in_progress
55
+ - `⏳` = pending
56
+ - `❌` = failed
57
+
58
+ ---
59
+
60
+ ## Step 4: Display Phase-Specific Details
61
+
62
+ ### If Phase 2 (Plan) is in progress or complete:
63
+
64
+ ```
65
+ ### Planning Progress
66
+
67
+ | Step | Agent | Status | Output |
68
+ |------|-------|--------|--------|
69
+ | 0 | Analyst | {status} | {output file} |
70
+ | 1 | PM | {status} | {output file} |
71
+ | 2 | UX Expert | {status} | {output file} |
72
+ | 3 | Architect | {status} | {output file} |
73
+ | 4 | PO Validate | {status} | {output file} |
74
+ | 5 | PO Shard | {status} | {output file} |
75
+ ```
76
+
77
+ ### If Phase 3 (Develop) is in progress or complete:
78
+
79
+ Scan current story statuses:
80
+ ```bash
81
+ SCRIPT_DIR="${CLAUDE_SKILL_DIR}/scripts"
82
+ bash "$SCRIPT_DIR/scan-stories.sh" "$PROJECT_DIR"
83
+ ```
84
+
85
+ ```
86
+ ### Development Progress
87
+
88
+ | Metric | Value |
89
+ |--------|-------|
90
+ | Total Stories | {total} |
91
+ | Done | {done} |
92
+ | In Progress | {in_progress} |
93
+ | In Review | {review} |
94
+ | Blocked | {blocked} |
95
+ | Remaining | {remaining} |
96
+
97
+ Progress: [{done}/{total}] {'█' * pct}{'░' * (100-pct)} {pct}%
98
+ ```
99
+
100
+ ### If Phase 4 (Test) is in progress or complete:
101
+
102
+ ```
103
+ ### Testing Progress
104
+
105
+ | Epic | Status | Rounds |
106
+ |------|--------|--------|
107
+ | {id} | {✅ Pass / ❌ Fail / ⏳ Pending} | {n} |
108
+ | ... | ... | ... |
109
+ ```
110
+
111
+ ### If Phase 5 (Deploy) is complete:
112
+
113
+ ```
114
+ ### Deployment
115
+
116
+ | Item | Detail |
117
+ |------|--------|
118
+ | Strategy | {strategy} |
119
+ | URL | {url} |
120
+ | Status | {status} |
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Step 5: Display tmux Session Status
126
+
127
+ Check if tmux sessions are alive:
128
+
129
+ ```bash
130
+ # Planning session
131
+ tmux has-session -t "{tmux.planning_session}" 2>/dev/null && echo "ALIVE" || echo "DEAD"
132
+
133
+ # Dev session
134
+ tmux has-session -t "{tmux.dev_session}" 2>/dev/null && echo "ALIVE" || echo "DEAD"
135
+ ```
136
+
137
+ ```
138
+ ### Active Sessions
139
+
140
+ | Session | Name | Status |
141
+ |---------|------|--------|
142
+ | Planning | {planning_session} | {ALIVE/DEAD/N/A} |
143
+ | Development | {dev_session} | {ALIVE/DEAD/N/A} |
144
+ ```
145
+
146
+ If any change history exists:
147
+ ```
148
+ ### Change History
149
+
150
+ | # | Timestamp | Phase | Description | Action |
151
+ |---|-----------|-------|-------------|--------|
152
+ | 1 | {ts} | {phase} | {desc} | {action} |
153
+ | ... | ... | ... | ... | ... |
154
+ ```
155
+
156
+ **Note**: This command is read-only. No state is modified.