claude-cook 1.10.1

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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +607 -0
  3. package/agents/gsd-codebase-mapper.md +738 -0
  4. package/agents/gsd-debugger.md +1203 -0
  5. package/agents/gsd-executor.md +784 -0
  6. package/agents/gsd-integration-checker.md +423 -0
  7. package/agents/gsd-phase-researcher.md +641 -0
  8. package/agents/gsd-plan-checker.md +745 -0
  9. package/agents/gsd-planner.md +1386 -0
  10. package/agents/gsd-pm.md +331 -0
  11. package/agents/gsd-project-researcher.md +865 -0
  12. package/agents/gsd-research-synthesizer.md +256 -0
  13. package/agents/gsd-roadmapper.md +605 -0
  14. package/agents/gsd-verifier.md +778 -0
  15. package/bin/install.js +1477 -0
  16. package/commands/gsd/add-phase.md +207 -0
  17. package/commands/gsd/add-todo.md +193 -0
  18. package/commands/gsd/audit-milestone.md +277 -0
  19. package/commands/gsd/check-todos.md +228 -0
  20. package/commands/gsd/complete-milestone.md +136 -0
  21. package/commands/gsd/debug.md +169 -0
  22. package/commands/gsd/discuss-phase.md +86 -0
  23. package/commands/gsd/execute-phase.md +339 -0
  24. package/commands/gsd/help.md +545 -0
  25. package/commands/gsd/insert-phase.md +227 -0
  26. package/commands/gsd/join-discord.md +18 -0
  27. package/commands/gsd/list-phase-assumptions.md +50 -0
  28. package/commands/gsd/map-codebase.md +71 -0
  29. package/commands/gsd/new-milestone.md +721 -0
  30. package/commands/gsd/new-project.md +1008 -0
  31. package/commands/gsd/pause-work.md +134 -0
  32. package/commands/gsd/plan-milestone-gaps.md +295 -0
  33. package/commands/gsd/plan-phase.md +525 -0
  34. package/commands/gsd/pm-check.md +115 -0
  35. package/commands/gsd/pm-replan.md +102 -0
  36. package/commands/gsd/pm-start.md +218 -0
  37. package/commands/gsd/pm-status.md +116 -0
  38. package/commands/gsd/pm-stop.md +72 -0
  39. package/commands/gsd/progress.md +415 -0
  40. package/commands/gsd/quick.md +309 -0
  41. package/commands/gsd/remove-phase.md +349 -0
  42. package/commands/gsd/research-phase.md +200 -0
  43. package/commands/gsd/resume-work.md +40 -0
  44. package/commands/gsd/set-profile.md +106 -0
  45. package/commands/gsd/settings.md +151 -0
  46. package/commands/gsd/update.md +172 -0
  47. package/commands/gsd/verify-work.md +219 -0
  48. package/get-shit-done/references/checkpoints.md +1078 -0
  49. package/get-shit-done/references/continuation-format.md +249 -0
  50. package/get-shit-done/references/git-integration.md +254 -0
  51. package/get-shit-done/references/model-profiles.md +73 -0
  52. package/get-shit-done/references/planning-config.md +189 -0
  53. package/get-shit-done/references/questioning.md +141 -0
  54. package/get-shit-done/references/tdd.md +263 -0
  55. package/get-shit-done/references/ui-brand.md +172 -0
  56. package/get-shit-done/references/verification-patterns.md +612 -0
  57. package/get-shit-done/references/vibe-kanban.md +142 -0
  58. package/get-shit-done/templates/DEBUG.md +159 -0
  59. package/get-shit-done/templates/UAT.md +247 -0
  60. package/get-shit-done/templates/codebase/architecture.md +255 -0
  61. package/get-shit-done/templates/codebase/concerns.md +310 -0
  62. package/get-shit-done/templates/codebase/conventions.md +307 -0
  63. package/get-shit-done/templates/codebase/integrations.md +280 -0
  64. package/get-shit-done/templates/codebase/stack.md +186 -0
  65. package/get-shit-done/templates/codebase/structure.md +285 -0
  66. package/get-shit-done/templates/codebase/testing.md +480 -0
  67. package/get-shit-done/templates/config.json +35 -0
  68. package/get-shit-done/templates/context.md +283 -0
  69. package/get-shit-done/templates/continue-here.md +78 -0
  70. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  71. package/get-shit-done/templates/discovery.md +146 -0
  72. package/get-shit-done/templates/milestone-archive.md +123 -0
  73. package/get-shit-done/templates/milestone.md +115 -0
  74. package/get-shit-done/templates/phase-prompt.md +567 -0
  75. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  76. package/get-shit-done/templates/pm-config.md +55 -0
  77. package/get-shit-done/templates/pm-log.md +27 -0
  78. package/get-shit-done/templates/project.md +184 -0
  79. package/get-shit-done/templates/requirements.md +231 -0
  80. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  81. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  82. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  83. package/get-shit-done/templates/research-project/STACK.md +120 -0
  84. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  85. package/get-shit-done/templates/research.md +529 -0
  86. package/get-shit-done/templates/roadmap.md +202 -0
  87. package/get-shit-done/templates/state.md +205 -0
  88. package/get-shit-done/templates/summary.md +246 -0
  89. package/get-shit-done/templates/ticket-map.md +28 -0
  90. package/get-shit-done/templates/user-setup.md +311 -0
  91. package/get-shit-done/templates/verification-report.md +322 -0
  92. package/get-shit-done/workflows/complete-milestone.md +903 -0
  93. package/get-shit-done/workflows/diagnose-issues.md +231 -0
  94. package/get-shit-done/workflows/discovery-phase.md +289 -0
  95. package/get-shit-done/workflows/discuss-phase.md +433 -0
  96. package/get-shit-done/workflows/execute-phase.md +671 -0
  97. package/get-shit-done/workflows/execute-plan.md +1844 -0
  98. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  99. package/get-shit-done/workflows/map-codebase.md +322 -0
  100. package/get-shit-done/workflows/pm-check.md +210 -0
  101. package/get-shit-done/workflows/pm-dispatch.md +104 -0
  102. package/get-shit-done/workflows/pm-replan.md +203 -0
  103. package/get-shit-done/workflows/pm-sync.md +130 -0
  104. package/get-shit-done/workflows/resume-project.md +307 -0
  105. package/get-shit-done/workflows/transition.md +556 -0
  106. package/get-shit-done/workflows/verify-phase.md +628 -0
  107. package/get-shit-done/workflows/verify-work.md +596 -0
  108. package/hooks/dist/gsd-check-update.js +61 -0
  109. package/hooks/dist/gsd-statusline.js +87 -0
  110. package/package.json +47 -0
  111. package/scripts/build-hooks.js +42 -0
  112. package/scripts/pm-loop.sh +155 -0
