@gannonh/kata 0.1.4 → 0.2.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.
Files changed (89) hide show
  1. package/README.md +55 -28
  2. package/agents/kata-debugger.md +20 -1
  3. package/agents/kata-entity-generator.md +237 -0
  4. package/agents/kata-executor.md +31 -0
  5. package/agents/kata-phase-researcher.md +13 -4
  6. package/agents/kata-planner.md +19 -0
  7. package/agents/kata-project-researcher.md +5 -5
  8. package/agents/kata-research-synthesizer.md +9 -0
  9. package/bin/install.js +100 -38
  10. package/commands/kata/add-phase.md +8 -195
  11. package/commands/kata/add-todo.md +8 -170
  12. package/commands/kata/audit-milestone.md +10 -248
  13. package/commands/kata/check-todo.md +20 -0
  14. package/commands/kata/complete-milestone.md +8 -124
  15. package/commands/kata/debug.md +9 -138
  16. package/commands/kata/discuss-phase.md +13 -73
  17. package/commands/kata/execute-phase.md +9 -293
  18. package/commands/kata/help.md +13 -376
  19. package/commands/kata/insert-phase.md +8 -215
  20. package/commands/kata/list-phase-assumptions.md +10 -40
  21. package/commands/kata/map-codebase.md +10 -61
  22. package/commands/kata/pause-work.md +9 -112
  23. package/commands/kata/plan-milestone-gaps.md +9 -273
  24. package/commands/kata/plan-phase.md +9 -464
  25. package/commands/kata/progress.md +10 -346
  26. package/commands/kata/quick.md +20 -0
  27. package/commands/kata/remove-phase.md +8 -326
  28. package/commands/kata/research-phase.md +10 -170
  29. package/commands/kata/resume-work.md +10 -30
  30. package/commands/kata/set-profile.md +20 -0
  31. package/commands/kata/settings.md +20 -0
  32. package/commands/kata/start-milestone.md +20 -0
  33. package/commands/kata/start-new-milestone.md +20 -0
  34. package/commands/kata/start-project.md +20 -0
  35. package/commands/kata/update-kata.md +20 -0
  36. package/commands/kata/update.md +13 -219
  37. package/commands/kata/verify-work.md +10 -209
  38. package/commands/kata/whats-new.md +13 -117
  39. package/kata/references/checkpoints.md +318 -28
  40. package/kata/references/model-profiles.md +73 -0
  41. package/kata/references/planning-config.md +94 -0
  42. package/kata/references/ui-brand.md +2 -2
  43. package/kata/references/verification-patterns.md +17 -0
  44. package/kata/templates/codebase/architecture.md +2 -2
  45. package/kata/templates/codebase/structure.md +4 -4
  46. package/kata/templates/config.json +9 -0
  47. package/kata/templates/entity.md +173 -0
  48. package/kata/templates/phase-prompt.md +18 -27
  49. package/kata/workflows/complete-milestone.md +11 -0
  50. package/kata/workflows/diagnose-issues.md +12 -1
  51. package/kata/workflows/discovery-phase.md +5 -9
  52. package/kata/workflows/discuss-phase.md +11 -0
  53. package/kata/workflows/execute-phase.md +68 -9
  54. package/kata/workflows/execute-plan.md +47 -4
  55. package/kata/workflows/map-codebase.md +35 -2
  56. package/kata/workflows/resume-project.md +4 -0
  57. package/kata/workflows/verify-phase.md +2 -3
  58. package/kata/workflows/verify-work.md +36 -3
  59. package/package.json +12 -5
  60. package/skills/kata-adding-phases/SKILL.md +209 -0
  61. package/skills/kata-adding-todos/SKILL.md +195 -0
  62. package/skills/kata-auditing-milestones/SKILL.md +279 -0
  63. package/{commands/kata/check-todos.md → skills/kata-checking-todos/SKILL.md} +16 -5
  64. package/skills/kata-completing-milestones/SKILL.md +137 -0
  65. package/skills/kata-configuring-settings/SKILL.md +139 -0
  66. package/skills/kata-debugging/SKILL.md +170 -0
  67. package/skills/kata-discussing-phases/SKILL.md +85 -0
  68. package/skills/kata-executing-phases/SKILL.md +335 -0
  69. package/skills/kata-executing-quick-tasks/SKILL.md +306 -0
  70. package/skills/kata-inserting-phases/SKILL.md +229 -0
  71. package/skills/kata-listing-phase-assumptions/SKILL.md +51 -0
  72. package/skills/kata-mapping-codebases/SKILL.md +70 -0
  73. package/skills/kata-pausing-work/SKILL.md +137 -0
  74. package/skills/kata-planning-milestone-gaps/SKILL.md +295 -0
  75. package/skills/kata-planning-phases/SKILL.md +521 -0
  76. package/skills/kata-providing-help/SKILL.md +495 -0
  77. package/skills/kata-removing-phases/SKILL.md +350 -0
  78. package/skills/kata-researching-phases/SKILL.md +202 -0
  79. package/skills/kata-resuming-work/SKILL.md +41 -0
  80. package/skills/kata-setting-profiles/SKILL.md +109 -0
  81. package/skills/kata-showing-whats-new/SKILL.md +131 -0
  82. package/skills/kata-starting-milestones/SKILL.md +721 -0
  83. package/{commands/kata/new-milestone.md → skills/kata-starting-new-milestones/SKILL.md} +256 -272
  84. package/{commands/kata/new-project.md → skills/kata-starting-projects/SKILL.md} +138 -29
  85. package/skills/kata-tracking-progress/SKILL.md +365 -0
  86. package/skills/kata-updating/SKILL.md +179 -0
  87. package/skills/kata-updating-kata/SKILL.md +179 -0
  88. package/skills/kata-verifying-work/SKILL.md +217 -0
  89. /package/hooks/{statusline.js → kata-statusline.js} +0 -0
