get-shit-done-cc 1.5.30 → 1.6.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.
@@ -1,632 +0,0 @@
1
- <purpose>
2
- Define the phases of implementation. Each phase is a coherent chunk of work
3
- that delivers value. Phases map to requirements — every v1 requirement must
4
- belong to exactly one phase.
5
-
6
- The roadmap provides structure, not detailed tasks. But it ensures no
7
- requirements are orphaned and validates coverage before planning begins.
8
- </purpose>
9
-
10
- <required_reading>
11
- **Read these files NOW:**
12
-
13
- 1. ~/.claude/get-shit-done/templates/roadmap.md
14
- 2. ~/.claude/get-shit-done/templates/state.md
15
- 3. ~/.claude/get-shit-done/templates/requirements.md
16
- 4. .planning/PROJECT.md
17
- 5. .planning/REQUIREMENTS.md
18
- 6. .planning/research/SUMMARY.md (if exists)
19
- </required_reading>
20
-
21
- <process>
22
-
23
- <step name="load_requirements">
24
- Load and parse REQUIREMENTS.md:
25
-
26
- ```bash
27
- cat .planning/REQUIREMENTS.md
28
- ```
29
-
30
- Extract:
31
- - All v1 requirement IDs (AUTH-01, CONT-02, etc.)
32
- - Requirement categories (Authentication, Content, Social, etc.)
33
- - Total count of v1 requirements
34
-
35
- ```
36
- Requirements loaded:
37
-
38
- Categories: [N]
39
- - Authentication: [X] requirements
40
- - Content: [Y] requirements
41
- - Social: [Z] requirements
42
- ...
43
-
44
- Total v1 requirements: [N]
45
-
46
- All requirements must map to exactly one phase.
47
- ```
48
-
49
- **Track requirement IDs** — will verify coverage after phase identification.
50
- </step>
51
-
52
- <step name="check_brief">
53
- ```bash
54
- cat .planning/PROJECT.md 2>/dev/null || echo "No brief found"
55
- ```
56
-
57
- **If no brief exists:**
58
- Ask: "No brief found. Want to create one first, or proceed with roadmap?"
59
-
60
- If proceeding without brief, gather quick context:
61
-
62
- - What are we building?
63
- - What's the rough scope?
64
- </step>
65
-
66
- <step name="load_research">
67
- Check for project research:
68
-
69
- ```bash
70
- [ -d .planning/research ] && echo "RESEARCH_EXISTS" || echo "NO_RESEARCH"
71
- ```
72
-
73
- **If RESEARCH_EXISTS:**
74
-
75
- Read `.planning/research/SUMMARY.md` and extract:
76
- - Suggested phase structure from "Implications for Roadmap" section
77
- - Research flags for each suggested phase
78
- - Key findings that inform phase ordering
79
-
80
- ```
81
- Research found. Using findings to inform roadmap:
82
-
83
- Suggested phases from research:
84
- 1. [Phase from research] — [rationale]
85
- 2. [Phase from research] — [rationale]
86
- 3. [Phase from research] — [rationale]
87
-
88
- Research confidence: [HIGH/MEDIUM/LOW]
89
-
90
- Proceeding with research-informed phase identification...
91
- ```
92
-
93
- **If NO_RESEARCH:**
94
-
95
- Continue without research context. Phase identification will rely on PROJECT.md only.
96
-
97
- **Note:** Research is optional. Roadmap can be created without it, but research-informed roadmaps tend to have better phase structure and fewer surprises.
98
- </step>
99
-
100
- <step name="identify_phases">
101
- Derive phases from requirements. Each phase covers a coherent set of requirements.
102
-
103
- **Primary input: REQUIREMENTS.md**
104
- - Group requirements by natural delivery boundaries
105
- - Each phase should complete one or more requirement categories
106
- - Dependencies between requirements inform phase ordering
107
-
108
- **Secondary inputs:**
109
- - Research SUMMARY.md (if exists): suggested phases, architecture patterns
110
-
111
- **Phase identification process:**
112
-
113
- 1. Group requirements by category (Authentication, Content, Social, etc.)
114
- 2. Identify dependencies between categories (Social needs Content, Content needs Auth)
115
- 3. Create phases that complete entire categories where possible
116
- 4. Split large categories across phases if needed (e.g., basic auth vs. advanced auth)
117
- 5. Assign every v1 requirement to exactly one phase
118
-
119
- **For each phase, record:**
120
- - Phase name and goal
121
- - Which requirement IDs it covers (e.g., AUTH-01, AUTH-02, AUTH-03)
122
- - Dependencies on other phases
123
-
124
- **Check depth setting:**
125
- ```bash
126
- cat .planning/config.json 2>/dev/null | grep depth
127
- ```
128
-
129
- <depth_guidance>
130
- **Depth controls compression tolerance, not artificial inflation.**
131
-
132
- | Depth | Typical Phases | Typical Plans/Phase | Tasks/Plan |
133
- |-------|----------------|---------------------|------------|
134
- | Quick | 3-5 | 1-3 | 2-3 |
135
- | Standard | 5-8 | 3-5 | 2-3 |
136
- | Comprehensive | 8-12 | 5-10 | 2-3 |
137
-
138
- **Key principle:** Derive phases from actual work. Depth determines how aggressively you combine things, not a target to hit.
139
-
140
- - Comprehensive auth system = 8 phases (because auth genuinely has 8 concerns)
141
- - Comprehensive "add favicon" = 1 phase (because that's all it is)
142
-
143
- For comprehensive depth:
144
- - Don't compress multiple features into single phases
145
- - Each major capability gets its own phase
146
- - Let small things stay small—don't pad to hit a number
147
- - If you're tempted to combine two things, make them separate phases instead
148
-
149
- For quick depth:
150
- - Combine related work aggressively
151
- - Focus on critical path only
152
- - Defer nice-to-haves to future milestones
153
- </depth_guidance>
154
-
155
- **Phase Numbering System:**
156
-
157
- **Calculate starting phase number:**
158
-
159
- ```bash
160
- # Find highest existing phase number from phases/ directory
161
- ls -d .planning/phases/[0-9]*-* 2>/dev/null | sort -V | tail -1 | grep -oE '[0-9]+' | head -1
162
- ```
163
-
164
- - If phases/ is empty or doesn't exist: start at Phase 1
165
- - If phases exist from previous milestone: continue from last + 1
166
- - Example: v1.0 had phases 1-4, v1.1 starts at Phase 5
167
-
168
- Use integer phases (1, 2, 3) for planned milestone work.
169
-
170
- Use decimal phases (2.1, 2.2) for urgent insertions:
171
-
172
- - Decimal phases inserted between integers (2.1 between 2 and 3)
173
- - Mark with "(INSERTED)" in phase title
174
- - Created when urgent work discovered after planning
175
- - Examples: bugfixes, hotfixes, critical patches
176
-
177
- **When to use decimals:**
178
-
179
- - Urgent work that can't wait for next milestone
180
- - Critical bugs blocking progress
181
- - Security patches needing immediate attention
182
- - NOT for scope creep or "nice to haves" (capture with /gsd:add-todo instead)
183
-
184
- **Phase execution order:**
185
- Numeric sort: 1 → 1.1 → 1.2 → 2 → 2.1 → 3
186
-
187
- **Deriving phases:**
188
-
189
- 1. List all distinct systems/features/capabilities required
190
- 2. Group related work into coherent deliverables
191
- 3. Each phase should deliver ONE complete, verifiable thing
192
- 4. If a phase delivers multiple unrelated capabilities: split it
193
- 5. If a phase can't stand alone as a complete deliverable: merge it
194
- 6. Order by dependencies
195
-
196
- Good phases are:
197
-
198
- - **Coherent**: Each delivers one complete, verifiable capability
199
- - **Sequential**: Later phases build on earlier
200
- - **Independent**: Can be verified and committed on its own
201
-
202
- Common phase patterns:
203
-
204
- - Foundation → Core Feature → Enhancement → Polish
205
- - Setup → MVP → Iteration → Launch
206
- - Infrastructure → Backend → Frontend → Integration
207
- </step>
208
-
209
- <step name="derive_phase_success_criteria">
210
- **For each phase, derive what must be TRUE when it completes.**
211
-
212
- This catches scope gaps before planning begins. Requirements tell us what to build; success criteria tell us what users can do.
213
-
214
- **Process for each phase:**
215
-
216
- 1. **State the phase goal** (from identify_phases)
217
-
218
- 2. **Ask: "What must be TRUE for users when this phase completes?"**
219
- - Think from user's perspective, not implementation
220
- - 2-5 observable behaviors per phase
221
- - Each should be testable/verifiable
222
-
223
- 3. **Cross-check against mapped requirements:**
224
- - Does each success criterion have at least one requirement supporting it?
225
- - Does each requirement contribute to at least one success criterion?
226
-
227
- 4. **Flag gaps:**
228
- - Success criterion with no supporting requirement → Add requirement or mark as out of scope
229
- - Requirement that supports no criterion → Question if it belongs in this phase
230
-
231
- **Example:**
232
-
233
- ```
234
- Phase 2: Authentication
235
- Goal: Users can securely access their accounts
236
-
237
- Success Criteria (what must be TRUE):
238
- 1. User can create account with email/password
239
- 2. User can log in and stay logged in across browser sessions
240
- 3. User can log out from any page
241
- 4. User can reset forgotten password
242
-
243
- Requirements mapped: AUTH-01, AUTH-02, AUTH-03
244
-
245
- Cross-check:
246
- ✓ Criterion 1 ← AUTH-01 (create account)
247
- ✓ Criterion 2 ← AUTH-02 (log in) — but "stay logged in" needs session persistence
248
- ✓ Criterion 3 ← AUTH-03 (log out)
249
- ✗ Criterion 4 ← No requirement covers password reset
250
-
251
- Gap found: Password reset not in requirements.
252
- → Add AUTH-04: User can reset password via email
253
- OR mark "Password reset" as v2 scope
254
- ```
255
-
256
- **Present to user:**
257
-
258
- ```
259
- Phase success criteria derived:
260
-
261
- Phase 1: Foundation
262
- Goal: Project scaffolding and configuration
263
- Success criteria:
264
- 1. Project builds without errors
265
- 2. Development server runs locally
266
- 3. CI pipeline passes
267
- Requirements: SETUP-01, SETUP-02 ✓ (all criteria covered)
268
-
269
- Phase 2: Authentication
270
- Goal: Users can securely access their accounts
271
- Success criteria:
272
- 1. User can create account with email/password
273
- 2. User can log in and stay logged in across sessions
274
- 3. User can log out from any page
275
- 4. User can reset forgotten password ⚠️
276
- Requirements: AUTH-01, AUTH-02, AUTH-03
277
- Gap: Criterion 4 (password reset) has no requirement
278
-
279
- Phase 3: User Profile
280
- ...
281
-
282
- ---
283
-
284
- ⚠️ 1 gap found in Phase 2
285
-
286
- Options:
287
- 1. Add AUTH-04 for password reset
288
- 2. Mark password reset as v2 scope
289
- 3. Adjust success criteria
290
- ```
291
-
292
- **Resolve all gaps before proceeding.**
293
-
294
- Success criteria flow downstream:
295
- - Written to ROADMAP.md (high-level, user-observable)
296
- - Inform `must_haves` derivation in plan-phase (concrete artifacts/wiring)
297
- - Verified by verify-phase after execution
298
- </step>
299
-
300
- <step name="validate_coverage">
301
- **Verify all v1 requirements are mapped to exactly one phase.**
302
-
303
- Compare assigned requirements against full list from load_requirements step:
304
-
305
- ```
306
- Requirement Coverage:
307
-
308
- ✓ AUTH-01 → Phase 1
309
- ✓ AUTH-02 → Phase 1
310
- ✓ AUTH-03 → Phase 1
311
- ✓ AUTH-04 → Phase 1
312
- ✓ PROF-01 → Phase 2
313
- ✓ PROF-02 → Phase 2
314
- ...
315
-
316
- Coverage: [X]/[Y] requirements mapped
317
- ```
318
-
319
- **If any requirements unmapped:**
320
-
321
- ```
322
- ⚠️ Orphaned requirements (not in any phase):
323
-
324
- - NOTF-01: User receives in-app notifications
325
- - NOTF-02: User receives email for new followers
326
-
327
- These v1 requirements have no phase. Options:
328
- 1. Add phase to cover them
329
- 2. Move to v2 (update REQUIREMENTS.md)
330
- 3. Assign to existing phase
331
- ```
332
-
333
- Use AskUserQuestion to resolve orphaned requirements.
334
-
335
- **Do not proceed until coverage = 100%.**
336
- </step>
337
-
338
- <step name="confirm_phases">
339
- <config-check>
340
- ```bash
341
- cat .planning/config.json 2>/dev/null
342
- ```
343
- Note: Config may not exist yet (project initialization). If missing, default to interactive mode.
344
- </config-check>
345
-
346
- <if mode="yolo">
347
- ```
348
- ⚡ Auto-approved: Phase breakdown ([N] phases)
349
-
350
- 1. [Phase name] - [goal]
351
- 2. [Phase name] - [goal]
352
- 3. [Phase name] - [goal]
353
-
354
- Proceeding to research detection...
355
- ```
356
-
357
- Proceed directly to detect_research_needs step.
358
- </if>
359
-
360
- <if mode="interactive" OR="missing OR custom with gates.confirm_phases true">
361
- Present the phase breakdown inline:
362
-
363
- "Here's how I'd break this down:
364
-
365
- 1. [Phase name] - [goal]
366
- 2. [Phase name] - [goal]
367
- 3. [Phase name] - [goal]
368
- ...
369
-
370
- Does this feel right? (yes / adjust)"
371
-
372
- If "adjust": Ask what to change, revise, present again.
373
- </step>
374
-
375
- <step name="decision_gate">
376
- <if mode="yolo">
377
- ```
378
- ⚡ Auto-approved: Create roadmap with [N] phases
379
-
380
- Proceeding to create .planning/ROADMAP.md...
381
- ```
382
-
383
- Proceed directly to create_structure step.
384
- </if>
385
-
386
- <if mode="interactive" OR="missing OR custom with gates.confirm_roadmap true">
387
- Use AskUserQuestion:
388
-
389
- - header: "Ready"
390
- - question: "Ready to create the roadmap, or would you like me to ask more questions?"
391
- - options:
392
- - "Create roadmap" - I have enough context
393
- - "Ask more questions" - There are details to clarify
394
- - "Let me add context" - I want to provide more information
395
-
396
- Loop until "Create roadmap" selected.
397
- </step>
398
-
399
- <step name="create_structure">
400
- ```bash
401
- mkdir -p .planning/phases
402
- ```
403
- </step>
404
-
405
- <step name="write_roadmap">
406
- Use template from `~/.claude/get-shit-done/templates/roadmap.md`.
407
-
408
- Initial roadmaps use integer phases (1, 2, 3...).
409
- Decimal phases added later via /gsd:insert-phase command (if it exists).
410
-
411
- Write to `.planning/ROADMAP.md` with:
412
-
413
- - Phase list with names and one-line descriptions
414
- - Dependencies (what must complete before what)
415
- - **Requirement mappings** (which REQ-IDs each phase covers):
416
- ```markdown
417
- ### Phase 1: Authentication
418
- **Goal**: Secure user authentication
419
- **Depends on**: Nothing (first phase)
420
- **Requirements**: AUTH-01, AUTH-02, AUTH-03, AUTH-04
421
- ```
422
- - Status tracking (all start as "not started")
423
-
424
- Create phase directories:
425
-
426
- ```bash
427
- mkdir -p .planning/phases/01-{phase-name}
428
- mkdir -p .planning/phases/02-{phase-name}
429
- # etc.
430
- ```
431
-
432
- </step>
433
-
434
- <step name="update_requirements_traceability">
435
- Update REQUIREMENTS.md traceability section with phase mappings:
436
-
437
- Read current REQUIREMENTS.md and update the Traceability table:
438
-
439
- ```markdown
440
- ## Traceability
441
-
442
- | Requirement | Phase | Status |
443
- |-------------|-------|--------|
444
- | AUTH-01 | Phase 1 | Pending |
445
- | AUTH-02 | Phase 1 | Pending |
446
- | AUTH-03 | Phase 1 | Pending |
447
- | AUTH-04 | Phase 1 | Pending |
448
- | PROF-01 | Phase 2 | Pending |
449
- ...
450
-
451
- **Coverage:**
452
- - v1 requirements: [X] total
453
- - Mapped to phases: [X]
454
- - Unmapped: 0 ✓
455
- ```
456
-
457
- Write updated REQUIREMENTS.md.
458
- </step>
459
-
460
- <step name="initialize_project_state">
461
-
462
- Create or update STATE.md — the project's living memory.
463
-
464
- ```bash
465
- [ -f .planning/STATE.md ] && echo "STATE_EXISTS" || echo "NEW_STATE"
466
- ```
467
-
468
- **If STATE_EXISTS:** Update Current Position and keep Accumulated Context.
469
- **If NEW_STATE:** Create fresh using template from `~/.claude/get-shit-done/templates/state.md`.
470
-
471
- Write to `.planning/STATE.md`:
472
-
473
- ```markdown
474
- # Project State
475
-
476
- ## Project Reference
477
-
478
- See: .planning/PROJECT.md (updated [today's date])
479
-
480
- **Core value:** [Copy Core Value from PROJECT.md]
481
- **Current focus:** Phase 1 — [First phase name]
482
-
483
- ## Current Position
484
-
485
- Phase: 1 of [N] ([First phase name])
486
- Plan: Not started
487
- Status: Ready to plan
488
- Last activity: [today's date] — Project initialized
489
-
490
- Progress: ░░░░░░░░░░ 0%
491
-
492
- ## Performance Metrics
493
-
494
- **Velocity:**
495
- - Total plans completed: 0
496
- - Average duration: —
497
- - Total execution time: 0 hours
498
-
499
- **By Phase:**
500
-
501
- | Phase | Plans | Total | Avg/Plan |
502
- |-------|-------|-------|----------|
503
- | — | — | — | — |
504
-
505
- **Recent Trend:**
506
- - Last 5 plans: —
507
- - Trend: —
508
-
509
- ## Accumulated Context
510
-
511
- ### Decisions
512
-
513
- Decisions are logged in PROJECT.md Key Decisions table.
514
- Recent decisions affecting current work:
515
-
516
- (None yet)
517
-
518
- ### Pending Todos
519
-
520
- None yet.
521
-
522
- ### Blockers/Concerns
523
-
524
- None yet.
525
-
526
- ## Session Continuity
527
-
528
- Last session: [today's date and time]
529
- Stopped at: Project initialization complete
530
- Resume file: None
531
- ```
532
-
533
- **Key points:**
534
-
535
- - Project Reference points to PROJECT.md for full context
536
- - Claude reads PROJECT.md directly for requirements, constraints, decisions
537
- - This file will be read first in every future operation
538
- - This file will be updated after every execution
539
-
540
- </step>
541
-
542
- <step name="git_commit_initialization">
543
- Commit roadmap with requirement mappings:
544
-
545
- ```bash
546
- git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
547
- git add .planning/phases/
548
- git commit -m "$(cat <<'EOF'
549
- docs: create roadmap ([N] phases, [X] requirements)
550
-
551
- [One-liner from PROJECT.md]
552
-
553
- Phases:
554
- 1. [phase-name]: [requirements covered]
555
- 2. [phase-name]: [requirements covered]
556
- 3. [phase-name]: [requirements covered]
557
-
558
- All v1 requirements mapped to phases.
559
- EOF
560
- )"
561
- ```
562
-
563
- Confirm: "Committed: docs: create roadmap ([N] phases, [X] requirements)"
564
- </step>
565
-
566
- <step name="offer_next">
567
- ```
568
- Project initialized:
569
- - Brief: .planning/PROJECT.md
570
- - Roadmap: .planning/ROADMAP.md
571
- - State: .planning/STATE.md
572
- - Committed as: docs: initialize [project] ([N] phases)
573
-
574
- ---
575
-
576
- ## ▶ Next Up
577
-
578
- **Phase 1: [Name]** — [Goal from ROADMAP.md]
579
-
580
- `/gsd:discuss-phase 1` — gather context and clarify approach
581
-
582
- <sub>`/clear` first → fresh context window</sub>
583
-
584
- ---
585
-
586
- **Also available:**
587
- - `/gsd:plan-phase 1` — skip discussion, plan directly
588
- - Review roadmap
589
-
590
- ---
591
- ```
592
- </step>
593
-
594
- </process>
595
-
596
- <phase_naming>
597
- Use `XX-kebab-case-name` format:
598
- - `01-foundation`
599
- - `02-authentication`
600
- - `03-core-features`
601
- - `04-polish`
602
-
603
- Numbers ensure ordering. Names describe content.
604
- </phase_naming>
605
-
606
- <anti_patterns>
607
- - Don't add time estimates
608
- - Don't create Gantt charts
609
- - Don't add resource allocation
610
- - Don't include risk matrices
611
- - Don't impose arbitrary phase counts (let the work determine the count)
612
-
613
- Phases are buckets of work, not project management artifacts.
614
- </anti_patterns>
615
-
616
- <success_criteria>
617
- Roadmap is complete when:
618
- - [ ] REQUIREMENTS.md loaded and parsed
619
- - [ ] All v1 requirements mapped to exactly one phase (100% coverage)
620
- - [ ] **Success criteria derived** for each phase (2-5 observable behaviors)
621
- - [ ] **Success criteria cross-checked** against requirements (no gaps)
622
- - [ ] `.planning/ROADMAP.md` exists with requirement mappings and success criteria
623
- - [ ] `.planning/STATE.md` exists (project memory initialized)
624
- - [ ] REQUIREMENTS.md traceability section updated
625
- - [ ] Phases defined with clear names (count derived from requirements, not imposed)
626
- - [ ] **Research flags assigned** (Likely/Unlikely for each phase)
627
- - [ ] **Research topics listed** for Likely phases
628
- - [ ] Phase directories created
629
- - [ ] Dependencies noted if any
630
- - [ ] Status tracking in place
631
- </success_criteria>
632
- ```