fix: present new-project completion inline instead of as question
Show slash commands inline so users can copy them to fresh context, matching pattern used by other GSD commands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,10 +4,11 @@ argument-hint: "[phase]"
|
||||
---
|
||||
|
||||
<objective>
|
||||
Use adaptive questioning to gather comprehensive phase context before planning.
|
||||
Help the user articulate their vision for a phase through collaborative thinking.
|
||||
|
||||
Purpose: Build deep understanding of objectives, constraints, risks, success indicators, and codebase state through structured intake flow. Creates CONTEXT.md file that informs high-quality planning.
|
||||
Output: {phase}-CONTEXT.md in phase directory with complete context documentation
|
||||
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.
|
||||
|
||||
Output: {phase}-CONTEXT.md capturing the user's vision for the phase
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@@ -30,23 +31,27 @@ Phase number: $ARGUMENTS (required)
|
||||
2. Check if phase exists in roadmap
|
||||
3. Check if CONTEXT.md already exists (offer to update if yes)
|
||||
4. Follow discuss-phase.md workflow:
|
||||
- Present initial context from roadmap
|
||||
- Analyze gaps in: objectives, constraints, risks, success indicators, codebase context
|
||||
- Ask 2-4 CLARIFYING questions (never suggest additions or expansions)
|
||||
- Present phase from roadmap
|
||||
- Ask: "How do you imagine this working?"
|
||||
- Follow their thread — dig into what excites them
|
||||
- Sharpen the core — what's essential for THIS phase
|
||||
- Find boundaries — what's explicitly out of scope
|
||||
- Present decision gate (ready / ask more / let me add context)
|
||||
- Create CONTEXT.md using template
|
||||
5. Offer next steps (typically: plan the phase)
|
||||
- Create CONTEXT.md capturing their vision
|
||||
5. Offer next steps (research or plan the phase)
|
||||
|
||||
CRITICAL - NO SCOPE CREEP:
|
||||
- Questions clarify HOW to implement roadmap scope, not WHAT to add
|
||||
- Never ask "should we also..." or "do you want to add..."
|
||||
- If user adds scope, suggest updating ROADMAP first instead
|
||||
CRITICAL — User is the visionary, you are the builder:
|
||||
- Ask about vision, feel, essential outcomes
|
||||
- DON'T ask about technical risks (you figure those out)
|
||||
- DON'T ask about codebase patterns (you read the code)
|
||||
- DON'T ask about success metrics (too corporate)
|
||||
- DON'T interrogate about constraints they didn't mention
|
||||
</process>
|
||||
|
||||
<success_criteria>
|
||||
|
||||
- Phase validated against roadmap
|
||||
- Context gathered through adaptive questioning
|
||||
- CONTEXT.md created in phase directory
|
||||
- User knows next steps (plan phase, review context, or done)
|
||||
</success_criteria>
|
||||
- Vision gathered through collaborative thinking (not interrogation)
|
||||
- CONTEXT.md captures: how it works, what's essential, what's out of scope
|
||||
- User knows next steps (research or plan the phase)
|
||||
</success_criteria>
|
||||
|
||||
@@ -102,8 +102,9 @@ EOF
|
||||
</step>
|
||||
|
||||
<step name="done">
|
||||
```
|
||||
Present completion inline (not as a question):
|
||||
|
||||
```
|
||||
Project initialized:
|
||||
|
||||
- Project: .planning/PROJECT.md
|
||||
@@ -114,11 +115,12 @@ What's next?
|
||||
1. Research domain ecosystem (/gsd:research-project) - For niche/complex domains
|
||||
2. Create roadmap (/gsd:create-roadmap) - Skip research, go straight to planning
|
||||
3. Done for now
|
||||
|
||||
```
|
||||
|
||||
If user selects "Research domain ecosystem" → invoke `/gsd:research-project`
|
||||
If user selects "Create roadmap" → invoke `/gsd:create-roadmap`
|
||||
Note: Commands are shown in the options above so the user can see what to run in a fresh context.
|
||||
|
||||
**If user selects option 1:** invoke `/gsd:research-project`
|
||||
**If user selects option 2:** invoke `/gsd:create-roadmap`
|
||||
</step>
|
||||
|
||||
</process>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Phase Context Template
|
||||
|
||||
Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - phase context documentation gathered before planning.
|
||||
Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - captures the user's vision for a phase.
|
||||
|
||||
**Purpose:** Capture comprehensive context through adaptive questioning to inform high-quality planning.
|
||||
**Purpose:** Document how the user imagines the phase working. This is vision context, not technical analysis. Technical details come from research.
|
||||
|
||||
---
|
||||
|
||||
@@ -12,374 +12,150 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - phase context docum
|
||||
# Phase [X]: [Name] - Context
|
||||
|
||||
**Gathered:** [date]
|
||||
**Status:** [For planning / Planning complete]
|
||||
**Status:** [Ready for research / Ready for planning]
|
||||
|
||||
<phase_objectives>
|
||||
## What This Phase Accomplishes
|
||||
<vision>
|
||||
## How This Should Work
|
||||
|
||||
[Clear, specific description of what this phase delivers]
|
||||
[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.]
|
||||
|
||||
**Primary goal:**
|
||||
[Main objective from roadmap - what ships at the end]
|
||||
</vision>
|
||||
|
||||
**Clarifications:**
|
||||
[Any clarified details about HOW the primary goal works - not additional features]
|
||||
<essential>
|
||||
## What Must Be Nailed
|
||||
|
||||
**Out of scope:**
|
||||
[What this phase explicitly does NOT include - prevents scope creep]
|
||||
</phase_objectives>
|
||||
[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?]
|
||||
|
||||
<constraints>
|
||||
## Constraints
|
||||
- [Essential thing 1]
|
||||
- [Essential thing 2]
|
||||
- [Essential thing 3 if applicable]
|
||||
|
||||
**Technical:**
|
||||
[Library choices, platform requirements, compatibility needs, existing architecture patterns to follow]
|
||||
</essential>
|
||||
|
||||
**Timeline:**
|
||||
[Deadlines, urgency, sequencing dependencies]
|
||||
<boundaries>
|
||||
## What's Out of Scope
|
||||
|
||||
**Resources:**
|
||||
[Budget limits, API rate limits, storage constraints, computational limits]
|
||||
[Explicit exclusions for this phase. What are we NOT building? Where does this phase end and the next begin?]
|
||||
|
||||
**Dependencies:**
|
||||
[What must exist before this phase can start, external factors, waiting on other teams/services]
|
||||
- [Not doing X - that's Phase Y]
|
||||
- [Not including Z - deferred]
|
||||
- [Explicitly excluding W]
|
||||
|
||||
**Other:**
|
||||
[Any other constraints affecting approach]
|
||||
</boundaries>
|
||||
|
||||
[If no constraints: "None - flexible approach"]
|
||||
</constraints>
|
||||
<specifics>
|
||||
## Specific Ideas
|
||||
|
||||
<risks>
|
||||
## Risks and Mitigation
|
||||
[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."]
|
||||
|
||||
**Risk 1: [Risk description]**
|
||||
- **Likelihood:** [High / Medium / Low]
|
||||
- **Impact:** [High / Medium / Low]
|
||||
- **Mitigation:** [How to prevent or handle this]
|
||||
[If none: "No specific requirements - open to standard approaches"]
|
||||
|
||||
**Risk 2: [Risk description]**
|
||||
- **Likelihood:** [High / Medium / Low]
|
||||
- **Impact:** [High / Medium / Low]
|
||||
- **Mitigation:** [How to prevent or handle this]
|
||||
|
||||
[Continue for identified risks]
|
||||
|
||||
[If no major risks: "No major risks identified - straightforward implementation expected"]
|
||||
</risks>
|
||||
|
||||
<success_indicators>
|
||||
## Success Indicators
|
||||
|
||||
**How we'll know this phase is complete:**
|
||||
|
||||
**Functional:**
|
||||
- [ ] [Specific feature works correctly]
|
||||
- [ ] [Tests pass for X functionality]
|
||||
- [ ] [Integration with Y system verified]
|
||||
|
||||
**Quality:**
|
||||
- [ ] [Performance meets X threshold]
|
||||
- [ ] [No TypeScript errors]
|
||||
- [ ] [Test coverage >= X%]
|
||||
|
||||
**Deployment:**
|
||||
- [ ] [Changes deployed to staging/production]
|
||||
- [ ] [Verification in live environment]
|
||||
|
||||
**Documentation:**
|
||||
- [ ] [API documented]
|
||||
- [ ] [README updated]
|
||||
- [ ] [Migration guide if needed]
|
||||
|
||||
**User-facing:**
|
||||
- [ ] [Visual verification complete]
|
||||
- [ ] [User testing passed]
|
||||
- [ ] [Acceptance criteria met]
|
||||
</success_indicators>
|
||||
|
||||
<codebase_context>
|
||||
## Codebase State and Patterns
|
||||
|
||||
**Current state:**
|
||||
[Fresh project / Established codebase / Legacy system / Mid-refactor]
|
||||
|
||||
**Relevant files/systems:**
|
||||
- `path/to/relevant.ts` - [What this does and why it matters for this phase]
|
||||
- `path/to/another.ts` - [What this does and why it matters for this phase]
|
||||
|
||||
**Patterns to follow:**
|
||||
[Existing conventions, architectural patterns, naming conventions, testing patterns]
|
||||
|
||||
**External dependencies:**
|
||||
- [Library/service 1] - [How it's used, version constraints]
|
||||
- [Library/service 2] - [How it's used, version constraints]
|
||||
|
||||
**Known issues to address:**
|
||||
[From ISSUES.md or prior phases - issues this phase should fix]
|
||||
|
||||
**Prior decisions affecting this phase:**
|
||||
[From STATE.md - decisions from previous phases that constrain approach]
|
||||
</codebase_context>
|
||||
|
||||
<decisions_needed>
|
||||
## Decisions That Will Affect Implementation
|
||||
|
||||
**Decision 1: [What needs deciding]**
|
||||
- **Context:** [Why this matters]
|
||||
- **Options:** [Brief list of approaches]
|
||||
- **When to decide:** [During planning / During task X / Before starting]
|
||||
|
||||
**Decision 2: [What needs deciding]**
|
||||
- **Context:** [Why this matters]
|
||||
- **Options:** [Brief list of approaches]
|
||||
- **When to decide:** [During planning / During task X / Before starting]
|
||||
|
||||
[If no decisions needed: "No open decisions - approach is clear from roadmap and context"]
|
||||
</decisions_needed>
|
||||
</specifics>
|
||||
|
||||
<notes>
|
||||
## Additional Context
|
||||
|
||||
[Any other relevant information gathered during context discussion]
|
||||
[Anything else captured during the discussion that doesn't fit above. User's priorities, concerns mentioned, relevant background.]
|
||||
|
||||
[Questions asked during intake:]
|
||||
- Q: [Question asked]
|
||||
- A: [Answer received]
|
||||
[If none: "No additional notes"]
|
||||
|
||||
[Clarifications:]
|
||||
- [Important points clarified during discussion]
|
||||
|
||||
[References:]
|
||||
- [Links to relevant docs, prior art, examples]
|
||||
|
||||
[If no additional notes: "No additional notes"]
|
||||
</notes>
|
||||
|
||||
---
|
||||
|
||||
*Phase: XX-name*
|
||||
*Context gathered: [date]*
|
||||
*Ready for planning: [yes/no]*
|
||||
```
|
||||
|
||||
<good_examples>
|
||||
```markdown
|
||||
# Phase 3: Authentication - Context
|
||||
# Phase 3: User Dashboard - Context
|
||||
|
||||
**Gathered:** 2025-01-20
|
||||
**Status:** For planning
|
||||
**Status:** Ready for research
|
||||
|
||||
<phase_objectives>
|
||||
## What This Phase Accomplishes
|
||||
<vision>
|
||||
## How This Should Work
|
||||
|
||||
Implement JWT-based authentication with secure session management.
|
||||
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.
|
||||
|
||||
**Primary goal:**
|
||||
Users can register, login, logout with JWT tokens stored in httpOnly cookies. Protected routes verify authentication.
|
||||
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.
|
||||
|
||||
**Clarifications:**
|
||||
- Tokens stored as httpOnly cookies (not localStorage) per security requirements
|
||||
- "Protected routes" means API routes + page-level middleware redirects
|
||||
- Password reset included per roadmap scope
|
||||
</vision>
|
||||
|
||||
**Out of scope:**
|
||||
- OAuth providers (Google, GitHub) - deferred to Phase 4
|
||||
- 2FA - deferred to Phase 5
|
||||
- Role-based access control - deferred to Phase 6
|
||||
</phase_objectives>
|
||||
<essential>
|
||||
## What Must Be Nailed
|
||||
|
||||
<constraints>
|
||||
## Constraints
|
||||
- **At-a-glance clarity** - Within 2 seconds of landing, user knows what needs their attention
|
||||
- **Personal feel** - This is YOUR dashboard, not a team dashboard. It should feel like opening your personal notebook.
|
||||
|
||||
**Technical:**
|
||||
- Must use jose library (NOT jsonwebtoken - ESM compatibility requirement from Phase 1)
|
||||
- Must work in Edge runtime (Next.js middleware requirement)
|
||||
- Passwords must use bcrypt with minimum 10 salt rounds
|
||||
- Database already has User model from Phase 2 (extend, don't recreate)
|
||||
</essential>
|
||||
|
||||
**Timeline:**
|
||||
- Target completion: End of week 3
|
||||
- Blocking Phase 4 (user profiles) and Phase 5 (product catalog)
|
||||
<boundaries>
|
||||
## What's Out of Scope
|
||||
|
||||
**Resources:**
|
||||
- Email sending limited to 100/day on current SendGrid plan (affects password reset testing)
|
||||
- Team features (shared dashboards, permissions) - that's a future milestone
|
||||
- Analytics/reporting - just show what needs attention, not graphs
|
||||
- Customizable layouts - keep it simple, one good layout
|
||||
- Mobile optimization - desktop first for now
|
||||
|
||||
**Dependencies:**
|
||||
- Phase 2 complete (database models)
|
||||
- Phase 1 complete (Next.js setup)
|
||||
- SendGrid API key obtained (checkpoint for email features)
|
||||
</boundaries>
|
||||
|
||||
**Other:**
|
||||
None
|
||||
</constraints>
|
||||
<specifics>
|
||||
## Specific Ideas
|
||||
|
||||
<risks>
|
||||
## Risks and Mitigation
|
||||
- I like how Linear's home screen highlights what's assigned to you without noise
|
||||
- Should show projects in a card format, not a list
|
||||
- Maybe a "Today" section at the top with urgent stuff
|
||||
- Dark mode is essential (already have this from Phase 2)
|
||||
|
||||
**Risk 1: JWT token size causing cookie overflow**
|
||||
- **Likelihood:** Low
|
||||
- **Impact:** High (authentication breaks)
|
||||
- **Mitigation:** Keep JWT payload minimal (user ID only), store other data in database session table. Test with realistic tokens early.
|
||||
|
||||
**Risk 2: Session timing causing UX issues**
|
||||
- **Likelihood:** Medium
|
||||
- **Impact:** Medium (user frustration)
|
||||
- **Mitigation:** Implement refresh token rotation, clear error messages on expiry, test user flows thoroughly.
|
||||
|
||||
**Risk 3: Password reset token security**
|
||||
- **Likelihood:** Low
|
||||
- **Impact:** High (account takeover)
|
||||
- **Mitigation:** Use crypto.randomBytes(32) for tokens, short expiry (1 hour), single-use tokens, rate limiting on reset endpoint.
|
||||
</risks>
|
||||
|
||||
<success_indicators>
|
||||
## Success Indicators
|
||||
|
||||
**How we'll know this phase is complete:**
|
||||
|
||||
**Functional:**
|
||||
- [ ] User can register with email/password
|
||||
- [ ] User can login and receive JWT cookie
|
||||
- [ ] Protected routes redirect unauthenticated users
|
||||
- [ ] User can logout (cookie cleared)
|
||||
- [ ] Password reset flow works end-to-end
|
||||
|
||||
**Quality:**
|
||||
- [ ] No passwords stored in plaintext
|
||||
- [ ] JWT tokens validated correctly
|
||||
- [ ] Tests pass for all auth endpoints
|
||||
- [ ] No TypeScript errors
|
||||
- [ ] Test coverage >= 80% for auth code
|
||||
|
||||
**Deployment:**
|
||||
- [ ] Auth endpoints deployed to staging
|
||||
- [ ] Verified in staging environment
|
||||
- [ ] Production environment variables configured
|
||||
|
||||
**Documentation:**
|
||||
- [ ] API endpoints documented
|
||||
- [ ] Authentication flow diagram added to README
|
||||
- [ ] Environment variables documented
|
||||
|
||||
**User-facing:**
|
||||
- [ ] Login/logout flows tested manually
|
||||
- [ ] Error messages clear and helpful
|
||||
- [ ] Password reset tested with real email
|
||||
</success_indicators>
|
||||
|
||||
<codebase_context>
|
||||
## Codebase State and Patterns
|
||||
|
||||
**Current state:**
|
||||
Established codebase - Phase 2 complete with database models, Phase 1 has Next.js structure.
|
||||
|
||||
**Relevant files/systems:**
|
||||
- `prisma/schema.prisma` - User model exists, need to add Session model
|
||||
- `src/app/api/*` - API route conventions established in Phase 2
|
||||
- `src/middleware.ts` - Next.js middleware file (create for protected routes)
|
||||
- `src/lib/db.ts` - Database connection helper from Phase 2
|
||||
|
||||
**Patterns to follow:**
|
||||
- API routes return JSON with `{ success: boolean, data?: any, error?: string }`
|
||||
- Use Zod for request validation (established in Phase 2)
|
||||
- Database queries in try/catch with error logging
|
||||
- Tests colocated: `route.test.ts` next to `route.ts`
|
||||
|
||||
**External dependencies:**
|
||||
- jose@5.2.0 - JWT library (decision from Phase 1)
|
||||
- bcrypt@5.1.1 - Password hashing
|
||||
- @sendgrid/mail - Email sending (need to add)
|
||||
- zod@3.22.4 - Validation (already installed)
|
||||
|
||||
**Known issues to address:**
|
||||
- ISS-002 from Phase 2: Add rate limiting to API endpoints (include auth endpoints)
|
||||
|
||||
**Prior decisions affecting this phase:**
|
||||
- Phase 1: Use jose for JWT (ESM-native, Edge-compatible)
|
||||
- Phase 2: API response format established (all endpoints must follow)
|
||||
- Phase 2: Zod validation pattern established (use for auth requests)
|
||||
</codebase_context>
|
||||
|
||||
<decisions_needed>
|
||||
## Decisions That Will Affect Implementation
|
||||
|
||||
**Decision 1: Token expiry timing**
|
||||
- **Context:** Balance security (short expiry) vs UX (avoid frequent re-login)
|
||||
- **Options:** 15min access + 7day refresh / 1hr access + 30day refresh / 4hr access + 90day refresh
|
||||
- **When to decide:** During planning (affects implementation)
|
||||
|
||||
**Decision 2: Remember me implementation**
|
||||
- **Context:** How to handle "remember me" checkbox on login
|
||||
- **Options:** Longer refresh token / Separate persistent token / Browser local storage flag
|
||||
- **When to decide:** During task breakdown (affects token strategy)
|
||||
</decisions_needed>
|
||||
</specifics>
|
||||
|
||||
<notes>
|
||||
## Additional Context
|
||||
|
||||
[Questions asked during intake:]
|
||||
- Q: Are there constraints I should know about?
|
||||
- A: Technical limitations - must use jose library, work in Edge runtime
|
||||
User mentioned they've abandoned several dashboards before because they felt too "corporate." The key differentiator is making it feel personal and calm.
|
||||
|
||||
- Q: What could go wrong in this phase?
|
||||
- A: Security concerns - authentication vulnerabilities are critical
|
||||
Priority is clarity over features. Better to show less and make it obvious than show everything.
|
||||
|
||||
- Q: Which files or systems should I examine for context?
|
||||
- A: Check prisma/schema.prisma for User model, src/app/api/* for API patterns
|
||||
|
||||
[Clarifications:]
|
||||
- User stressed security is paramount - better to be overly cautious
|
||||
- Password reset is "nice to have" but not blocking for Phase 4
|
||||
- OAuth can wait - just email/password for now
|
||||
|
||||
[References:]
|
||||
- OWASP Auth Cheatsheet: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
|
||||
- jose docs: https://github.com/panva/jose
|
||||
</notes>
|
||||
|
||||
---
|
||||
|
||||
*Phase: 03-authentication*
|
||||
*Phase: 03-user-dashboard*
|
||||
*Context gathered: 2025-01-20*
|
||||
*Ready for planning: yes*
|
||||
```
|
||||
</good_examples>
|
||||
|
||||
<guidelines>
|
||||
**When to create:**
|
||||
- Before planning a phase (via /gsd:discuss-phase command)
|
||||
- When roadmap description is too brief for quality planning
|
||||
- When phase involves complex decisions or risks
|
||||
**This template captures VISION, not technical specs.**
|
||||
|
||||
**Structure:**
|
||||
- Use XML tags for section markers (matches GSD templates)
|
||||
- Five core sections: objectives, constraints, risks, success_indicators, codebase_context
|
||||
- Two supporting sections: decisions_needed, notes
|
||||
- All sections required (use "None" if truly not applicable)
|
||||
The user is the visionary. They know:
|
||||
- How they imagine it working
|
||||
- What it should feel like
|
||||
- What's essential vs nice-to-have
|
||||
- References to things they like
|
||||
|
||||
**Content quality:**
|
||||
- Objectives: Specific and measurable (not "add auth" but "JWT auth with registration, login, logout, password reset")
|
||||
- Constraints: Technical/timeline/resource specifics (not "be fast" but "must work in Edge runtime")
|
||||
- Risks: Include likelihood, impact, mitigation (not just "might break")
|
||||
- Success indicators: Checklist format, specific criteria
|
||||
- Codebase context: Reference actual files and patterns
|
||||
- Decisions needed: Note when decision should be made (planning vs execution)
|
||||
The user does NOT know (and shouldn't be asked):
|
||||
- Codebase patterns (Claude reads the code)
|
||||
- Technical risks (Claude identifies during research)
|
||||
- Implementation constraints (Claude figures out)
|
||||
- Success metrics (Claude infers from the work)
|
||||
|
||||
**Out of scope:**
|
||||
- Document what phase does NOT include (prevents scope creep)
|
||||
- Reference deferred items from roadmap
|
||||
- Note what's pushed to future phases
|
||||
**Content should read like:**
|
||||
- A founder describing their product vision
|
||||
- "When you use this, it should feel like..."
|
||||
- "The most important thing is..."
|
||||
- "I don't want it to be like X, I want it to feel like Y"
|
||||
|
||||
**Integration with planning:**
|
||||
- CONTEXT.md loaded as @context reference in PLAN.md
|
||||
- Decisions inform task breakdown
|
||||
- Risks inform verification criteria
|
||||
- Success indicators become plan success criteria
|
||||
- Prior decisions become task action notes
|
||||
**Content should NOT read like:**
|
||||
- A technical specification
|
||||
- Risk assessment matrix
|
||||
- Success criteria checklist
|
||||
- Codebase analysis
|
||||
|
||||
**After creation:**
|
||||
- File lives in phase directory: `.planning/phases/XX-name/{phase}-CONTEXT.md`
|
||||
- Referenced during planning workflow
|
||||
- Can be updated if context changes before planning
|
||||
- Research phase adds technical context (patterns, risks, constraints)
|
||||
- Planning phase creates executable tasks informed by both vision AND research
|
||||
</guidelines>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<purpose>
|
||||
Gather milestone context through adaptive questioning before creating a new milestone, using intake & decision gate pattern to build comprehensive understanding of goals, scope, lessons learned, and success criteria.
|
||||
Help the user figure out what they want to build in the next milestone through collaborative thinking.
|
||||
|
||||
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.
|
||||
</purpose>
|
||||
|
||||
<process>
|
||||
@@ -91,17 +93,16 @@ Based on what you described:
|
||||
**Theme suggestion:** v[X.Y] [Name]
|
||||
```
|
||||
|
||||
**Decision gate (MUST have all 3 options):**
|
||||
Use AskUserQuestion for decision gate:
|
||||
|
||||
```
|
||||
Header: "Ready?"
|
||||
Options:
|
||||
1. "Create milestone" - Proceed to /gsd:new-milestone
|
||||
2. "Ask more questions" - Explore features or constraints further
|
||||
3. "Let me add context" - I have more to share
|
||||
```
|
||||
- header: "Ready?"
|
||||
- question: "Ready to create the milestone, or explore more?"
|
||||
- options (ALL THREE REQUIRED):
|
||||
- "Create milestone" - Proceed to /gsd:new-milestone
|
||||
- "Ask more questions" - Help me think through this more
|
||||
- "Let me add context" - I have more to share
|
||||
|
||||
If "Ask more questions" → generate 2-3 contextual follow-ups → return to gate.
|
||||
If "Ask more questions" → dig into features they mentioned → return to gate.
|
||||
If "Let me add context" → receive input, update synthesis → return to gate.
|
||||
Loop until "Create milestone" selected.
|
||||
</step>
|
||||
|
||||
@@ -1,7 +1,27 @@
|
||||
<purpose>
|
||||
Gather phase context through adaptive questioning before planning, using intake & decision gate pattern to build comprehensive understanding of objectives, constraints, risks, success indicators, and codebase context.
|
||||
Gather phase context through collaborative thinking before planning. Help the user articulate their vision for how this phase should work, look, and feel.
|
||||
|
||||
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.
|
||||
</purpose>
|
||||
|
||||
<philosophy>
|
||||
**User = founder/visionary. Claude = builder.**
|
||||
|
||||
The user doesn't know (and shouldn't need to know):
|
||||
- Codebase patterns (you read the code)
|
||||
- Technical risks (you identify during research)
|
||||
- Implementation constraints (you figure those out)
|
||||
- Success metrics (you infer from the work)
|
||||
|
||||
The user DOES know:
|
||||
- How they imagine it working
|
||||
- What it should look/feel like
|
||||
- What's essential vs nice-to-have
|
||||
- Any specific things they have in mind
|
||||
|
||||
Ask about vision. Figure out implementation yourself.
|
||||
</philosophy>
|
||||
|
||||
<process>
|
||||
|
||||
<step name="validate_phase" priority="first">
|
||||
@@ -22,7 +42,7 @@ fi
|
||||
```
|
||||
Error: Phase ${PHASE} not found in roadmap.
|
||||
|
||||
Use /gsd:plan-phase to see available phases.
|
||||
Use /gsd:progress to see available phases.
|
||||
```
|
||||
|
||||
Exit workflow.
|
||||
@@ -43,7 +63,6 @@ Check if CONTEXT.md already exists for this phase:
|
||||
|
||||
```bash
|
||||
ls .planning/phases/${PHASE}-*/CONTEXT.md 2>/dev/null
|
||||
# Also check for ${PHASE}-CONTEXT.md in phase directory
|
||||
ls .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
|
||||
```
|
||||
|
||||
@@ -60,150 +79,83 @@ What's next?
|
||||
|
||||
Wait for user response.
|
||||
|
||||
If "Update context": Load existing CONTEXT.md into intake flow (pre-populate known context)
|
||||
If "Update context": Load existing CONTEXT.md, continue to questioning
|
||||
If "View existing": Read and display CONTEXT.md, then offer update/skip
|
||||
If "Skip": Exit workflow
|
||||
|
||||
**If doesn't exist:**
|
||||
Continue to intake_gate.
|
||||
Continue to questioning.
|
||||
</step>
|
||||
|
||||
<step name="intake_gate">
|
||||
|
||||
<no_context_handler>
|
||||
<step name="questioning">
|
||||
Present initial context from roadmap:
|
||||
|
||||
```
|
||||
Phase ${PHASE}: ${PHASE_NAME}
|
||||
|
||||
Roadmap description: ${PHASE_DESCRIPTION}
|
||||
From the roadmap: ${PHASE_DESCRIPTION}
|
||||
|
||||
I'll gather additional context through questions to ensure comprehensive planning.
|
||||
How do you imagine this working?
|
||||
```
|
||||
|
||||
Continue to context_analysis.
|
||||
</no_context_handler>
|
||||
Let them talk. Don't interrupt with clarifying questions yet.
|
||||
|
||||
<context_analysis>
|
||||
Analyze roadmap phase description and extract what's already provided:
|
||||
Then follow the conversation arc:
|
||||
|
||||
**Objectives (what):** What this phase accomplishes
|
||||
**Constraints (how):** Technical/timeline limitations mentioned
|
||||
**Risks (concerns):** Potential issues mentioned
|
||||
**Success indicators (done when):** Completion criteria mentioned
|
||||
**Codebase context (dependencies):** Related systems mentioned
|
||||
**1. Follow the thread**
|
||||
|
||||
Identify gaps where additional clarity would improve planning quality.
|
||||
</context_analysis>
|
||||
Whatever they said — dig into it. What excites them? What matters most?
|
||||
|
||||
<initial_questions>
|
||||
Ask 2-4 questions based on actual gaps. Use AskUserQuestion with structured options.
|
||||
- "You mentioned [X] — what would that actually look like?"
|
||||
- "When you imagine using this, what happens?"
|
||||
- "Tell me more about [specific thing they mentioned]"
|
||||
|
||||
CRITICAL: Questions must CLARIFY roadmap scope, not EXPAND it.
|
||||
- ASK: "How should X from the roadmap work?" (clarification)
|
||||
- ASK: "What constraints affect implementation?" (context)
|
||||
- ASK: "What existing code patterns should I follow?" (context)
|
||||
- NEVER ASK: "What else should we add?" (scope creep)
|
||||
- NEVER ASK: "Should we also include...?" (scope creep)
|
||||
- NEVER SUGGEST: Additional features beyond roadmap
|
||||
**2. Sharpen the core**
|
||||
|
||||
**If objectives are vague:**
|
||||
header: "Phase Objectives"
|
||||
question: "The roadmap says [X]. How should this work specifically?"
|
||||
options:
|
||||
Help them distinguish essential from nice-to-have FOR THIS PHASE.
|
||||
|
||||
- "Minimal implementation" - Core functionality only, simplest approach
|
||||
- "Standard approach" - Follow common patterns for this type of work
|
||||
- "Match existing patterns" - Do it the way similar things are done in codebase
|
||||
- "I'll clarify" - Let me explain what I have in mind
|
||||
- "What's the most important part of this phase?"
|
||||
- "If we could only nail one thing here, what would it be?"
|
||||
- "Is [Y] essential for this phase or could it come later?"
|
||||
|
||||
**If constraints are unclear:**
|
||||
header: "Constraints"
|
||||
question: "Are there constraints I should know about?"
|
||||
options:
|
||||
**3. Find boundaries**
|
||||
|
||||
- "Technical limitations" - Library choices, platform requirements, compatibility
|
||||
- "Timeline pressure" - Specific deadline or urgency
|
||||
- "Dependencies" - Waiting on other phases or external factors
|
||||
- "Performance requirements" - Speed, scale, resource constraints
|
||||
- "No constraints" - Flexible approach
|
||||
- "Other" - Something else
|
||||
What is this phase NOT doing? Helps prevent scope creep during planning.
|
||||
|
||||
**If risks are not mentioned:**
|
||||
header: "Risks"
|
||||
question: "What could go wrong in this phase?"
|
||||
options:
|
||||
- "What's explicitly out of scope for this phase?"
|
||||
- "Where does this phase end and the next begin?"
|
||||
|
||||
- "Breaking changes" - Could affect existing functionality
|
||||
- "Integration complexity" - Coordinating multiple systems
|
||||
- "Unknown unknowns" - New territory, unclear best practices
|
||||
- "Performance impact" - Could slow things down
|
||||
- "Security concerns" - Authentication, data protection, vulnerabilities
|
||||
- "No major risks" - Straightforward implementation
|
||||
- "Other" - Something else
|
||||
**4. Capture specifics (only if they have them)**
|
||||
|
||||
**If success indicators are unclear:**
|
||||
header: "Success Indicators"
|
||||
question: "How will we know this phase is complete?"
|
||||
options:
|
||||
If they have specific ideas about look/feel/behavior, capture them. Don't force this.
|
||||
|
||||
- "Feature works" - Functional verification (tests pass, behavior correct)
|
||||
- "Deployed and live" - Actually running in production
|
||||
- "User-verified" - Visual/manual confirmation required
|
||||
- "Metrics hit target" - Performance, coverage, or quality thresholds
|
||||
- "Documentation complete" - Properly documented for future work
|
||||
- "Other" - Something else
|
||||
- "Any specific things you have in mind for how this should work?"
|
||||
- "Anything you've seen elsewhere that's close to what you want?"
|
||||
|
||||
Skip questions where roadmap already provides clear answers.
|
||||
</initial_questions>
|
||||
CRITICAL — What NOT to ask:
|
||||
- Technical risks (you figure those out)
|
||||
- Codebase patterns (you read the code)
|
||||
- Success metrics (too corporate)
|
||||
- Constraints they didn't mention (don't interrogate)
|
||||
- "What could go wrong?" (your job to identify)
|
||||
- "What existing code should I follow?" (you read the code)
|
||||
|
||||
<gather_codebase_context>
|
||||
After initial questions, ask about codebase state:
|
||||
When you feel you understand their vision, use AskUserQuestion:
|
||||
|
||||
header: "Codebase Context"
|
||||
question: "What should I know about the current codebase state?"
|
||||
options:
|
||||
- header: "Ready?"
|
||||
- question: "Ready to capture this context, or explore more?"
|
||||
- options (ALL THREE REQUIRED):
|
||||
- "Create CONTEXT.md" - I've shared my vision
|
||||
- "Ask more questions" - Help me think through this more
|
||||
- "Let me add context" - I have more to share
|
||||
|
||||
- "Fresh project" - Just starting, minimal existing code
|
||||
- "Established patterns" - Follow existing conventions and architecture
|
||||
- "Needs refactoring" - Current code has issues to address
|
||||
- "External dependencies" - Relies on specific libraries or services
|
||||
- "Legacy constraints" - Working with older code or technologies
|
||||
- "Not sure" - Help me figure this out
|
||||
- "Other" - Something else
|
||||
|
||||
If "Established patterns" or "External dependencies" selected, ask follow-up:
|
||||
"Which files or systems should I examine for context?"
|
||||
|
||||
If "Not sure" selected, offer to scan codebase:
|
||||
"I can scan the codebase to identify patterns and dependencies. Proceed?"
|
||||
</gather_codebase_context>
|
||||
|
||||
<decision_gate>
|
||||
**Decision gate (MUST have all 3 options):**
|
||||
|
||||
```
|
||||
Header: "Context Gathering"
|
||||
Options:
|
||||
1. "Create CONTEXT.md" - I have enough context, proceed
|
||||
2. "Ask more questions" - I want to clarify how something should work
|
||||
3. "Let me add context" - I have information that affects implementation
|
||||
```
|
||||
|
||||
If "Ask more questions" → generate 2-3 CLARIFYING follow-ups (never suggest additions) → return to gate.
|
||||
If "Ask more questions" → dig into areas that seem unclear → return to gate.
|
||||
If "Let me add context" → receive input → return to gate.
|
||||
Loop until "Create CONTEXT.md" selected.
|
||||
|
||||
SCOPE CREEP PREVENTION:
|
||||
- Follow-up questions must clarify roadmap items, not expand them
|
||||
- If user adds scope during "Let me add context", note it for ROADMAP update instead
|
||||
- CONTEXT.md documents HOW to implement roadmap scope, not WHAT additional things to add
|
||||
</decision_gate>
|
||||
|
||||
</step>
|
||||
|
||||
<step name="write_context">
|
||||
Create CONTEXT.md using accumulated context from intake flow.
|
||||
Create CONTEXT.md capturing the user's vision.
|
||||
|
||||
Use template from ~/.claude/get-shit-done/templates/context.md
|
||||
|
||||
@@ -214,41 +166,39 @@ Create it: `.planning/phases/${PHASE}-${SLUG}/`
|
||||
|
||||
Use roadmap phase name for slug (lowercase, hyphens).
|
||||
|
||||
Populate template sections:
|
||||
Populate template sections with VISION context (not technical analysis):
|
||||
|
||||
- `<phase_objectives>`: From "what" analysis and questions
|
||||
- `<constraints>`: From "how" analysis and questions
|
||||
- `<risks>`: From "concerns" analysis and questions
|
||||
- `<success_indicators>`: From "done when" analysis and questions
|
||||
- `<codebase_context>`: From codebase questions and optional scanning
|
||||
- `<decisions_needed>`: From questions that revealed choices to make
|
||||
- `<notes>`: Any additional context gathered
|
||||
- `<vision>`: How the user imagines this working
|
||||
- `<essential>`: What must be nailed in this phase
|
||||
- `<boundaries>`: What's explicitly out of scope
|
||||
- `<specifics>`: Any particular look/feel/behavior mentioned
|
||||
- `<notes>`: Any other context gathered
|
||||
|
||||
Do NOT populate with your own technical analysis. That comes during research/planning.
|
||||
|
||||
Write file.
|
||||
</step>
|
||||
|
||||
<step name="confirm_creation">
|
||||
Present CONTEXT.md to user:
|
||||
Present CONTEXT.md summary:
|
||||
|
||||
```
|
||||
Created: .planning/phases/${PHASE}-${SLUG}/${PHASE}-CONTEXT.md
|
||||
|
||||
## Phase Objectives
|
||||
[summary of objectives]
|
||||
## Vision
|
||||
[How they imagine it working]
|
||||
|
||||
## Key Constraints
|
||||
[summary of constraints]
|
||||
## Essential
|
||||
[What must be nailed]
|
||||
|
||||
## Risks to Watch
|
||||
[summary of risks]
|
||||
|
||||
## Success Indicators
|
||||
[summary of success criteria]
|
||||
## Boundaries
|
||||
[What's out of scope]
|
||||
|
||||
What's next?
|
||||
1. Plan this phase (/gsd:plan-phase ${PHASE}) - CONTEXT.md will be loaded automatically
|
||||
2. Review/edit CONTEXT.md - Make adjustments before planning
|
||||
3. Done for now
|
||||
1. Research this phase (/gsd:research-phase ${PHASE}) - Investigate codebase, identify patterns and risks
|
||||
2. Plan this phase (/gsd:plan-phase ${PHASE}) - Skip research, go straight to planning
|
||||
3. Review/edit CONTEXT.md - Make adjustments
|
||||
4. Done for now
|
||||
```
|
||||
|
||||
</step>
|
||||
@@ -257,9 +207,9 @@ What's next?
|
||||
|
||||
<success_criteria>
|
||||
|
||||
- Phase number validated against roadmap
|
||||
- Context gathered through adaptive questioning
|
||||
- All five core areas addressed: objectives, constraints, risks, success indicators, codebase context
|
||||
- CONTEXT.md created in phase directory using template
|
||||
- User knows next steps (typically: plan the phase)
|
||||
</success_criteria>
|
||||
- Phase validated against roadmap
|
||||
- Vision gathered through collaborative thinking (not interrogation)
|
||||
- User's imagination captured: how it works, what's essential, what's out of scope
|
||||
- CONTEXT.md created in phase directory
|
||||
- User knows next steps (typically: research or plan the phase)
|
||||
</success_criteria>
|
||||
|
||||
Reference in New Issue
Block a user