@@ -0,0 +1,521 @@
1
+ ---
2
+ name: kata-planning-phases
3
+ description: Use this skill when create detailed execution plan for a phase (plan.md) with verification loop. Triggers include "plan phase", "plan phase".
4
+ version: 0.1.0
5
+ user-invocable: false
6
+ disable-model-invocation: false
7
+ allowed-tools:
8
+ - Read
9
+ - Write
10
+ - Bash
11
+ ---
12
+
13
+ <execution_context>
14
+ @~/.claude/get-shit-done/references/ui-brand.md
15
+ </execution_context>
16
+
17
+ <objective>
18
+ Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification.
19
+
20
+ **Default flow:** Research (if needed) → Plan → Verify → Done
21
+
22
+ **Orchestrator role:** Parse arguments, validate phase, research domain (unless skipped or exists), spawn kata-planner agent, verify plans with kata-plan-checker, iterate until plans pass or max iterations reached, present results.
23
+
24
+ **Why subagents:** Research and planning burn context fast. Verification uses fresh context. User sees the flow between agents in main context.
25
+ </objective>
26
+
27
+ <context>
28
+ Phase number: $ARGUMENTS (optional - auto-detects next unplanned phase if not provided)
29
+
30
+ **Flags:**
31
+ - `--research` — Force re-research even if RESEARCH.md exists
32
+ - `--skip-research` — Skip research entirely, go straight to planning
33
+ - `--gaps` — Gap closure mode (reads VERIFICATION.md, skips research)
34
+ - `--skip-verify` — Skip planner → checker verification loop
35
+
36
+ Normalize phase input in step 2 before any directory lookups.
37
+ </context>
38
+
39
+ <process>
40
+
41
+ ## 1. Validate Environment and Resolve Model Profile
42
+
43
+ ```bash
44
+ ls .planning/ 2>/dev/null
45
+ ```
46
+
47
+ **If not found:** Error - user should run `/kata:new-project` first.
48
+
49
+ **Resolve model profile for agent spawning:**
50
+
51
+ ```bash
52
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
53
+ ```
54
+
55
+ Default to "balanced" if not set.
56
+
57
+ **Model lookup table:**
58
+
59
+ | Agent | quality | balanced | budget |
60
+ |-------|---------|----------|--------|
61
+ | kata-phase-researcher | opus | sonnet | haiku |
62
+ | kata-planner | opus | opus | sonnet |
63
+ | kata-plan-checker | sonnet | sonnet | haiku |
64
+
65
+ Store resolved models for use in Task calls below.
66
+
67
+ ## 2. Parse and Normalize Arguments
68
+
69
+ Extract from $ARGUMENTS:
70
+
71
+ - Phase number (integer or decimal like `2.1`)
72
+ - `--research` flag to force re-research
73
+ - `--skip-research` flag to skip research
74
+ - `--gaps` flag for gap closure mode
75
+ - `--skip-verify` flag to bypass verification loop
76
+
77
+ **If no phase number:** Detect next unplanned phase from roadmap.
78
+
79
+ **Normalize phase to zero-padded format:**
80
+
81
+ ```bash
82
+ # Normalize phase number (8 → 08, but preserve decimals like 2.1 → 02.1)
83
+ if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
84
+ PHASE=$(printf "%02d" "$PHASE")
85
+ elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
86
+ PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
87
+ fi
88
+ ```
89
+
90
+ **Check for existing research and plans:**
91
+
92
+ ```bash
93
+ ls .planning/phases/${PHASE}-*/*-RESEARCH.md 2>/dev/null
94
+ ls .planning/phases/${PHASE}-*/*-PLAN.md 2>/dev/null
95
+ ```
96
+
97
+ ## 3. Validate Phase
98
+
99
+ ```bash
100
+ grep -A5 "Phase ${PHASE}:" .planning/ROADMAP.md 2>/dev/null
101
+ ```
102
+
103
+ **If not found:** Error with available phases. **If found:** Extract phase number, name, description.
104
+
105
+ ## 4. Ensure Phase Directory Exists
106
+
107
+ ```bash
108
+ # PHASE is already normalized (08, 02.1, etc.) from step 2
109
+ PHASE_DIR=$(ls -d .planning/phases/${PHASE}-* 2>/dev/null | head -1)
110
+ if [ -z "$PHASE_DIR" ]; then
111
+ # Create phase directory from roadmap name
112
+ PHASE_NAME=$(grep "Phase ${PHASE}:" .planning/ROADMAP.md | sed 's/.*Phase [0-9]*: //' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
113
+ mkdir -p ".planning/phases/${PHASE}-${PHASE_NAME}"
114
+ PHASE_DIR=".planning/phases/${PHASE}-${PHASE_NAME}"
115
+ fi
116
+ ```
117
+
118
+ ## 5. Handle Research
119
+
120
+ **If `--gaps` flag:** Skip research (gap closure uses VERIFICATION.md instead).
121
+
122
+ **If `--skip-research` flag:** Skip to step 6.
123
+
124
+ **Check config for research setting:**
125
+
126
+ ```bash
127
+ WORKFLOW_RESEARCH=$(cat .planning/config.json 2>/dev/null | grep -o '"research"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
128
+ ```
129
+
130
+ **If `workflow.research` is `false` AND `--research` flag NOT set:** Skip to step 6.
131
+
132
+ **Otherwise:**
133
+
134
+ Check for existing research:
135
+
136
+ ```bash
137
+ ls "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
138
+ ```
139
+
140
+ **If RESEARCH.md exists AND `--research` flag NOT set:**
141
+ - Display: `Using existing research: ${PHASE_DIR}/${PHASE}-RESEARCH.md`
142
+ - Skip to step 6
143
+
144
+ **If RESEARCH.md missing OR `--research` flag set:**
145
+
146
+ Display stage banner:
147
+ ```
148
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
149
+ Kata ► RESEARCHING PHASE {X}
150
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
151
+
152
+ ◆ Spawning researcher...
153
+ ```
154
+
155
+ Proceed to spawn researcher
156
+
157
+ ### Spawn kata-phase-researcher
158
+
159
+ Gather context for research prompt:
160
+
161
+ ```bash
162
+ # Get phase description from roadmap
163
+ PHASE_DESC=$(grep -A3 "Phase ${PHASE}:" .planning/ROADMAP.md)
164
+
165
+ # Get requirements if they exist
166
+ REQUIREMENTS=$(cat .planning/REQUIREMENTS.md 2>/dev/null | grep -A100 "## Requirements" | head -50)
167
+
168
+ # Get prior decisions from STATE.md
169
+ DECISIONS=$(grep -A20 "### Decisions Made" .planning/STATE.md 2>/dev/null)
170
+
171
+ # Get phase context if exists
172
+ PHASE_CONTEXT=$(cat "${PHASE_DIR}/${PHASE}-CONTEXT.md" 2>/dev/null)
173
+ ```
174
+
175
+ Fill research prompt and spawn:
176
+
177
+ ```markdown
178
+ <objective>
179
+ Research how to implement Phase {phase_number}: {phase_name}
180
+
181
+ Answer: "What do I need to know to PLAN this phase well?"
182
+ </objective>
183
+
184
+ <context>
185
+ **Phase description:**
186
+ {phase_description}
187
+
188
+ **Requirements (if any):**
189
+ {requirements}
190
+
191
+ **Prior decisions:**
192
+ {decisions}
193
+
194
+ **Phase context (if any):**
195
+ {phase_context}
196
+ </context>
197
+
198
+ <output>
199
+ Write research findings to: {phase_dir}/{phase}-RESEARCH.md
200
+ </output>
201
+ ```
202
+
203
+ ```
204
+ Task(
205
+ prompt=research_prompt,
206
+ subagent_type="kata-phase-researcher",
207
+ model="{researcher_model}",
208
+ description="Research Phase {phase}"
209
+ )
210
+ ```
211
+
212
+ ### Handle Researcher Return
213
+
214
+ **`## RESEARCH COMPLETE`:**
215
+ - Display: `Research complete. Proceeding to planning...`
216
+ - Continue to step 6
217
+
218
+ **`## RESEARCH BLOCKED`:**
219
+ - Display blocker information
220
+ - Offer: 1) Provide more context, 2) Skip research and plan anyway, 3) Abort
221
+ - Wait for user response
222
+
223
+ ## 6. Check Existing Plans
224
+
225
+ ```bash
226
+ ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
227
+ ```
228
+
229
+ **If exists:** Offer: 1) Continue planning (add more plans), 2) View existing, 3) Replan from scratch. Wait for response.
230
+
231
+ ## 7. Read Context Files
232
+
233
+ Read and store context file contents for the planner agent. The `@` syntax does not work across Task() boundaries - content must be inlined.
234
+
235
+ ```bash
236
+ # Read required files
237
+ STATE_CONTENT=$(cat .planning/STATE.md)
238
+ ROADMAP_CONTENT=$(cat .planning/ROADMAP.md)
239
+
240
+ # Read optional files (empty string if missing)
241
+ REQUIREMENTS_CONTENT=$(cat .planning/REQUIREMENTS.md 2>/dev/null)
242
+ CONTEXT_CONTENT=$(cat "${PHASE_DIR}"/*-CONTEXT.md 2>/dev/null)
243
+ RESEARCH_CONTENT=$(cat "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null)
244
+
245
+ # Gap closure files (only if --gaps mode)
246
+ VERIFICATION_CONTENT=$(cat "${PHASE_DIR}"/*-VERIFICATION.md 2>/dev/null)
247
+ UAT_CONTENT=$(cat "${PHASE_DIR}"/*-UAT.md 2>/dev/null)
248
+ ```
249
+
250
+ ## 8. Spawn kata-planner Agent
251
+
252
+ Display stage banner:
253
+ ```
254
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
255
+ Kata ► PLANNING PHASE {X}
256
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
257
+
258
+ ◆ Spawning planner...
259
+ ```
260
+
261
+ Fill prompt with inlined content and spawn:
262
+
263
+ ```markdown
264
+ <planning_context>
265
+
266
+ **Phase:** {phase_number}
267
+ **Mode:** {standard | gap_closure}
268
+
269
+ **Project State:**
270
+ {state_content}
271
+
272
+ **Roadmap:**
273
+ {roadmap_content}
274
+
275
+ **Requirements (if exists):**
276
+ {requirements_content}
277
+
278
+ **Phase Context (if exists):**
279
+ {context_content}
280
+
281
+ **Research (if exists):**
282
+ {research_content}
283
+
284
+ **Gap Closure (if --gaps mode):**
285
+ {verification_content}
286
+ {uat_content}
287
+
288
+ </planning_context>
289
+
290
+ <downstream_consumer>
291
+ Output consumed by /kata:execute-phase
292
+ Plans must be executable prompts with:
293
+
294
+ - Frontmatter (wave, depends_on, files_modified, autonomous)
295
+ - Tasks in XML format
296
+ - Verification criteria
297
+ - must_haves for goal-backward verification
298
+ </downstream_consumer>
299
+
300
+ <quality_gate>
301
+ Before returning PLANNING COMPLETE:
302
+
303
+ - [ ] PLAN.md files created in phase directory
304
+ - [ ] Each plan has valid frontmatter
305
+ - [ ] Tasks are specific and actionable
306
+ - [ ] Dependencies correctly identified
307
+ - [ ] Waves assigned for parallel execution
308
+ - [ ] must_haves derived from phase goal
309
+ </quality_gate>
310
+ ```
311
+
312
+ ```
313
+ Task(
314
+ prompt=filled_prompt,
315
+ subagent_type="kata-planner",
316
+ model="{planner_model}",
317
+ description="Plan Phase {phase}"
318
+ )
319
+ ```
320
+
321
+ ## 9. Handle Planner Return
322
+
323
+ Parse planner output:
324
+
325
+ **`## PLANNING COMPLETE`:**
326
+ - Display: `Planner created {N} plan(s). Files on disk.`
327
+ - If `--skip-verify`: Skip to step 13
328
+ - Check config: `WORKFLOW_PLAN_CHECK=$(cat .planning/config.json 2>/dev/null | grep -o '"plan_check"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")`
329
+ - If `workflow.plan_check` is `false`: Skip to step 13
330
+ - Otherwise: Proceed to step 10
331
+
332
+ **`## CHECKPOINT REACHED`:**
333
+ - Present to user, get response, spawn continuation (see step 12)
334
+
335
+ **`## PLANNING INCONCLUSIVE`:**
336
+ - Show what was attempted
337
+ - Offer: Add context, Retry, Manual
338
+ - Wait for user response
339
+
340
+ ## 10. Spawn kata-plan-checker Agent
341
+
342
+ Display:
343
+ ```
344
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
345
+ Kata ► VERIFYING PLANS
346
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
347
+
348
+ ◆ Spawning plan checker...
349
+ ```
350
+
351
+ Read plans and requirements for the checker:
352
+
353
+ ```bash
354
+ # Read all plans in phase directory
355
+ PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
356
+
357
+ # Read requirements (reuse from step 7 if available)
358
+ REQUIREMENTS_CONTENT=$(cat .planning/REQUIREMENTS.md 2>/dev/null)
359
+ ```
360
+
361
+ Fill checker prompt with inlined content and spawn:
362
+
363
+ ```markdown
364
+ <verification_context>
365
+
366
+ **Phase:** {phase_number}
367
+ **Phase Goal:** {goal from ROADMAP}
368
+
369
+ **Plans to verify:**
370
+ {plans_content}
371
+
372
+ **Requirements (if exists):**
373
+ {requirements_content}
374
+
375
+ </verification_context>
376
+
377
+ <expected_output>
378
+ Return one of:
379
+ - ## VERIFICATION PASSED — all checks pass
380
+ - ## ISSUES FOUND — structured issue list
381
+ </expected_output>
382
+ ```
383
+
384
+ ```
385
+ Task(
386
+ prompt=checker_prompt,
387
+ subagent_type="kata-plan-checker",
388
+ model="{checker_model}",
389
+ description="Verify Phase {phase} plans"
390
+ )
391
+ ```
392
+
393
+ ## 11. Handle Checker Return
394
+
395
+ **If `## VERIFICATION PASSED`:**
396
+ - Display: `Plans verified. Ready for execution.`
397
+ - Proceed to step 13
398
+
399
+ **If `## ISSUES FOUND`:**
400
+ - Display: `Checker found issues:`
401
+ - List issues from checker output
402
+ - Check iteration count
403
+ - Proceed to step 12
404
+
405
+ ## 12. Revision Loop (Max 3 Iterations)
406
+
407
+ Track: `iteration_count` (starts at 1 after initial plan + check)
408
+
409
+ **If iteration_count < 3:**
410
+
411
+ Display: `Sending back to planner for revision... (iteration {N}/3)`
412
+
413
+ Read current plans for revision context:
414
+
415
+ ```bash
416
+ PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
417
+ ```
418
+
419
+ Spawn kata-planner with revision prompt:
420
+
421
+ ```markdown
422
+ <revision_context>
423
+
424
+ **Phase:** {phase_number}
425
+ **Mode:** revision
426
+
427
+ **Existing plans:**
428
+ {plans_content}
429
+
430
+ **Checker issues:**
431
+ {structured_issues_from_checker}
432
+
433
+ </revision_context>
434
+
435
+ <instructions>
436
+ Make targeted updates to address checker issues.
437
+ Do NOT replan from scratch unless issues are fundamental.
438
+ Return what changed.
439
+ </instructions>
440
+ ```
441
+
442
+ ```
443
+ Task(
444
+ prompt=revision_prompt,
445
+ subagent_type="kata-planner",
446
+ model="{planner_model}",
447
+ description="Revise Phase {phase} plans"
448
+ )
449
+ ```
450
+
451
+ - After planner returns → spawn checker again (step 10)
452
+ - Increment iteration_count
453
+
454
+ **If iteration_count >= 3:**
455
+
456
+ Display: `Max iterations reached. {N} issues remain:`
457
+ - List remaining issues
458
+
459
+ Offer options:
460
+ 1. Force proceed (execute despite issues)
461
+ 2. Provide guidance (user gives direction, retry)
462
+ 3. Abandon (exit planning)
463
+
464
+ Wait for user response.
465
+
466
+ ## 13. Present Final Status
467
+
468
+ Route to `<offer_next>`.
469
+
470
+ </process>
471
+
472
+ <offer_next>
473
+ Output this markdown directly (not as a code block):
474
+
475
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
476
+ Kata ► PHASE {X} PLANNED ✓
477
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
478
+
479
+ **Phase {X}: {Name}** — {N} plan(s) in {M} wave(s)
480
+
481
+ | Wave | Plans | What it builds |
482
+ |------|-------|----------------|
483
+ | 1 | 01, 02 | [objectives] |
484
+ | 2 | 03 | [objective] |
485
+
486
+ Research: {Completed | Used existing | Skipped}
487
+ Verification: {Passed | Passed with override | Skipped}
488
+
489
+ ───────────────────────────────────────────────────────────────
490
+
491
+ ## ▶ Next Up
492
+
493
+ **Execute Phase {X}** — run all {N} plans
494
+
495
+ /kata:execute-phase {X}
496
+
497
+ <sub>/clear first → fresh context window</sub>
498
+
499
+ ───────────────────────────────────────────────────────────────
500
+
501
+ **Also available:**
502
+ - cat .planning/phases/{phase-dir}/*-PLAN.md — review plans
503
+ - /kata:plan-phase {X} --research — re-research first
504
+
505
+ ───────────────────────────────────────────────────────────────
506
+ </offer_next>
507
+
508
+ <success_criteria>
509
+ - [ ] .planning/ directory validated
510
+ - [ ] Phase validated against roadmap
511
+ - [ ] Phase directory created if needed
512
+ - [ ] Research completed (unless --skip-research or --gaps or exists)
513
+ - [ ] kata-phase-researcher spawned if research needed
514
+ - [ ] Existing plans checked
515
+ - [ ] kata-planner spawned with context (including RESEARCH.md if available)
516
+ - [ ] Plans created (PLANNING COMPLETE or CHECKPOINT handled)
517
+ - [ ] kata-plan-checker spawned (unless --skip-verify)
518
+ - [ ] Verification passed OR user override OR max iterations with user decision
519
+ - [ ] User sees status between agent spawns
520
+ - [ ] User knows next steps (execute or review)
521
+ </success_criteria>