@@ -0,0 +1,104 @@
1
+ # PM Dispatch Workflow — Wave-Aware Worker Launch
2
+
3
+ <purpose>
4
+ Launch external coding agents on Vibe Kanban tickets, respecting wave ordering.
5
+ Only dispatches tickets whose wave dependencies are satisfied.
6
+
7
+ Called by:
8
+ - `/gsd:pm-start` after sync (dispatch wave 1)
9
+ - `/gsd:pm-check` when WAVE_COMPLETE detected (dispatch next wave)
10
+ - `/gsd:pm-dispatch` manual command
11
+ </purpose>
12
+
13
+ <process>
14
+
15
+ <step name="load_context" priority="first">
16
+
17
+ ## 1. Load Dispatch Context
18
+
19
+ Read config for executor and repo settings:
20
+ ```bash
21
+ cat .planning/config.json # pm.default_executor, pm.repos
22
+ ```
23
+
24
+ Read TICKET-MAP.md for the target phase:
25
+ ```bash
26
+ cat .planning/phases/{phase_dir}/TICKET-MAP.md
27
+ ```
28
+
29
+ Determine target wave:
30
+ - If wave specified (e.g., `--wave=2`): use that wave
31
+ - If not specified: find the lowest wave number with `todo` tickets where all prior waves are complete
32
+
33
+ </step>
34
+
35
+ <step name="validate_wave">
36
+
37
+ ## 2. Validate Wave Dependencies
38
+
39
+ For the target wave N:
40
+
41
+ 1. Check all wave N-1 tickets are `done` (if wave > 1)
42
+ 2. If any wave N-1 tickets are NOT done:
43
+ - If `inprogress`: "Wave {N-1} still running. Wait for completion."
44
+ - If `todo`: "Wave {N-1} has undispatched tickets. Dispatch those first."
45
+ - If `cancelled`/`failed`: "Wave {N-1} has failed tickets. Replan needed."
46
+ - **Do NOT dispatch wave N.** Exit with status.
47
+
48
+ 3. Collect all wave N tickets with status `todo`
49
+ 4. If none: "All wave {N} tickets already dispatched." Exit.
50
+
51
+ </step>
52
+
53
+ <step name="dispatch">
54
+
55
+ ## 3. Dispatch Workers
56
+
57
+ For each `todo` ticket in the target wave:
58
+
59
+ 1. Read executor from config (or per-ticket override if specified in TICKET-MAP notes)
60
+ 2. Read repos from config
61
+ 3. Call:
62
+ ```
63
+ mcp__vibe_kanban__start_workspace_session(
64
+ task_id: ticket_uuid,
65
+ executor: default_executor,
66
+ repos: [{repo_id, base_branch}]
67
+ )
68
+ ```
69
+ 4. Update TICKET-MAP.md for this ticket:
70
+ - status: inprogress
71
+ - executor: {executor_name}
72
+ - dispatched: {timestamp}
73
+ 5. Log dispatch to PM-LOG.md
74
+
75
+ **Error handling:**
76
+ - If `start_workspace_session` fails: log error, skip ticket, continue with others
77
+ - Report failed dispatches at the end
78
+
79
+ </step>
80
+
81
+ <step name="report">
82
+
83
+ ## 4. Report Dispatch Summary
84
+
85
+ ```
86
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
+ PM ► DISPATCHING WAVE {N}
88
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
89
+
90
+ Dispatched {X} workers for phase {P}, wave {N}:
91
+
92
+ | Ticket | Plan | Executor | Status |
93
+ | ------ | ---- | -------- | ------ |
94
+ | {id} | 01 | CLAUDE_CODE | launched |
95
+ | {id} | 02 | CLAUDE_CODE | launched |
96
+
97
+ Next: Workers are running. Check progress with /gsd:pm-check
98
+ ```
99
+
100
+ Update STATE.md Vibe Kanban Status section.
101
+
102
+ </step>
103
+
104
+ </process>
@@ -0,0 +1,203 @@
1
+ # PM Replan Workflow — Dynamic Plan Modification
2
+
3
+ <purpose>
4
+ Modify plans and sync changes to Vibe Kanban when things go wrong or requirements change.
5
+ Handles three scopes: targeted fix, revision, and full replan.
6
+
7
+ Triggered by:
8
+ - `/gsd:pm-check` detecting ticket failure (auto-replan)
9
+ - `/gsd:pm-replan` manual command with user feedback
10
+ - `/gsd:pm-check` detecting cascading issues
11
+ </purpose>
12
+
13
+ <process>
14
+
15
+ <step name="gather_context" priority="first">
16
+
17
+ ## 1. Gather Replan Context
18
+
19
+ Read current state:
20
+ ```bash
21
+ cat .planning/config.json
22
+ cat .planning/STATE.md
23
+ cat .planning/phases/{phase_dir}/TICKET-MAP.md
24
+ ```
25
+
26
+ Read all current plans:
27
+ ```bash
28
+ ls .planning/phases/{phase_dir}/*-PLAN.md
29
+ ```
30
+
31
+ Read any relevant summaries or verification reports:
32
+ ```bash
33
+ ls .planning/phases/{phase_dir}/*-SUMMARY.md 2>/dev/null
34
+ ls .planning/phases/{phase_dir}/*-VERIFICATION.md 2>/dev/null
35
+ ```
36
+
37
+ Gather trigger-specific context:
38
+ - **Failure trigger:** failed ticket details from `get_task(task_id)`
39
+ - **Feedback trigger:** user feedback text from command arguments
40
+ - **Cascade trigger:** completed ticket output that changes assumptions
41
+
42
+ </step>
43
+
44
+ <step name="classify">
45
+
46
+ ## 2. Classify Replan Scope
47
+
48
+ ### TARGETED (single ticket failed)
49
+ Conditions:
50
+ - One specific ticket failed/cancelled
51
+ - Other tickets in the wave are unaffected
52
+ - The failure is isolated (not a systemic issue)
53
+
54
+ Action: Create a fix plan for just the failed task.
55
+
56
+ ### REVISION (feedback changes approach)
57
+ Conditions:
58
+ - User provided feedback that modifies existing plans
59
+ - Plans exist but need updates
60
+ - Core approach is still valid
61
+
62
+ Action: Revise existing plans with new constraints.
63
+
64
+ ### FULL_REPLAN (fundamental change)
65
+ Conditions:
66
+ - User wants to change the overall approach
67
+ - Multiple cascading failures suggest wrong direction
68
+ - New information invalidates the current plan set
69
+
70
+ Action: Cancel all undone tickets, re-plan from phase goal.
71
+
72
+ </step>
73
+
74
+ <step name="targeted_replan">
75
+
76
+ ## 3a. Targeted Fix
77
+
78
+ 1. Read the failed ticket's original PLAN.md content
79
+ 2. Read the failure details from ticket description/notes
80
+ 3. Spawn gsd-planner via Task tool:
81
+ - Mode: gap-closure (`--gaps`)
82
+ - Context: failed plan + error details + phase goal
83
+ - Output: one fix PLAN.md
84
+
85
+ 4. Spawn gsd-plan-checker to verify the fix plan
86
+ 5. If checker rejects: revise (max 3 iterations)
87
+
88
+ 6. Sync to Vibe Kanban:
89
+ - `update_task(failed_ticket_id, status="cancelled")`
90
+ - `create_task(project_id, fix_title, fix_plan_content)` → new ticket
91
+ - Record in TICKET-MAP.md
92
+
93
+ 7. Dispatch fix ticket if autonomous mode
94
+
95
+ </step>
96
+
97
+ <step name="revision_replan">
98
+
99
+ ## 3b. Revision
100
+
101
+ 1. Identify which plans are affected by the feedback
102
+ 2. Spawn gsd-planner via Task tool:
103
+ - Mode: revision
104
+ - Context: existing plans + user feedback
105
+ - Output: updated PLAN.md files
106
+
107
+ 3. Spawn gsd-plan-checker to verify revised plans
108
+ 4. If checker rejects: revise (max 3 iterations)
109
+
110
+ 5. Sync to Vibe Kanban (via pm-sync workflow):
111
+ - Updated plans → update ticket descriptions
112
+ - New plans → create new tickets
113
+ - Removed plans → cancel tickets
114
+ - Update TICKET-MAP.md
115
+
116
+ 6. Dispatch new/updated tickets if appropriate
117
+
118
+ </step>
119
+
120
+ <step name="full_replan">
121
+
122
+ ## 3c. Full Replan
123
+
124
+ 1. Cancel all undone tickets:
125
+ ```
126
+ For each ticket with status in [todo, inprogress]:
127
+ update_task(ticket_id, status="cancelled")
128
+ ```
129
+ Note: tickets already `done` are kept — that work is preserved.
130
+
131
+ 2. Spawn gsd-planner via Task tool:
132
+ - Mode: standard (fresh planning)
133
+ - Context: phase goal + new requirements/feedback + what's already done
134
+ - Output: new set of PLAN.md files
135
+
136
+ 3. Spawn gsd-plan-checker to verify
137
+ 4. If checker rejects: revise (max 3 iterations)
138
+
139
+ 5. Sync all new plans to Vibe Kanban (via pm-sync workflow)
140
+ 6. Dispatch wave 1 of new plan set
141
+
142
+ </step>
143
+
144
+ <step name="record">
145
+
146
+ ## 4. Record Replan
147
+
148
+ ### In TICKET-MAP.md Replan History:
149
+ ```markdown
150
+ ### Replan #{N} — {TIMESTAMP}
151
+
152
+ - Trigger: {failure|feedback|cascade}
153
+ - Scope: {targeted|revision|full}
154
+ - Cancelled tickets: {list}
155
+ - New tickets: {list}
156
+ - Reason: {description}
157
+ ```
158
+
159
+ ### In PM-LOG.md:
160
+ ```markdown
161
+ ## [{TIMESTAMP}] REPLAN
162
+
163
+ - Scope: {targeted|revision|full}
164
+ - Trigger: {description}
165
+ - Plans affected: {list}
166
+ - Old tickets cancelled: {count}
167
+ - New tickets created: {count}
168
+ - Dispatched: {yes/no}
169
+ ```
170
+
171
+ ### In STATE.md:
172
+ Update the Vibe Kanban Status section with new ticket counts.
173
+
174
+ </step>
175
+
176
+ <step name="present">
177
+
178
+ ## 5. Present Replan Summary
179
+
180
+ ```
181
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
182
+ PM ► REPLANNED
183
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
184
+
185
+ Scope: {targeted|revision|full}
186
+ Reason: {description}
187
+
188
+ Changes:
189
+ - Cancelled: {N} tickets
190
+ - Created: {N} new tickets
191
+ - Updated: {N} ticket descriptions
192
+ - Dispatched: {N} workers
193
+
194
+ ## Current Ticket State
195
+ {Updated table from TICKET-MAP}
196
+
197
+ ## Next
198
+ {Suggested action based on current state}
199
+ ```
200
+
201
+ </step>
202
+
203
+ </process>
@@ -0,0 +1,130 @@
1
+ # PM Sync Workflow — Plan-to-Ticket Synchronization
2
+
3
+ <purpose>
4
+ Synchronize PLAN.md files with Vibe Kanban tickets. Creates tickets for new plans, updates tickets for modified plans, cancels tickets for removed plans. Maintains TICKET-MAP.md as the authoritative mapping.
5
+
6
+ Called by:
7
+ - `/gsd:pm-start` after planning completes
8
+ - `/gsd:pm-replan` after plans are revised
9
+ </purpose>
10
+
11
+ <process>
12
+
13
+ <step name="load_vk_context" priority="first">
14
+
15
+ ## 1. Load Vibe Kanban Context
16
+
17
+ Read `.planning/config.json` for pm section.
18
+
19
+ **If `pm.project_id` is null (first run):**
20
+ 1. Call `mcp__vibe_kanban__list_projects()` to discover projects
21
+ 2. If single project: use it. If multiple: present choice to user.
22
+ 3. Call `mcp__vibe_kanban__list_repos(project_id)` for repo details
23
+ 4. Save to config.json:
24
+ ```json
25
+ "pm": {
26
+ "project_id": "{discovered_uuid}",
27
+ "repos": [{"repo_id": "{uuid}", "base_branch": "main"}]
28
+ }
29
+ ```
30
+
31
+ **If already configured:** Use stored values.
32
+
33
+ </step>
34
+
35
+ <step name="discover_plans">
36
+
37
+ ## 2. Discover Plans and Build Diff
38
+
39
+ List all PLAN.md files in the phase directory:
40
+ ```bash
41
+ ls .planning/phases/{phase_dir}/*-PLAN.md 2>/dev/null
42
+ ```
43
+
44
+ Read existing TICKET-MAP.md if it exists:
45
+ ```bash
46
+ cat .planning/phases/{phase_dir}/TICKET-MAP.md 2>/dev/null
47
+ ```
48
+
49
+ Build three lists:
50
+
51
+ **New plans:** PLAN.md exists but no corresponding ticket in TICKET-MAP
52
+ **Modified plans:** PLAN.md exists, ticket exists, but plan content has changed
53
+ **Removed plans:** Ticket exists in TICKET-MAP but PLAN.md no longer exists
54
+
55
+ </step>
56
+
57
+ <step name="sync_new">
58
+
59
+ ## 3. Create Tickets for New Plans
60
+
61
+ For each new plan:
62
+
63
+ 1. Read the full PLAN.md content
64
+ 2. Extract from frontmatter: `wave`, `depends_on`, `phase`, `plan`
65
+ 3. Extract objective from the `<objective>` section (first line)
66
+ 4. Build ticket:
67
+ - **title:** `"Phase {phase} Plan {plan}: {objective_first_line}"`
68
+ - **description:** Full PLAN.md content as-is (this is the worker's prompt)
69
+ 5. Call `mcp__vibe_kanban__create_task(project_id, title, description)`
70
+ 6. Record in TICKET-MAP.md:
71
+ ```
72
+ | {plan} | {task_summary} | {ticket_uuid} | todo | — | {wave} | — | — | new |
73
+ ```
74
+
75
+ </step>
76
+
77
+ <step name="sync_modified">
78
+
79
+ ## 4. Update Tickets for Modified Plans
80
+
81
+ For each modified plan:
82
+
83
+ 1. Find ticket_id from TICKET-MAP.md
84
+ 2. Check current ticket status:
85
+ - If `todo`: safe to update → `update_task(task_id, description=new_content)`
86
+ - If `inprogress`: **WARNING** — worker is running. Log warning, do NOT update.
87
+ - If `done`/`cancelled`: skip (no point updating)
88
+ 3. Update TICKET-MAP.md with notes
89
+
90
+ </step>
91
+
92
+ <step name="sync_removed">
93
+
94
+ ## 5. Cancel Tickets for Removed Plans
95
+
96
+ For each plan that no longer exists:
97
+
98
+ 1. Find ticket_id from TICKET-MAP.md
99
+ 2. Check current ticket status:
100
+ - If `todo`: cancel → `update_task(task_id, status="cancelled")`
101
+ - If `inprogress`: **WARNING** — worker running. Log but don't cancel yet.
102
+ - If already `done`/`cancelled`: skip
103
+ 3. Mark as cancelled in TICKET-MAP.md
104
+
105
+ </step>
106
+
107
+ <step name="finalize">
108
+
109
+ ## 6. Write TICKET-MAP.md
110
+
111
+ If TICKET-MAP.md doesn't exist yet, create it from template with all ticket entries.
112
+
113
+ If it exists, update the existing entries and add new ones.
114
+
115
+ Update the Wave Summary table:
116
+
117
+ ```markdown
118
+ ## Wave Summary
119
+
120
+ | Wave | Total | Done | In Progress | Todo | Failed |
121
+ | ---- | ----- | ---- | ----------- | ---- | ------ |
122
+ | 1 | 3 | 0 | 0 | 3 | 0 |
123
+ | 2 | 2 | 0 | 0 | 2 | 0 |
124
+ ```
125
+
126
+ Update `last_polled` timestamp.
127
+
128
+ </step>
129
+
130
+ </process>