get-shit-done-cc 1.2.1 → 1.2.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.
|
@@ -4,10 +4,11 @@ argument-hint: "[phase]"
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<objective>
|
|
7
|
-
|
|
7
|
+
Help the user articulate their vision for a phase through collaborative thinking.
|
|
8
8
|
|
|
9
|
-
Purpose:
|
|
10
|
-
|
|
9
|
+
Purpose: Understand HOW the user imagines this phase working — what it looks like, what's essential, what's out of scope. You're a thinking partner helping them crystallize their vision, not an interviewer gathering technical requirements.
|
|
10
|
+
|
|
11
|
+
Output: {phase}-CONTEXT.md capturing the user's vision for the phase
|
|
11
12
|
</objective>
|
|
12
13
|
|
|
13
14
|
<execution_context>
|
|
@@ -30,23 +31,27 @@ Phase number: $ARGUMENTS (required)
|
|
|
30
31
|
2. Check if phase exists in roadmap
|
|
31
32
|
3. Check if CONTEXT.md already exists (offer to update if yes)
|
|
32
33
|
4. Follow discuss-phase.md workflow:
|
|
33
|
-
- Present
|
|
34
|
-
-
|
|
35
|
-
-
|
|
34
|
+
- Present phase from roadmap
|
|
35
|
+
- Ask: "How do you imagine this working?"
|
|
36
|
+
- Follow their thread — dig into what excites them
|
|
37
|
+
- Sharpen the core — what's essential for THIS phase
|
|
38
|
+
- Find boundaries — what's explicitly out of scope
|
|
36
39
|
- Present decision gate (ready / ask more / let me add context)
|
|
37
|
-
- Create CONTEXT.md
|
|
38
|
-
5. Offer next steps (
|
|
39
|
-
|
|
40
|
-
CRITICAL
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
40
|
+
- Create CONTEXT.md capturing their vision
|
|
41
|
+
5. Offer next steps (research or plan the phase)
|
|
42
|
+
|
|
43
|
+
CRITICAL — User is the visionary, you are the builder:
|
|
44
|
+
- Ask about vision, feel, essential outcomes
|
|
45
|
+
- DON'T ask about technical risks (you figure those out)
|
|
46
|
+
- DON'T ask about codebase patterns (you read the code)
|
|
47
|
+
- DON'T ask about success metrics (too corporate)
|
|
48
|
+
- DON'T interrogate about constraints they didn't mention
|
|
44
49
|
</process>
|
|
45
50
|
|
|
46
51
|
<success_criteria>
|
|
47
52
|
|
|
48
53
|
- Phase validated against roadmap
|
|
49
|
-
-
|
|
50
|
-
- CONTEXT.md
|
|
51
|
-
- User knows next steps (
|
|
52
|
-
|
|
54
|
+
- Vision gathered through collaborative thinking (not interrogation)
|
|
55
|
+
- CONTEXT.md captures: how it works, what's essential, what's out of scope
|
|
56
|
+
- User knows next steps (research or plan the phase)
|
|
57
|
+
</success_criteria>
|
|
@@ -102,8 +102,9 @@ EOF
|
|
|
102
102
|
</step>
|
|
103
103
|
|
|
104
104
|
<step name="done">
|
|
105
|
-
|
|
105
|
+
Present completion inline (not as a question):
|
|
106
106
|
|
|
107
|
+
```
|
|
107
108
|
Project initialized:
|
|
108
109
|
|
|
109
110
|
- Project: .planning/PROJECT.md
|
|
@@ -114,11 +115,12 @@ What's next?
|
|
|
114
115
|
1. Research domain ecosystem (/gsd:research-project) - For niche/complex domains
|
|
115
116
|
2. Create roadmap (/gsd:create-roadmap) - Skip research, go straight to planning
|
|
116
117
|
3. Done for now
|
|
117
|
-
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
Note: Commands are shown in the options above so the user can see what to run in a fresh context.
|
|
121
|
+
|
|
122
|
+
**If user selects option 1:** invoke `/gsd:research-project`
|
|
123
|
+
**If user selects option 2:** invoke `/gsd:create-roadmap`
|
|
122
124
|
</step>
|
|
123
125
|
|
|
124
126
|
</process>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Phase Context Template
|
|
2
2
|
|
|
3
|
-
Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` -
|
|
3
|
+
Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - captures the user's vision for a phase.
|
|
4
4
|
|
|
5
|
-
**Purpose:**
|
|
5
|
+
**Purpose:** Document how the user imagines the phase working. This is vision context, not technical analysis. Technical details come from research.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -12,374 +12,150 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - phase context docum
|
|
|
12
12
|
# Phase [X]: [Name] - Context
|
|
13
13
|
|
|
14
14
|
**Gathered:** [date]
|
|
15
|
-
**Status:** [
|
|
15
|
+
**Status:** [Ready for research / Ready for planning]
|
|
16
16
|
|
|
17
|
-
<
|
|
18
|
-
##
|
|
17
|
+
<vision>
|
|
18
|
+
## How This Should Work
|
|
19
19
|
|
|
20
|
-
[
|
|
20
|
+
[User's description of how they imagine this phase working. What happens when someone uses it? What does it look/feel like? This is the "pitch" version, not the technical spec.]
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
[Main objective from roadmap - what ships at the end]
|
|
22
|
+
</vision>
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
<essential>
|
|
25
|
+
## What Must Be Nailed
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
[What this phase explicitly does NOT include - prevents scope creep]
|
|
30
|
-
</phase_objectives>
|
|
27
|
+
[The core of this phase. If we only get one thing right, what is it? What's the non-negotiable that makes this phase successful?]
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
- [Essential thing 1]
|
|
30
|
+
- [Essential thing 2]
|
|
31
|
+
- [Essential thing 3 if applicable]
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
[Library choices, platform requirements, compatibility needs, existing architecture patterns to follow]
|
|
33
|
+
</essential>
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
<boundaries>
|
|
36
|
+
## What's Out of Scope
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
[Budget limits, API rate limits, storage constraints, computational limits]
|
|
38
|
+
[Explicit exclusions for this phase. What are we NOT building? Where does this phase end and the next begin?]
|
|
43
39
|
|
|
44
|
-
|
|
45
|
-
[
|
|
40
|
+
- [Not doing X - that's Phase Y]
|
|
41
|
+
- [Not including Z - deferred]
|
|
42
|
+
- [Explicitly excluding W]
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
[Any other constraints affecting approach]
|
|
44
|
+
</boundaries>
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
<specifics>
|
|
47
|
+
## Specific Ideas
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
## Risks and Mitigation
|
|
49
|
+
[Any particular things the user has in mind. References to existing products/features they like. Specific behaviors or interactions. "I want it to work like X" or "When you click Y, it should Z."]
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
- **Likelihood:** [High / Medium / Low]
|
|
58
|
-
- **Impact:** [High / Medium / Low]
|
|
59
|
-
- **Mitigation:** [How to prevent or handle this]
|
|
51
|
+
[If none: "No specific requirements - open to standard approaches"]
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
- **Likelihood:** [High / Medium / Low]
|
|
63
|
-
- **Impact:** [High / Medium / Low]
|
|
64
|
-
- **Mitigation:** [How to prevent or handle this]
|
|
53
|
+
</specifics>
|
|
65
54
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
[If no major risks: "No major risks identified - straightforward implementation expected"]
|
|
69
|
-
</risks>
|
|
70
|
-
|
|
71
|
-
<success_indicators>
|
|
72
|
-
## Success Indicators
|
|
73
|
-
|
|
74
|
-
**How we'll know this phase is complete:**
|
|
75
|
-
|
|
76
|
-
**Functional:**
|
|
77
|
-
- [ ] [Specific feature works correctly]
|
|
78
|
-
- [ ] [Tests pass for X functionality]
|
|
79
|
-
- [ ] [Integration with Y system verified]
|
|
80
|
-
|
|
81
|
-
**Quality:**
|
|
82
|
-
- [ ] [Performance meets X threshold]
|
|
83
|
-
- [ ] [No TypeScript errors]
|
|
84
|
-
- [ ] [Test coverage >= X%]
|
|
85
|
-
|
|
86
|
-
**Deployment:**
|
|
87
|
-
- [ ] [Changes deployed to staging/production]
|
|
88
|
-
- [ ] [Verification in live environment]
|
|
89
|
-
|
|
90
|
-
**Documentation:**
|
|
91
|
-
- [ ] [API documented]
|
|
92
|
-
- [ ] [README updated]
|
|
93
|
-
- [ ] [Migration guide if needed]
|
|
94
|
-
|
|
95
|
-
**User-facing:**
|
|
96
|
-
- [ ] [Visual verification complete]
|
|
97
|
-
- [ ] [User testing passed]
|
|
98
|
-
- [ ] [Acceptance criteria met]
|
|
99
|
-
</success_indicators>
|
|
100
|
-
|
|
101
|
-
<codebase_context>
|
|
102
|
-
## Codebase State and Patterns
|
|
55
|
+
<notes>
|
|
56
|
+
## Additional Context
|
|
103
57
|
|
|
104
|
-
|
|
105
|
-
[Fresh project / Established codebase / Legacy system / Mid-refactor]
|
|
58
|
+
[Anything else captured during the discussion that doesn't fit above. User's priorities, concerns mentioned, relevant background.]
|
|
106
59
|
|
|
107
|
-
|
|
108
|
-
- `path/to/relevant.ts` - [What this does and why it matters for this phase]
|
|
109
|
-
- `path/to/another.ts` - [What this does and why it matters for this phase]
|
|
60
|
+
[If none: "No additional notes"]
|
|
110
61
|
|
|
111
|
-
|
|
112
|
-
[Existing conventions, architectural patterns, naming conventions, testing patterns]
|
|
62
|
+
</notes>
|
|
113
63
|
|
|
114
|
-
|
|
115
|
-
- [Library/service 1] - [How it's used, version constraints]
|
|
116
|
-
- [Library/service 2] - [How it's used, version constraints]
|
|
64
|
+
---
|
|
117
65
|
|
|
118
|
-
|
|
119
|
-
|
|
66
|
+
*Phase: XX-name*
|
|
67
|
+
*Context gathered: [date]*
|
|
68
|
+
```
|
|
120
69
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
70
|
+
<good_examples>
|
|
71
|
+
```markdown
|
|
72
|
+
# Phase 3: User Dashboard - Context
|
|
124
73
|
|
|
125
|
-
|
|
126
|
-
|
|
74
|
+
**Gathered:** 2025-01-20
|
|
75
|
+
**Status:** Ready for research
|
|
127
76
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- **Options:** [Brief list of approaches]
|
|
131
|
-
- **When to decide:** [During planning / During task X / Before starting]
|
|
77
|
+
<vision>
|
|
78
|
+
## How This Should Work
|
|
132
79
|
|
|
133
|
-
|
|
134
|
-
- **Context:** [Why this matters]
|
|
135
|
-
- **Options:** [Brief list of approaches]
|
|
136
|
-
- **When to decide:** [During planning / During task X / Before starting]
|
|
80
|
+
When users log in, they land on a dashboard that shows them everything important at a glance. I imagine it feeling calm and organized - not overwhelming like Jira or cluttered like Notion.
|
|
137
81
|
|
|
138
|
-
|
|
139
|
-
</decisions_needed>
|
|
82
|
+
The main thing is seeing their active projects and what needs attention. Think of it like a "what should I work on today" view. It should feel personal, not like enterprise software.
|
|
140
83
|
|
|
141
|
-
|
|
142
|
-
## Additional Context
|
|
84
|
+
</vision>
|
|
143
85
|
|
|
144
|
-
|
|
86
|
+
<essential>
|
|
87
|
+
## What Must Be Nailed
|
|
145
88
|
|
|
146
|
-
|
|
147
|
-
-
|
|
148
|
-
- A: [Answer received]
|
|
89
|
+
- **At-a-glance clarity** - Within 2 seconds of landing, user knows what needs their attention
|
|
90
|
+
- **Personal feel** - This is YOUR dashboard, not a team dashboard. It should feel like opening your personal notebook.
|
|
149
91
|
|
|
150
|
-
|
|
151
|
-
- [Important points clarified during discussion]
|
|
92
|
+
</essential>
|
|
152
93
|
|
|
153
|
-
|
|
154
|
-
|
|
94
|
+
<boundaries>
|
|
95
|
+
## What's Out of Scope
|
|
155
96
|
|
|
156
|
-
|
|
157
|
-
|
|
97
|
+
- Team features (shared dashboards, permissions) - that's a future milestone
|
|
98
|
+
- Analytics/reporting - just show what needs attention, not graphs
|
|
99
|
+
- Customizable layouts - keep it simple, one good layout
|
|
100
|
+
- Mobile optimization - desktop first for now
|
|
158
101
|
|
|
159
|
-
|
|
102
|
+
</boundaries>
|
|
160
103
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
*Ready for planning: [yes/no]*
|
|
164
|
-
```
|
|
104
|
+
<specifics>
|
|
105
|
+
## Specific Ideas
|
|
165
106
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
107
|
+
- I like how Linear's home screen highlights what's assigned to you without noise
|
|
108
|
+
- Should show projects in a card format, not a list
|
|
109
|
+
- Maybe a "Today" section at the top with urgent stuff
|
|
110
|
+
- Dark mode is essential (already have this from Phase 2)
|
|
169
111
|
|
|
170
|
-
|
|
171
|
-
**Status:** For planning
|
|
172
|
-
|
|
173
|
-
<phase_objectives>
|
|
174
|
-
## What This Phase Accomplishes
|
|
175
|
-
|
|
176
|
-
Implement JWT-based authentication with secure session management.
|
|
177
|
-
|
|
178
|
-
**Primary goal:**
|
|
179
|
-
Users can register, login, logout with JWT tokens stored in httpOnly cookies. Protected routes verify authentication.
|
|
180
|
-
|
|
181
|
-
**Clarifications:**
|
|
182
|
-
- Tokens stored as httpOnly cookies (not localStorage) per security requirements
|
|
183
|
-
- "Protected routes" means API routes + page-level middleware redirects
|
|
184
|
-
- Password reset included per roadmap scope
|
|
185
|
-
|
|
186
|
-
**Out of scope:**
|
|
187
|
-
- OAuth providers (Google, GitHub) - deferred to Phase 4
|
|
188
|
-
- 2FA - deferred to Phase 5
|
|
189
|
-
- Role-based access control - deferred to Phase 6
|
|
190
|
-
</phase_objectives>
|
|
191
|
-
|
|
192
|
-
<constraints>
|
|
193
|
-
## Constraints
|
|
194
|
-
|
|
195
|
-
**Technical:**
|
|
196
|
-
- Must use jose library (NOT jsonwebtoken - ESM compatibility requirement from Phase 1)
|
|
197
|
-
- Must work in Edge runtime (Next.js middleware requirement)
|
|
198
|
-
- Passwords must use bcrypt with minimum 10 salt rounds
|
|
199
|
-
- Database already has User model from Phase 2 (extend, don't recreate)
|
|
200
|
-
|
|
201
|
-
**Timeline:**
|
|
202
|
-
- Target completion: End of week 3
|
|
203
|
-
- Blocking Phase 4 (user profiles) and Phase 5 (product catalog)
|
|
204
|
-
|
|
205
|
-
**Resources:**
|
|
206
|
-
- Email sending limited to 100/day on current SendGrid plan (affects password reset testing)
|
|
207
|
-
|
|
208
|
-
**Dependencies:**
|
|
209
|
-
- Phase 2 complete (database models)
|
|
210
|
-
- Phase 1 complete (Next.js setup)
|
|
211
|
-
- SendGrid API key obtained (checkpoint for email features)
|
|
212
|
-
|
|
213
|
-
**Other:**
|
|
214
|
-
None
|
|
215
|
-
</constraints>
|
|
216
|
-
|
|
217
|
-
<risks>
|
|
218
|
-
## Risks and Mitigation
|
|
219
|
-
|
|
220
|
-
**Risk 1: JWT token size causing cookie overflow**
|
|
221
|
-
- **Likelihood:** Low
|
|
222
|
-
- **Impact:** High (authentication breaks)
|
|
223
|
-
- **Mitigation:** Keep JWT payload minimal (user ID only), store other data in database session table. Test with realistic tokens early.
|
|
224
|
-
|
|
225
|
-
**Risk 2: Session timing causing UX issues**
|
|
226
|
-
- **Likelihood:** Medium
|
|
227
|
-
- **Impact:** Medium (user frustration)
|
|
228
|
-
- **Mitigation:** Implement refresh token rotation, clear error messages on expiry, test user flows thoroughly.
|
|
229
|
-
|
|
230
|
-
**Risk 3: Password reset token security**
|
|
231
|
-
- **Likelihood:** Low
|
|
232
|
-
- **Impact:** High (account takeover)
|
|
233
|
-
- **Mitigation:** Use crypto.randomBytes(32) for tokens, short expiry (1 hour), single-use tokens, rate limiting on reset endpoint.
|
|
234
|
-
</risks>
|
|
235
|
-
|
|
236
|
-
<success_indicators>
|
|
237
|
-
## Success Indicators
|
|
238
|
-
|
|
239
|
-
**How we'll know this phase is complete:**
|
|
240
|
-
|
|
241
|
-
**Functional:**
|
|
242
|
-
- [ ] User can register with email/password
|
|
243
|
-
- [ ] User can login and receive JWT cookie
|
|
244
|
-
- [ ] Protected routes redirect unauthenticated users
|
|
245
|
-
- [ ] User can logout (cookie cleared)
|
|
246
|
-
- [ ] Password reset flow works end-to-end
|
|
247
|
-
|
|
248
|
-
**Quality:**
|
|
249
|
-
- [ ] No passwords stored in plaintext
|
|
250
|
-
- [ ] JWT tokens validated correctly
|
|
251
|
-
- [ ] Tests pass for all auth endpoints
|
|
252
|
-
- [ ] No TypeScript errors
|
|
253
|
-
- [ ] Test coverage >= 80% for auth code
|
|
254
|
-
|
|
255
|
-
**Deployment:**
|
|
256
|
-
- [ ] Auth endpoints deployed to staging
|
|
257
|
-
- [ ] Verified in staging environment
|
|
258
|
-
- [ ] Production environment variables configured
|
|
259
|
-
|
|
260
|
-
**Documentation:**
|
|
261
|
-
- [ ] API endpoints documented
|
|
262
|
-
- [ ] Authentication flow diagram added to README
|
|
263
|
-
- [ ] Environment variables documented
|
|
264
|
-
|
|
265
|
-
**User-facing:**
|
|
266
|
-
- [ ] Login/logout flows tested manually
|
|
267
|
-
- [ ] Error messages clear and helpful
|
|
268
|
-
- [ ] Password reset tested with real email
|
|
269
|
-
</success_indicators>
|
|
270
|
-
|
|
271
|
-
<codebase_context>
|
|
272
|
-
## Codebase State and Patterns
|
|
273
|
-
|
|
274
|
-
**Current state:**
|
|
275
|
-
Established codebase - Phase 2 complete with database models, Phase 1 has Next.js structure.
|
|
276
|
-
|
|
277
|
-
**Relevant files/systems:**
|
|
278
|
-
- `prisma/schema.prisma` - User model exists, need to add Session model
|
|
279
|
-
- `src/app/api/*` - API route conventions established in Phase 2
|
|
280
|
-
- `src/middleware.ts` - Next.js middleware file (create for protected routes)
|
|
281
|
-
- `src/lib/db.ts` - Database connection helper from Phase 2
|
|
282
|
-
|
|
283
|
-
**Patterns to follow:**
|
|
284
|
-
- API routes return JSON with `{ success: boolean, data?: any, error?: string }`
|
|
285
|
-
- Use Zod for request validation (established in Phase 2)
|
|
286
|
-
- Database queries in try/catch with error logging
|
|
287
|
-
- Tests colocated: `route.test.ts` next to `route.ts`
|
|
288
|
-
|
|
289
|
-
**External dependencies:**
|
|
290
|
-
- jose@5.2.0 - JWT library (decision from Phase 1)
|
|
291
|
-
- bcrypt@5.1.1 - Password hashing
|
|
292
|
-
- @sendgrid/mail - Email sending (need to add)
|
|
293
|
-
- zod@3.22.4 - Validation (already installed)
|
|
294
|
-
|
|
295
|
-
**Known issues to address:**
|
|
296
|
-
- ISS-002 from Phase 2: Add rate limiting to API endpoints (include auth endpoints)
|
|
297
|
-
|
|
298
|
-
**Prior decisions affecting this phase:**
|
|
299
|
-
- Phase 1: Use jose for JWT (ESM-native, Edge-compatible)
|
|
300
|
-
- Phase 2: API response format established (all endpoints must follow)
|
|
301
|
-
- Phase 2: Zod validation pattern established (use for auth requests)
|
|
302
|
-
</codebase_context>
|
|
303
|
-
|
|
304
|
-
<decisions_needed>
|
|
305
|
-
## Decisions That Will Affect Implementation
|
|
306
|
-
|
|
307
|
-
**Decision 1: Token expiry timing**
|
|
308
|
-
- **Context:** Balance security (short expiry) vs UX (avoid frequent re-login)
|
|
309
|
-
- **Options:** 15min access + 7day refresh / 1hr access + 30day refresh / 4hr access + 90day refresh
|
|
310
|
-
- **When to decide:** During planning (affects implementation)
|
|
311
|
-
|
|
312
|
-
**Decision 2: Remember me implementation**
|
|
313
|
-
- **Context:** How to handle "remember me" checkbox on login
|
|
314
|
-
- **Options:** Longer refresh token / Separate persistent token / Browser local storage flag
|
|
315
|
-
- **When to decide:** During task breakdown (affects token strategy)
|
|
316
|
-
</decisions_needed>
|
|
112
|
+
</specifics>
|
|
317
113
|
|
|
318
114
|
<notes>
|
|
319
115
|
## Additional Context
|
|
320
116
|
|
|
321
|
-
|
|
322
|
-
- Q: Are there constraints I should know about?
|
|
323
|
-
- A: Technical limitations - must use jose library, work in Edge runtime
|
|
324
|
-
|
|
325
|
-
- Q: What could go wrong in this phase?
|
|
326
|
-
- A: Security concerns - authentication vulnerabilities are critical
|
|
327
|
-
|
|
328
|
-
- Q: Which files or systems should I examine for context?
|
|
329
|
-
- A: Check prisma/schema.prisma for User model, src/app/api/* for API patterns
|
|
117
|
+
User mentioned they've abandoned several dashboards before because they felt too "corporate." The key differentiator is making it feel personal and calm.
|
|
330
118
|
|
|
331
|
-
|
|
332
|
-
- User stressed security is paramount - better to be overly cautious
|
|
333
|
-
- Password reset is "nice to have" but not blocking for Phase 4
|
|
334
|
-
- OAuth can wait - just email/password for now
|
|
119
|
+
Priority is clarity over features. Better to show less and make it obvious than show everything.
|
|
335
120
|
|
|
336
|
-
[References:]
|
|
337
|
-
- OWASP Auth Cheatsheet: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
|
|
338
|
-
- jose docs: https://github.com/panva/jose
|
|
339
121
|
</notes>
|
|
340
122
|
|
|
341
123
|
---
|
|
342
124
|
|
|
343
|
-
*Phase: 03-
|
|
125
|
+
*Phase: 03-user-dashboard*
|
|
344
126
|
*Context gathered: 2025-01-20*
|
|
345
|
-
*Ready for planning: yes*
|
|
346
127
|
```
|
|
347
128
|
</good_examples>
|
|
348
129
|
|
|
349
130
|
<guidelines>
|
|
350
|
-
**
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
-
|
|
366
|
-
-
|
|
367
|
-
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
- CONTEXT.md loaded as @context reference in PLAN.md
|
|
376
|
-
- Decisions inform task breakdown
|
|
377
|
-
- Risks inform verification criteria
|
|
378
|
-
- Success indicators become plan success criteria
|
|
379
|
-
- Prior decisions become task action notes
|
|
131
|
+
**This template captures VISION, not technical specs.**
|
|
132
|
+
|
|
133
|
+
The user is the visionary. They know:
|
|
134
|
+
- How they imagine it working
|
|
135
|
+
- What it should feel like
|
|
136
|
+
- What's essential vs nice-to-have
|
|
137
|
+
- References to things they like
|
|
138
|
+
|
|
139
|
+
The user does NOT know (and shouldn't be asked):
|
|
140
|
+
- Codebase patterns (Claude reads the code)
|
|
141
|
+
- Technical risks (Claude identifies during research)
|
|
142
|
+
- Implementation constraints (Claude figures out)
|
|
143
|
+
- Success metrics (Claude infers from the work)
|
|
144
|
+
|
|
145
|
+
**Content should read like:**
|
|
146
|
+
- A founder describing their product vision
|
|
147
|
+
- "When you use this, it should feel like..."
|
|
148
|
+
- "The most important thing is..."
|
|
149
|
+
- "I don't want it to be like X, I want it to feel like Y"
|
|
150
|
+
|
|
151
|
+
**Content should NOT read like:**
|
|
152
|
+
- A technical specification
|
|
153
|
+
- Risk assessment matrix
|
|
154
|
+
- Success criteria checklist
|
|
155
|
+
- Codebase analysis
|
|
380
156
|
|
|
381
157
|
**After creation:**
|
|
382
158
|
- File lives in phase directory: `.planning/phases/XX-name/{phase}-CONTEXT.md`
|
|
383
|
-
-
|
|
384
|
-
-
|
|
159
|
+
- Research phase adds technical context (patterns, risks, constraints)
|
|
160
|
+
- Planning phase creates executable tasks informed by both vision AND research
|
|
385
161
|
</guidelines>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
|
|
2
|
+
Help the user figure out what they want to build in the next milestone through collaborative thinking.
|
|
3
|
+
|
|
4
|
+
You're a thinking partner helping them crystallize their vision for what's next. Features first — everything else (scope, phases) derives from what they want to build.
|
|
3
5
|
</purpose>
|
|
4
6
|
|
|
5
7
|
<process>
|
|
@@ -91,17 +93,16 @@ Based on what you described:
|
|
|
91
93
|
**Theme suggestion:** v[X.Y] [Name]
|
|
92
94
|
```
|
|
93
95
|
|
|
94
|
-
|
|
96
|
+
Use AskUserQuestion for decision gate:
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
98
|
+
- header: "Ready?"
|
|
99
|
+
- question: "Ready to create the milestone, or explore more?"
|
|
100
|
+
- options (ALL THREE REQUIRED):
|
|
101
|
+
- "Create milestone" - Proceed to /gsd:new-milestone
|
|
102
|
+
- "Ask more questions" - Help me think through this more
|
|
103
|
+
- "Let me add context" - I have more to share
|
|
103
104
|
|
|
104
|
-
If "Ask more questions" →
|
|
105
|
+
If "Ask more questions" → dig into features they mentioned → return to gate.
|
|
105
106
|
If "Let me add context" → receive input, update synthesis → return to gate.
|
|
106
107
|
Loop until "Create milestone" selected.
|
|
107
108
|
</step>
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Gather phase context through
|
|
2
|
+
Gather phase context through collaborative thinking before planning. Help the user articulate their vision for how this phase should work, look, and feel.
|
|
3
|
+
|
|
4
|
+
You are a thinking partner, not an interviewer. The user is the visionary — you are the builder. Your job is to understand their vision, not interrogate them about technical details you can figure out yourself.
|
|
3
5
|
</purpose>
|
|
4
6
|
|
|
7
|
+
<philosophy>
|
|
8
|
+
**User = founder/visionary. Claude = builder.**
|
|
9
|
+
|
|
10
|
+
The user doesn't know (and shouldn't need to know):
|
|
11
|
+
- Codebase patterns (you read the code)
|
|
12
|
+
- Technical risks (you identify during research)
|
|
13
|
+
- Implementation constraints (you figure those out)
|
|
14
|
+
- Success metrics (you infer from the work)
|
|
15
|
+
|
|
16
|
+
The user DOES know:
|
|
17
|
+
- How they imagine it working
|
|
18
|
+
- What it should look/feel like
|
|
19
|
+
- What's essential vs nice-to-have
|
|
20
|
+
- Any specific things they have in mind
|
|
21
|
+
|
|
22
|
+
Ask about vision. Figure out implementation yourself.
|
|
23
|
+
</philosophy>
|
|
24
|
+
|
|
5
25
|
<process>
|
|
6
26
|
|
|
7
27
|
<step name="validate_phase" priority="first">
|
|
@@ -22,7 +42,7 @@ fi
|
|
|
22
42
|
```
|
|
23
43
|
Error: Phase ${PHASE} not found in roadmap.
|
|
24
44
|
|
|
25
|
-
Use /gsd:
|
|
45
|
+
Use /gsd:progress to see available phases.
|
|
26
46
|
```
|
|
27
47
|
|
|
28
48
|
Exit workflow.
|
|
@@ -43,7 +63,6 @@ Check if CONTEXT.md already exists for this phase:
|
|
|
43
63
|
|
|
44
64
|
```bash
|
|
45
65
|
ls .planning/phases/${PHASE}-*/CONTEXT.md 2>/dev/null
|
|
46
|
-
# Also check for ${PHASE}-CONTEXT.md in phase directory
|
|
47
66
|
ls .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
|
|
48
67
|
```
|
|
49
68
|
|
|
@@ -60,150 +79,83 @@ What's next?
|
|
|
60
79
|
|
|
61
80
|
Wait for user response.
|
|
62
81
|
|
|
63
|
-
If "Update context": Load existing CONTEXT.md
|
|
82
|
+
If "Update context": Load existing CONTEXT.md, continue to questioning
|
|
64
83
|
If "View existing": Read and display CONTEXT.md, then offer update/skip
|
|
65
84
|
If "Skip": Exit workflow
|
|
66
85
|
|
|
67
86
|
**If doesn't exist:**
|
|
68
|
-
Continue to
|
|
87
|
+
Continue to questioning.
|
|
69
88
|
</step>
|
|
70
89
|
|
|
71
|
-
<step name="
|
|
72
|
-
|
|
73
|
-
<no_context_handler>
|
|
90
|
+
<step name="questioning">
|
|
74
91
|
Present initial context from roadmap:
|
|
75
92
|
|
|
76
93
|
```
|
|
77
94
|
Phase ${PHASE}: ${PHASE_NAME}
|
|
78
95
|
|
|
79
|
-
|
|
96
|
+
From the roadmap: ${PHASE_DESCRIPTION}
|
|
80
97
|
|
|
81
|
-
|
|
98
|
+
How do you imagine this working?
|
|
82
99
|
```
|
|
83
100
|
|
|
84
|
-
|
|
85
|
-
</no_context_handler>
|
|
86
|
-
|
|
87
|
-
<context_analysis>
|
|
88
|
-
Analyze roadmap phase description and extract what's already provided:
|
|
89
|
-
|
|
90
|
-
**Objectives (what):** What this phase accomplishes
|
|
91
|
-
**Constraints (how):** Technical/timeline limitations mentioned
|
|
92
|
-
**Risks (concerns):** Potential issues mentioned
|
|
93
|
-
**Success indicators (done when):** Completion criteria mentioned
|
|
94
|
-
**Codebase context (dependencies):** Related systems mentioned
|
|
95
|
-
|
|
96
|
-
Identify gaps where additional clarity would improve planning quality.
|
|
97
|
-
</context_analysis>
|
|
98
|
-
|
|
99
|
-
<initial_questions>
|
|
100
|
-
Ask 2-4 questions based on actual gaps. Use AskUserQuestion with structured options.
|
|
101
|
-
|
|
102
|
-
CRITICAL: Questions must CLARIFY roadmap scope, not EXPAND it.
|
|
103
|
-
- ASK: "How should X from the roadmap work?" (clarification)
|
|
104
|
-
- ASK: "What constraints affect implementation?" (context)
|
|
105
|
-
- ASK: "What existing code patterns should I follow?" (context)
|
|
106
|
-
- NEVER ASK: "What else should we add?" (scope creep)
|
|
107
|
-
- NEVER ASK: "Should we also include...?" (scope creep)
|
|
108
|
-
- NEVER SUGGEST: Additional features beyond roadmap
|
|
109
|
-
|
|
110
|
-
**If objectives are vague:**
|
|
111
|
-
header: "Phase Objectives"
|
|
112
|
-
question: "The roadmap says [X]. How should this work specifically?"
|
|
113
|
-
options:
|
|
114
|
-
|
|
115
|
-
- "Minimal implementation" - Core functionality only, simplest approach
|
|
116
|
-
- "Standard approach" - Follow common patterns for this type of work
|
|
117
|
-
- "Match existing patterns" - Do it the way similar things are done in codebase
|
|
118
|
-
- "I'll clarify" - Let me explain what I have in mind
|
|
119
|
-
|
|
120
|
-
**If constraints are unclear:**
|
|
121
|
-
header: "Constraints"
|
|
122
|
-
question: "Are there constraints I should know about?"
|
|
123
|
-
options:
|
|
124
|
-
|
|
125
|
-
- "Technical limitations" - Library choices, platform requirements, compatibility
|
|
126
|
-
- "Timeline pressure" - Specific deadline or urgency
|
|
127
|
-
- "Dependencies" - Waiting on other phases or external factors
|
|
128
|
-
- "Performance requirements" - Speed, scale, resource constraints
|
|
129
|
-
- "No constraints" - Flexible approach
|
|
130
|
-
- "Other" - Something else
|
|
131
|
-
|
|
132
|
-
**If risks are not mentioned:**
|
|
133
|
-
header: "Risks"
|
|
134
|
-
question: "What could go wrong in this phase?"
|
|
135
|
-
options:
|
|
136
|
-
|
|
137
|
-
- "Breaking changes" - Could affect existing functionality
|
|
138
|
-
- "Integration complexity" - Coordinating multiple systems
|
|
139
|
-
- "Unknown unknowns" - New territory, unclear best practices
|
|
140
|
-
- "Performance impact" - Could slow things down
|
|
141
|
-
- "Security concerns" - Authentication, data protection, vulnerabilities
|
|
142
|
-
- "No major risks" - Straightforward implementation
|
|
143
|
-
- "Other" - Something else
|
|
144
|
-
|
|
145
|
-
**If success indicators are unclear:**
|
|
146
|
-
header: "Success Indicators"
|
|
147
|
-
question: "How will we know this phase is complete?"
|
|
148
|
-
options:
|
|
149
|
-
|
|
150
|
-
- "Feature works" - Functional verification (tests pass, behavior correct)
|
|
151
|
-
- "Deployed and live" - Actually running in production
|
|
152
|
-
- "User-verified" - Visual/manual confirmation required
|
|
153
|
-
- "Metrics hit target" - Performance, coverage, or quality thresholds
|
|
154
|
-
- "Documentation complete" - Properly documented for future work
|
|
155
|
-
- "Other" - Something else
|
|
156
|
-
|
|
157
|
-
Skip questions where roadmap already provides clear answers.
|
|
158
|
-
</initial_questions>
|
|
159
|
-
|
|
160
|
-
<gather_codebase_context>
|
|
161
|
-
After initial questions, ask about codebase state:
|
|
162
|
-
|
|
163
|
-
header: "Codebase Context"
|
|
164
|
-
question: "What should I know about the current codebase state?"
|
|
165
|
-
options:
|
|
166
|
-
|
|
167
|
-
- "Fresh project" - Just starting, minimal existing code
|
|
168
|
-
- "Established patterns" - Follow existing conventions and architecture
|
|
169
|
-
- "Needs refactoring" - Current code has issues to address
|
|
170
|
-
- "External dependencies" - Relies on specific libraries or services
|
|
171
|
-
- "Legacy constraints" - Working with older code or technologies
|
|
172
|
-
- "Not sure" - Help me figure this out
|
|
173
|
-
- "Other" - Something else
|
|
174
|
-
|
|
175
|
-
If "Established patterns" or "External dependencies" selected, ask follow-up:
|
|
176
|
-
"Which files or systems should I examine for context?"
|
|
177
|
-
|
|
178
|
-
If "Not sure" selected, offer to scan codebase:
|
|
179
|
-
"I can scan the codebase to identify patterns and dependencies. Proceed?"
|
|
180
|
-
</gather_codebase_context>
|
|
181
|
-
|
|
182
|
-
<decision_gate>
|
|
183
|
-
**Decision gate (MUST have all 3 options):**
|
|
101
|
+
Let them talk. Don't interrupt with clarifying questions yet.
|
|
184
102
|
|
|
185
|
-
|
|
186
|
-
Header: "Context Gathering"
|
|
187
|
-
Options:
|
|
188
|
-
1. "Create CONTEXT.md" - I have enough context, proceed
|
|
189
|
-
2. "Ask more questions" - I want to clarify how something should work
|
|
190
|
-
3. "Let me add context" - I have information that affects implementation
|
|
191
|
-
```
|
|
103
|
+
Then follow the conversation arc:
|
|
192
104
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
105
|
+
**1. Follow the thread**
|
|
106
|
+
|
|
107
|
+
Whatever they said — dig into it. What excites them? What matters most?
|
|
108
|
+
|
|
109
|
+
- "You mentioned [X] — what would that actually look like?"
|
|
110
|
+
- "When you imagine using this, what happens?"
|
|
111
|
+
- "Tell me more about [specific thing they mentioned]"
|
|
112
|
+
|
|
113
|
+
**2. Sharpen the core**
|
|
114
|
+
|
|
115
|
+
Help them distinguish essential from nice-to-have FOR THIS PHASE.
|
|
196
116
|
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
- CONTEXT.md documents HOW to implement roadmap scope, not WHAT additional things to add
|
|
201
|
-
</decision_gate>
|
|
117
|
+
- "What's the most important part of this phase?"
|
|
118
|
+
- "If we could only nail one thing here, what would it be?"
|
|
119
|
+
- "Is [Y] essential for this phase or could it come later?"
|
|
202
120
|
|
|
121
|
+
**3. Find boundaries**
|
|
122
|
+
|
|
123
|
+
What is this phase NOT doing? Helps prevent scope creep during planning.
|
|
124
|
+
|
|
125
|
+
- "What's explicitly out of scope for this phase?"
|
|
126
|
+
- "Where does this phase end and the next begin?"
|
|
127
|
+
|
|
128
|
+
**4. Capture specifics (only if they have them)**
|
|
129
|
+
|
|
130
|
+
If they have specific ideas about look/feel/behavior, capture them. Don't force this.
|
|
131
|
+
|
|
132
|
+
- "Any specific things you have in mind for how this should work?"
|
|
133
|
+
- "Anything you've seen elsewhere that's close to what you want?"
|
|
134
|
+
|
|
135
|
+
CRITICAL — What NOT to ask:
|
|
136
|
+
- Technical risks (you figure those out)
|
|
137
|
+
- Codebase patterns (you read the code)
|
|
138
|
+
- Success metrics (too corporate)
|
|
139
|
+
- Constraints they didn't mention (don't interrogate)
|
|
140
|
+
- "What could go wrong?" (your job to identify)
|
|
141
|
+
- "What existing code should I follow?" (you read the code)
|
|
142
|
+
|
|
143
|
+
When you feel you understand their vision, use AskUserQuestion:
|
|
144
|
+
|
|
145
|
+
- header: "Ready?"
|
|
146
|
+
- question: "Ready to capture this context, or explore more?"
|
|
147
|
+
- options (ALL THREE REQUIRED):
|
|
148
|
+
- "Create CONTEXT.md" - I've shared my vision
|
|
149
|
+
- "Ask more questions" - Help me think through this more
|
|
150
|
+
- "Let me add context" - I have more to share
|
|
151
|
+
|
|
152
|
+
If "Ask more questions" → dig into areas that seem unclear → return to gate.
|
|
153
|
+
If "Let me add context" → receive input → return to gate.
|
|
154
|
+
Loop until "Create CONTEXT.md" selected.
|
|
203
155
|
</step>
|
|
204
156
|
|
|
205
157
|
<step name="write_context">
|
|
206
|
-
Create CONTEXT.md
|
|
158
|
+
Create CONTEXT.md capturing the user's vision.
|
|
207
159
|
|
|
208
160
|
Use template from ~/.claude/get-shit-done/templates/context.md
|
|
209
161
|
|
|
@@ -214,41 +166,39 @@ Create it: `.planning/phases/${PHASE}-${SLUG}/`
|
|
|
214
166
|
|
|
215
167
|
Use roadmap phase name for slug (lowercase, hyphens).
|
|
216
168
|
|
|
217
|
-
Populate template sections:
|
|
169
|
+
Populate template sections with VISION context (not technical analysis):
|
|
170
|
+
|
|
171
|
+
- `<vision>`: How the user imagines this working
|
|
172
|
+
- `<essential>`: What must be nailed in this phase
|
|
173
|
+
- `<boundaries>`: What's explicitly out of scope
|
|
174
|
+
- `<specifics>`: Any particular look/feel/behavior mentioned
|
|
175
|
+
- `<notes>`: Any other context gathered
|
|
218
176
|
|
|
219
|
-
|
|
220
|
-
- `<constraints>`: From "how" analysis and questions
|
|
221
|
-
- `<risks>`: From "concerns" analysis and questions
|
|
222
|
-
- `<success_indicators>`: From "done when" analysis and questions
|
|
223
|
-
- `<codebase_context>`: From codebase questions and optional scanning
|
|
224
|
-
- `<decisions_needed>`: From questions that revealed choices to make
|
|
225
|
-
- `<notes>`: Any additional context gathered
|
|
177
|
+
Do NOT populate with your own technical analysis. That comes during research/planning.
|
|
226
178
|
|
|
227
179
|
Write file.
|
|
228
180
|
</step>
|
|
229
181
|
|
|
230
182
|
<step name="confirm_creation">
|
|
231
|
-
Present CONTEXT.md
|
|
183
|
+
Present CONTEXT.md summary:
|
|
232
184
|
|
|
233
185
|
```
|
|
234
186
|
Created: .planning/phases/${PHASE}-${SLUG}/${PHASE}-CONTEXT.md
|
|
235
187
|
|
|
236
|
-
##
|
|
237
|
-
[
|
|
238
|
-
|
|
239
|
-
## Key Constraints
|
|
240
|
-
[summary of constraints]
|
|
188
|
+
## Vision
|
|
189
|
+
[How they imagine it working]
|
|
241
190
|
|
|
242
|
-
##
|
|
243
|
-
[
|
|
191
|
+
## Essential
|
|
192
|
+
[What must be nailed]
|
|
244
193
|
|
|
245
|
-
##
|
|
246
|
-
[
|
|
194
|
+
## Boundaries
|
|
195
|
+
[What's out of scope]
|
|
247
196
|
|
|
248
197
|
What's next?
|
|
249
|
-
1.
|
|
250
|
-
2.
|
|
251
|
-
3.
|
|
198
|
+
1. Research this phase (/gsd:research-phase ${PHASE}) - Investigate codebase, identify patterns and risks
|
|
199
|
+
2. Plan this phase (/gsd:plan-phase ${PHASE}) - Skip research, go straight to planning
|
|
200
|
+
3. Review/edit CONTEXT.md - Make adjustments
|
|
201
|
+
4. Done for now
|
|
252
202
|
```
|
|
253
203
|
|
|
254
204
|
</step>
|
|
@@ -257,9 +207,9 @@ What's next?
|
|
|
257
207
|
|
|
258
208
|
<success_criteria>
|
|
259
209
|
|
|
260
|
-
- Phase
|
|
261
|
-
-
|
|
262
|
-
-
|
|
263
|
-
- CONTEXT.md created in phase directory
|
|
264
|
-
- User knows next steps (typically: plan the phase)
|
|
265
|
-
|
|
210
|
+
- Phase validated against roadmap
|
|
211
|
+
- Vision gathered through collaborative thinking (not interrogation)
|
|
212
|
+
- User's imagination captured: how it works, what's essential, what's out of scope
|
|
213
|
+
- CONTEXT.md created in phase directory
|
|
214
|
+
- User knows next steps (typically: research or plan the phase)
|
|
215
|
+
</success_criteria>
|
package/package.json
CHANGED