@undeemed/get-shit-done-codex 1.6.12 → 1.20.2
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 +22 -3
- package/agents/gsd-codebase-mapper.md +761 -0
- package/agents/gsd-debugger.md +1198 -0
- package/agents/gsd-executor.md +419 -0
- package/agents/gsd-integration-checker.md +423 -0
- package/agents/gsd-phase-researcher.md +469 -0
- package/agents/gsd-plan-checker.md +622 -0
- package/agents/gsd-planner.md +1159 -0
- package/agents/gsd-project-researcher.md +618 -0
- package/agents/gsd-research-synthesizer.md +236 -0
- package/agents/gsd-roadmapper.md +639 -0
- package/agents/gsd-verifier.md +541 -0
- package/bin/install.js +106 -100
- package/commands/gsd/add-phase.md +17 -185
- package/commands/gsd/add-todo.md +23 -163
- package/commands/gsd/audit-milestone.md +3 -219
- package/commands/gsd/check-todos.md +20 -196
- package/commands/gsd/cleanup.md +18 -0
- package/commands/gsd/debug.md +13 -0
- package/commands/gsd/discuss-phase.md +10 -3
- package/commands/gsd/execute-phase.md +3 -265
- package/commands/gsd/health.md +22 -0
- package/commands/gsd/help.md +8 -369
- package/commands/gsd/insert-phase.md +9 -203
- package/commands/gsd/join-discord.md +18 -0
- package/commands/gsd/new-milestone.md +12 -678
- package/commands/gsd/new-project.md +8 -862
- package/commands/gsd/new-project.md.bak +1041 -0
- package/commands/gsd/pause-work.md +17 -105
- package/commands/gsd/plan-milestone-gaps.md +3 -247
- package/commands/gsd/plan-phase.md +13 -444
- package/commands/gsd/progress.md +5 -337
- package/commands/gsd/quick.md +40 -0
- package/commands/gsd/reapply-patches.md +110 -0
- package/commands/gsd/remove-phase.md +9 -315
- package/commands/gsd/research-phase.md +26 -19
- package/commands/gsd/set-profile.md +34 -0
- package/commands/gsd/settings.md +36 -0
- package/commands/gsd/update.md +25 -160
- package/commands/gsd/verify-work.md +3 -183
- package/get-shit-done/bin/gsd-tools.cjs +5243 -0
- package/get-shit-done/bin/gsd-tools.test.cjs +2273 -0
- package/get-shit-done/references/checkpoints.md +254 -267
- package/get-shit-done/references/decimal-phase-calculation.md +65 -0
- package/get-shit-done/references/git-integration.md +3 -9
- package/get-shit-done/references/git-planning-commit.md +38 -0
- package/get-shit-done/references/model-profile-resolution.md +34 -0
- package/get-shit-done/references/model-profiles.md +92 -0
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planning-config.md +196 -0
- package/get-shit-done/references/questioning.md +4 -0
- package/get-shit-done/references/verification-patterns.md +17 -0
- package/get-shit-done/templates/UAT.md +1 -1
- package/get-shit-done/templates/codebase/structure.md +3 -3
- package/get-shit-done/templates/config.json +10 -0
- package/get-shit-done/templates/context.md +2 -10
- package/get-shit-done/templates/phase-prompt.md +18 -27
- package/get-shit-done/templates/planner-subagent-prompt.md +4 -4
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
- package/get-shit-done/templates/research.md +25 -2
- package/get-shit-done/templates/state.md +0 -30
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +5 -28
- package/get-shit-done/templates/user-setup.md +1 -13
- package/get-shit-done/templates/verification-report.md +1 -1
- package/get-shit-done/workflows/add-phase.md +111 -0
- package/get-shit-done/workflows/add-todo.md +157 -0
- package/get-shit-done/workflows/audit-milestone.md +242 -0
- package/get-shit-done/workflows/check-todos.md +176 -0
- package/get-shit-done/workflows/cleanup.md +152 -0
- package/get-shit-done/workflows/complete-milestone.md +225 -301
- package/get-shit-done/workflows/diagnose-issues.md +3 -17
- package/get-shit-done/workflows/discovery-phase.md +6 -10
- package/get-shit-done/workflows/discuss-phase.md +99 -36
- package/get-shit-done/workflows/execute-phase.md +205 -349
- package/get-shit-done/workflows/execute-plan.md +179 -1569
- package/get-shit-done/workflows/health.md +156 -0
- package/get-shit-done/workflows/help.md +486 -0
- package/get-shit-done/workflows/insert-phase.md +129 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
- package/get-shit-done/workflows/map-codebase.md +55 -17
- package/get-shit-done/workflows/new-milestone.md +373 -0
- package/get-shit-done/workflows/new-project.md +1113 -0
- package/get-shit-done/workflows/pause-work.md +122 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +256 -0
- package/get-shit-done/workflows/plan-phase.md +448 -0
- package/get-shit-done/workflows/progress.md +393 -0
- package/get-shit-done/workflows/quick.md +444 -0
- package/get-shit-done/workflows/remove-phase.md +154 -0
- package/get-shit-done/workflows/research-phase.md +74 -0
- package/get-shit-done/workflows/resume-project.md +18 -23
- package/get-shit-done/workflows/set-profile.md +80 -0
- package/get-shit-done/workflows/settings.md +200 -0
- package/get-shit-done/workflows/transition.md +78 -103
- package/get-shit-done/workflows/update.md +214 -0
- package/get-shit-done/workflows/verify-phase.md +107 -494
- package/get-shit-done/workflows/verify-work.md +18 -11
- package/hooks/dist/gsd-check-update.js +66 -0
- package/hooks/dist/gsd-statusline.js +91 -0
- package/package.json +19 -3
- package/scripts/build-hooks.js +42 -0
- package/commands/gsd/whats-new.md +0 -124
|
@@ -75,33 +75,23 @@ Output: [What artifacts will be created]
|
|
|
75
75
|
<done>[Acceptance criteria]</done>
|
|
76
76
|
</task>
|
|
77
77
|
|
|
78
|
+
<!-- For checkpoint task examples and patterns, see @~/.claude/get-shit-done/references/checkpoints.md -->
|
|
79
|
+
<!-- Key rule: Claude starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
|
|
80
|
+
|
|
78
81
|
<task type="checkpoint:decision" gate="blocking">
|
|
79
82
|
<decision>[What needs deciding]</decision>
|
|
80
83
|
<context>[Why this decision matters]</context>
|
|
81
84
|
<options>
|
|
82
|
-
<option id="option-a">
|
|
83
|
-
|
|
84
|
-
<pros>[Benefits and advantages]</pros>
|
|
85
|
-
<cons>[Tradeoffs and limitations]</cons>
|
|
86
|
-
</option>
|
|
87
|
-
<option id="option-b">
|
|
88
|
-
<name>[Option name]</name>
|
|
89
|
-
<pros>[Benefits and advantages]</pros>
|
|
90
|
-
<cons>[Tradeoffs and limitations]</cons>
|
|
91
|
-
</option>
|
|
85
|
+
<option id="option-a"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
|
|
86
|
+
<option id="option-b"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
|
|
92
87
|
</options>
|
|
93
|
-
<resume-signal>
|
|
88
|
+
<resume-signal>Select: option-a or option-b</resume-signal>
|
|
94
89
|
</task>
|
|
95
90
|
|
|
96
91
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
97
|
-
<what-built>[What Claude
|
|
98
|
-
<how-to-verify>
|
|
99
|
-
|
|
100
|
-
2. Visit: [URL to check]
|
|
101
|
-
3. Test: [Specific interactions]
|
|
102
|
-
4. Confirm: [Expected behaviors]
|
|
103
|
-
</how-to-verify>
|
|
104
|
-
<resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
|
|
92
|
+
<what-built>[What Claude built] - server running at [URL]</what-built>
|
|
93
|
+
<how-to-verify>Visit [URL] and verify: [visual checks only, NO CLI commands]</how-to-verify>
|
|
94
|
+
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
105
95
|
</task>
|
|
106
96
|
|
|
107
97
|
</tasks>
|
|
@@ -403,15 +393,16 @@ Output: Working dashboard component.
|
|
|
403
393
|
<done>Dashboard renders without errors</done>
|
|
404
394
|
</task>
|
|
405
395
|
|
|
396
|
+
<!-- Checkpoint pattern: Claude starts server, user visits URL. See checkpoints.md for full patterns. -->
|
|
397
|
+
<task type="auto">
|
|
398
|
+
<name>Start dev server</name>
|
|
399
|
+
<action>Run `npm run dev` in background, wait for ready</action>
|
|
400
|
+
<verify>curl localhost:3000 returns 200</verify>
|
|
401
|
+
</task>
|
|
402
|
+
|
|
406
403
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
407
|
-
<what-built>
|
|
408
|
-
<how-to-verify>
|
|
409
|
-
1. Run: npm run dev
|
|
410
|
-
2. Visit: http://localhost:3000/dashboard
|
|
411
|
-
3. Desktop: Verify two-column grid
|
|
412
|
-
4. Mobile: Verify stacked layout
|
|
413
|
-
5. Check: No layout shift, no scroll issues
|
|
414
|
-
</how-to-verify>
|
|
404
|
+
<what-built>Dashboard - server at http://localhost:3000</what-built>
|
|
405
|
+
<how-to-verify>Visit localhost:3000/dashboard. Check: desktop grid, mobile stack, no scroll issues.</how-to-verify>
|
|
415
406
|
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
416
407
|
</task>
|
|
417
408
|
</tasks>
|
|
@@ -22,14 +22,14 @@ Template for spawning gsd-planner agent. The agent contains all planning experti
|
|
|
22
22
|
@.planning/REQUIREMENTS.md
|
|
23
23
|
|
|
24
24
|
**Phase Context (if exists):**
|
|
25
|
-
@.planning/phases/{phase_dir}/{
|
|
25
|
+
@.planning/phases/{phase_dir}/{phase_num}-CONTEXT.md
|
|
26
26
|
|
|
27
27
|
**Research (if exists):**
|
|
28
|
-
@.planning/phases/{phase_dir}/{
|
|
28
|
+
@.planning/phases/{phase_dir}/{phase_num}-RESEARCH.md
|
|
29
29
|
|
|
30
30
|
**Gap Closure (if --gaps mode):**
|
|
31
|
-
@.planning/phases/{phase_dir}/{
|
|
32
|
-
@.planning/phases/{phase_dir}/{
|
|
31
|
+
@.planning/phases/{phase_dir}/{phase_num}-VERIFICATION.md
|
|
32
|
+
@.planning/phases/{phase_dir}/{phase_num}-UAT.md
|
|
33
33
|
|
|
34
34
|
</planning_context>
|
|
35
35
|
|
|
@@ -177,7 +177,7 @@ src/
|
|
|
177
177
|
<guidelines>
|
|
178
178
|
|
|
179
179
|
**System Overview:**
|
|
180
|
-
- Use ASCII diagrams for clarity
|
|
180
|
+
- Use ASCII box-drawing diagrams for clarity (├── └── │ ─ for structure visualization only)
|
|
181
181
|
- Show major components and their relationships
|
|
182
182
|
- Don't over-detail — this is conceptual, not implementation
|
|
183
183
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Research Template
|
|
2
2
|
|
|
3
|
-
Template for `.planning/phases/XX-name/{
|
|
3
|
+
Template for `.planning/phases/XX-name/{phase_num}-RESEARCH.md` - comprehensive ecosystem research before planning.
|
|
4
4
|
|
|
5
5
|
**Purpose:** Document what Claude needs to know to implement a phase well - not just "which library" but "how do experts build this."
|
|
6
6
|
|
|
@@ -15,6 +15,29 @@ Template for `.planning/phases/XX-name/{phase}-RESEARCH.md` - comprehensive ecos
|
|
|
15
15
|
**Domain:** [primary technology/problem domain]
|
|
16
16
|
**Confidence:** [HIGH/MEDIUM/LOW]
|
|
17
17
|
|
|
18
|
+
<user_constraints>
|
|
19
|
+
## User Constraints (from CONTEXT.md)
|
|
20
|
+
|
|
21
|
+
**CRITICAL:** If CONTEXT.md exists from /gsd:discuss-phase, copy locked decisions here verbatim. These MUST be honored by the planner.
|
|
22
|
+
|
|
23
|
+
### Locked Decisions
|
|
24
|
+
[Copy from CONTEXT.md `## Decisions` section - these are NON-NEGOTIABLE]
|
|
25
|
+
- [Decision 1]
|
|
26
|
+
- [Decision 2]
|
|
27
|
+
|
|
28
|
+
### Claude's Discretion
|
|
29
|
+
[Copy from CONTEXT.md - areas where researcher/planner can choose]
|
|
30
|
+
- [Area 1]
|
|
31
|
+
- [Area 2]
|
|
32
|
+
|
|
33
|
+
### Deferred Ideas (OUT OF SCOPE)
|
|
34
|
+
[Copy from CONTEXT.md - do NOT research or plan these]
|
|
35
|
+
- [Deferred 1]
|
|
36
|
+
- [Deferred 2]
|
|
37
|
+
|
|
38
|
+
**If no CONTEXT.md exists:** Write "No user constraints - all decisions at Claude's discretion"
|
|
39
|
+
</user_constraints>
|
|
40
|
+
|
|
18
41
|
<research_summary>
|
|
19
42
|
## Summary
|
|
20
43
|
|
|
@@ -524,6 +547,6 @@ function useVehicleControls(rigidBodyRef) {
|
|
|
524
547
|
- Code examples can be referenced in task actions
|
|
525
548
|
|
|
526
549
|
**After creation:**
|
|
527
|
-
- File lives in phase directory: `.planning/phases/XX-name/{
|
|
550
|
+
- File lives in phase directory: `.planning/phases/XX-name/{phase_num}-RESEARCH.md`
|
|
528
551
|
- Referenced during planning workflow
|
|
529
552
|
- plan-phase loads it automatically when present
|
|
@@ -174,33 +174,3 @@ It's a DIGEST, not an archive. If accumulated context grows too large:
|
|
|
174
174
|
The goal is "read once, know where we are" — if it's too long, that fails.
|
|
175
175
|
|
|
176
176
|
</size_constraint>
|
|
177
|
-
|
|
178
|
-
<guidelines>
|
|
179
|
-
|
|
180
|
-
**When created:**
|
|
181
|
-
- During project initialization (after ROADMAP.md)
|
|
182
|
-
- Reference PROJECT.md (extract core value and current focus)
|
|
183
|
-
- Initialize empty sections
|
|
184
|
-
|
|
185
|
-
**When read:**
|
|
186
|
-
- Every workflow starts by reading STATE.md
|
|
187
|
-
- Then read PROJECT.md for full context
|
|
188
|
-
- Provides instant context restoration
|
|
189
|
-
|
|
190
|
-
**When updated:**
|
|
191
|
-
- After each plan execution (update position, note decisions, update issues/blockers)
|
|
192
|
-
- After phase transitions (update progress bar, clear resolved blockers, refresh project reference)
|
|
193
|
-
|
|
194
|
-
**Size management:**
|
|
195
|
-
- Keep under 100 lines total
|
|
196
|
-
- Recent decisions only in STATE.md (full log in PROJECT.md)
|
|
197
|
-
- Keep only active blockers
|
|
198
|
-
|
|
199
|
-
**Sections:**
|
|
200
|
-
- Project Reference: Pointer to PROJECT.md with core value
|
|
201
|
-
- Current Position: Where we are now (phase, plan, status)
|
|
202
|
-
- Performance Metrics: Velocity tracking
|
|
203
|
-
- Accumulated Context: Recent decisions, pending todos, blockers
|
|
204
|
-
- Session Continuity: Resume information
|
|
205
|
-
|
|
206
|
-
</guidelines>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: XX-name
|
|
3
|
+
plan: YY
|
|
4
|
+
subsystem: [primary category]
|
|
5
|
+
tags: [searchable tech]
|
|
6
|
+
requires:
|
|
7
|
+
- phase: [prior phase]
|
|
8
|
+
provides: [what that phase built]
|
|
9
|
+
provides:
|
|
10
|
+
- [bullet list of what was built/delivered]
|
|
11
|
+
affects: [list of phase names or keywords]
|
|
12
|
+
tech-stack:
|
|
13
|
+
added: [libraries/tools]
|
|
14
|
+
patterns: [architectural/code patterns]
|
|
15
|
+
key-files:
|
|
16
|
+
created: [important files created]
|
|
17
|
+
modified: [important files modified]
|
|
18
|
+
key-decisions:
|
|
19
|
+
- "Decision 1"
|
|
20
|
+
patterns-established:
|
|
21
|
+
- "Pattern 1: description"
|
|
22
|
+
duration: Xmin
|
|
23
|
+
completed: YYYY-MM-DD
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Phase [X]: [Name] Summary (Complex)
|
|
27
|
+
|
|
28
|
+
**[Substantive one-liner describing outcome]**
|
|
29
|
+
|
|
30
|
+
## Performance
|
|
31
|
+
- **Duration:** [time]
|
|
32
|
+
- **Tasks:** [count completed]
|
|
33
|
+
- **Files modified:** [count]
|
|
34
|
+
|
|
35
|
+
## Accomplishments
|
|
36
|
+
- [Key outcome 1]
|
|
37
|
+
- [Key outcome 2]
|
|
38
|
+
|
|
39
|
+
## Task Commits
|
|
40
|
+
1. **Task 1: [task name]** - `hash`
|
|
41
|
+
2. **Task 2: [task name]** - `hash`
|
|
42
|
+
3. **Task 3: [task name]** - `hash`
|
|
43
|
+
|
|
44
|
+
## Files Created/Modified
|
|
45
|
+
- `path/to/file.ts` - What it does
|
|
46
|
+
- `path/to/another.ts` - What it does
|
|
47
|
+
|
|
48
|
+
## Decisions Made
|
|
49
|
+
[Key decisions with brief rationale]
|
|
50
|
+
|
|
51
|
+
## Deviations from Plan (Auto-fixed)
|
|
52
|
+
[Detailed auto-fix records per GSD deviation rules]
|
|
53
|
+
|
|
54
|
+
## Issues Encountered
|
|
55
|
+
[Problems during planned work and resolutions]
|
|
56
|
+
|
|
57
|
+
## Next Phase Readiness
|
|
58
|
+
[What's ready for next phase]
|
|
59
|
+
[Blockers or concerns]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: XX-name
|
|
3
|
+
plan: YY
|
|
4
|
+
subsystem: [primary category]
|
|
5
|
+
tags: [searchable tech]
|
|
6
|
+
provides:
|
|
7
|
+
- [bullet list of what was built/delivered]
|
|
8
|
+
affects: [list of phase names or keywords]
|
|
9
|
+
tech-stack:
|
|
10
|
+
added: [libraries/tools]
|
|
11
|
+
patterns: [architectural/code patterns]
|
|
12
|
+
key-files:
|
|
13
|
+
created: [important files created]
|
|
14
|
+
modified: [important files modified]
|
|
15
|
+
key-decisions: []
|
|
16
|
+
duration: Xmin
|
|
17
|
+
completed: YYYY-MM-DD
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Phase [X]: [Name] Summary (Minimal)
|
|
21
|
+
|
|
22
|
+
**[Substantive one-liner describing outcome]**
|
|
23
|
+
|
|
24
|
+
## Performance
|
|
25
|
+
- **Duration:** [time]
|
|
26
|
+
- **Tasks:** [count]
|
|
27
|
+
- **Files modified:** [count]
|
|
28
|
+
|
|
29
|
+
## Accomplishments
|
|
30
|
+
- [Most important outcome]
|
|
31
|
+
- [Second key accomplishment]
|
|
32
|
+
|
|
33
|
+
## Task Commits
|
|
34
|
+
1. **Task 1: [task name]** - `hash`
|
|
35
|
+
2. **Task 2: [task name]** - `hash`
|
|
36
|
+
|
|
37
|
+
## Files Created/Modified
|
|
38
|
+
- `path/to/file.ts` - What it does
|
|
39
|
+
|
|
40
|
+
## Next Phase Readiness
|
|
41
|
+
[Ready for next phase]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: XX-name
|
|
3
|
+
plan: YY
|
|
4
|
+
subsystem: [primary category]
|
|
5
|
+
tags: [searchable tech]
|
|
6
|
+
provides:
|
|
7
|
+
- [bullet list of what was built/delivered]
|
|
8
|
+
affects: [list of phase names or keywords]
|
|
9
|
+
tech-stack:
|
|
10
|
+
added: [libraries/tools]
|
|
11
|
+
patterns: [architectural/code patterns]
|
|
12
|
+
key-files:
|
|
13
|
+
created: [important files created]
|
|
14
|
+
modified: [important files modified]
|
|
15
|
+
key-decisions:
|
|
16
|
+
- "Decision 1"
|
|
17
|
+
duration: Xmin
|
|
18
|
+
completed: YYYY-MM-DD
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Phase [X]: [Name] Summary
|
|
22
|
+
|
|
23
|
+
**[Substantive one-liner describing outcome]**
|
|
24
|
+
|
|
25
|
+
## Performance
|
|
26
|
+
- **Duration:** [time]
|
|
27
|
+
- **Tasks:** [count completed]
|
|
28
|
+
- **Files modified:** [count]
|
|
29
|
+
|
|
30
|
+
## Accomplishments
|
|
31
|
+
- [Key outcome 1]
|
|
32
|
+
- [Key outcome 2]
|
|
33
|
+
|
|
34
|
+
## Task Commits
|
|
35
|
+
1. **Task 1: [task name]** - `hash`
|
|
36
|
+
2. **Task 2: [task name]** - `hash`
|
|
37
|
+
3. **Task 3: [task name]** - `hash`
|
|
38
|
+
|
|
39
|
+
## Files Created/Modified
|
|
40
|
+
- `path/to/file.ts` - What it does
|
|
41
|
+
- `path/to/another.ts` - What it does
|
|
42
|
+
|
|
43
|
+
## Decisions & Deviations
|
|
44
|
+
[Key decisions or "None - followed plan as specified"]
|
|
45
|
+
[Minor deviations if any, or "None"]
|
|
46
|
+
|
|
47
|
+
## Next Phase Readiness
|
|
48
|
+
[What's ready for next phase]
|
|
@@ -233,37 +233,14 @@ The one-liner should tell someone what actually shipped.
|
|
|
233
233
|
</example>
|
|
234
234
|
|
|
235
235
|
<guidelines>
|
|
236
|
-
**
|
|
237
|
-
|
|
238
|
-
-
|
|
239
|
-
- Documents what actually happened vs what was planned
|
|
240
|
-
|
|
241
|
-
**Frontmatter completion:**
|
|
242
|
-
- MANDATORY: Complete all frontmatter fields during summary creation
|
|
243
|
-
- See <frontmatter_guidance> for field purposes
|
|
244
|
-
- Frontmatter enables automatic context assembly for future planning
|
|
245
|
-
|
|
246
|
-
**One-liner requirements:**
|
|
247
|
-
- Must be substantive (describe what shipped, not "phase complete")
|
|
248
|
-
- Should tell someone what was accomplished
|
|
249
|
-
- Examples: "JWT auth with refresh rotation using jose library" not "Authentication implemented"
|
|
250
|
-
|
|
251
|
-
**Performance tracking:**
|
|
252
|
-
- Include duration, start/end timestamps
|
|
253
|
-
- Used for velocity metrics in STATE.md
|
|
254
|
-
|
|
255
|
-
**Deviations section:**
|
|
256
|
-
- Documents unplanned work handled via deviation rules
|
|
257
|
-
- Separate from "Issues Encountered" (which is planned work problems)
|
|
258
|
-
- Auto-fixed issues: What was wrong, how fixed, verification
|
|
236
|
+
**Frontmatter:** MANDATORY - complete all fields. Enables automatic context assembly for future planning.
|
|
237
|
+
|
|
238
|
+
**One-liner:** Must be substantive. "JWT auth with refresh rotation using jose library" not "Authentication implemented".
|
|
259
239
|
|
|
260
240
|
**Decisions section:**
|
|
261
|
-
- Key decisions made during execution
|
|
262
|
-
- Include rationale (why this choice)
|
|
241
|
+
- Key decisions made during execution with rationale
|
|
263
242
|
- Extracted to STATE.md accumulated context
|
|
264
243
|
- Use "None - followed plan as specified" if no deviations
|
|
265
244
|
|
|
266
|
-
**After creation:**
|
|
267
|
-
- STATE.md updated with position, decisions, issues
|
|
268
|
-
- Next plan can reference decisions made
|
|
245
|
+
**After creation:** STATE.md updated with position, decisions, issues.
|
|
269
246
|
</guidelines>
|
|
@@ -304,20 +304,8 @@ curl -X POST http://localhost:3000/api/test-email \
|
|
|
304
304
|
|
|
305
305
|
## Guidelines
|
|
306
306
|
|
|
307
|
-
**
|
|
308
|
-
- Environment variable names and where to find values
|
|
309
|
-
- Account creation URLs (if new service)
|
|
310
|
-
- Dashboard configuration steps
|
|
311
|
-
- Verification commands to confirm setup works
|
|
312
|
-
- Local development alternatives (e.g., `stripe listen`)
|
|
313
|
-
|
|
314
|
-
**Do NOT include:**
|
|
315
|
-
- Actual secret values (never)
|
|
316
|
-
- Steps Claude can automate (package installs, code changes, file creation)
|
|
317
|
-
- Generic instructions ("set up your environment")
|
|
307
|
+
**Never include:** Actual secret values. Steps Claude can automate (package installs, code changes).
|
|
318
308
|
|
|
319
309
|
**Naming:** `{phase}-USER-SETUP.md` matches the phase number pattern.
|
|
320
|
-
|
|
321
310
|
**Status tracking:** User marks checkboxes and updates status line when complete.
|
|
322
|
-
|
|
323
311
|
**Searchability:** `grep -r "USER-SETUP" .planning/` finds all phases with user requirements.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Add a new integer phase to the end of the current milestone in the roadmap. Automatically calculates next phase number, creates phase directory, and updates roadmap structure.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="parse_arguments">
|
|
12
|
+
Parse the command arguments:
|
|
13
|
+
- All arguments become the phase description
|
|
14
|
+
- Example: `/gsd:add-phase Add authentication` → description = "Add authentication"
|
|
15
|
+
- Example: `/gsd:add-phase Fix critical performance issues` → description = "Fix critical performance issues"
|
|
16
|
+
|
|
17
|
+
If no arguments provided:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
ERROR: Phase description required
|
|
21
|
+
Usage: /gsd:add-phase <description>
|
|
22
|
+
Example: /gsd:add-phase Add authentication system
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Exit.
|
|
26
|
+
</step>
|
|
27
|
+
|
|
28
|
+
<step name="init_context">
|
|
29
|
+
Load phase operation context:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "0")
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Check `roadmap_exists` from init JSON. If false:
|
|
36
|
+
```
|
|
37
|
+
ERROR: No roadmap found (.planning/ROADMAP.md)
|
|
38
|
+
Run /gsd:new-project to initialize.
|
|
39
|
+
```
|
|
40
|
+
Exit.
|
|
41
|
+
</step>
|
|
42
|
+
|
|
43
|
+
<step name="add_phase">
|
|
44
|
+
**Delegate the phase addition to gsd-tools:**
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase add "${description}")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The CLI handles:
|
|
51
|
+
- Finding the highest existing integer phase number
|
|
52
|
+
- Calculating next phase number (max + 1)
|
|
53
|
+
- Generating slug from description
|
|
54
|
+
- Creating the phase directory (`.planning/phases/{NN}-{slug}/`)
|
|
55
|
+
- Inserting the phase entry into ROADMAP.md with Goal, Depends on, and Plans sections
|
|
56
|
+
|
|
57
|
+
Extract from result: `phase_number`, `padded`, `name`, `slug`, `directory`.
|
|
58
|
+
</step>
|
|
59
|
+
|
|
60
|
+
<step name="update_project_state">
|
|
61
|
+
Update STATE.md to reflect the new phase:
|
|
62
|
+
|
|
63
|
+
1. Read `.planning/STATE.md`
|
|
64
|
+
2. Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
|
|
65
|
+
```
|
|
66
|
+
- Phase {N} added: {description}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If "Roadmap Evolution" section doesn't exist, create it.
|
|
70
|
+
</step>
|
|
71
|
+
|
|
72
|
+
<step name="completion">
|
|
73
|
+
Present completion summary:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Phase {N} added to current milestone:
|
|
77
|
+
- Description: {description}
|
|
78
|
+
- Directory: .planning/phases/{phase-num}-{slug}/
|
|
79
|
+
- Status: Not planned yet
|
|
80
|
+
|
|
81
|
+
Roadmap updated: .planning/ROADMAP.md
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## ▶ Next Up
|
|
86
|
+
|
|
87
|
+
**Phase {N}: {description}**
|
|
88
|
+
|
|
89
|
+
`/gsd:plan-phase {N}`
|
|
90
|
+
|
|
91
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
**Also available:**
|
|
96
|
+
- `/gsd:add-phase <description>` — add another phase
|
|
97
|
+
- Review roadmap
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
```
|
|
101
|
+
</step>
|
|
102
|
+
|
|
103
|
+
</process>
|
|
104
|
+
|
|
105
|
+
<success_criteria>
|
|
106
|
+
- [ ] `gsd-tools phase add` executed successfully
|
|
107
|
+
- [ ] Phase directory created
|
|
108
|
+
- [ ] Roadmap updated with new phase entry
|
|
109
|
+
- [ ] STATE.md updated with roadmap evolution note
|
|
110
|
+
- [ ] User informed of next steps
|
|
111
|
+
</success_criteria>
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="init_context">
|
|
12
|
+
Load todo context:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init todos)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
|
|
19
|
+
|
|
20
|
+
Ensure directories exist:
|
|
21
|
+
```bash
|
|
22
|
+
mkdir -p .planning/todos/pending .planning/todos/done
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Note existing areas from the todos array for consistency in infer_area step.
|
|
26
|
+
</step>
|
|
27
|
+
|
|
28
|
+
<step name="extract_content">
|
|
29
|
+
**With arguments:** Use as the title/focus.
|
|
30
|
+
- `/gsd:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
31
|
+
|
|
32
|
+
**Without arguments:** Analyze recent conversation to extract:
|
|
33
|
+
- The specific problem, idea, or task discussed
|
|
34
|
+
- Relevant file paths mentioned
|
|
35
|
+
- Technical details (error messages, line numbers, constraints)
|
|
36
|
+
|
|
37
|
+
Formulate:
|
|
38
|
+
- `title`: 3-10 word descriptive title (action verb preferred)
|
|
39
|
+
- `problem`: What's wrong or why this is needed
|
|
40
|
+
- `solution`: Approach hints or "TBD" if just an idea
|
|
41
|
+
- `files`: Relevant paths with line numbers from conversation
|
|
42
|
+
</step>
|
|
43
|
+
|
|
44
|
+
<step name="infer_area">
|
|
45
|
+
Infer area from file paths:
|
|
46
|
+
|
|
47
|
+
| Path pattern | Area |
|
|
48
|
+
|--------------|------|
|
|
49
|
+
| `src/api/*`, `api/*` | `api` |
|
|
50
|
+
| `src/components/*`, `src/ui/*` | `ui` |
|
|
51
|
+
| `src/auth/*`, `auth/*` | `auth` |
|
|
52
|
+
| `src/db/*`, `database/*` | `database` |
|
|
53
|
+
| `tests/*`, `__tests__/*` | `testing` |
|
|
54
|
+
| `docs/*` | `docs` |
|
|
55
|
+
| `.planning/*` | `planning` |
|
|
56
|
+
| `scripts/*`, `bin/*` | `tooling` |
|
|
57
|
+
| No files or unclear | `general` |
|
|
58
|
+
|
|
59
|
+
Use existing area from step 2 if similar match exists.
|
|
60
|
+
</step>
|
|
61
|
+
|
|
62
|
+
<step name="check_duplicates">
|
|
63
|
+
```bash
|
|
64
|
+
# Search for key words from title in existing todos
|
|
65
|
+
grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
If potential duplicate found:
|
|
69
|
+
1. Read the existing todo
|
|
70
|
+
2. Compare scope
|
|
71
|
+
|
|
72
|
+
If overlapping, use AskUserQuestion:
|
|
73
|
+
- header: "Duplicate?"
|
|
74
|
+
- question: "Similar todo exists: [title]. What would you like to do?"
|
|
75
|
+
- options:
|
|
76
|
+
- "Skip" — keep existing todo
|
|
77
|
+
- "Replace" — update existing with new context
|
|
78
|
+
- "Add anyway" — create as separate todo
|
|
79
|
+
</step>
|
|
80
|
+
|
|
81
|
+
<step name="create_file">
|
|
82
|
+
Use values from init context: `timestamp` and `date` are already available.
|
|
83
|
+
|
|
84
|
+
Generate slug for the title:
|
|
85
|
+
```bash
|
|
86
|
+
slug=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs generate-slug "$title" --raw)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Write to `.planning/todos/pending/${date}-${slug}.md`:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
---
|
|
93
|
+
created: [timestamp]
|
|
94
|
+
title: [title]
|
|
95
|
+
area: [area]
|
|
96
|
+
files:
|
|
97
|
+
- [file:lines]
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Problem
|
|
101
|
+
|
|
102
|
+
[problem description - enough context for future Claude to understand weeks later]
|
|
103
|
+
|
|
104
|
+
## Solution
|
|
105
|
+
|
|
106
|
+
[approach hints or "TBD"]
|
|
107
|
+
```
|
|
108
|
+
</step>
|
|
109
|
+
|
|
110
|
+
<step name="update_state">
|
|
111
|
+
If `.planning/STATE.md` exists:
|
|
112
|
+
|
|
113
|
+
1. Use `todo_count` from init context (or re-run `init todos` if count changed)
|
|
114
|
+
2. Update "### Pending Todos" under "## Accumulated Context"
|
|
115
|
+
</step>
|
|
116
|
+
|
|
117
|
+
<step name="git_commit">
|
|
118
|
+
Commit the todo and any updated state:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Tool respects `commit_docs` config and gitignore automatically.
|
|
125
|
+
|
|
126
|
+
Confirm: "Committed: docs: capture todo - [title]"
|
|
127
|
+
</step>
|
|
128
|
+
|
|
129
|
+
<step name="confirm">
|
|
130
|
+
```
|
|
131
|
+
Todo saved: .planning/todos/pending/[filename]
|
|
132
|
+
|
|
133
|
+
[title]
|
|
134
|
+
Area: [area]
|
|
135
|
+
Files: [count] referenced
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
Would you like to:
|
|
140
|
+
|
|
141
|
+
1. Continue with current work
|
|
142
|
+
2. Add another todo
|
|
143
|
+
3. View all todos (/gsd:check-todos)
|
|
144
|
+
```
|
|
145
|
+
</step>
|
|
146
|
+
|
|
147
|
+
</process>
|
|
148
|
+
|
|
149
|
+
<success_criteria>
|
|
150
|
+
- [ ] Directory structure exists
|
|
151
|
+
- [ ] Todo file created with valid frontmatter
|
|
152
|
+
- [ ] Problem section has enough context for future Claude
|
|
153
|
+
- [ ] No duplicates (checked and resolved)
|
|
154
|
+
- [ ] Area consistent with existing todos
|
|
155
|
+
- [ ] STATE.md updated if exists
|
|
156
|
+
- [ ] Todo and state committed to git
|
|
157
|
+
</success_criteria>
|