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.
- package/LICENSE +21 -0
- package/README.md +607 -0
- package/agents/gsd-codebase-mapper.md +738 -0
- package/agents/gsd-debugger.md +1203 -0
- package/agents/gsd-executor.md +784 -0
- package/agents/gsd-integration-checker.md +423 -0
- package/agents/gsd-phase-researcher.md +641 -0
- package/agents/gsd-plan-checker.md +745 -0
- package/agents/gsd-planner.md +1386 -0
- package/agents/gsd-pm.md +331 -0
- package/agents/gsd-project-researcher.md +865 -0
- package/agents/gsd-research-synthesizer.md +256 -0
- package/agents/gsd-roadmapper.md +605 -0
- package/agents/gsd-verifier.md +778 -0
- package/bin/install.js +1477 -0
- package/commands/gsd/add-phase.md +207 -0
- package/commands/gsd/add-todo.md +193 -0
- package/commands/gsd/audit-milestone.md +277 -0
- package/commands/gsd/check-todos.md +228 -0
- package/commands/gsd/complete-milestone.md +136 -0
- package/commands/gsd/debug.md +169 -0
- package/commands/gsd/discuss-phase.md +86 -0
- package/commands/gsd/execute-phase.md +339 -0
- package/commands/gsd/help.md +545 -0
- package/commands/gsd/insert-phase.md +227 -0
- package/commands/gsd/join-discord.md +18 -0
- package/commands/gsd/list-phase-assumptions.md +50 -0
- package/commands/gsd/map-codebase.md +71 -0
- package/commands/gsd/new-milestone.md +721 -0
- package/commands/gsd/new-project.md +1008 -0
- package/commands/gsd/pause-work.md +134 -0
- package/commands/gsd/plan-milestone-gaps.md +295 -0
- package/commands/gsd/plan-phase.md +525 -0
- package/commands/gsd/pm-check.md +115 -0
- package/commands/gsd/pm-replan.md +102 -0
- package/commands/gsd/pm-start.md +218 -0
- package/commands/gsd/pm-status.md +116 -0
- package/commands/gsd/pm-stop.md +72 -0
- package/commands/gsd/progress.md +415 -0
- package/commands/gsd/quick.md +309 -0
- package/commands/gsd/remove-phase.md +349 -0
- package/commands/gsd/research-phase.md +200 -0
- package/commands/gsd/resume-work.md +40 -0
- package/commands/gsd/set-profile.md +106 -0
- package/commands/gsd/settings.md +151 -0
- package/commands/gsd/update.md +172 -0
- package/commands/gsd/verify-work.md +219 -0
- package/get-shit-done/references/checkpoints.md +1078 -0
- package/get-shit-done/references/continuation-format.md +249 -0
- package/get-shit-done/references/git-integration.md +254 -0
- package/get-shit-done/references/model-profiles.md +73 -0
- package/get-shit-done/references/planning-config.md +189 -0
- package/get-shit-done/references/questioning.md +141 -0
- package/get-shit-done/references/tdd.md +263 -0
- package/get-shit-done/references/ui-brand.md +172 -0
- package/get-shit-done/references/verification-patterns.md +612 -0
- package/get-shit-done/references/vibe-kanban.md +142 -0
- package/get-shit-done/templates/DEBUG.md +159 -0
- package/get-shit-done/templates/UAT.md +247 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +35 -0
- package/get-shit-done/templates/context.md +283 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +567 -0
- package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
- package/get-shit-done/templates/pm-config.md +55 -0
- package/get-shit-done/templates/pm-log.md +27 -0
- package/get-shit-done/templates/project.md +184 -0
- package/get-shit-done/templates/requirements.md +231 -0
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
- package/get-shit-done/templates/research-project/FEATURES.md +147 -0
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
- package/get-shit-done/templates/research-project/STACK.md +120 -0
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
- package/get-shit-done/templates/research.md +529 -0
- package/get-shit-done/templates/roadmap.md +202 -0
- package/get-shit-done/templates/state.md +205 -0
- package/get-shit-done/templates/summary.md +246 -0
- package/get-shit-done/templates/ticket-map.md +28 -0
- package/get-shit-done/templates/user-setup.md +311 -0
- package/get-shit-done/templates/verification-report.md +322 -0
- package/get-shit-done/workflows/complete-milestone.md +903 -0
- package/get-shit-done/workflows/diagnose-issues.md +231 -0
- package/get-shit-done/workflows/discovery-phase.md +289 -0
- package/get-shit-done/workflows/discuss-phase.md +433 -0
- package/get-shit-done/workflows/execute-phase.md +671 -0
- package/get-shit-done/workflows/execute-plan.md +1844 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/map-codebase.md +322 -0
- package/get-shit-done/workflows/pm-check.md +210 -0
- package/get-shit-done/workflows/pm-dispatch.md +104 -0
- package/get-shit-done/workflows/pm-replan.md +203 -0
- package/get-shit-done/workflows/pm-sync.md +130 -0
- package/get-shit-done/workflows/resume-project.md +307 -0
- package/get-shit-done/workflows/transition.md +556 -0
- package/get-shit-done/workflows/verify-phase.md +628 -0
- package/get-shit-done/workflows/verify-work.md +596 -0
- package/hooks/dist/gsd-check-update.js +61 -0
- package/hooks/dist/gsd-statusline.js +87 -0
- package/package.json +47 -0
- package/scripts/build-hooks.js +42 -0
- package/scripts/pm-loop.sh +155 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:pm-replan
|
|
3
|
+
description: Replan based on feedback or failures — modify plans, sync ticket changes, dispatch fixes
|
|
4
|
+
argument-hint: "<phase> [feedback text]"
|
|
5
|
+
agent: gsd-pm
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- WebFetch
|
|
14
|
+
- mcp__context7__*
|
|
15
|
+
- mcp__vibe_kanban__*
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<execution_context>
|
|
19
|
+
@~/.claude/get-shit-done/references/vibe-kanban.md
|
|
20
|
+
@~/.claude/get-shit-done/workflows/pm-replan.md
|
|
21
|
+
@~/.claude/get-shit-done/workflows/pm-sync.md
|
|
22
|
+
@~/.claude/get-shit-done/workflows/pm-dispatch.md
|
|
23
|
+
@~/.claude/agents/gsd-pm.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<objective>
|
|
27
|
+
Manually trigger a replan for a phase based on user feedback. Modifies plans, syncs changes to Vibe Kanban (cancel old tickets, create new ones), and optionally dispatches.
|
|
28
|
+
|
|
29
|
+
**Use cases:**
|
|
30
|
+
- User realized the approach is wrong
|
|
31
|
+
- User wants to change technology/library
|
|
32
|
+
- User has new requirements mid-phase
|
|
33
|
+
- A ticket failed and auto-replan didn't resolve it
|
|
34
|
+
</objective>
|
|
35
|
+
|
|
36
|
+
<context>
|
|
37
|
+
Phase number: first argument from $ARGUMENTS
|
|
38
|
+
Feedback: remaining text after phase number
|
|
39
|
+
|
|
40
|
+
Example: `/gsd:pm-replan 3 switch to Redis for caching instead of in-memory`
|
|
41
|
+
</context>
|
|
42
|
+
|
|
43
|
+
<process>
|
|
44
|
+
|
|
45
|
+
## 1. Parse Arguments
|
|
46
|
+
|
|
47
|
+
Extract:
|
|
48
|
+
- Phase number (required)
|
|
49
|
+
- Feedback text (optional — if empty, ask user interactively)
|
|
50
|
+
|
|
51
|
+
If no feedback provided, ask:
|
|
52
|
+
"What should change about the current plan for phase {X}? Describe the issue or new direction."
|
|
53
|
+
|
|
54
|
+
## 2. Load Context
|
|
55
|
+
|
|
56
|
+
Read:
|
|
57
|
+
- Current PLAN.md files for the phase
|
|
58
|
+
- TICKET-MAP.md — current ticket state
|
|
59
|
+
- STATE.md — overall position
|
|
60
|
+
- config.json — PM settings
|
|
61
|
+
- ROADMAP.md — phase goal
|
|
62
|
+
|
|
63
|
+
## 3. Classify Replan Scope
|
|
64
|
+
|
|
65
|
+
Follow pm-replan workflow classification:
|
|
66
|
+
|
|
67
|
+
**TARGETED:** Feedback mentions a specific plan or ticket
|
|
68
|
+
**REVISION:** Feedback modifies approach but keeps structure
|
|
69
|
+
**FULL_REPLAN:** Feedback fundamentally changes direction
|
|
70
|
+
|
|
71
|
+
Present classification to user:
|
|
72
|
+
```
|
|
73
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
74
|
+
PM ► REPLAN ANALYSIS
|
|
75
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
76
|
+
|
|
77
|
+
Scope: {targeted|revision|full}
|
|
78
|
+
Affected plans: {list}
|
|
79
|
+
Tickets to cancel: {count}
|
|
80
|
+
|
|
81
|
+
Proceeding with replan...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## 4. Execute Replan
|
|
85
|
+
|
|
86
|
+
Follow the pm-replan workflow for the classified scope:
|
|
87
|
+
- Spawn gsd-planner with feedback context
|
|
88
|
+
- Verify with gsd-plan-checker
|
|
89
|
+
- Sync to Vibe Kanban (cancel old, create new, update changed)
|
|
90
|
+
- Update TICKET-MAP.md
|
|
91
|
+
|
|
92
|
+
## 5. Dispatch (if appropriate)
|
|
93
|
+
|
|
94
|
+
If new tickets were created and they're in a ready wave:
|
|
95
|
+
- Ask user: "Dispatch {N} new workers now?"
|
|
96
|
+
- If yes: follow pm-dispatch workflow
|
|
97
|
+
|
|
98
|
+
## 6. Present Summary
|
|
99
|
+
|
|
100
|
+
Follow the pm-replan workflow presentation format.
|
|
101
|
+
|
|
102
|
+
</process>
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:pm-start
|
|
3
|
+
description: Plan a phase, sync to Vibe Kanban tickets, dispatch workers, optionally start autonomous monitor loop
|
|
4
|
+
argument-hint: "<phase> [--autonomous] [--manual] [--executor=CLAUDE_CODE] [--skip-plan]"
|
|
5
|
+
agent: gsd-pm
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- WebFetch
|
|
14
|
+
- mcp__context7__*
|
|
15
|
+
- mcp__vibe_kanban__*
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<execution_context>
|
|
19
|
+
@~/.claude/get-shit-done/references/ui-brand.md
|
|
20
|
+
@~/.claude/get-shit-done/references/vibe-kanban.md
|
|
21
|
+
@~/.claude/get-shit-done/workflows/pm-sync.md
|
|
22
|
+
@~/.claude/get-shit-done/workflows/pm-dispatch.md
|
|
23
|
+
@~/.claude/agents/gsd-pm.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<objective>
|
|
27
|
+
Initialize PM mode for a phase: create plans (unless --skip-plan), sync to Vibe Kanban tickets, dispatch wave 1 workers, and optionally launch the autonomous monitoring loop.
|
|
28
|
+
|
|
29
|
+
**This is the main PM entry point.** It transitions GSD from local execution to external delegation.
|
|
30
|
+
|
|
31
|
+
**Orchestrator role:** Validate environment, run planning pipeline if needed, sync plans to VK tickets, dispatch workers, optionally start pm-loop.sh.
|
|
32
|
+
</objective>
|
|
33
|
+
|
|
34
|
+
<context>
|
|
35
|
+
Phase number: $ARGUMENTS (required — which phase to manage)
|
|
36
|
+
|
|
37
|
+
**Flags:**
|
|
38
|
+
- `--autonomous` — After dispatch, launch pm-loop.sh for continuous monitoring
|
|
39
|
+
- `--manual` — After dispatch, show status and available commands (default)
|
|
40
|
+
- `--executor=X` — Override default executor (CLAUDE_CODE, CURSOR_AGENT, CODEX, etc.)
|
|
41
|
+
- `--skip-plan` — Skip planning, assume plans already exist (use with /gsd:plan-phase)
|
|
42
|
+
</context>
|
|
43
|
+
|
|
44
|
+
<process>
|
|
45
|
+
|
|
46
|
+
## 1. Validate Environment
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
test -d .planning && echo "exists" || echo "missing"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If no `.planning/`: Error — run `/gsd:new-project` first.
|
|
53
|
+
|
|
54
|
+
Read config:
|
|
55
|
+
```bash
|
|
56
|
+
cat .planning/config.json 2>/dev/null
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Check for pm section. If missing, initialize it:
|
|
60
|
+
```json
|
|
61
|
+
"pm": {
|
|
62
|
+
"mode": "manual",
|
|
63
|
+
"poll_interval_seconds": 60,
|
|
64
|
+
"project_id": null,
|
|
65
|
+
"repos": [],
|
|
66
|
+
"default_executor": "CLAUDE_CODE",
|
|
67
|
+
"auto_replan_on_failure": true,
|
|
68
|
+
"auto_dispatch_next_wave": true,
|
|
69
|
+
"max_replan_attempts": 3
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Apply flag overrides:
|
|
74
|
+
- `--autonomous` → set `pm.mode` to `"autonomous"`
|
|
75
|
+
- `--manual` → set `pm.mode` to `"manual"`
|
|
76
|
+
- `--executor=X` → set `pm.default_executor`
|
|
77
|
+
|
|
78
|
+
Write updated config.json.
|
|
79
|
+
|
|
80
|
+
## 2. Parse Phase Number
|
|
81
|
+
|
|
82
|
+
Extract phase number from $ARGUMENTS. Validate it exists in ROADMAP.md.
|
|
83
|
+
|
|
84
|
+
Find or create phase directory:
|
|
85
|
+
```bash
|
|
86
|
+
ls .planning/phases/ | grep "^{phase_num}"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 3. Setup Vibe Kanban Connection
|
|
90
|
+
|
|
91
|
+
If `pm.project_id` is null:
|
|
92
|
+
|
|
93
|
+
1. Call `mcp__vibe_kanban__list_projects()` — discover available projects
|
|
94
|
+
2. If single project: use it. If multiple: present choice to user.
|
|
95
|
+
3. Call `mcp__vibe_kanban__list_repos(project_id)` — get repo details
|
|
96
|
+
4. Save project_id and repos to config.json
|
|
97
|
+
|
|
98
|
+
Present:
|
|
99
|
+
```
|
|
100
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
101
|
+
PM ► CONNECTED TO VIBE KANBAN
|
|
102
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
103
|
+
|
|
104
|
+
Project: {name} ({project_id})
|
|
105
|
+
Repos: {repo_list}
|
|
106
|
+
Executor: {default_executor}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 4. Plan Phase (unless --skip-plan)
|
|
110
|
+
|
|
111
|
+
If plans already exist for this phase AND --skip-plan not specified:
|
|
112
|
+
- Ask user: "Plans already exist. Re-plan or use existing?"
|
|
113
|
+
|
|
114
|
+
If no plans exist OR user wants to re-plan:
|
|
115
|
+
- Follow the same planning pipeline as `/gsd:plan-phase`:
|
|
116
|
+
1. Resolve model profile
|
|
117
|
+
2. Optionally run phase researcher
|
|
118
|
+
3. Spawn gsd-planner via Task tool
|
|
119
|
+
4. Spawn gsd-plan-checker to verify
|
|
120
|
+
5. Iterate planner ↔ checker until plans pass (max 3)
|
|
121
|
+
|
|
122
|
+
**Key difference from /gsd:plan-phase:** After planning, continue to sync+dispatch instead of stopping.
|
|
123
|
+
|
|
124
|
+
## 5. Sync Plans to Vibe Kanban Tickets
|
|
125
|
+
|
|
126
|
+
Follow the pm-sync workflow:
|
|
127
|
+
|
|
128
|
+
1. Read all PLAN.md files in the phase directory
|
|
129
|
+
2. For each plan:
|
|
130
|
+
- Build title: `"Phase {X} Plan {Y}: {objective}"`
|
|
131
|
+
- Build description: full PLAN.md content
|
|
132
|
+
- `create_task(project_id, title, description)`
|
|
133
|
+
3. Write TICKET-MAP.md with all mappings
|
|
134
|
+
|
|
135
|
+
Present:
|
|
136
|
+
```
|
|
137
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
+
PM ► TICKETS SYNCED
|
|
139
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
140
|
+
|
|
141
|
+
{N} plans → {N} tickets created
|
|
142
|
+
|
|
143
|
+
| Wave | Plan | Ticket | Title |
|
|
144
|
+
| ---- | ---- | ------ | ----- |
|
|
145
|
+
| ... | ... | ... | ... |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## 6. Dispatch Wave 1
|
|
149
|
+
|
|
150
|
+
Follow the pm-dispatch workflow:
|
|
151
|
+
|
|
152
|
+
1. Collect all wave 1 tickets from TICKET-MAP
|
|
153
|
+
2. For each:
|
|
154
|
+
- `start_workspace_session(task_id, executor, repos)`
|
|
155
|
+
- Update TICKET-MAP: status=inprogress, dispatched=now
|
|
156
|
+
3. Log dispatches to PM-LOG.md
|
|
157
|
+
|
|
158
|
+
Present:
|
|
159
|
+
```
|
|
160
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
161
|
+
PM ► WAVE 1 DISPATCHED
|
|
162
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
163
|
+
|
|
164
|
+
{N} workers launched:
|
|
165
|
+
|
|
166
|
+
| Ticket | Plan | Executor | Status |
|
|
167
|
+
| ------ | ---- | -------- | ------ |
|
|
168
|
+
| ... | ... | ... | launched |
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## 7. Start Monitor (mode-dependent)
|
|
172
|
+
|
|
173
|
+
### Autonomous Mode (--autonomous)
|
|
174
|
+
|
|
175
|
+
Initialize PM-LOG.md with INIT entry.
|
|
176
|
+
Launch pm-loop.sh:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
nohup ~/.claude/scripts/pm-loop.sh --phase={X} --interval={poll_interval} > /dev/null 2>&1 &
|
|
180
|
+
echo $! > .planning/.pm-loop-pid
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Present:
|
|
184
|
+
```
|
|
185
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
186
|
+
PM ► AUTONOMOUS MODE ACTIVE
|
|
187
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
188
|
+
|
|
189
|
+
PM loop running (PID: {pid})
|
|
190
|
+
Polling every {interval}s
|
|
191
|
+
Log: .planning/PM-LOG.md
|
|
192
|
+
|
|
193
|
+
Stop with: /gsd:pm-stop or touch .planning/.pm-stop
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Manual Mode (default)
|
|
197
|
+
|
|
198
|
+
Present:
|
|
199
|
+
```
|
|
200
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
201
|
+
PM ► MANUAL MODE — WORKERS RUNNING
|
|
202
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
203
|
+
|
|
204
|
+
Workers dispatched. Use these commands to manage:
|
|
205
|
+
|
|
206
|
+
/gsd:pm-check — Poll ticket status and react
|
|
207
|
+
/gsd:pm-status — View dashboard
|
|
208
|
+
/gsd:pm-replan — Modify plans if issues found
|
|
209
|
+
/gsd:pm-stop — Stop PM monitoring
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## 8. Update STATE.md
|
|
213
|
+
|
|
214
|
+
Update STATE.md with PM status:
|
|
215
|
+
- Current position: Phase X, PM mode active
|
|
216
|
+
- Vibe Kanban Status section: project, tickets, last polled
|
|
217
|
+
|
|
218
|
+
</process>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:pm-status
|
|
3
|
+
description: Dashboard showing all tickets, plan health, and recent PM decisions
|
|
4
|
+
argument-hint: "[phase]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- mcp__vibe_kanban__*
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@~/.claude/get-shit-done/references/ui-brand.md
|
|
15
|
+
@~/.claude/get-shit-done/references/vibe-kanban.md
|
|
16
|
+
</execution_context>
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Display a comprehensive PM dashboard: ticket status matrix, wave progress, recent PM-LOG entries, and suggested next actions.
|
|
20
|
+
|
|
21
|
+
Read-only — does not modify any state.
|
|
22
|
+
</objective>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
Phase number: $ARGUMENTS (optional — shows all phases if not specified)
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<process>
|
|
29
|
+
|
|
30
|
+
## 1. Load Context
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cat .planning/config.json
|
|
34
|
+
cat .planning/STATE.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If phase specified: read that phase's TICKET-MAP.md
|
|
38
|
+
If not: read all TICKET-MAP.md files across phases
|
|
39
|
+
|
|
40
|
+
## 2. Poll Current Status
|
|
41
|
+
|
|
42
|
+
Call `mcp__vibe_kanban__list_tasks(project_id)` for live ticket status.
|
|
43
|
+
|
|
44
|
+
Cross-reference with TICKET-MAP.md entries.
|
|
45
|
+
|
|
46
|
+
## 3. Build Dashboard
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
50
|
+
PM ► PROJECT STATUS
|
|
51
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
52
|
+
|
|
53
|
+
Project: {name}
|
|
54
|
+
Executor: {default_executor}
|
|
55
|
+
Mode: {autonomous|manual}
|
|
56
|
+
PM Loop: {running (PID: X)|stopped}
|
|
57
|
+
|
|
58
|
+
## Phase {X}: {name} [{progress_bar}] {percent}%
|
|
59
|
+
|
|
60
|
+
| Wave | Plan | Ticket | Status | Executor | Duration |
|
|
61
|
+
| ---- | ---- | ------ | ------ | -------- | -------- |
|
|
62
|
+
| 1 | 01 | {id} | done | CLAUDE_CODE | 12m |
|
|
63
|
+
| 1 | 02 | {id} | done | CURSOR | 8m |
|
|
64
|
+
| 2 | 03 | {id} | inprogress | CLAUDE_CODE | 5m... |
|
|
65
|
+
| 2 | 04 | {id} | todo | — | — |
|
|
66
|
+
|
|
67
|
+
### Wave Summary
|
|
68
|
+
| Wave | Total | Done | Running | Todo | Failed |
|
|
69
|
+
| ---- | ----- | ---- | ------- | ---- | ------ |
|
|
70
|
+
| 1 | 2 | 2 | 0 | 0 | 0 |
|
|
71
|
+
| 2 | 2 | 0 | 1 | 1 | 0 |
|
|
72
|
+
|
|
73
|
+
### Replans: {count}
|
|
74
|
+
### Failed tickets: {count}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 4. Recent PM-LOG
|
|
78
|
+
|
|
79
|
+
Read last 10 entries from PM-LOG.md:
|
|
80
|
+
```bash
|
|
81
|
+
tail -50 .planning/PM-LOG.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Present the last 3-5 significant events:
|
|
85
|
+
```
|
|
86
|
+
## Recent Activity
|
|
87
|
+
|
|
88
|
+
- [{time}] Wave 1 complete — auto-dispatched wave 2
|
|
89
|
+
- [{time}] VK-{id} (Plan 03): todo → inprogress
|
|
90
|
+
- [{time}] VK-{id} (Plan 01): inprogress → done (12m)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 5. Suggested Actions
|
|
94
|
+
|
|
95
|
+
Based on current state, suggest relevant commands:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
## Actions
|
|
99
|
+
|
|
100
|
+
/gsd:pm-check — Poll for latest ticket updates
|
|
101
|
+
/gsd:pm-replan 3 — Modify plans if issues found
|
|
102
|
+
/gsd:pm-stop — Stop autonomous monitoring
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
If all tickets done:
|
|
106
|
+
```
|
|
107
|
+
Phase {X} complete! Run /gsd:pm-start {X+1} for next phase.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
If tickets stuck:
|
|
111
|
+
```
|
|
112
|
+
⚠ {N} tickets have been running for >{threshold}min.
|
|
113
|
+
Consider /gsd:pm-check to diagnose.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
</process>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:pm-stop
|
|
3
|
+
description: Stop the autonomous PM monitoring loop gracefully
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
Signal the autonomous PM loop (pm-loop.sh) to stop gracefully by creating the stop file.
|
|
12
|
+
The shell script checks for this file at the start of each cycle and exits cleanly.
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
|
|
17
|
+
## 1. Create Stop Signal
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
touch .planning/.pm-stop
|
|
21
|
+
echo "PM stop signal created."
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 2. Check Loop Status
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Check if pm-loop.sh is running
|
|
28
|
+
if [ -f .planning/.pm-loop-pid ]; then
|
|
29
|
+
PID=$(cat .planning/.pm-loop-pid)
|
|
30
|
+
if ps -p "$PID" > /dev/null 2>&1; then
|
|
31
|
+
echo "PM loop (PID: $PID) will stop after current cycle completes."
|
|
32
|
+
else
|
|
33
|
+
echo "PM loop process not found (may have already stopped)."
|
|
34
|
+
rm -f .planning/.pm-loop-pid
|
|
35
|
+
fi
|
|
36
|
+
else
|
|
37
|
+
echo "No PM loop PID file found."
|
|
38
|
+
fi
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 3. Update Config
|
|
42
|
+
|
|
43
|
+
Read config.json and set `pm.mode` to `"manual"`.
|
|
44
|
+
Write updated config.json.
|
|
45
|
+
|
|
46
|
+
## 4. Present
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
50
|
+
PM ► STOPPING
|
|
51
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
52
|
+
|
|
53
|
+
Stop signal sent. The PM loop will exit after the current cycle.
|
|
54
|
+
Mode switched to: manual
|
|
55
|
+
|
|
56
|
+
Workers already dispatched will continue running.
|
|
57
|
+
Use /gsd:pm-check to manually poll ticket status.
|
|
58
|
+
Use /gsd:pm-status to view dashboard.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 5. Log to PM-LOG.md
|
|
62
|
+
|
|
63
|
+
Append:
|
|
64
|
+
```markdown
|
|
65
|
+
## [{TIMESTAMP}] STOP
|
|
66
|
+
|
|
67
|
+
- PM loop stop signal created
|
|
68
|
+
- Mode switched to manual
|
|
69
|
+
- Active workers: {count} (will continue running)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
</process>
|