@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.
- package/README.md +55 -28
- package/agents/kata-debugger.md +20 -1
- package/agents/kata-entity-generator.md +237 -0
- package/agents/kata-executor.md +31 -0
- package/agents/kata-phase-researcher.md +13 -4
- package/agents/kata-planner.md +19 -0
- package/agents/kata-project-researcher.md +5 -5
- package/agents/kata-research-synthesizer.md +9 -0
- package/bin/install.js +100 -38
- package/commands/kata/add-phase.md +8 -195
- package/commands/kata/add-todo.md +8 -170
- package/commands/kata/audit-milestone.md +10 -248
- package/commands/kata/check-todo.md +20 -0
- package/commands/kata/complete-milestone.md +8 -124
- package/commands/kata/debug.md +9 -138
- package/commands/kata/discuss-phase.md +13 -73
- package/commands/kata/execute-phase.md +9 -293
- package/commands/kata/help.md +13 -376
- package/commands/kata/insert-phase.md +8 -215
- package/commands/kata/list-phase-assumptions.md +10 -40
- package/commands/kata/map-codebase.md +10 -61
- package/commands/kata/pause-work.md +9 -112
- package/commands/kata/plan-milestone-gaps.md +9 -273
- package/commands/kata/plan-phase.md +9 -464
- package/commands/kata/progress.md +10 -346
- package/commands/kata/quick.md +20 -0
- package/commands/kata/remove-phase.md +8 -326
- package/commands/kata/research-phase.md +10 -170
- package/commands/kata/resume-work.md +10 -30
- package/commands/kata/set-profile.md +20 -0
- package/commands/kata/settings.md +20 -0
- package/commands/kata/start-milestone.md +20 -0
- package/commands/kata/start-new-milestone.md +20 -0
- package/commands/kata/start-project.md +20 -0
- package/commands/kata/update-kata.md +20 -0
- package/commands/kata/update.md +13 -219
- package/commands/kata/verify-work.md +10 -209
- package/commands/kata/whats-new.md +13 -117
- package/kata/references/checkpoints.md +318 -28
- package/kata/references/model-profiles.md +73 -0
- package/kata/references/planning-config.md +94 -0
- package/kata/references/ui-brand.md +2 -2
- package/kata/references/verification-patterns.md +17 -0
- package/kata/templates/codebase/architecture.md +2 -2
- package/kata/templates/codebase/structure.md +4 -4
- package/kata/templates/config.json +9 -0
- package/kata/templates/entity.md +173 -0
- package/kata/templates/phase-prompt.md +18 -27
- package/kata/workflows/complete-milestone.md +11 -0
- package/kata/workflows/diagnose-issues.md +12 -1
- package/kata/workflows/discovery-phase.md +5 -9
- package/kata/workflows/discuss-phase.md +11 -0
- package/kata/workflows/execute-phase.md +68 -9
- package/kata/workflows/execute-plan.md +47 -4
- package/kata/workflows/map-codebase.md +35 -2
- package/kata/workflows/resume-project.md +4 -0
- package/kata/workflows/verify-phase.md +2 -3
- package/kata/workflows/verify-work.md +36 -3
- package/package.json +12 -5
- package/skills/kata-adding-phases/SKILL.md +209 -0
- package/skills/kata-adding-todos/SKILL.md +195 -0
- package/skills/kata-auditing-milestones/SKILL.md +279 -0
- package/{commands/kata/check-todos.md → skills/kata-checking-todos/SKILL.md} +16 -5
- package/skills/kata-completing-milestones/SKILL.md +137 -0
- package/skills/kata-configuring-settings/SKILL.md +139 -0
- package/skills/kata-debugging/SKILL.md +170 -0
- package/skills/kata-discussing-phases/SKILL.md +85 -0
- package/skills/kata-executing-phases/SKILL.md +335 -0
- package/skills/kata-executing-quick-tasks/SKILL.md +306 -0
- package/skills/kata-inserting-phases/SKILL.md +229 -0
- package/skills/kata-listing-phase-assumptions/SKILL.md +51 -0
- package/skills/kata-mapping-codebases/SKILL.md +70 -0
- package/skills/kata-pausing-work/SKILL.md +137 -0
- package/skills/kata-planning-milestone-gaps/SKILL.md +295 -0
- package/skills/kata-planning-phases/SKILL.md +521 -0
- package/skills/kata-providing-help/SKILL.md +495 -0
- package/skills/kata-removing-phases/SKILL.md +350 -0
- package/skills/kata-researching-phases/SKILL.md +202 -0
- package/skills/kata-resuming-work/SKILL.md +41 -0
- package/skills/kata-setting-profiles/SKILL.md +109 -0
- package/skills/kata-showing-whats-new/SKILL.md +131 -0
- package/skills/kata-starting-milestones/SKILL.md +721 -0
- package/{commands/kata/new-milestone.md → skills/kata-starting-new-milestones/SKILL.md} +256 -272
- package/{commands/kata/new-project.md → skills/kata-starting-projects/SKILL.md} +138 -29
- package/skills/kata-tracking-progress/SKILL.md +365 -0
- package/skills/kata-updating/SKILL.md +179 -0
- package/skills/kata-updating-kata/SKILL.md +179 -0
- package/skills/kata-verifying-work/SKILL.md +217 -0
- /package/hooks/{statusline.js → kata-statusline.js} +0 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kata-executing-quick-tasks
|
|
3
|
+
description: Use this skill when executing small ad-hoc tasks with Kata guarantees, running quick tasks without full planning, or handling one-off work outside the roadmap. Triggers include "quick task", "quick mode", "quick fix", "ad-hoc task", "small task", and "one-off task".
|
|
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
|
+
<objective>
|
|
14
|
+
Execute small, ad-hoc tasks with Kata guarantees (atomic commits, STATE.md tracking) while skipping optional agents (research, plan-checker, verifier).
|
|
15
|
+
|
|
16
|
+
Quick mode is the same system with a shorter path:
|
|
17
|
+
- Spawns kata-planner (quick mode) + kata-executor(s)
|
|
18
|
+
- Skips kata-phase-researcher, kata-plan-checker, kata-verifier
|
|
19
|
+
- Quick tasks live in `.planning/quick/` separate from planned phases
|
|
20
|
+
- Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
|
|
21
|
+
|
|
22
|
+
Use when: You know exactly what to do and the task is small enough to not need research or verification.
|
|
23
|
+
</objective>
|
|
24
|
+
|
|
25
|
+
<execution_context>
|
|
26
|
+
Orchestration is inline - no separate workflow file. Quick mode is deliberately simpler than full Kata.
|
|
27
|
+
</execution_context>
|
|
28
|
+
|
|
29
|
+
<context>
|
|
30
|
+
@.planning/STATE.md
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
**Step 0: Resolve Model Profile**
|
|
35
|
+
|
|
36
|
+
Read model profile for agent spawning:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Default to "balanced" if not set.
|
|
43
|
+
|
|
44
|
+
**Model lookup table:**
|
|
45
|
+
|
|
46
|
+
| Agent | quality | balanced | budget |
|
|
47
|
+
|-------|---------|----------|--------|
|
|
48
|
+
| kata-planner | opus | opus | sonnet |
|
|
49
|
+
| kata-executor | opus | sonnet | sonnet |
|
|
50
|
+
|
|
51
|
+
Store resolved models for use in Task calls below.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
**Step 1: Pre-flight validation**
|
|
56
|
+
|
|
57
|
+
Check that an active Kata project exists:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
if [ ! -f .planning/ROADMAP.md ]; then
|
|
61
|
+
echo "Quick mode requires an active project with ROADMAP.md."
|
|
62
|
+
echo "Run /kata:new-project first."
|
|
63
|
+
exit 1
|
|
64
|
+
fi
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If validation fails, stop immediately with the error message.
|
|
68
|
+
|
|
69
|
+
Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not phase status.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
**Step 2: Get task description**
|
|
74
|
+
|
|
75
|
+
Prompt user interactively for the task description:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
AskUserQuestion(
|
|
79
|
+
header: "Quick Task",
|
|
80
|
+
question: "What do you want to do?",
|
|
81
|
+
followUp: null
|
|
82
|
+
)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Store response as `$DESCRIPTION`.
|
|
86
|
+
|
|
87
|
+
If empty, re-prompt: "Please provide a task description."
|
|
88
|
+
|
|
89
|
+
Generate slug from description:
|
|
90
|
+
```bash
|
|
91
|
+
slug=$(echo "$DESCRIPTION" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//' | cut -c1-40)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
**Step 3: Calculate next quick task number**
|
|
97
|
+
|
|
98
|
+
Ensure `.planning/quick/` directory exists and find the next sequential number:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Ensure .planning/quick/ exists
|
|
102
|
+
mkdir -p .planning/quick
|
|
103
|
+
|
|
104
|
+
# Find highest existing number and increment
|
|
105
|
+
last=$(ls -1d .planning/quick/[0-9][0-9][0-9]-* 2>/dev/null | sort -r | head -1 | xargs -I{} basename {} | grep -oE '^[0-9]+')
|
|
106
|
+
|
|
107
|
+
if [ -z "$last" ]; then
|
|
108
|
+
next_num="001"
|
|
109
|
+
else
|
|
110
|
+
next_num=$(printf "%03d" $((10#$last + 1)))
|
|
111
|
+
fi
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
**Step 4: Create quick task directory**
|
|
117
|
+
|
|
118
|
+
Create the directory for this quick task:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
QUICK_DIR=".planning/quick/${next_num}-${slug}"
|
|
122
|
+
mkdir -p "$QUICK_DIR"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Report to user:
|
|
126
|
+
```
|
|
127
|
+
Creating quick task ${next_num}: ${DESCRIPTION}
|
|
128
|
+
Directory: ${QUICK_DIR}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Store `$QUICK_DIR` for use in orchestration.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
**Step 5: Spawn planner (quick mode)**
|
|
136
|
+
|
|
137
|
+
Spawn kata-planner with quick mode context:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Task(
|
|
141
|
+
prompt="
|
|
142
|
+
<planning_context>
|
|
143
|
+
|
|
144
|
+
**Mode:** quick
|
|
145
|
+
**Directory:** ${QUICK_DIR}
|
|
146
|
+
**Description:** ${DESCRIPTION}
|
|
147
|
+
|
|
148
|
+
**Project State:**
|
|
149
|
+
@.planning/STATE.md
|
|
150
|
+
|
|
151
|
+
</planning_context>
|
|
152
|
+
|
|
153
|
+
<constraints>
|
|
154
|
+
- Create a SINGLE plan with 1-3 focused tasks
|
|
155
|
+
- Quick tasks should be atomic and self-contained
|
|
156
|
+
- No research phase, no checker phase
|
|
157
|
+
- Target ~30% context usage (simple, focused)
|
|
158
|
+
</constraints>
|
|
159
|
+
|
|
160
|
+
<output>
|
|
161
|
+
Write plan to: ${QUICK_DIR}/${next_num}-PLAN.md
|
|
162
|
+
Return: ## PLANNING COMPLETE with plan path
|
|
163
|
+
</output>
|
|
164
|
+
",
|
|
165
|
+
subagent_type="kata-planner",
|
|
166
|
+
model="{planner_model}",
|
|
167
|
+
description="Quick plan: ${DESCRIPTION}"
|
|
168
|
+
)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
After planner returns:
|
|
172
|
+
1. Verify plan exists at `${QUICK_DIR}/${next_num}-PLAN.md`
|
|
173
|
+
2. Extract plan count (typically 1 for quick tasks)
|
|
174
|
+
3. Report: "Plan created: ${QUICK_DIR}/${next_num}-PLAN.md"
|
|
175
|
+
|
|
176
|
+
If plan not found, error: "Planner failed to create ${next_num}-PLAN.md"
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
**Step 6: Spawn executor**
|
|
181
|
+
|
|
182
|
+
Spawn kata-executor with plan reference:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Task(
|
|
186
|
+
prompt="
|
|
187
|
+
Execute quick task ${next_num}.
|
|
188
|
+
|
|
189
|
+
Plan: @${QUICK_DIR}/${next_num}-PLAN.md
|
|
190
|
+
Project state: @.planning/STATE.md
|
|
191
|
+
|
|
192
|
+
<constraints>
|
|
193
|
+
- Execute all tasks in the plan
|
|
194
|
+
- Commit each task atomically
|
|
195
|
+
- Create summary at: ${QUICK_DIR}/${next_num}-SUMMARY.md
|
|
196
|
+
- Do NOT update ROADMAP.md (quick tasks are separate from planned phases)
|
|
197
|
+
</constraints>
|
|
198
|
+
",
|
|
199
|
+
subagent_type="kata-executor",
|
|
200
|
+
model="{executor_model}",
|
|
201
|
+
description="Execute: ${DESCRIPTION}"
|
|
202
|
+
)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
After executor returns:
|
|
206
|
+
1. Verify summary exists at `${QUICK_DIR}/${next_num}-SUMMARY.md`
|
|
207
|
+
2. Extract commit hash from executor output
|
|
208
|
+
3. Report completion status
|
|
209
|
+
|
|
210
|
+
If summary not found, error: "Executor failed to create ${next_num}-SUMMARY.md"
|
|
211
|
+
|
|
212
|
+
Note: For quick tasks producing multiple plans (rare), spawn executors in parallel waves per execute-phase patterns.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
**Step 7: Update STATE.md**
|
|
217
|
+
|
|
218
|
+
Update STATE.md with quick task completion record.
|
|
219
|
+
|
|
220
|
+
**7a. Check if "Quick Tasks Completed" section exists:**
|
|
221
|
+
|
|
222
|
+
Read STATE.md and check for `### Quick Tasks Completed` section.
|
|
223
|
+
|
|
224
|
+
**7b. If section doesn't exist, create it:**
|
|
225
|
+
|
|
226
|
+
Insert after `### Blockers/Concerns` section:
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
### Quick Tasks Completed
|
|
230
|
+
|
|
231
|
+
| # | Description | Date | Commit | Directory |
|
|
232
|
+
|---|-------------|------|--------|-----------|
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**7c. Append new row to table:**
|
|
236
|
+
|
|
237
|
+
```markdown
|
|
238
|
+
| ${next_num} | ${DESCRIPTION} | $(date +%Y-%m-%d) | ${commit_hash} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**7d. Update "Last activity" line:**
|
|
242
|
+
|
|
243
|
+
Find and update the line:
|
|
244
|
+
```
|
|
245
|
+
Last activity: $(date +%Y-%m-%d) - Completed quick task ${next_num}: ${DESCRIPTION}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Use Edit tool to make these changes atomically
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
**Step 8: Final commit and completion**
|
|
253
|
+
|
|
254
|
+
Stage and commit quick task artifacts:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Stage quick task artifacts
|
|
258
|
+
git add ${QUICK_DIR}/${next_num}-PLAN.md
|
|
259
|
+
git add ${QUICK_DIR}/${next_num}-SUMMARY.md
|
|
260
|
+
git add .planning/STATE.md
|
|
261
|
+
|
|
262
|
+
# Commit with quick task format
|
|
263
|
+
git commit -m "$(cat <<'EOF'
|
|
264
|
+
docs(quick-${next_num}): ${DESCRIPTION}
|
|
265
|
+
|
|
266
|
+
Quick task completed.
|
|
267
|
+
|
|
268
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
269
|
+
EOF
|
|
270
|
+
)"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Get final commit hash:
|
|
274
|
+
```bash
|
|
275
|
+
commit_hash=$(git rev-parse --short HEAD)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Display completion output:
|
|
279
|
+
```
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
Kata > QUICK TASK COMPLETE
|
|
283
|
+
|
|
284
|
+
Quick Task ${next_num}: ${DESCRIPTION}
|
|
285
|
+
|
|
286
|
+
Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
|
|
287
|
+
Commit: ${commit_hash}
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
Ready for next task: /kata:quick
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
</process>
|
|
295
|
+
|
|
296
|
+
<success_criteria>
|
|
297
|
+
- [ ] ROADMAP.md validation passes
|
|
298
|
+
- [ ] User provides task description
|
|
299
|
+
- [ ] Slug generated (lowercase, hyphens, max 40 chars)
|
|
300
|
+
- [ ] Next number calculated (001, 002, 003...)
|
|
301
|
+
- [ ] Directory created at `.planning/quick/NNN-slug/`
|
|
302
|
+
- [ ] `${next_num}-PLAN.md` created by planner
|
|
303
|
+
- [ ] `${next_num}-SUMMARY.md` created by executor
|
|
304
|
+
- [ ] STATE.md updated with quick task row
|
|
305
|
+
- [ ] Artifacts committed
|
|
306
|
+
</success_criteria>
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kata-inserting-phases
|
|
3
|
+
description: Use this skill when inserting urgent work as a decimal phase between existing phases, adding mid-milestone work, or creating intermediate phases. Triggers include "insert phase", "add urgent phase", "create decimal phase", "insert between phases", and "urgent work".
|
|
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
|
+
<objective>
|
|
14
|
+
Insert a decimal phase for urgent work discovered mid-milestone that must be completed between existing integer phases.
|
|
15
|
+
|
|
16
|
+
Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions.
|
|
17
|
+
|
|
18
|
+
Purpose: Handle urgent work discovered during execution without renumbering entire roadmap.
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@.planning/ROADMAP.md
|
|
23
|
+
@.planning/STATE.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<process>
|
|
27
|
+
|
|
28
|
+
<step name="parse_arguments">
|
|
29
|
+
Parse the command arguments:
|
|
30
|
+
- First argument: integer phase number to insert after
|
|
31
|
+
- Remaining arguments: phase description
|
|
32
|
+
|
|
33
|
+
Example: `/kata:insert-phase 72 Fix critical auth bug`
|
|
34
|
+
→ after = 72
|
|
35
|
+
→ description = "Fix critical auth bug"
|
|
36
|
+
|
|
37
|
+
Validation:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
if [ $# -lt 2 ]; then
|
|
41
|
+
echo "ERROR: Both phase number and description required"
|
|
42
|
+
echo "Usage: /kata:insert-phase <after> <description>"
|
|
43
|
+
echo "Example: /kata:insert-phase 72 Fix critical auth bug"
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Parse first argument as integer:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
after_phase=$1
|
|
52
|
+
shift
|
|
53
|
+
description="$*"
|
|
54
|
+
|
|
55
|
+
# Validate after_phase is an integer
|
|
56
|
+
if ! [[ "$after_phase" =~ ^[0-9]+$ ]]; then
|
|
57
|
+
echo "ERROR: Phase number must be an integer"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
</step>
|
|
63
|
+
|
|
64
|
+
<step name="load_roadmap">
|
|
65
|
+
Load the roadmap file:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
if [ -f .planning/ROADMAP.md ]; then
|
|
69
|
+
ROADMAP=".planning/ROADMAP.md"
|
|
70
|
+
else
|
|
71
|
+
echo "ERROR: No roadmap found (.planning/ROADMAP.md)"
|
|
72
|
+
exit 1
|
|
73
|
+
fi
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Read roadmap content for parsing.
|
|
77
|
+
</step>
|
|
78
|
+
|
|
79
|
+
<step name="verify_target_phase">
|
|
80
|
+
Verify that the target phase exists in the roadmap:
|
|
81
|
+
|
|
82
|
+
1. Search for "### Phase {after_phase}:" heading
|
|
83
|
+
2. If not found:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
ERROR: Phase {after_phase} not found in roadmap
|
|
87
|
+
Available phases: [list phase numbers]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Exit.
|
|
91
|
+
|
|
92
|
+
3. Verify phase is in current milestone (not completed/archived)
|
|
93
|
+
</step>
|
|
94
|
+
|
|
95
|
+
<step name="find_existing_decimals">
|
|
96
|
+
Find existing decimal phases after the target phase:
|
|
97
|
+
|
|
98
|
+
1. Search for all "### Phase {after_phase}.N:" headings
|
|
99
|
+
2. Extract decimal suffixes (e.g., for Phase 72: find 72.1, 72.2, 72.3)
|
|
100
|
+
3. Find the highest decimal suffix
|
|
101
|
+
4. Calculate next decimal: max + 1
|
|
102
|
+
|
|
103
|
+
Examples:
|
|
104
|
+
|
|
105
|
+
- Phase 72 with no decimals → next is 72.1
|
|
106
|
+
- Phase 72 with 72.1 → next is 72.2
|
|
107
|
+
- Phase 72 with 72.1, 72.2 → next is 72.3
|
|
108
|
+
|
|
109
|
+
Store as: `decimal_phase="$(printf "%02d" $after_phase).${next_decimal}"`
|
|
110
|
+
</step>
|
|
111
|
+
|
|
112
|
+
<step name="generate_slug">
|
|
113
|
+
Convert the phase description to a kebab-case slug:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
slug=$(echo "$description" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Phase directory name: `{decimal-phase}-{slug}`
|
|
120
|
+
Example: `06.1-fix-critical-auth-bug` (phase 6 insertion)
|
|
121
|
+
</step>
|
|
122
|
+
|
|
123
|
+
<step name="create_phase_directory">
|
|
124
|
+
Create the phase directory structure:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
phase_dir=".planning/phases/${decimal_phase}-${slug}"
|
|
128
|
+
mkdir -p "$phase_dir"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Confirm: "Created directory: $phase_dir"
|
|
132
|
+
</step>
|
|
133
|
+
|
|
134
|
+
<step name="update_roadmap">
|
|
135
|
+
Insert the new phase entry into the roadmap:
|
|
136
|
+
|
|
137
|
+
1. Find insertion point: immediately after Phase {after_phase}'s content (before next phase heading or "---")
|
|
138
|
+
2. Insert new phase heading with (INSERTED) marker:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
### Phase {decimal_phase}: {Description} (INSERTED)
|
|
142
|
+
|
|
143
|
+
**Goal:** [Urgent work - to be planned]
|
|
144
|
+
**Depends on:** Phase {after_phase}
|
|
145
|
+
**Plans:** 0 plans
|
|
146
|
+
|
|
147
|
+
Plans:
|
|
148
|
+
- [ ] TBD (run /kata:plan-phase {decimal_phase} to break down)
|
|
149
|
+
|
|
150
|
+
**Details:**
|
|
151
|
+
[To be added during planning]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
3. Write updated roadmap back to file
|
|
155
|
+
|
|
156
|
+
The "(INSERTED)" marker helps identify decimal phases as urgent insertions.
|
|
157
|
+
|
|
158
|
+
Preserve all other content exactly (formatting, spacing, other phases).
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
<step name="update_project_state">
|
|
162
|
+
Update STATE.md to reflect the inserted phase:
|
|
163
|
+
|
|
164
|
+
1. Read `.planning/STATE.md`
|
|
165
|
+
2. Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
|
|
166
|
+
```
|
|
167
|
+
- Phase {decimal_phase} inserted after Phase {after_phase}: {description} (URGENT)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If "Roadmap Evolution" section doesn't exist, create it.
|
|
171
|
+
|
|
172
|
+
Add note about insertion reason if appropriate.
|
|
173
|
+
</step>
|
|
174
|
+
|
|
175
|
+
<step name="completion">
|
|
176
|
+
Present completion summary:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Phase {decimal_phase} inserted after Phase {after_phase}:
|
|
180
|
+
- Description: {description}
|
|
181
|
+
- Directory: .planning/phases/{decimal-phase}-{slug}/
|
|
182
|
+
- Status: Not planned yet
|
|
183
|
+
- Marker: (INSERTED) - indicates urgent work
|
|
184
|
+
|
|
185
|
+
Roadmap updated: {roadmap-path}
|
|
186
|
+
Project state updated: .planning/STATE.md
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## ▶ Next Up
|
|
191
|
+
|
|
192
|
+
**Phase {decimal_phase}: {description}** — urgent insertion
|
|
193
|
+
|
|
194
|
+
`/kata:plan-phase {decimal_phase}`
|
|
195
|
+
|
|
196
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
**Also available:**
|
|
201
|
+
- Review insertion impact: Check if Phase {next_integer} dependencies still make sense
|
|
202
|
+
- Review roadmap
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
```
|
|
206
|
+
</step>
|
|
207
|
+
|
|
208
|
+
</process>
|
|
209
|
+
|
|
210
|
+
<anti_patterns>
|
|
211
|
+
|
|
212
|
+
- Don't use this for planned work at end of milestone (use /kata:add-phase)
|
|
213
|
+
- Don't insert before Phase 1 (decimal 0.1 makes no sense)
|
|
214
|
+
- Don't renumber existing phases
|
|
215
|
+
- Don't modify the target phase content
|
|
216
|
+
- Don't create plans yet (that's /kata:plan-phase)
|
|
217
|
+
- Don't commit changes (user decides when to commit)
|
|
218
|
+
</anti_patterns>
|
|
219
|
+
|
|
220
|
+
<success_criteria>
|
|
221
|
+
Phase insertion is complete when:
|
|
222
|
+
|
|
223
|
+
- [ ] Phase directory created: `.planning/phases/{N.M}-{slug}/`
|
|
224
|
+
- [ ] Roadmap updated with new phase entry (includes "(INSERTED)" marker)
|
|
225
|
+
- [ ] Phase inserted in correct position (after target phase, before next integer phase)
|
|
226
|
+
- [ ] STATE.md updated with roadmap evolution note
|
|
227
|
+
- [ ] Decimal number calculated correctly (based on existing decimals)
|
|
228
|
+
- [ ] User informed of next steps and dependency implications
|
|
229
|
+
</success_criteria>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kata-listing-phase-assumptions
|
|
3
|
+
description: Use this skill when surfacing Claude's assumptions about a phase approach before planning, checking what Claude thinks, or validating understanding before planning. Triggers include "list assumptions", "what are you thinking", "show assumptions", "phase assumptions", and "what's the plan".
|
|
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
|
+
<objective>
|
|
14
|
+
Analyze a phase and present Claude's assumptions about technical approach, implementation order, scope boundaries, risk areas, and dependencies.
|
|
15
|
+
|
|
16
|
+
Purpose: Help users see what Claude thinks BEFORE planning begins - enabling course correction early when assumptions are wrong.
|
|
17
|
+
Output: Conversational output only (no file creation) - ends with "What do you think?" prompt
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<execution_context>
|
|
21
|
+
@~/.claude/get-shit-done/workflows/list-phase-assumptions.md
|
|
22
|
+
</execution_context>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
Phase number: $ARGUMENTS (required)
|
|
26
|
+
|
|
27
|
+
**Load project state first:**
|
|
28
|
+
@.planning/STATE.md
|
|
29
|
+
|
|
30
|
+
**Load roadmap:**
|
|
31
|
+
@.planning/ROADMAP.md
|
|
32
|
+
</context>
|
|
33
|
+
|
|
34
|
+
<process>
|
|
35
|
+
1. Validate phase number argument (error if missing or invalid)
|
|
36
|
+
2. Check if phase exists in roadmap
|
|
37
|
+
3. Follow list-phase-assumptions.md workflow:
|
|
38
|
+
- Analyze roadmap description
|
|
39
|
+
- Surface assumptions about: technical approach, implementation order, scope, risks, dependencies
|
|
40
|
+
- Present assumptions clearly
|
|
41
|
+
- Prompt "What do you think?"
|
|
42
|
+
4. Gather feedback and offer next steps
|
|
43
|
+
</process>
|
|
44
|
+
|
|
45
|
+
<success_criteria>
|
|
46
|
+
|
|
47
|
+
- Phase validated against roadmap
|
|
48
|
+
- Assumptions surfaced across five areas
|
|
49
|
+
- User prompted for feedback
|
|
50
|
+
- User knows next steps (discuss context, plan phase, or correct assumptions)
|
|
51
|
+
</success_criteria>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kata-mapping-codebases
|
|
3
|
+
description: Use this skill when analyzing an existing codebase with parallel mapper agents, creating codebase documentation, understanding brownfield projects, or mapping code structure. Triggers include "map codebase", "analyze codebase", "document codebase", "understand code", and "codebase map".
|
|
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
|
+
<objective>
|
|
14
|
+
Analyze existing codebase using parallel kata-codebase-mapper agents to produce structured codebase documents.
|
|
15
|
+
|
|
16
|
+
Each mapper agent explores a focus area and **writes documents directly** to `.planning/codebase/`. The orchestrator only receives confirmations, keeping context usage minimal.
|
|
17
|
+
|
|
18
|
+
Output: .planning/codebase/ folder with 7 structured documents about the codebase state.
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@~/.claude/get-shit-done/workflows/map-codebase.md
|
|
23
|
+
</execution_context>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
Focus area: $ARGUMENTS (optional - if provided, tells agents to focus on specific subsystem)
|
|
27
|
+
|
|
28
|
+
**Load project state if exists:**
|
|
29
|
+
Check for .planning/STATE.md - loads context if project already initialized
|
|
30
|
+
|
|
31
|
+
**This command can run:**
|
|
32
|
+
- Before /kata:new-project (brownfield codebases) - creates codebase map first
|
|
33
|
+
- After /kata:new-project (greenfield codebases) - updates codebase map as code evolves
|
|
34
|
+
- Anytime to refresh codebase understanding
|
|
35
|
+
</context>
|
|
36
|
+
|
|
37
|
+
<when_to_use>
|
|
38
|
+
**Use map-codebase for:**
|
|
39
|
+
- Brownfield projects before initialization (understand existing code first)
|
|
40
|
+
- Refreshing codebase map after significant changes
|
|
41
|
+
- Onboarding to an unfamiliar codebase
|
|
42
|
+
- Before major refactoring (understand current state)
|
|
43
|
+
- When STATE.md references outdated codebase info
|
|
44
|
+
|
|
45
|
+
**Skip map-codebase for:**
|
|
46
|
+
- Greenfield projects with no code yet (nothing to map)
|
|
47
|
+
- Trivial codebases (<5 files)
|
|
48
|
+
</when_to_use>
|
|
49
|
+
|
|
50
|
+
<process>
|
|
51
|
+
1. Check if .planning/codebase/ already exists (offer to refresh or skip)
|
|
52
|
+
2. Create .planning/codebase/ directory structure
|
|
53
|
+
3. Spawn 4 parallel kata-codebase-mapper agents:
|
|
54
|
+
- Agent 1: tech focus → writes STACK.md, INTEGRATIONS.md
|
|
55
|
+
- Agent 2: arch focus → writes ARCHITECTURE.md, STRUCTURE.md
|
|
56
|
+
- Agent 3: quality focus → writes CONVENTIONS.md, TESTING.md
|
|
57
|
+
- Agent 4: concerns focus → writes CONCERNS.md
|
|
58
|
+
4. Wait for agents to complete, collect confirmations (NOT document contents)
|
|
59
|
+
5. Verify all 7 documents exist with line counts
|
|
60
|
+
6. Commit codebase map
|
|
61
|
+
7. Offer next steps (typically: /kata:new-project or /kata:plan-phase)
|
|
62
|
+
</process>
|
|
63
|
+
|
|
64
|
+
<success_criteria>
|
|
65
|
+
- [ ] .planning/codebase/ directory created
|
|
66
|
+
- [ ] All 7 codebase documents written by mapper agents
|
|
67
|
+
- [ ] Documents follow template structure
|
|
68
|
+
- [ ] Parallel agents completed without errors
|
|
69
|
+
- [ ] User knows next steps
|
|
70
|
+
</success_criteria>
|