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,397 @@
|
|
|
1
|
+
<overview>
|
|
2
|
+
Claude-executable plans have a specific format that enables Claude to implement without interpretation. This reference defines what makes a plan executable vs. vague.
|
|
3
|
+
|
|
4
|
+
**Key insight:** PLAN.md IS the executable prompt. It contains everything Claude needs to execute the phase, including objective, context references, tasks, verification, success criteria, and output specification.
|
|
5
|
+
</overview>
|
|
6
|
+
|
|
7
|
+
<core_principle>
|
|
8
|
+
A plan is Claude-executable when Claude can read the PLAN.md and immediately start implementing without asking clarifying questions.
|
|
9
|
+
|
|
10
|
+
If Claude has to guess, interpret, or make assumptions - the task is too vague.
|
|
11
|
+
</core_principle>
|
|
12
|
+
|
|
13
|
+
<prompt_structure>
|
|
14
|
+
Every PLAN.md follows this XML structure:
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
---
|
|
18
|
+
phase: XX-name
|
|
19
|
+
type: execute
|
|
20
|
+
domain: [optional]
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<objective>
|
|
24
|
+
[What and why]
|
|
25
|
+
Purpose: [...]
|
|
26
|
+
Output: [...]
|
|
27
|
+
</objective>
|
|
28
|
+
|
|
29
|
+
<context>
|
|
30
|
+
@.planning/PROJECT.md
|
|
31
|
+
@.planning/ROADMAP.md
|
|
32
|
+
@relevant/source/files.ts
|
|
33
|
+
</context>
|
|
34
|
+
|
|
35
|
+
<tasks>
|
|
36
|
+
<task type="auto">
|
|
37
|
+
<name>Task N: [Name]</name>
|
|
38
|
+
<files>[paths]</files>
|
|
39
|
+
<action>[what to do, what to avoid and WHY]</action>
|
|
40
|
+
<verify>[command/check]</verify>
|
|
41
|
+
<done>[criteria]</done>
|
|
42
|
+
</task>
|
|
43
|
+
|
|
44
|
+
<task type="checkpoint:human-verify" gate="blocking">
|
|
45
|
+
<what-built>[what Claude automated]</what-built>
|
|
46
|
+
<how-to-verify>[numbered verification steps]</how-to-verify>
|
|
47
|
+
<resume-signal>[how to continue - "approved" or describe issues]</resume-signal>
|
|
48
|
+
</task>
|
|
49
|
+
|
|
50
|
+
<task type="checkpoint:decision" gate="blocking">
|
|
51
|
+
<decision>[what needs deciding]</decision>
|
|
52
|
+
<context>[why this matters]</context>
|
|
53
|
+
<options>
|
|
54
|
+
<option id="option-a"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
|
|
55
|
+
<option id="option-b"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
|
|
56
|
+
</options>
|
|
57
|
+
<resume-signal>[how to indicate choice]</resume-signal>
|
|
58
|
+
</task>
|
|
59
|
+
</tasks>
|
|
60
|
+
|
|
61
|
+
<verification>
|
|
62
|
+
[Overall phase checks]
|
|
63
|
+
</verification>
|
|
64
|
+
|
|
65
|
+
<success_criteria>
|
|
66
|
+
[Measurable completion]
|
|
67
|
+
</success_criteria>
|
|
68
|
+
|
|
69
|
+
<output>
|
|
70
|
+
[SUMMARY.md specification]
|
|
71
|
+
</output>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
</prompt_structure>
|
|
75
|
+
|
|
76
|
+
<task_anatomy>
|
|
77
|
+
Every task has four required fields:
|
|
78
|
+
|
|
79
|
+
<field name="files">
|
|
80
|
+
**What it is**: Exact file paths that will be created or modified.
|
|
81
|
+
|
|
82
|
+
**Good**: `src/app/api/auth/login/route.ts`, `prisma/schema.prisma`
|
|
83
|
+
**Bad**: "the auth files", "relevant components"
|
|
84
|
+
|
|
85
|
+
Be specific. If you don't know the file path, figure it out first.
|
|
86
|
+
</field>
|
|
87
|
+
|
|
88
|
+
<field name="action">
|
|
89
|
+
**What it is**: Specific implementation instructions, including what to avoid and WHY.
|
|
90
|
+
|
|
91
|
+
**Good**: "Create POST endpoint that accepts {email, password}, validates using bcrypt against User table, returns JWT in httpOnly cookie with 15-min expiry. Use jose library (not jsonwebtoken - CommonJS issues with Next.js Edge runtime)."
|
|
92
|
+
|
|
93
|
+
**Bad**: "Add authentication", "Make login work"
|
|
94
|
+
|
|
95
|
+
Include: technology choices, data structures, behavior details, pitfalls to avoid.
|
|
96
|
+
</field>
|
|
97
|
+
|
|
98
|
+
<field name="verify">
|
|
99
|
+
**What it is**: How to prove the task is complete.
|
|
100
|
+
|
|
101
|
+
**Good**:
|
|
102
|
+
|
|
103
|
+
- `npm test` passes
|
|
104
|
+
- `curl -X POST /api/auth/login` returns 200 with Set-Cookie header
|
|
105
|
+
- Build completes without errors
|
|
106
|
+
|
|
107
|
+
**Bad**: "It works", "Looks good", "User can log in"
|
|
108
|
+
|
|
109
|
+
Must be executable - a command, a test, an observable behavior.
|
|
110
|
+
</field>
|
|
111
|
+
|
|
112
|
+
<field name="done">
|
|
113
|
+
**What it is**: Acceptance criteria - the measurable state of completion.
|
|
114
|
+
|
|
115
|
+
**Good**: "Valid credentials return 200 + JWT cookie, invalid credentials return 401"
|
|
116
|
+
|
|
117
|
+
**Bad**: "Authentication is complete"
|
|
118
|
+
|
|
119
|
+
Should be testable without subjective judgment.
|
|
120
|
+
</field>
|
|
121
|
+
</task_anatomy>
|
|
122
|
+
|
|
123
|
+
<task_types>
|
|
124
|
+
Tasks have a `type` attribute that determines how they execute:
|
|
125
|
+
|
|
126
|
+
<type name="auto">
|
|
127
|
+
**Default task type** - Claude executes autonomously.
|
|
128
|
+
|
|
129
|
+
**Structure:**
|
|
130
|
+
|
|
131
|
+
```xml
|
|
132
|
+
<task type="auto">
|
|
133
|
+
<name>Task 3: Create login endpoint with JWT</name>
|
|
134
|
+
<files>src/app/api/auth/login/route.ts</files>
|
|
135
|
+
<action>POST endpoint accepting {email, password}. Query User by email, compare password with bcrypt. On match, create JWT with jose library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401.</action>
|
|
136
|
+
<verify>curl -X POST localhost:3000/api/auth/login returns 200 with Set-Cookie header</verify>
|
|
137
|
+
<done>Valid credentials → 200 + cookie. Invalid → 401.</done>
|
|
138
|
+
</task>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Use for: Everything Claude can do independently (code, tests, builds, file operations).
|
|
142
|
+
</type>
|
|
143
|
+
|
|
144
|
+
<type name="checkpoint:human-action">
|
|
145
|
+
**RARELY USED** - Only for actions with NO CLI/API. Claude automates everything possible first.
|
|
146
|
+
|
|
147
|
+
**Structure:**
|
|
148
|
+
|
|
149
|
+
```xml
|
|
150
|
+
<task type="checkpoint:human-action" gate="blocking">
|
|
151
|
+
<action>[Unavoidable manual step - email link, 2FA code]</action>
|
|
152
|
+
<instructions>
|
|
153
|
+
[What Claude already automated]
|
|
154
|
+
[The ONE thing requiring human action]
|
|
155
|
+
</instructions>
|
|
156
|
+
<verification>[What Claude can check afterward]</verification>
|
|
157
|
+
<resume-signal>[How to continue]</resume-signal>
|
|
158
|
+
</task>
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Use ONLY for: Email verification links, SMS 2FA codes, manual approvals with no API, 3D Secure payment flows.
|
|
162
|
+
|
|
163
|
+
Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub), builds, tests, file creation, deployments.
|
|
164
|
+
|
|
165
|
+
**Execution:** Claude automates everything with CLI/API, stops only for truly unavoidable manual steps.
|
|
166
|
+
</type>
|
|
167
|
+
|
|
168
|
+
<type name="checkpoint:human-verify">
|
|
169
|
+
**Human must verify Claude's work** - Visual checks, UX testing.
|
|
170
|
+
|
|
171
|
+
**Structure:**
|
|
172
|
+
|
|
173
|
+
```xml
|
|
174
|
+
<task type="checkpoint:human-verify" gate="blocking">
|
|
175
|
+
<what-built>Responsive dashboard layout</what-built>
|
|
176
|
+
<how-to-verify>
|
|
177
|
+
1. Run: npm run dev
|
|
178
|
+
2. Visit: http://localhost:3000/dashboard
|
|
179
|
+
3. Desktop (>1024px): Verify sidebar left, content right
|
|
180
|
+
4. Tablet (768px): Verify sidebar collapses to hamburger
|
|
181
|
+
5. Mobile (375px): Verify single column, bottom nav
|
|
182
|
+
6. Check: No layout shift, no horizontal scroll
|
|
183
|
+
</how-to-verify>
|
|
184
|
+
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
185
|
+
</task>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Use for: UI/UX verification, visual design checks, animation smoothness, accessibility testing.
|
|
189
|
+
|
|
190
|
+
**Execution:** Claude builds the feature, stops, provides testing instructions, waits for approval/feedback.
|
|
191
|
+
</type>
|
|
192
|
+
|
|
193
|
+
<type name="checkpoint:decision">
|
|
194
|
+
**Human must make implementation choice** - Direction-setting decisions.
|
|
195
|
+
|
|
196
|
+
**Structure:**
|
|
197
|
+
|
|
198
|
+
```xml
|
|
199
|
+
<task type="checkpoint:decision" gate="blocking">
|
|
200
|
+
<decision>Select authentication provider</decision>
|
|
201
|
+
<context>We need user authentication. Three approaches with different tradeoffs:</context>
|
|
202
|
+
<options>
|
|
203
|
+
<option id="supabase">
|
|
204
|
+
<name>Supabase Auth</name>
|
|
205
|
+
<pros>Built-in with Supabase, generous free tier</pros>
|
|
206
|
+
<cons>Less customizable UI, tied to ecosystem</cons>
|
|
207
|
+
</option>
|
|
208
|
+
<option id="clerk">
|
|
209
|
+
<name>Clerk</name>
|
|
210
|
+
<pros>Beautiful pre-built UI, best DX</pros>
|
|
211
|
+
<cons>Paid after 10k MAU</cons>
|
|
212
|
+
</option>
|
|
213
|
+
<option id="nextauth">
|
|
214
|
+
<name>NextAuth.js</name>
|
|
215
|
+
<pros>Free, self-hosted, maximum control</pros>
|
|
216
|
+
<cons>More setup, you manage security</cons>
|
|
217
|
+
</option>
|
|
218
|
+
</options>
|
|
219
|
+
<resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
|
|
220
|
+
</task>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Use for: Technology selection, architecture decisions, design choices, feature prioritization.
|
|
224
|
+
|
|
225
|
+
**Execution:** Claude presents options with balanced pros/cons, waits for decision, proceeds with chosen direction.
|
|
226
|
+
</type>
|
|
227
|
+
|
|
228
|
+
**When to use checkpoints:**
|
|
229
|
+
|
|
230
|
+
- Visual/UX verification (after Claude builds) → `checkpoint:human-verify`
|
|
231
|
+
- Implementation direction choice → `checkpoint:decision`
|
|
232
|
+
- Truly unavoidable manual actions (email links, 2FA) → `checkpoint:human-action` (rare)
|
|
233
|
+
|
|
234
|
+
**When NOT to use checkpoints:**
|
|
235
|
+
|
|
236
|
+
- Anything with CLI/API (Claude automates it) → `type="auto"`
|
|
237
|
+
- Deployments (Vercel, Railway, Fly) → `type="auto"` with CLI
|
|
238
|
+
- Creating resources (Upstash, Stripe, GitHub) → `type="auto"` with CLI/API
|
|
239
|
+
- File operations, tests, builds → `type="auto"`
|
|
240
|
+
|
|
241
|
+
**Golden rule:** If Claude CAN automate it, Claude MUST automate it.
|
|
242
|
+
|
|
243
|
+
See `./checkpoints.md` for comprehensive checkpoint guidance.
|
|
244
|
+
</task_types>
|
|
245
|
+
|
|
246
|
+
<context_references>
|
|
247
|
+
Use @file references to load context for the prompt:
|
|
248
|
+
|
|
249
|
+
```markdown
|
|
250
|
+
<context>
|
|
251
|
+
@.planning/PROJECT.md # Project vision
|
|
252
|
+
@.planning/ROADMAP.md # Phase structure
|
|
253
|
+
@.planning/phases/02-auth/FINDINGS.md # Research results
|
|
254
|
+
@src/lib/db.ts # Existing database setup
|
|
255
|
+
@src/types/user.ts # Existing type definitions
|
|
256
|
+
</context>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Reference files that Claude needs to understand before implementing.
|
|
260
|
+
</context_references>
|
|
261
|
+
|
|
262
|
+
<verification_section>
|
|
263
|
+
Overall phase verification (beyond individual task verification):
|
|
264
|
+
|
|
265
|
+
```markdown
|
|
266
|
+
<verification>
|
|
267
|
+
Before declaring phase complete:
|
|
268
|
+
- [ ] `npm run build` succeeds without errors
|
|
269
|
+
- [ ] `npm test` passes all tests
|
|
270
|
+
- [ ] No TypeScript errors
|
|
271
|
+
- [ ] Feature works end-to-end manually
|
|
272
|
+
</verification>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
</verification_section>
|
|
276
|
+
|
|
277
|
+
<success_criteria_section>
|
|
278
|
+
Measurable criteria for phase completion:
|
|
279
|
+
|
|
280
|
+
```markdown
|
|
281
|
+
<success_criteria>
|
|
282
|
+
|
|
283
|
+
- All tasks completed
|
|
284
|
+
- All verification checks pass
|
|
285
|
+
- No errors or warnings introduced
|
|
286
|
+
- JWT auth flow works end-to-end
|
|
287
|
+
- Protected routes redirect unauthenticated users
|
|
288
|
+
</success_criteria>
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
</success_criteria_section>
|
|
292
|
+
|
|
293
|
+
<output_section>
|
|
294
|
+
Specify the SUMMARY.md structure:
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
<output>
|
|
298
|
+
After completion, create `.planning/phases/XX-name/SUMMARY.md`:
|
|
299
|
+
|
|
300
|
+
# Phase X: Name Summary
|
|
301
|
+
|
|
302
|
+
**[Substantive one-liner]**
|
|
303
|
+
|
|
304
|
+
## Accomplishments
|
|
305
|
+
|
|
306
|
+
## Files Created/Modified
|
|
307
|
+
|
|
308
|
+
## Decisions Made
|
|
309
|
+
|
|
310
|
+
## Issues Encountered
|
|
311
|
+
|
|
312
|
+
## Next Phase Readiness
|
|
313
|
+
|
|
314
|
+
</output>
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
</output_section>
|
|
318
|
+
|
|
319
|
+
<specificity_levels>
|
|
320
|
+
<too_vague>
|
|
321
|
+
|
|
322
|
+
```xml
|
|
323
|
+
<task type="auto">
|
|
324
|
+
<name>Task 1: Add authentication</name>
|
|
325
|
+
<files>???</files>
|
|
326
|
+
<action>Implement auth</action>
|
|
327
|
+
<verify>???</verify>
|
|
328
|
+
<done>Users can authenticate</done>
|
|
329
|
+
</task>
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Claude: "How? What type? What library? Where?"
|
|
333
|
+
</too_vague>
|
|
334
|
+
|
|
335
|
+
<just_right>
|
|
336
|
+
|
|
337
|
+
```xml
|
|
338
|
+
<task type="auto">
|
|
339
|
+
<name>Task 1: Create login endpoint with JWT</name>
|
|
340
|
+
<files>src/app/api/auth/login/route.ts</files>
|
|
341
|
+
<action>POST endpoint accepting {email, password}. Query User by email, compare password with bcrypt. On match, create JWT with jose library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401. Use jose instead of jsonwebtoken (CommonJS issues with Edge).</action>
|
|
342
|
+
<verify>curl -X POST localhost:3000/api/auth/login -H "Content-Type: application/json" -d '{"email":"test@test.com","password":"test123"}' returns 200 with Set-Cookie header containing JWT</verify>
|
|
343
|
+
<done>Valid credentials → 200 + cookie. Invalid → 401. Missing fields → 400.</done>
|
|
344
|
+
</task>
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Claude can implement this immediately.
|
|
348
|
+
</just_right>
|
|
349
|
+
|
|
350
|
+
<too_detailed>
|
|
351
|
+
Writing the actual code in the plan. Trust Claude to implement from clear instructions.
|
|
352
|
+
</too_detailed>
|
|
353
|
+
</specificity_levels>
|
|
354
|
+
|
|
355
|
+
<anti_patterns>
|
|
356
|
+
<vague_actions>
|
|
357
|
+
|
|
358
|
+
- "Set up the infrastructure"
|
|
359
|
+
- "Handle edge cases"
|
|
360
|
+
- "Make it production-ready"
|
|
361
|
+
- "Add proper error handling"
|
|
362
|
+
|
|
363
|
+
These require Claude to decide WHAT to do. Specify it.
|
|
364
|
+
</vague_actions>
|
|
365
|
+
|
|
366
|
+
<unverifiable_completion>
|
|
367
|
+
|
|
368
|
+
- "It works correctly"
|
|
369
|
+
- "User experience is good"
|
|
370
|
+
- "Code is clean"
|
|
371
|
+
- "Tests pass" (which tests? do they exist?)
|
|
372
|
+
|
|
373
|
+
These require subjective judgment. Make it objective.
|
|
374
|
+
</unverifiable_completion>
|
|
375
|
+
|
|
376
|
+
<missing_context>
|
|
377
|
+
|
|
378
|
+
- "Use the standard approach"
|
|
379
|
+
- "Follow best practices"
|
|
380
|
+
- "Like the other endpoints"
|
|
381
|
+
|
|
382
|
+
Claude doesn't know your standards. Be explicit.
|
|
383
|
+
</missing_context>
|
|
384
|
+
</anti_patterns>
|
|
385
|
+
|
|
386
|
+
<sizing_tasks>
|
|
387
|
+
Good task size: 15-60 minutes of Claude work.
|
|
388
|
+
|
|
389
|
+
**Too small**: "Add import statement for bcrypt" (combine with related task)
|
|
390
|
+
**Just right**: "Create login endpoint with JWT validation" (focused, specific)
|
|
391
|
+
**Too big**: "Implement full authentication system" (split into multiple plans)
|
|
392
|
+
|
|
393
|
+
If a task takes multiple sessions, break it down.
|
|
394
|
+
If a task is trivial, combine with related tasks.
|
|
395
|
+
|
|
396
|
+
**Note on scope:** If a phase has >3 tasks or spans multiple subsystems, split into multiple plans using the naming convention `{phase}-{plan}-PLAN.md`. See `./scope-estimation.md` for guidance.
|
|
397
|
+
</sizing_tasks>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<principles>
|
|
2
|
+
Core principles for the Gets Shit Done planning system.
|
|
3
|
+
|
|
4
|
+
<solo_developer_claude>
|
|
5
|
+
|
|
6
|
+
You are planning for ONE person (the user) and ONE implementer (Claude).
|
|
7
|
+
- No teams, stakeholders, ceremonies, coordination overhead
|
|
8
|
+
- User is the visionary/product owner
|
|
9
|
+
- Claude is the builder
|
|
10
|
+
- Estimate effort in Claude execution time, not human dev time
|
|
11
|
+
</solo_developer_claude>
|
|
12
|
+
|
|
13
|
+
<plans_are_prompts>
|
|
14
|
+
|
|
15
|
+
PLAN.md is not a document that gets transformed into a prompt.
|
|
16
|
+
PLAN.md IS the prompt. It contains:
|
|
17
|
+
- Objective (what and why)
|
|
18
|
+
- Context (@file references)
|
|
19
|
+
- Tasks (with verification criteria)
|
|
20
|
+
- Success criteria (measurable)
|
|
21
|
+
|
|
22
|
+
When planning a phase, you are writing the prompt that will execute it.
|
|
23
|
+
</plans_are_prompts>
|
|
24
|
+
|
|
25
|
+
<initialization_leverage>
|
|
26
|
+
|
|
27
|
+
The most leveraged moment is project initialization.
|
|
28
|
+
- Deep questioning here = better everything downstream
|
|
29
|
+
- Garbage in = garbage out
|
|
30
|
+
- Spend the tokens on context gathering
|
|
31
|
+
- Don't rush to "the work"
|
|
32
|
+
</initialization_leverage>
|
|
33
|
+
|
|
34
|
+
<scope_control>
|
|
35
|
+
|
|
36
|
+
Plans must complete within reasonable context usage.
|
|
37
|
+
|
|
38
|
+
**Quality degradation curve:**
|
|
39
|
+
- 0-30% context: Peak quality
|
|
40
|
+
- 30-50% context: Good quality
|
|
41
|
+
- 50-70% context: Degrading quality
|
|
42
|
+
- 70%+ context: Poor quality
|
|
43
|
+
|
|
44
|
+
**Solution:** Aggressive atomicity - split into small, focused plans.
|
|
45
|
+
- 2-3 tasks per plan maximum
|
|
46
|
+
- Each plan independently executable
|
|
47
|
+
- Better to have many small plans than few large ones
|
|
48
|
+
</scope_control>
|
|
49
|
+
|
|
50
|
+
<claude_automates>
|
|
51
|
+
|
|
52
|
+
If Claude CAN do it via CLI/API/tool, Claude MUST do it.
|
|
53
|
+
|
|
54
|
+
Checkpoints are for:
|
|
55
|
+
- **Verification** - Human confirms Claude's work (visual, UX)
|
|
56
|
+
- **Decision** - Human makes implementation choice
|
|
57
|
+
|
|
58
|
+
Not for:
|
|
59
|
+
- Deploying (use CLI)
|
|
60
|
+
- Creating resources (use CLI/API)
|
|
61
|
+
- Running builds/tests (use Bash)
|
|
62
|
+
- Writing files (use Write tool)
|
|
63
|
+
</claude_automates>
|
|
64
|
+
|
|
65
|
+
<deviation_rules>
|
|
66
|
+
|
|
67
|
+
Plans are guides, not straitjackets. During execution:
|
|
68
|
+
|
|
69
|
+
1. **Auto-fix bugs** - Fix immediately, document
|
|
70
|
+
2. **Auto-add critical** - Security/correctness gaps, add immediately
|
|
71
|
+
3. **Auto-fix blockers** - Can't proceed, fix immediately
|
|
72
|
+
4. **Ask about architectural** - Major changes, stop and ask
|
|
73
|
+
5. **Log enhancements** - Nice-to-haves, log to Issues, continue
|
|
74
|
+
</deviation_rules>
|
|
75
|
+
|
|
76
|
+
<ship_fast>
|
|
77
|
+
|
|
78
|
+
No enterprise process. No approval gates.
|
|
79
|
+
|
|
80
|
+
Plan → Execute → Ship → Learn → Repeat
|
|
81
|
+
|
|
82
|
+
Milestones mark shipped versions (v1.0 → v1.1 → v2.0).
|
|
83
|
+
</ship_fast>
|
|
84
|
+
|
|
85
|
+
<anti_enterprise>
|
|
86
|
+
|
|
87
|
+
NEVER include:
|
|
88
|
+
- Team structures, RACI matrices
|
|
89
|
+
- Stakeholder management
|
|
90
|
+
- Sprint ceremonies
|
|
91
|
+
- Multi-week estimates
|
|
92
|
+
- Change management processes
|
|
93
|
+
- Documentation for documentation's sake
|
|
94
|
+
|
|
95
|
+
If it sounds like corporate PM theater, delete it.
|
|
96
|
+
</anti_enterprise>
|
|
97
|
+
</principles>
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<questioning_guide>
|
|
2
|
+
The initialization questioning phase is the most leveraged moment in any project. Context gathered here flows through every downstream decision. Don't rush it.
|
|
3
|
+
|
|
4
|
+
<domains>
|
|
5
|
+
Ask about gaps - skip what's already clear from user input.
|
|
6
|
+
|
|
7
|
+
<project_type>
|
|
8
|
+
What kind of thing is this?
|
|
9
|
+
- Product/app (software for users)
|
|
10
|
+
- Automation/tool (system to automate a process)
|
|
11
|
+
- Research/analysis (investigation or learning)
|
|
12
|
+
- Creative work (content, art, media)
|
|
13
|
+
</project_type>
|
|
14
|
+
|
|
15
|
+
<problem_motivation>
|
|
16
|
+
Why does this need to exist?
|
|
17
|
+
- What pain point?
|
|
18
|
+
- What gap in current solutions?
|
|
19
|
+
- What opportunity?
|
|
20
|
+
- What's the current state without this?
|
|
21
|
+
</problem_motivation>
|
|
22
|
+
|
|
23
|
+
<audience>
|
|
24
|
+
Who is this for?
|
|
25
|
+
- Just the user (personal tool)
|
|
26
|
+
- Their team (internal use)
|
|
27
|
+
- Specific user segment (targeted audience)
|
|
28
|
+
- General public (broad availability)
|
|
29
|
+
</audience>
|
|
30
|
+
|
|
31
|
+
<success_criteria>
|
|
32
|
+
What does "done" look like?
|
|
33
|
+
- Must be measurable/verifiable
|
|
34
|
+
- Not vague ("make it good")
|
|
35
|
+
- Specific outcomes, not activities
|
|
36
|
+
</success_criteria>
|
|
37
|
+
|
|
38
|
+
<constraints>
|
|
39
|
+
What limits exist?
|
|
40
|
+
- Tech stack (must use X, can't use Y)
|
|
41
|
+
- Timeline (deadline, urgency)
|
|
42
|
+
- Resources (budget, team size)
|
|
43
|
+
- Dependencies (needs X to exist first)
|
|
44
|
+
- Compatibility (must work with Y)
|
|
45
|
+
</constraints>
|
|
46
|
+
|
|
47
|
+
<scope_boundaries>
|
|
48
|
+
What are you NOT building?
|
|
49
|
+
- Explicit exclusions prevent creep
|
|
50
|
+
- "Not in v1" is valid
|
|
51
|
+
- Helps focus on what matters
|
|
52
|
+
</scope_boundaries>
|
|
53
|
+
|
|
54
|
+
<current_state>
|
|
55
|
+
What exists already?
|
|
56
|
+
- Greenfield (nothing exists)
|
|
57
|
+
- Brownfield (existing code/system)
|
|
58
|
+
- Prior attempts (what was tried, what failed)
|
|
59
|
+
- Related work (adjacent systems)
|
|
60
|
+
</current_state>
|
|
61
|
+
|
|
62
|
+
<technical_decisions>
|
|
63
|
+
Any already made?
|
|
64
|
+
- Framework choices
|
|
65
|
+
- Architecture patterns
|
|
66
|
+
- Key libraries
|
|
67
|
+
- Deployment target
|
|
68
|
+
</technical_decisions>
|
|
69
|
+
|
|
70
|
+
<open_questions>
|
|
71
|
+
What's still unclear?
|
|
72
|
+
- Known unknowns
|
|
73
|
+
- Decisions deferred
|
|
74
|
+
- Areas needing research
|
|
75
|
+
</open_questions>
|
|
76
|
+
</domains>
|
|
77
|
+
|
|
78
|
+
<mechanics>
|
|
79
|
+
|
|
80
|
+
<ask_user_question_tool>
|
|
81
|
+
Every follow-up question uses structured options:
|
|
82
|
+
- 2-4 choices per question
|
|
83
|
+
- Always include "Other" or "Let me explain"
|
|
84
|
+
- Options should be mutually exclusive when possible
|
|
85
|
+
</ask_user_question_tool>
|
|
86
|
+
|
|
87
|
+
<assess_after_round>
|
|
88
|
+
After receiving answers, evaluate completeness:
|
|
89
|
+
|
|
90
|
+
**Critical gaps exist:**
|
|
91
|
+
- State the gap clearly
|
|
92
|
+
- Ask about it immediately
|
|
93
|
+
- Don't offer to finalize yet
|
|
94
|
+
|
|
95
|
+
**Sufficient context:**
|
|
96
|
+
- Acknowledge what's gathered
|
|
97
|
+
- Note optional areas could explore
|
|
98
|
+
- Offer choice: finalize or dig deeper
|
|
99
|
+
|
|
100
|
+
**Comprehensive:**
|
|
101
|
+
- Acknowledge depth
|
|
102
|
+
- Offer to finalize
|
|
103
|
+
- Only edge cases remain
|
|
104
|
+
</assess_after_round>
|
|
105
|
+
|
|
106
|
+
<decision_gate_pattern>
|
|
107
|
+
|
|
108
|
+
**CRITICAL: Always present ALL THREE options. Never skip "Ask more questions".**
|
|
109
|
+
|
|
110
|
+
Use AskUserQuestion with exactly these options:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
Header: "Ready?"
|
|
114
|
+
Question: "Ready to create PROJECT.md, or explore more?"
|
|
115
|
+
Options (ALL THREE REQUIRED):
|
|
116
|
+
1. "Create PROJECT.md" - Finalize and continue
|
|
117
|
+
2. "Ask more questions" - I'll dig into areas we haven't covered
|
|
118
|
+
3. "Let me add context" - You have more to share
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If user selects "Ask more questions":
|
|
122
|
+
- Identify domains not yet covered from the 9 domains list
|
|
123
|
+
- Ask about 2-3 of them
|
|
124
|
+
- Return to decision gate
|
|
125
|
+
|
|
126
|
+
Loop until "Create PROJECT.md" selected.
|
|
127
|
+
</decision_gate_pattern>
|
|
128
|
+
</mechanics>
|
|
129
|
+
|
|
130
|
+
<anti_patterns>
|
|
131
|
+
|
|
132
|
+
- **Rushing** - Don't minimize questions to get to "the work"
|
|
133
|
+
- **Assuming** - Don't fill gaps with assumptions, ask
|
|
134
|
+
- **Leading** - Don't push toward a preferred answer
|
|
135
|
+
- **Repeating** - Don't ask about what user already provided
|
|
136
|
+
- **Shallow** - Don't accept vague answers, probe for specifics
|
|
137
|
+
</anti_patterns>
|
|
138
|
+
</questioning_guide>
|