@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
package/README.md
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
# KATA
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**型** · /ˈkɑːtɑː/ · *noun*
|
|
6
|
+
<br>
|
|
7
|
+
<sub>a choreographed pattern practiced repeatedly until perfected</sub>
|
|
6
8
|
|
|
7
|
-
[](https://www.npmjs.com/package/@gannonh/kata)
|
|
8
9
|
<br>
|
|
9
10
|
|
|
11
|
+
|
|
12
|
+
[](https://www.npmjs.com/package/@gannonh/kata)
|
|
13
|
+
<br>
|
|
10
14
|
```bash
|
|
11
15
|
npx @gannonh/kata
|
|
12
16
|
```
|
|
13
17
|
|
|
14
|
-
**Works on Mac, Windows, and Linux.**
|
|
15
18
|
|
|
16
19
|
<br>
|
|
17
20
|
|
|
@@ -19,7 +22,7 @@ npx @gannonh/kata
|
|
|
19
22
|
|
|
20
23
|
<br>
|
|
21
24
|
|
|
22
|
-
**
|
|
25
|
+
**Agent orchestration framework for spec-driven development.**
|
|
23
26
|
|
|
24
27
|
</div>
|
|
25
28
|
|
|
@@ -27,7 +30,7 @@ npx @gannonh/kata
|
|
|
27
30
|
|
|
28
31
|
## Who This Is For
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
Teams and individuals that want to describe what they want and have it built correctly.
|
|
31
34
|
|
|
32
35
|
---
|
|
33
36
|
|
|
@@ -124,6 +127,19 @@ Add this to your project's `.claude/settings.json`:
|
|
|
124
127
|
|
|
125
128
|
</details>
|
|
126
129
|
|
|
130
|
+
## What is This
|
|
131
|
+
|
|
132
|
+
This project began as a fork of the [GSD system](https://github.com/glittercowboy/get-shit-done), and then quickly became a hard fork. Why hard fork and not contribute to the original project? Because I'm a control freak. Just kidding (kind of). The real reason is two fold, well three, or two and a half.
|
|
133
|
+
|
|
134
|
+
- **Team-oriented by design.** GSD, as its brilliant creator has made very clear, is optimized for solo devs, viewing "enterprise" features as anti-patterns. I love the simplicity of GSD and respect its opinionated position, but the projects I work on are more often than not multi-player. At a minimum, I need:
|
|
135
|
+
- **GitHub integration** — PRs, issues, code review workflows. Planning that connects to where teams actually collaborate.
|
|
136
|
+
- **IDE agnostic** — Not everyone uses Claude Code (I do but I'm not everyone). Kata should work with the tools teams prefer.
|
|
137
|
+
|
|
138
|
+
- **Skills as the foundation.** GSD is primarily built on `/commands`, which are Claude Code-specific. Kata standardizes on **skills** — an emerging open standard supported across major agentic frameworks.
|
|
139
|
+
- This makes Kata portable and future-proof, not locked to a single tool.
|
|
140
|
+
- Skills use progressive discolsure to keep prompts lean and efficient.
|
|
141
|
+
- Skills instantiate with natural language, which is especially convenient when using text-to-speech as your primary input device (you can still invoke with a slash command but it isn't necessary)
|
|
142
|
+
|
|
127
143
|
---
|
|
128
144
|
|
|
129
145
|
## How It Works
|
|
@@ -348,49 +364,60 @@ The system adapts.
|
|
|
348
364
|
|
|
349
365
|
| Command | Function |
|
|
350
366
|
| ---------------------------- | ------------------------------------------------------------------ |
|
|
351
|
-
| `/kata:new
|
|
352
|
-
| `/kata:discuss
|
|
353
|
-
| `/kata:plan
|
|
354
|
-
| `/kata:execute
|
|
355
|
-
| `/kata:verify
|
|
356
|
-
| `/kata:complete
|
|
357
|
-
| `/kata:new
|
|
367
|
+
| `/kata:project-new` | Full initialization: questions → research → requirements → roadmap |
|
|
368
|
+
| `/kata:phase-discuss [N]` | Capture implementation decisions before planning |
|
|
369
|
+
| `/kata:phase-plan [N]` | Research + plan + verify for a phase |
|
|
370
|
+
| `/kata:phase-execute <N>` | Execute all plans in parallel waves, verify when complete |
|
|
371
|
+
| `/kata:work-verify [N]` | Manual user acceptance testing ¹ |
|
|
372
|
+
| `/kata:milestone-complete` | Archive milestone, tag release |
|
|
373
|
+
| `/kata:milestone-new [name]` | Start next version: questions → research → requirements → roadmap |
|
|
358
374
|
|
|
359
375
|
### Navigation
|
|
360
376
|
|
|
361
|
-
| Command
|
|
362
|
-
|
|
|
363
|
-
| `/kata:
|
|
364
|
-
| `/kata:help`
|
|
377
|
+
| Command | Function |
|
|
378
|
+
| -------------------- | --------------------------------- |
|
|
379
|
+
| `/kata:project-status` | Where am I? What's next? |
|
|
380
|
+
| `/kata:help` | Show all commands and usage guide |
|
|
365
381
|
|
|
366
382
|
### Brownfield
|
|
367
383
|
|
|
368
384
|
| Command | Function |
|
|
369
385
|
| -------------------- | -------------------------------------------- |
|
|
370
|
-
| `/kata:map
|
|
386
|
+
| `/kata:codebase-map` | Analyze existing codebase before new-project |
|
|
371
387
|
|
|
372
388
|
### Phase Management
|
|
373
389
|
|
|
374
|
-
| Command
|
|
375
|
-
|
|
|
376
|
-
| `/kata:add
|
|
377
|
-
| `/kata:insert
|
|
378
|
-
| `/kata:remove
|
|
390
|
+
| Command | Function |
|
|
391
|
+
| -------------------------- | --------------------------------- |
|
|
392
|
+
| `/kata:phase-add` | Append phase to roadmap |
|
|
393
|
+
| `/kata:phase-insert [N]` | Insert urgent work between phases |
|
|
394
|
+
| `/kata:phase-remove [N]` | Remove future phase, renumber |
|
|
395
|
+
| `/kata:roadmap-plan-gaps` | Analyze coverage gaps |
|
|
396
|
+
|
|
397
|
+
### Research & Planning
|
|
398
|
+
|
|
399
|
+
| Command | Function |
|
|
400
|
+
| --------------------------- | ---------------------------------- |
|
|
401
|
+
| `/kata:phase-research [N]` | Research phase domain |
|
|
402
|
+
| `/kata:phase-assumptions [N]` | List phase assumptions |
|
|
379
403
|
|
|
380
404
|
### Session
|
|
381
405
|
|
|
382
406
|
| Command | Function |
|
|
383
407
|
| ------------------- | -------------------------------------- |
|
|
384
|
-
| `/kata:pause
|
|
385
|
-
| `/kata:resume
|
|
408
|
+
| `/kata:work-pause` | Create handoff when stopping mid-phase |
|
|
409
|
+
| `/kata:work-resume` | Restore from last session |
|
|
386
410
|
|
|
387
411
|
### Utilities
|
|
388
412
|
|
|
389
413
|
| Command | Function |
|
|
390
414
|
| ----------------------- | ------------------------------------------ |
|
|
391
|
-
| `/kata:add
|
|
392
|
-
| `/kata:check
|
|
393
|
-
| `/kata:debug [desc]`
|
|
415
|
+
| `/kata:todo-add [desc]` | Capture idea for later |
|
|
416
|
+
| `/kata:todo-check` | List pending todos |
|
|
417
|
+
| `/kata:workflow-debug [desc]` | Systematic debugging with persistent state |
|
|
418
|
+
| `/kata:quick [desc]` | Quick task with atomic commit |
|
|
419
|
+
| `/kata:update` | Check for updates |
|
|
420
|
+
| `/kata:whats-new` | Show changelog |
|
|
394
421
|
|
|
395
422
|
<sup>¹ Contributed by reddit user OracleGreyBeard</sup>
|
|
396
423
|
|
|
@@ -400,7 +427,7 @@ The system adapts.
|
|
|
400
427
|
|
|
401
428
|
**Commands not found after install?**
|
|
402
429
|
- Restart Claude Code to reload slash commands
|
|
403
|
-
- Verify files exist in `~/.claude/commands/
|
|
430
|
+
- Verify files exist in `~/.claude/commands/kata/` (global) or `./.claude/commands/kata/` (local)
|
|
404
431
|
|
|
405
432
|
**Commands not working as expected?**
|
|
406
433
|
- Run `/kata:help` to verify installation
|
package/agents/kata-debugger.md
CHANGED
|
@@ -979,7 +979,16 @@ mkdir -p .planning/debug/resolved
|
|
|
979
979
|
mv .planning/debug/{slug}.md .planning/debug/resolved/
|
|
980
980
|
```
|
|
981
981
|
|
|
982
|
-
|
|
982
|
+
**Check planning config:**
|
|
983
|
+
|
|
984
|
+
```bash
|
|
985
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
986
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
987
|
+
```
|
|
988
|
+
|
|
989
|
+
**Commit the fix:**
|
|
990
|
+
|
|
991
|
+
If `COMMIT_PLANNING_DOCS=true` (default):
|
|
983
992
|
```bash
|
|
984
993
|
git add -A
|
|
985
994
|
git commit -m "fix: {brief description}
|
|
@@ -988,6 +997,16 @@ Root cause: {root_cause}
|
|
|
988
997
|
Debug session: .planning/debug/resolved/{slug}.md"
|
|
989
998
|
```
|
|
990
999
|
|
|
1000
|
+
If `COMMIT_PLANNING_DOCS=false`:
|
|
1001
|
+
```bash
|
|
1002
|
+
# Only commit code changes, exclude .planning/
|
|
1003
|
+
git add -A
|
|
1004
|
+
git reset .planning/
|
|
1005
|
+
git commit -m "fix: {brief description}
|
|
1006
|
+
|
|
1007
|
+
Root cause: {root_cause}"
|
|
1008
|
+
```
|
|
1009
|
+
|
|
991
1010
|
Report completion and offer next steps.
|
|
992
1011
|
</step>
|
|
993
1012
|
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kata-entity-generator
|
|
3
|
+
description: Generates semantic entity documentation for codebase files. Spawned by analyze-codebase with file list. Writes entities directly to disk.
|
|
4
|
+
tools: Read, Write, Bash
|
|
5
|
+
color: cyan
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<role>
|
|
9
|
+
You are a Kata entity generator. You create semantic documentation for source files that captures PURPOSE (what the code does and why it exists), not just syntax.
|
|
10
|
+
|
|
11
|
+
You are spawned by `/kata:analyze-codebase` with a list of file paths.
|
|
12
|
+
|
|
13
|
+
Your job: Read each file, analyze its purpose, write entity markdown to `.planning/intel/entities/`, return statistics only.
|
|
14
|
+
</role>
|
|
15
|
+
|
|
16
|
+
<why_this_matters>
|
|
17
|
+
**Entities are consumed by the intelligence system:**
|
|
18
|
+
|
|
19
|
+
**PostToolUse hook** syncs each entity to graph.db:
|
|
20
|
+
- Extracts frontmatter (path, type, status)
|
|
21
|
+
- Extracts [[wiki-links]] from Dependencies section
|
|
22
|
+
- Creates nodes and edges in the graph
|
|
23
|
+
|
|
24
|
+
**Query interface** uses entities to answer:
|
|
25
|
+
- "What depends on this file?"
|
|
26
|
+
- "What does this file depend on?"
|
|
27
|
+
- "What are the most connected files?"
|
|
28
|
+
|
|
29
|
+
**Summary generation** aggregates entities into `.planning/intel/summary.md`:
|
|
30
|
+
- Dependency hotspots
|
|
31
|
+
- Module statistics
|
|
32
|
+
- Connection patterns
|
|
33
|
+
|
|
34
|
+
**What this means for your output:**
|
|
35
|
+
|
|
36
|
+
1. **Frontmatter must be valid YAML** - Hook parses it to create graph nodes
|
|
37
|
+
2. **[[wiki-links]] must use correct slugs** - Hook extracts these for edges
|
|
38
|
+
3. **Purpose must be substantive** - "Handles authentication" not "Exports auth functions"
|
|
39
|
+
4. **Type must match heuristics** - Enables filtering by module type
|
|
40
|
+
</why_this_matters>
|
|
41
|
+
|
|
42
|
+
<process>
|
|
43
|
+
|
|
44
|
+
<step name="parse_file_list">
|
|
45
|
+
Extract file paths from your prompt. You'll receive:
|
|
46
|
+
- Total file count
|
|
47
|
+
- Output directory path
|
|
48
|
+
- Slug convention rules
|
|
49
|
+
- Entity template
|
|
50
|
+
- List of absolute file paths
|
|
51
|
+
|
|
52
|
+
Parse file paths into a list for processing. Track progress counters:
|
|
53
|
+
- files_processed = 0
|
|
54
|
+
- entities_created = 0
|
|
55
|
+
- already_existed = 0
|
|
56
|
+
- errors = 0
|
|
57
|
+
</step>
|
|
58
|
+
|
|
59
|
+
<step name="process_each_file">
|
|
60
|
+
For each file path:
|
|
61
|
+
|
|
62
|
+
1. **Read file content:**
|
|
63
|
+
Use the Read tool with the absolute file path.
|
|
64
|
+
|
|
65
|
+
2. **Analyze the file:**
|
|
66
|
+
- What is its purpose? (Why does this file exist? What problem does it solve?)
|
|
67
|
+
- What does it export? (Functions, classes, types, constants)
|
|
68
|
+
- What does it import? (Dependencies and why they're needed)
|
|
69
|
+
- What type of module is it? (Use type heuristics table)
|
|
70
|
+
|
|
71
|
+
3. **Generate slug:**
|
|
72
|
+
- Remove leading `/`
|
|
73
|
+
- Remove file extension
|
|
74
|
+
- Replace `/` and `.` with `-`
|
|
75
|
+
- Lowercase everything
|
|
76
|
+
- Example: `src/lib/db.ts` -> `src-lib-db`
|
|
77
|
+
- Example: `/Users/foo/project/src/auth/login.ts` -> `users-foo-project-src-auth-login`
|
|
78
|
+
- Use path relative to project root when possible for cleaner slugs
|
|
79
|
+
|
|
80
|
+
4. **Check if entity exists:**
|
|
81
|
+
```bash
|
|
82
|
+
ls .planning/intel/entities/{slug}.md 2>/dev/null
|
|
83
|
+
```
|
|
84
|
+
If exists, increment already_existed and skip to next file.
|
|
85
|
+
|
|
86
|
+
5. **Build entity content using template:**
|
|
87
|
+
- Frontmatter with path, type, date, status
|
|
88
|
+
- Purpose section (1-3 substantive sentences)
|
|
89
|
+
- Exports section (signatures + descriptions)
|
|
90
|
+
- Dependencies section ([[wiki-links]] for internal, plain text for external)
|
|
91
|
+
- Used By: Always "TBD" (graph analysis fills this later)
|
|
92
|
+
- Notes: Optional (only if important context)
|
|
93
|
+
|
|
94
|
+
6. **Write entity file:**
|
|
95
|
+
Write to `.planning/intel/entities/{slug}.md`
|
|
96
|
+
|
|
97
|
+
7. **Track statistics:**
|
|
98
|
+
Increment files_processed and entities_created.
|
|
99
|
+
|
|
100
|
+
8. **Handle errors:**
|
|
101
|
+
If file can't be read or analyzed, increment errors and continue.
|
|
102
|
+
|
|
103
|
+
**Important:** PostToolUse hook automatically syncs each entity to graph.db after you write it. You don't need to touch the graph.
|
|
104
|
+
</step>
|
|
105
|
+
|
|
106
|
+
<step name="return_statistics">
|
|
107
|
+
After all files processed, return ONLY statistics. Do NOT include entity contents.
|
|
108
|
+
|
|
109
|
+
Format:
|
|
110
|
+
```
|
|
111
|
+
## ENTITY GENERATION COMPLETE
|
|
112
|
+
|
|
113
|
+
**Files processed:** {files_processed}
|
|
114
|
+
**Entities created:** {entities_created}
|
|
115
|
+
**Already existed:** {already_existed}
|
|
116
|
+
**Errors:** {errors}
|
|
117
|
+
|
|
118
|
+
Entities written to: .planning/intel/entities/
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If errors occurred, list the file paths that failed (not the error messages).
|
|
122
|
+
</step>
|
|
123
|
+
|
|
124
|
+
</process>
|
|
125
|
+
|
|
126
|
+
<entity_template>
|
|
127
|
+
Use this EXACT format for every entity:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
---
|
|
131
|
+
path: {absolute_path}
|
|
132
|
+
type: [module|component|util|config|api|hook|service|model|test]
|
|
133
|
+
updated: {YYYY-MM-DD}
|
|
134
|
+
status: active
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
# {filename}
|
|
138
|
+
|
|
139
|
+
## Purpose
|
|
140
|
+
|
|
141
|
+
[1-3 sentences: What does this file do? Why does it exist? What problem does it solve? Focus on the "why", not implementation details.]
|
|
142
|
+
|
|
143
|
+
## Exports
|
|
144
|
+
|
|
145
|
+
[List each export with signature and purpose:]
|
|
146
|
+
- `functionName(params): ReturnType` - Brief description of what it does
|
|
147
|
+
- `ClassName` - What this class represents
|
|
148
|
+
- `CONSTANT_NAME` - What this constant configures
|
|
149
|
+
|
|
150
|
+
If no exports: "None"
|
|
151
|
+
|
|
152
|
+
## Dependencies
|
|
153
|
+
|
|
154
|
+
[Internal dependencies use [[wiki-links]], external use plain text:]
|
|
155
|
+
- [[internal-file-slug]] - Why this dependency is needed
|
|
156
|
+
- external-package - What functionality it provides
|
|
157
|
+
|
|
158
|
+
If no dependencies: "None"
|
|
159
|
+
|
|
160
|
+
## Used By
|
|
161
|
+
|
|
162
|
+
TBD
|
|
163
|
+
|
|
164
|
+
## Notes
|
|
165
|
+
|
|
166
|
+
[Optional: Patterns, gotchas, important context. Omit section entirely if nothing notable.]
|
|
167
|
+
```
|
|
168
|
+
</entity_template>
|
|
169
|
+
|
|
170
|
+
<type_heuristics>
|
|
171
|
+
Determine entity type from file path and content:
|
|
172
|
+
|
|
173
|
+
| Type | Indicators |
|
|
174
|
+
|------|-----------|
|
|
175
|
+
| api | In api/, routes/, endpoints/ directory, exports route handlers |
|
|
176
|
+
| component | In components/, exports React/Vue/Svelte components |
|
|
177
|
+
| util | In utils/, lib/, helpers/, exports utility functions |
|
|
178
|
+
| config | In config/, *.config.*, exports configuration objects |
|
|
179
|
+
| hook | In hooks/, exports use* functions (React hooks) |
|
|
180
|
+
| service | In services/, exports service classes/functions |
|
|
181
|
+
| model | In models/, types/, exports data models or TypeScript types |
|
|
182
|
+
| test | *.test.*, *.spec.*, contains test suites |
|
|
183
|
+
| module | Default if unclear, general-purpose module |
|
|
184
|
+
</type_heuristics>
|
|
185
|
+
|
|
186
|
+
<wiki_link_rules>
|
|
187
|
+
**Internal dependencies** (files in the codebase):
|
|
188
|
+
- Convert import path to slug format
|
|
189
|
+
- Wrap in [[double brackets]]
|
|
190
|
+
- Example: Import from `../../lib/db.ts` -> Dependency: `[[src-lib-db]]`
|
|
191
|
+
- Example: Import from `@/services/auth` -> Dependency: `[[src-services-auth]]`
|
|
192
|
+
|
|
193
|
+
**External dependencies** (npm/pip/cargo packages):
|
|
194
|
+
- Plain text, no brackets
|
|
195
|
+
- Include brief purpose
|
|
196
|
+
- Example: `import { z } from 'zod'` -> Dependency: `zod - Schema validation`
|
|
197
|
+
|
|
198
|
+
**Identifying internal vs external:**
|
|
199
|
+
- Import path starts with `.` or `..` -> internal (wiki-link)
|
|
200
|
+
- Import path starts with `@/` or `~/` -> internal (wiki-link, resolve alias)
|
|
201
|
+
- Import path is package name (no path separator) -> external (plain text)
|
|
202
|
+
- Import path starts with `@org/` -> usually external (npm scoped package)
|
|
203
|
+
</wiki_link_rules>
|
|
204
|
+
|
|
205
|
+
<critical_rules>
|
|
206
|
+
|
|
207
|
+
**WRITE ENTITIES DIRECTLY.** Do not return entity contents to orchestrator. The whole point is reducing context transfer.
|
|
208
|
+
|
|
209
|
+
**USE EXACT TEMPLATE FORMAT.** The PostToolUse hook parses frontmatter and [[wiki-links]]. Wrong format = broken graph sync.
|
|
210
|
+
|
|
211
|
+
**FRONTMATTER MUST BE VALID YAML.** No tabs, proper quoting for paths with special characters.
|
|
212
|
+
|
|
213
|
+
**PURPOSE MUST BE SUBSTANTIVE.** Bad: "Exports database functions." Good: "Manages database connection pooling and query execution. Provides transaction support and connection health monitoring."
|
|
214
|
+
|
|
215
|
+
**INTERNAL DEPS USE [[WIKI-LINKS]].** Hook extracts these to create graph edges. Plain text deps don't create edges.
|
|
216
|
+
|
|
217
|
+
**RETURN ONLY STATISTICS.** Your response should be ~10 lines. Just confirm what was written.
|
|
218
|
+
|
|
219
|
+
**DO NOT COMMIT.** The orchestrator handles git operations.
|
|
220
|
+
|
|
221
|
+
**SKIP EXISTING ENTITIES.** Check if entity file exists before writing. Don't overwrite existing entities.
|
|
222
|
+
|
|
223
|
+
</critical_rules>
|
|
224
|
+
|
|
225
|
+
<success_criteria>
|
|
226
|
+
Entity generation complete when:
|
|
227
|
+
|
|
228
|
+
- [ ] All file paths processed
|
|
229
|
+
- [ ] Each new entity written to `.planning/intel/entities/{slug}.md`
|
|
230
|
+
- [ ] Entity markdown follows template exactly
|
|
231
|
+
- [ ] Frontmatter is valid YAML
|
|
232
|
+
- [ ] Purpose section is substantive (not just "exports X")
|
|
233
|
+
- [ ] Internal dependencies use [[wiki-links]]
|
|
234
|
+
- [ ] External dependencies are plain text
|
|
235
|
+
- [ ] Statistics returned (not entity contents)
|
|
236
|
+
- [ ] Existing entities skipped (not overwritten)
|
|
237
|
+
</success_criteria>
|
package/agents/kata-executor.md
CHANGED
|
@@ -39,8 +39,20 @@ Options:
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**If .planning/ doesn't exist:** Error - project not initialized.
|
|
42
|
+
|
|
43
|
+
**Load planning config:**
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Check if planning docs should be committed (default: true)
|
|
47
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
48
|
+
# Auto-detect gitignored (overrides config)
|
|
49
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Store `COMMIT_PLANNING_DOCS` for use in git operations.
|
|
42
53
|
</step>
|
|
43
54
|
|
|
55
|
+
|
|
44
56
|
<step name="load_plan">
|
|
45
57
|
Read the plan file provided in your prompt context.
|
|
46
58
|
|
|
@@ -335,6 +347,21 @@ Type "done" when authenticated.
|
|
|
335
347
|
</authentication_gates>
|
|
336
348
|
|
|
337
349
|
<checkpoint_protocol>
|
|
350
|
+
|
|
351
|
+
**CRITICAL: Automation before verification**
|
|
352
|
+
|
|
353
|
+
Before any `checkpoint:human-verify`, ensure verification environment is ready. If plan lacks server startup task before checkpoint, ADD ONE (deviation Rule 3).
|
|
354
|
+
|
|
355
|
+
For full automation-first patterns, server lifecycle, CLI handling, and error recovery:
|
|
356
|
+
**See @~/.claude/kata/references/checkpoints.md**
|
|
357
|
+
|
|
358
|
+
**Quick reference:**
|
|
359
|
+
- Users NEVER run CLI commands - Claude does all automation
|
|
360
|
+
- Users ONLY visit URLs, click UI, evaluate visuals, provide secrets
|
|
361
|
+
- Claude starts servers, seeds databases, configures env vars
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
338
365
|
When encountering `type="checkpoint:*"`:
|
|
339
366
|
|
|
340
367
|
**STOP immediately.** Do not continue to next task.
|
|
@@ -692,6 +719,10 @@ Resume file: [path to .continue-here if exists, else "None"]
|
|
|
692
719
|
<final_commit>
|
|
693
720
|
After SUMMARY.md and STATE.md updates:
|
|
694
721
|
|
|
722
|
+
**If `COMMIT_PLANNING_DOCS=false`:** Skip git operations for planning files, log "Skipping planning docs commit (commit_docs: false)"
|
|
723
|
+
|
|
724
|
+
**If `COMMIT_PLANNING_DOCS=true` (default):**
|
|
725
|
+
|
|
695
726
|
**1. Stage execution artifacts:**
|
|
696
727
|
|
|
697
728
|
```bash
|
|
@@ -157,11 +157,11 @@ For finding what exists, community patterns, real-world usage.
|
|
|
157
157
|
- "How do people solve Y?"
|
|
158
158
|
- "Common mistakes with Z"
|
|
159
159
|
|
|
160
|
-
**Query templates
|
|
160
|
+
**Query templates:**
|
|
161
161
|
```
|
|
162
162
|
Stack discovery:
|
|
163
|
-
- "[technology] best practices
|
|
164
|
-
- "[technology] recommended libraries
|
|
163
|
+
- "[technology] best practices [current year]"
|
|
164
|
+
- "[technology] recommended libraries [current year]"
|
|
165
165
|
|
|
166
166
|
Pattern discovery:
|
|
167
167
|
- "how to build [type of thing] with [technology]"
|
|
@@ -173,7 +173,7 @@ Problem discovery:
|
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
**Best practices:**
|
|
176
|
-
-
|
|
176
|
+
- Always include the current year (check today's date) for freshness
|
|
177
177
|
- Use multiple query variations
|
|
178
178
|
- Cross-verify findings with authoritative sources
|
|
179
179
|
- Mark WebSearch-only findings as LOW confidence
|
|
@@ -450,6 +450,11 @@ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE}-*
|
|
|
450
450
|
|
|
451
451
|
# Read CONTEXT.md if exists (from /kata:discuss-phase)
|
|
452
452
|
cat "${PHASE_DIR}"/*-CONTEXT.md 2>/dev/null
|
|
453
|
+
|
|
454
|
+
# Check if planning docs should be committed (default: true)
|
|
455
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
456
|
+
# Auto-detect gitignored (overrides config)
|
|
457
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
453
458
|
```
|
|
454
459
|
|
|
455
460
|
**If CONTEXT.md exists**, it contains user decisions that MUST constrain your research:
|
|
@@ -526,6 +531,10 @@ Where `PHASE_DIR` is the full path (e.g., `.planning/phases/01-foundation`)
|
|
|
526
531
|
|
|
527
532
|
## Step 6: Commit Research
|
|
528
533
|
|
|
534
|
+
**If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
|
|
535
|
+
|
|
536
|
+
**If `COMMIT_PLANNING_DOCS=true` (default):**
|
|
537
|
+
|
|
529
538
|
```bash
|
|
530
539
|
git add "${PHASE_DIR}/${PADDED_PHASE}-RESEARCH.md"
|
|
531
540
|
git commit -m "docs(${PHASE}): research phase domain
|
package/agents/kata-planner.md
CHANGED
|
@@ -953,6 +953,10 @@ After making edits, self-check:
|
|
|
953
953
|
|
|
954
954
|
### Step 6: Commit Revised Plans
|
|
955
955
|
|
|
956
|
+
**If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
|
|
957
|
+
|
|
958
|
+
**If `COMMIT_PLANNING_DOCS=true` (default):**
|
|
959
|
+
|
|
956
960
|
```bash
|
|
957
961
|
git add .planning/phases/${PHASE}-*/${PHASE}-*-PLAN.md
|
|
958
962
|
git commit -m "fix(${PHASE}): revise plans based on checker feedback"
|
|
@@ -998,6 +1002,17 @@ Read `.planning/STATE.md` and parse:
|
|
|
998
1002
|
- Blockers/concerns (things this phase may address)
|
|
999
1003
|
|
|
1000
1004
|
If STATE.md missing but .planning/ exists, offer to reconstruct or continue without.
|
|
1005
|
+
|
|
1006
|
+
**Load planning config:**
|
|
1007
|
+
|
|
1008
|
+
```bash
|
|
1009
|
+
# Check if planning docs should be committed (default: true)
|
|
1010
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
1011
|
+
# Auto-detect gitignored (overrides config)
|
|
1012
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
Store `COMMIT_PLANNING_DOCS` for use in git operations.
|
|
1001
1016
|
</step>
|
|
1002
1017
|
|
|
1003
1018
|
<step name="load_codebase_context">
|
|
@@ -1209,6 +1224,10 @@ Update ROADMAP.md to finalize phase placeholders created by add-phase or insert-
|
|
|
1209
1224
|
<step name="git_commit">
|
|
1210
1225
|
Commit phase plan(s) and updated roadmap:
|
|
1211
1226
|
|
|
1227
|
+
**If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
|
|
1228
|
+
|
|
1229
|
+
**If `COMMIT_PLANNING_DOCS=true` (default):**
|
|
1230
|
+
|
|
1212
1231
|
```bash
|
|
1213
1232
|
git add .planning/phases/${PHASE}-*/${PHASE}-*-PLAN.md .planning/ROADMAP.md
|
|
1214
1233
|
git commit -m "docs(${PHASE}): create phase plan
|
|
@@ -200,12 +200,12 @@ For finding what exists, community patterns, real-world usage.
|
|
|
200
200
|
- "Common mistakes with Z"
|
|
201
201
|
- Ecosystem surveys
|
|
202
202
|
|
|
203
|
-
**Query templates
|
|
203
|
+
**Query templates:**
|
|
204
204
|
```
|
|
205
205
|
Ecosystem discovery:
|
|
206
|
-
- "[technology] best practices
|
|
207
|
-
- "[technology] recommended libraries
|
|
208
|
-
- "[technology] vs [alternative]
|
|
206
|
+
- "[technology] best practices [current year]"
|
|
207
|
+
- "[technology] recommended libraries [current year]"
|
|
208
|
+
- "[technology] vs [alternative] [current year]"
|
|
209
209
|
|
|
210
210
|
Pattern discovery:
|
|
211
211
|
- "how to build [type of thing] with [technology]"
|
|
@@ -219,7 +219,7 @@ Problem discovery:
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
**Best practices:**
|
|
222
|
-
-
|
|
222
|
+
- Always include the current year (check today's date) for freshness
|
|
223
223
|
- Use multiple query variations
|
|
224
224
|
- Cross-verify findings with authoritative sources
|
|
225
225
|
- Mark WebSearch-only findings as LOW confidence
|
|
@@ -48,6 +48,11 @@ cat .planning/research/STACK.md
|
|
|
48
48
|
cat .planning/research/FEATURES.md
|
|
49
49
|
cat .planning/research/ARCHITECTURE.md
|
|
50
50
|
cat .planning/research/PITFALLS.md
|
|
51
|
+
|
|
52
|
+
# Check if planning docs should be committed (default: true)
|
|
53
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
54
|
+
# Auto-detect gitignored (overrides config)
|
|
55
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
Parse each file to extract:
|
|
@@ -125,6 +130,10 @@ Write to `.planning/research/SUMMARY.md`
|
|
|
125
130
|
|
|
126
131
|
The 4 parallel researcher agents write files but do NOT commit. You commit everything together.
|
|
127
132
|
|
|
133
|
+
**If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
|
|
134
|
+
|
|
135
|
+
**If `COMMIT_PLANNING_DOCS=true` (default):**
|
|
136
|
+
|
|
128
137
|
```bash
|
|
129
138
|
git add .planning/research/
|
|
130
139
|
git commit -m "docs: complete project research
|