get-shit-done-cc 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +192 -0
- package/bin/install.js +53 -0
- package/commands/gsd/add-phase.md +201 -0
- package/commands/gsd/complete-milestone.md +105 -0
- package/commands/gsd/discuss-milestone.md +45 -0
- package/commands/gsd/discuss-phase.md +47 -0
- package/commands/gsd/execute-plan.md +108 -0
- package/commands/gsd/help.md +252 -0
- package/commands/gsd/insert-phase.md +218 -0
- package/commands/gsd/list-phase-assumptions.md +49 -0
- package/commands/gsd/new-milestone.md +58 -0
- package/commands/gsd/new-project.md +177 -0
- package/commands/gsd/pause-work.md +123 -0
- package/commands/gsd/plan-phase.md +60 -0
- package/commands/gsd/progress.md +182 -0
- package/commands/gsd/resume-work.md +50 -0
- package/get-shit-done/references/checkpoints.md +594 -0
- package/get-shit-done/references/cli-automation.md +527 -0
- package/get-shit-done/references/git-integration.md +126 -0
- package/get-shit-done/references/plan-format.md +397 -0
- package/get-shit-done/references/principles.md +97 -0
- package/get-shit-done/references/questioning.md +138 -0
- package/get-shit-done/references/research-pitfalls.md +215 -0
- package/get-shit-done/references/scope-estimation.md +451 -0
- package/get-shit-done/templates/config.json +17 -0
- package/get-shit-done/templates/context.md +385 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/issues.md +32 -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 +290 -0
- package/get-shit-done/templates/project.md +207 -0
- package/get-shit-done/templates/research-prompt.md +133 -0
- package/get-shit-done/templates/roadmap.md +196 -0
- package/get-shit-done/templates/state.md +226 -0
- package/get-shit-done/templates/summary.md +200 -0
- package/get-shit-done/workflows/complete-milestone.md +490 -0
- package/get-shit-done/workflows/create-milestone.md +379 -0
- package/get-shit-done/workflows/create-roadmap.md +443 -0
- package/get-shit-done/workflows/discuss-milestone.md +144 -0
- package/get-shit-done/workflows/discuss-phase.md +254 -0
- package/get-shit-done/workflows/execute-phase.md +1261 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/plan-phase.md +783 -0
- package/get-shit-done/workflows/research-phase.md +293 -0
- package/get-shit-done/workflows/resume-project.md +248 -0
- package/get-shit-done/workflows/transition.md +488 -0
- package/package.json +30 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Milestone Entry Template
|
|
2
|
+
|
|
3
|
+
Add this entry to `.planning/MILESTONES.md` when completing a milestone:
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
## v[X.Y] [Name] (Shipped: YYYY-MM-DD)
|
|
7
|
+
|
|
8
|
+
**Delivered:** [One sentence describing what shipped]
|
|
9
|
+
|
|
10
|
+
**Phases completed:** [X-Y] ([Z] plans total)
|
|
11
|
+
|
|
12
|
+
**Key accomplishments:**
|
|
13
|
+
- [Major achievement 1]
|
|
14
|
+
- [Major achievement 2]
|
|
15
|
+
- [Major achievement 3]
|
|
16
|
+
- [Major achievement 4]
|
|
17
|
+
|
|
18
|
+
**Stats:**
|
|
19
|
+
- [X] files created/modified
|
|
20
|
+
- [Y] lines of code (primary language)
|
|
21
|
+
- [Z] phases, [N] plans, [M] tasks
|
|
22
|
+
- [D] days from start to ship (or milestone to milestone)
|
|
23
|
+
|
|
24
|
+
**Git range:** `feat(XX-XX)` → `feat(YY-YY)`
|
|
25
|
+
|
|
26
|
+
**What's next:** [Brief description of next milestone goals, or "Project complete"]
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
<structure>
|
|
32
|
+
If MILESTONES.md doesn't exist, create it with header:
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# Project Milestones: [Project Name]
|
|
36
|
+
|
|
37
|
+
[Entries in reverse chronological order - newest first]
|
|
38
|
+
```
|
|
39
|
+
</structure>
|
|
40
|
+
|
|
41
|
+
<guidelines>
|
|
42
|
+
**When to create milestones:**
|
|
43
|
+
- Initial v1.0 MVP shipped
|
|
44
|
+
- Major version releases (v2.0, v3.0)
|
|
45
|
+
- Significant feature milestones (v1.1, v1.2)
|
|
46
|
+
- Before archiving planning (capture what was shipped)
|
|
47
|
+
|
|
48
|
+
**Don't create milestones for:**
|
|
49
|
+
- Individual phase completions (normal workflow)
|
|
50
|
+
- Work in progress (wait until shipped)
|
|
51
|
+
- Minor bug fixes that don't constitute a release
|
|
52
|
+
|
|
53
|
+
**Stats to include:**
|
|
54
|
+
- Count modified files: `git diff --stat feat(XX-XX)..feat(YY-YY) | tail -1`
|
|
55
|
+
- Count LOC: `find . -name "*.swift" -o -name "*.ts" | xargs wc -l` (or relevant extension)
|
|
56
|
+
- Phase/plan/task counts from ROADMAP
|
|
57
|
+
- Timeline from first phase commit to last phase commit
|
|
58
|
+
|
|
59
|
+
**Git range format:**
|
|
60
|
+
- First commit of milestone → last commit of milestone
|
|
61
|
+
- Example: `feat(01-01)` → `feat(04-01)` for phases 1-4
|
|
62
|
+
</guidelines>
|
|
63
|
+
|
|
64
|
+
<example>
|
|
65
|
+
```markdown
|
|
66
|
+
# Project Milestones: WeatherBar
|
|
67
|
+
|
|
68
|
+
## v1.1 Security & Polish (Shipped: 2025-12-10)
|
|
69
|
+
|
|
70
|
+
**Delivered:** Security hardening with Keychain integration and comprehensive error handling
|
|
71
|
+
|
|
72
|
+
**Phases completed:** 5-6 (3 plans total)
|
|
73
|
+
|
|
74
|
+
**Key accomplishments:**
|
|
75
|
+
- Migrated API key storage from plaintext to macOS Keychain
|
|
76
|
+
- Implemented comprehensive error handling for network failures
|
|
77
|
+
- Added Sentry crash reporting integration
|
|
78
|
+
- Fixed memory leak in auto-refresh timer
|
|
79
|
+
|
|
80
|
+
**Stats:**
|
|
81
|
+
- 23 files modified
|
|
82
|
+
- 650 lines of Swift added
|
|
83
|
+
- 2 phases, 3 plans, 12 tasks
|
|
84
|
+
- 8 days from v1.0 to v1.1
|
|
85
|
+
|
|
86
|
+
**Git range:** `feat(05-01)` → `feat(06-02)`
|
|
87
|
+
|
|
88
|
+
**What's next:** v2.0 SwiftUI redesign with widget support
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## v1.0 MVP (Shipped: 2025-11-25)
|
|
93
|
+
|
|
94
|
+
**Delivered:** Menu bar weather app with current conditions and 3-day forecast
|
|
95
|
+
|
|
96
|
+
**Phases completed:** 1-4 (7 plans total)
|
|
97
|
+
|
|
98
|
+
**Key accomplishments:**
|
|
99
|
+
- Menu bar app with popover UI (AppKit)
|
|
100
|
+
- OpenWeather API integration with auto-refresh
|
|
101
|
+
- Current weather display with conditions icon
|
|
102
|
+
- 3-day forecast list with high/low temperatures
|
|
103
|
+
- Code signed and notarized for distribution
|
|
104
|
+
|
|
105
|
+
**Stats:**
|
|
106
|
+
- 47 files created
|
|
107
|
+
- 2,450 lines of Swift
|
|
108
|
+
- 4 phases, 7 plans, 28 tasks
|
|
109
|
+
- 12 days from start to ship
|
|
110
|
+
|
|
111
|
+
**Git range:** `feat(01-01)` → `feat(04-01)`
|
|
112
|
+
|
|
113
|
+
**What's next:** Security audit and hardening for v1.1
|
|
114
|
+
```
|
|
115
|
+
</example>
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Phase Prompt Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phase plans.
|
|
4
|
+
|
|
5
|
+
**Naming:** Use `{phase}-{plan}-PLAN.md` format (e.g., `01-02-PLAN.md` for Phase 1, Plan 2)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## File Template
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
---
|
|
13
|
+
phase: XX-name
|
|
14
|
+
type: execute
|
|
15
|
+
domain: [optional - if domain skill loaded]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
[What this phase accomplishes - from roadmap phase goal]
|
|
20
|
+
|
|
21
|
+
Purpose: [Why this matters for the project]
|
|
22
|
+
Output: [What artifacts will be created]
|
|
23
|
+
</objective>
|
|
24
|
+
|
|
25
|
+
<execution_context>
|
|
26
|
+
~/.claude/get-shit-done/workflows/execute-phase.md
|
|
27
|
+
./summary.md
|
|
28
|
+
[If plan contains checkpoint tasks (type="checkpoint:*"), add:]
|
|
29
|
+
~/.claude/get-shit-done/references/checkpoints.md
|
|
30
|
+
</execution_context>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
@.planning/PROJECT.md
|
|
34
|
+
@.planning/ROADMAP.md
|
|
35
|
+
[If research exists:]
|
|
36
|
+
@.planning/phases/XX-name/FINDINGS.md
|
|
37
|
+
[Relevant source files:]
|
|
38
|
+
@src/path/to/relevant.ts
|
|
39
|
+
</context>
|
|
40
|
+
|
|
41
|
+
<tasks>
|
|
42
|
+
|
|
43
|
+
<task type="auto">
|
|
44
|
+
<name>Task 1: [Action-oriented name]</name>
|
|
45
|
+
<files>path/to/file.ext, another/file.ext</files>
|
|
46
|
+
<action>[Specific implementation - what to do, how to do it, what to avoid and WHY]</action>
|
|
47
|
+
<verify>[Command or check to prove it worked]</verify>
|
|
48
|
+
<done>[Measurable acceptance criteria]</done>
|
|
49
|
+
</task>
|
|
50
|
+
|
|
51
|
+
<task type="auto">
|
|
52
|
+
<name>Task 2: [Action-oriented name]</name>
|
|
53
|
+
<files>path/to/file.ext</files>
|
|
54
|
+
<action>[Specific implementation]</action>
|
|
55
|
+
<verify>[Command or check]</verify>
|
|
56
|
+
<done>[Acceptance criteria]</done>
|
|
57
|
+
</task>
|
|
58
|
+
|
|
59
|
+
<task type="checkpoint:decision" gate="blocking">
|
|
60
|
+
<decision>[What needs deciding]</decision>
|
|
61
|
+
<context>[Why this decision matters]</context>
|
|
62
|
+
<options>
|
|
63
|
+
<option id="option-a">
|
|
64
|
+
<name>[Option name]</name>
|
|
65
|
+
<pros>[Benefits and advantages]</pros>
|
|
66
|
+
<cons>[Tradeoffs and limitations]</cons>
|
|
67
|
+
</option>
|
|
68
|
+
<option id="option-b">
|
|
69
|
+
<name>[Option name]</name>
|
|
70
|
+
<pros>[Benefits and advantages]</pros>
|
|
71
|
+
<cons>[Tradeoffs and limitations]</cons>
|
|
72
|
+
</option>
|
|
73
|
+
</options>
|
|
74
|
+
<resume-signal>[How to indicate choice - "Select: option-a or option-b"]</resume-signal>
|
|
75
|
+
</task>
|
|
76
|
+
|
|
77
|
+
<task type="auto">
|
|
78
|
+
<name>Task 3: [Action-oriented name]</name>
|
|
79
|
+
<files>path/to/file.ext</files>
|
|
80
|
+
<action>[Specific implementation]</action>
|
|
81
|
+
<verify>[Command or check]</verify>
|
|
82
|
+
<done>[Acceptance criteria]</done>
|
|
83
|
+
</task>
|
|
84
|
+
|
|
85
|
+
<task type="checkpoint:human-verify" gate="blocking">
|
|
86
|
+
<what-built>[What Claude just built that needs verification]</what-built>
|
|
87
|
+
<how-to-verify>
|
|
88
|
+
1. Run: [command to start dev server/app]
|
|
89
|
+
2. Visit: [URL to check]
|
|
90
|
+
3. Test: [Specific interactions]
|
|
91
|
+
4. Confirm: [Expected behaviors]
|
|
92
|
+
</how-to-verify>
|
|
93
|
+
<resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
|
|
94
|
+
</task>
|
|
95
|
+
|
|
96
|
+
[Continue for all tasks - mix of auto and checkpoints as needed...]
|
|
97
|
+
|
|
98
|
+
</tasks>
|
|
99
|
+
|
|
100
|
+
<verification>
|
|
101
|
+
Before declaring phase complete:
|
|
102
|
+
- [ ] [Specific test command]
|
|
103
|
+
- [ ] [Build/type check passes]
|
|
104
|
+
- [ ] [Behavior verification]
|
|
105
|
+
</verification>
|
|
106
|
+
|
|
107
|
+
<success_criteria>
|
|
108
|
+
|
|
109
|
+
- All tasks completed
|
|
110
|
+
- All verification checks pass
|
|
111
|
+
- No errors or warnings introduced
|
|
112
|
+
- [Phase-specific criteria]
|
|
113
|
+
</success_criteria>
|
|
114
|
+
|
|
115
|
+
<output>
|
|
116
|
+
After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`:
|
|
117
|
+
|
|
118
|
+
# Phase [X] Plan [Y]: [Name] Summary
|
|
119
|
+
|
|
120
|
+
**[Substantive one-liner - what shipped, not "phase complete"]**
|
|
121
|
+
|
|
122
|
+
## Accomplishments
|
|
123
|
+
|
|
124
|
+
- [Key outcome 1]
|
|
125
|
+
- [Key outcome 2]
|
|
126
|
+
|
|
127
|
+
## Files Created/Modified
|
|
128
|
+
|
|
129
|
+
- `path/to/file.ts` - Description
|
|
130
|
+
- `path/to/another.ts` - Description
|
|
131
|
+
|
|
132
|
+
## Decisions Made
|
|
133
|
+
|
|
134
|
+
[Key decisions and rationale, or "None"]
|
|
135
|
+
|
|
136
|
+
## Issues Encountered
|
|
137
|
+
|
|
138
|
+
[Problems and resolutions, or "None"]
|
|
139
|
+
|
|
140
|
+
## Next Step
|
|
141
|
+
|
|
142
|
+
[If more plans in this phase: "Ready for {phase}-{next-plan}-PLAN.md"]
|
|
143
|
+
[If phase complete: "Phase complete, ready for next phase"]
|
|
144
|
+
</output>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
<key_elements>
|
|
148
|
+
From create-meta-prompts patterns:
|
|
149
|
+
|
|
150
|
+
- XML structure for Claude parsing
|
|
151
|
+
- @context references for file loading
|
|
152
|
+
- Task types: auto, checkpoint:human-action, checkpoint:human-verify, checkpoint:decision
|
|
153
|
+
- Action includes "what to avoid and WHY" (from intelligence-rules)
|
|
154
|
+
- Verification is specific and executable
|
|
155
|
+
- Success criteria is measurable
|
|
156
|
+
- Output specification includes SUMMARY.md structure
|
|
157
|
+
</key_elements>
|
|
158
|
+
|
|
159
|
+
<scope_guidance>
|
|
160
|
+
**Plan sizing:**
|
|
161
|
+
|
|
162
|
+
- Aim for 2-3 tasks per plan
|
|
163
|
+
- If planning >3 tasks, split into multiple plans (01-01, 01-02, etc.)
|
|
164
|
+
- Target ~50% context usage maximum
|
|
165
|
+
- Complex phases: Create 01-01, 01-02, 01-03 plans instead of one large plan
|
|
166
|
+
|
|
167
|
+
**When to split:**
|
|
168
|
+
|
|
169
|
+
- Different subsystems (auth vs API vs UI)
|
|
170
|
+
- Clear dependency boundaries (setup → implement → test)
|
|
171
|
+
- Risk of context overflow (>50% estimated usage)
|
|
172
|
+
</scope_guidance>
|
|
173
|
+
|
|
174
|
+
<good_examples>
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
---
|
|
178
|
+
phase: 01-foundation
|
|
179
|
+
type: execute
|
|
180
|
+
domain: next-js
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
<objective>
|
|
184
|
+
Set up Next.js project with authentication foundation.
|
|
185
|
+
|
|
186
|
+
Purpose: Establish the core structure and auth patterns all features depend on.
|
|
187
|
+
Output: Working Next.js app with JWT auth, protected routes, and user model.
|
|
188
|
+
</objective>
|
|
189
|
+
|
|
190
|
+
<execution_context>
|
|
191
|
+
~/.claude/get-shit-done/workflows/execute-phase.md
|
|
192
|
+
./summary.md
|
|
193
|
+
</execution_context>
|
|
194
|
+
|
|
195
|
+
<context>
|
|
196
|
+
@.planning/PROJECT.md
|
|
197
|
+
@.planning/ROADMAP.md
|
|
198
|
+
@src/lib/db.ts
|
|
199
|
+
</context>
|
|
200
|
+
|
|
201
|
+
<tasks>
|
|
202
|
+
|
|
203
|
+
<task type="auto">
|
|
204
|
+
<name>Task 1: Add User model to database schema</name>
|
|
205
|
+
<files>prisma/schema.prisma</files>
|
|
206
|
+
<action>Add User model with fields: id (cuid), email (unique), passwordHash, createdAt, updatedAt. Add Session relation. Use @db.VarChar(255) for email to prevent index issues.</action>
|
|
207
|
+
<verify>npx prisma validate passes, npx prisma generate succeeds</verify>
|
|
208
|
+
<done>Schema valid, types generated, no errors</done>
|
|
209
|
+
</task>
|
|
210
|
+
|
|
211
|
+
<task type="auto">
|
|
212
|
+
<name>Task 2: Create login API endpoint</name>
|
|
213
|
+
<files>src/app/api/auth/login/route.ts</files>
|
|
214
|
+
<action>POST endpoint that accepts {email, password}, validates against User table using bcrypt, returns JWT in httpOnly cookie with 15-min expiry. Use jose library for JWT (not jsonwebtoken - it has CommonJS issues with Next.js).</action>
|
|
215
|
+
<verify>curl -X POST /api/auth/login -d '{"email":"test@test.com","password":"test"}' -H "Content-Type: application/json" returns 200 with Set-Cookie header</verify>
|
|
216
|
+
<done>Valid credentials return 200 + cookie, invalid return 401, missing fields return 400</done>
|
|
217
|
+
</task>
|
|
218
|
+
|
|
219
|
+
</tasks>
|
|
220
|
+
|
|
221
|
+
<verification>
|
|
222
|
+
Before declaring phase complete:
|
|
223
|
+
- [ ] `npm run build` succeeds without errors
|
|
224
|
+
- [ ] `npx prisma validate` passes
|
|
225
|
+
- [ ] Login endpoint responds correctly to valid/invalid credentials
|
|
226
|
+
- [ ] Protected route redirects unauthenticated users
|
|
227
|
+
</verification>
|
|
228
|
+
|
|
229
|
+
<success_criteria>
|
|
230
|
+
|
|
231
|
+
- All tasks completed
|
|
232
|
+
- All verification checks pass
|
|
233
|
+
- No TypeScript errors
|
|
234
|
+
- JWT auth flow works end-to-end
|
|
235
|
+
</success_criteria>
|
|
236
|
+
|
|
237
|
+
<output>
|
|
238
|
+
After completion, create `.planning/phases/01-foundation/01-01-SUMMARY.md`
|
|
239
|
+
</output>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
</good_examples>
|
|
243
|
+
|
|
244
|
+
<bad_examples>
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
# Phase 1: Foundation
|
|
248
|
+
|
|
249
|
+
## Tasks
|
|
250
|
+
|
|
251
|
+
### Task 1: Set up authentication
|
|
252
|
+
|
|
253
|
+
**Action**: Add auth to the app
|
|
254
|
+
**Done when**: Users can log in
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
This is useless. No XML structure, no @context, no verification, no specificity.
|
|
258
|
+
</bad_examples>
|
|
259
|
+
|
|
260
|
+
<guidelines>
|
|
261
|
+
**When to use:**
|
|
262
|
+
- Creating execution plans for each phase
|
|
263
|
+
- One plan per 2-3 tasks, multiple plans per phase if needed
|
|
264
|
+
- Always use XML structure for Claude parsing
|
|
265
|
+
|
|
266
|
+
**Task types:**
|
|
267
|
+
|
|
268
|
+
- `type="auto"`: Execute without stopping
|
|
269
|
+
- `type="checkpoint:human-action"`: User must do something (manual step)
|
|
270
|
+
- `type="checkpoint:human-verify"`: User must verify output (testing, visual check)
|
|
271
|
+
- `type="checkpoint:decision"`: User must choose between options
|
|
272
|
+
|
|
273
|
+
**Gate values:**
|
|
274
|
+
|
|
275
|
+
- `gate="blocking"`: Must resolve before continuing
|
|
276
|
+
- `gate="optional"`: Can skip or defer
|
|
277
|
+
|
|
278
|
+
**Context references:**
|
|
279
|
+
|
|
280
|
+
- Use @path/to/file.md to load files
|
|
281
|
+
- Always include @.planning/PROJECT.md and @.planning/ROADMAP.md
|
|
282
|
+
- Include relevant source files for context
|
|
283
|
+
- Include workflow/template references
|
|
284
|
+
|
|
285
|
+
**After completion:**
|
|
286
|
+
|
|
287
|
+
- Create SUMMARY.md in same directory
|
|
288
|
+
- Follow summary.md template structure
|
|
289
|
+
- Document deviations, decisions, issues
|
|
290
|
+
</guidelines>
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# PROJECT.md Template
|
|
2
|
+
|
|
3
|
+
Template for `.planning/PROJECT.md` - the full project context captured during initialization.
|
|
4
|
+
|
|
5
|
+
## Greenfield Project (v1.0)
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name]
|
|
9
|
+
|
|
10
|
+
## Vision
|
|
11
|
+
|
|
12
|
+
[What this is and why it matters. 2-4 paragraphs capturing the full picture.
|
|
13
|
+
Use the user's language and framing. Include motivation, not just description.
|
|
14
|
+
This should feel like the user explaining their project to a smart collaborator.]
|
|
15
|
+
|
|
16
|
+
## Problem
|
|
17
|
+
|
|
18
|
+
[What problem exists, who has it, why it matters, what the current state is.
|
|
19
|
+
Be specific - vague problems lead to vague solutions.
|
|
20
|
+
Include the pain, the gap, or the opportunity that makes this worth building.]
|
|
21
|
+
|
|
22
|
+
## Success Criteria
|
|
23
|
+
|
|
24
|
+
How we know this worked:
|
|
25
|
+
|
|
26
|
+
- [ ] [Measurable outcome 1 - specific, verifiable]
|
|
27
|
+
- [ ] [Measurable outcome 2 - specific, verifiable]
|
|
28
|
+
- [ ] [Measurable outcome 3 - specific, verifiable]
|
|
29
|
+
- [ ] [Add as many as genuinely needed]
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
### Building
|
|
34
|
+
- [Feature/capability 1]
|
|
35
|
+
- [Feature/capability 2]
|
|
36
|
+
- [Feature/capability 3]
|
|
37
|
+
|
|
38
|
+
### Not Building
|
|
39
|
+
- [Explicit exclusion 1 - prevents scope creep]
|
|
40
|
+
- [Explicit exclusion 2 - clarifies boundaries]
|
|
41
|
+
- [Explicit exclusion 3 - manages expectations]
|
|
42
|
+
|
|
43
|
+
## Context
|
|
44
|
+
|
|
45
|
+
[Background information that informs implementation:
|
|
46
|
+
- Current state (greenfield)
|
|
47
|
+
- Relevant prior work or experience
|
|
48
|
+
- Technical environment or ecosystem context
|
|
49
|
+
- Explored alternatives and why they were rejected]
|
|
50
|
+
|
|
51
|
+
## Constraints
|
|
52
|
+
|
|
53
|
+
- **[Constraint type]**: [What] - [Why]
|
|
54
|
+
- **[Constraint type]**: [What] - [Why]
|
|
55
|
+
- **[Constraint type]**: [What] - [Why]
|
|
56
|
+
|
|
57
|
+
Common types: Tech stack, Timeline, Resources, Dependencies, Compatibility, Performance, Security
|
|
58
|
+
|
|
59
|
+
## Decisions Made
|
|
60
|
+
|
|
61
|
+
Key decisions from project exploration:
|
|
62
|
+
|
|
63
|
+
| Decision | Choice | Rationale |
|
|
64
|
+
|----------|--------|-----------|
|
|
65
|
+
| [Area/Topic] | [What we decided] | [Why this choice] |
|
|
66
|
+
| [Area/Topic] | [What we decided] | [Why this choice] |
|
|
67
|
+
|
|
68
|
+
## Open Questions
|
|
69
|
+
|
|
70
|
+
Things to figure out during execution:
|
|
71
|
+
|
|
72
|
+
- [ ] [Question 1 - known unknown to resolve]
|
|
73
|
+
- [ ] [Question 2 - decision to make later]
|
|
74
|
+
- [ ] [Question 3 - area needing research]
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
*Initialized: [date]*
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Brownfield Project (v1.1+)
|
|
81
|
+
|
|
82
|
+
After shipping v1.0, update PROJECT.md to include current state:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# [Project Name]
|
|
86
|
+
|
|
87
|
+
## Current State (Updated: YYYY-MM-DD)
|
|
88
|
+
|
|
89
|
+
**Shipped:** v[X.Y] [Name] (YYYY-MM-DD)
|
|
90
|
+
**Status:** [Production / Beta / Internal / Live with users]
|
|
91
|
+
**Users:** [If known: "~500 downloads, 50 DAU" or "Internal use only" or "N/A"]
|
|
92
|
+
**Feedback:** [Key themes from user feedback, or "Initial release, gathering feedback"]
|
|
93
|
+
|
|
94
|
+
**Codebase:**
|
|
95
|
+
- [X,XXX] lines of [primary language]
|
|
96
|
+
- [Key tech stack: framework, platform, deployment target]
|
|
97
|
+
- [Notable dependencies or architecture]
|
|
98
|
+
|
|
99
|
+
**Known Issues:**
|
|
100
|
+
- [Issue 1 from v1.x that needs addressing]
|
|
101
|
+
- [Issue 2]
|
|
102
|
+
- [Or "None" if clean slate]
|
|
103
|
+
|
|
104
|
+
## v[Next] Goals
|
|
105
|
+
|
|
106
|
+
**Vision:** [What's the goal for this next iteration?]
|
|
107
|
+
|
|
108
|
+
**Motivation:**
|
|
109
|
+
- [Why this work matters now]
|
|
110
|
+
- [User feedback driving it]
|
|
111
|
+
- [Technical debt or improvements needed]
|
|
112
|
+
|
|
113
|
+
**Scope (v[X.Y]):**
|
|
114
|
+
- [Feature/improvement 1]
|
|
115
|
+
- [Feature/improvement 2]
|
|
116
|
+
- [Feature/improvement 3]
|
|
117
|
+
|
|
118
|
+
**Success Criteria:**
|
|
119
|
+
- [ ] [Measurable outcome 1]
|
|
120
|
+
- [ ] [Measurable outcome 2]
|
|
121
|
+
- [ ] [Measurable outcome 3]
|
|
122
|
+
|
|
123
|
+
**Not Building (this version):**
|
|
124
|
+
- [Not doing X in this version]
|
|
125
|
+
- [Not doing Y in this version]
|
|
126
|
+
|
|
127
|
+
## Constraints
|
|
128
|
+
|
|
129
|
+
- **[Constraint type]**: [What] - [Why]
|
|
130
|
+
- **[Constraint type]**: [What] - [Why]
|
|
131
|
+
|
|
132
|
+
## Open Questions
|
|
133
|
+
|
|
134
|
+
- [ ] [Question for this version]
|
|
135
|
+
- [ ] [Question for this version]
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
<details>
|
|
140
|
+
<summary>Original Vision (v1.0 - Archived)</summary>
|
|
141
|
+
|
|
142
|
+
## Vision
|
|
143
|
+
|
|
144
|
+
[Original vision content]
|
|
145
|
+
|
|
146
|
+
## Problem
|
|
147
|
+
|
|
148
|
+
[Original problem statement]
|
|
149
|
+
|
|
150
|
+
## Success Criteria
|
|
151
|
+
|
|
152
|
+
- [x] [Outcome 1] - Achieved
|
|
153
|
+
- [x] [Outcome 2] - Achieved
|
|
154
|
+
- [x] [Outcome 3] - Achieved
|
|
155
|
+
|
|
156
|
+
## Scope
|
|
157
|
+
|
|
158
|
+
### Built
|
|
159
|
+
- [What was built]
|
|
160
|
+
|
|
161
|
+
### Not Built
|
|
162
|
+
- [What was excluded]
|
|
163
|
+
|
|
164
|
+
## Context
|
|
165
|
+
|
|
166
|
+
[Original context]
|
|
167
|
+
|
|
168
|
+
## Constraints
|
|
169
|
+
|
|
170
|
+
[Original constraints]
|
|
171
|
+
|
|
172
|
+
## Decisions Made
|
|
173
|
+
|
|
174
|
+
[Original decisions table]
|
|
175
|
+
|
|
176
|
+
</details>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
<guidelines>
|
|
180
|
+
**Greenfield:**
|
|
181
|
+
- Don't compress - capture everything from questioning
|
|
182
|
+
- Use user's words - preserve their language and framing
|
|
183
|
+
- Be specific - vague inputs create vague outputs
|
|
184
|
+
- Include rationale - "what" without "why" loses context
|
|
185
|
+
- Mark unknowns - open questions are valuable, not failures
|
|
186
|
+
|
|
187
|
+
**Brownfield:**
|
|
188
|
+
- Current State shows real-world context (shipped, users, feedback)
|
|
189
|
+
- v[Next] Goals focuses on the upcoming work
|
|
190
|
+
- Original Vision collapsed in `<details>` for reference
|
|
191
|
+
- Checkboxes marked [x] for achieved goals
|
|
192
|
+
- This makes all plans brownfield-aware automatically
|
|
193
|
+
</guidelines>
|
|
194
|
+
|
|
195
|
+
<state_summary>
|
|
196
|
+
When creating STATE.md, extract a summary from PROJECT.md:
|
|
197
|
+
|
|
198
|
+
**Building:** [One-liner from Vision]
|
|
199
|
+
|
|
200
|
+
**Core requirements:**
|
|
201
|
+
- [Top 3 from Success Criteria]
|
|
202
|
+
|
|
203
|
+
**Constraints:**
|
|
204
|
+
- [Key constraints]
|
|
205
|
+
|
|
206
|
+
This goes in STATE.md's immutable "Project Summary" section.
|
|
207
|
+
</state_summary>
|