---
name: gsd-discuss-phase
description: Gather phase context through adaptive questioning before planning
allowed-tools: Read, Edit, Bash
argument-hint: '[phase]'
---
Extract implementation decisions that downstream agents need — researcher and planner will use CONTEXT.md to know what to investigate and what choices are locked.
**How it works:**
1. Analyze the phase to identify gray areas (UI, UX, behavior, etc.)
2. Present gray areas — user selects which to discuss
3. Deep-dive each selected area until satisfied
4. Create CONTEXT.md with decisions that guide research and planning
**Output:** `{phase}-CONTEXT.md` — decisions clear enough that downstream agents can act without asking the user again
@.github/get-shit-done/workflows/discuss-phase.md
@.github/get-shit-done/templates/context.md
Phase number: $ARGUMENTS (required)
**Load project state:**
@.planning/STATE.md
**Load roadmap:**
@.planning/ROADMAP.md
Validate phase number (error if missing or not in roadmap).
1. Check if phase argument provided
2. Parse phase number (handle both integer and decimal: "5", "5.1")
3. Load ROADMAP.md
4. Search for phase in roadmap phases list
5. If not found: display error with available phases, exit
6. Extract phase goal and description
Check if CONTEXT.md already exists for this phase.
1. Find phase directory: .planning/phases/{phase}-*/
2. Look for {phase}-*-CONTEXT.md files
3. If exists:
- Display current content
- Offer: "Update / View only / Skip"
- If Update: proceed with discussion
- If View: display full file and exit
- If Skip: exit
4. If doesn't exist: proceed to analysis
Analyze phase goal to identify domain-specific gray areas.
**Domain-aware analysis:**
Gray areas depend on what's being built. Based on phase goal, identify:
- Something users SEE → layout, density, interactions, states, visual hierarchy
- Something users CALL → responses, errors, auth, versioning, rate limiting
- Something users RUN → output format, flags, modes, error handling
- Something users READ → structure, tone, depth, flow
- Something being ORGANIZED → criteria, grouping, naming, exceptions
Generate 3-4 **phase-specific** gray areas, not generic categories.
**Examples:**
- Phase: "Build task dashboard" → Gray areas: "Task grouping", "Urgency indicators", "Empty states", "Interaction feedback"
- Phase: "Add authentication" → Gray areas: "Session duration", "Password requirements", "2FA approach", "Error messaging"
- Phase: "Create reports" → Gray areas: "Report formatting", "Date range defaults", "Export formats", "Performance data depth"
**Critical: Scope guardrail**
- Phase boundary from ROADMAP.md is FIXED
- Discussion clarifies HOW to implement, not WHETHER to add more
- If user suggests new capabilities: "That's its own phase. I'll note it for later."
- Capture deferred ideas in separate section — don't lose them, don't act on them
Present identified gray areas to user for selection.
1. List all generated gray areas (3-4)
2. For each: brief description of what decisions need to be made
3. Ask: "Which areas do you want to discuss? (select 1 or more)"
4. NO skip/none option — at least one area must be discussed
5. User can select multiple or all
6. Record selected areas for deep-dive
For each selected area, conduct adaptive questioning.
**Probing approach:**
1. Start with 4 context-specific questions for the area
2. Listen to responses, ask follow-up based on answers
3. After 4 questions: "More questions about [area], or move to next?"
4. If more: ask 4 more, check again
5. If next: move to next selected area
6. After all areas: "Ready to create context?"
**Question quality:**
- Ask about SPECIFIC implementation choices, not general preferences
- Focus on user-observable behavior, not technical internals
- Avoid "how should we..." — instead "what do you expect when..."
- Dig into edge cases: "What if X happens? What should user see?"
**Do NOT ask about (Claude handles these):**
- Technical implementation details
- Architecture choices (libraries, patterns)
- Performance optimization strategies
- Testing approaches
- Scope expansion beyond phase boundary
Synthesize discussion into CONTEXT.md structure.
Use template from templates/context.md as base structure.
**Sections to populate:**
1. **Essential Features**
- Must-have features user specified
- Core functionality that defines phase completion
- User-observable outcomes that MUST exist
2. **Technical Boundaries**
- Locked decisions: libraries, patterns, architecture
- Constraints from discussion (e.g., "must use JWT", "no external APIs")
- Technology choices user specified
3. **Scope Limits**
- Explicitly out of scope items
- Features deferred to future phases
- Boundaries user confirmed
4. **Open Questions**
- Things to investigate during research
- Unclear areas that need research findings
- Technical unknowns that research should answer
**Synthesis rules:**
- Write in clear, actionable language
- Use bullet points, not paragraphs
- Be specific: "Use JWT with 1-hour expiration" not "Handle authentication"
- Capture decisions, not discussion history
- Each item should guide downstream agents without additional user input
Create .planning/phases/{phase}-*/{phase}-*-CONTEXT.md
**Frontmatter:**
```yaml
---
phase: {phase}
discussed: {ISO timestamp}
areas: [{list of discussed areas}]
decisions_count: {number of decisions captured}
---
```
**Body:** Use synthesized sections from previous step
**File naming:**
- Find next available number: {phase}-{NN}-CONTEXT.md
- Typically: {phase}-01-CONTEXT.md (first artifact in phase)
- If multiple discussions: increment number
**Example path:**
`.planning/phases/05-authentication/05-01-CONTEXT.md`
Commit the CONTEXT.md file.
```bash
git add .planning/phases/{phase}-*/{phase}-*-CONTEXT.md
git commit -m "docs(${phase}): capture context from discussion
Areas discussed: {list areas}
Decisions captured: {count}
"
```
Present next steps based on phase state.
**If phase has no RESEARCH.md:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONTEXT CAPTURED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Discussed: {areas}
Decisions: {count} captured in CONTEXT.md
───────────────────────────────────────────────────────────────
## ▶ Next Up
**Research phase** — investigate open questions and validate approach
/gsd-research-phase {phase}
/clear first → fresh context window
───────────────────────────────────────────────────────────────
**Also available:**
- /gsd-plan-phase {phase} — skip research, plan directly (if confident)
───────────────────────────────────────────────────────────────
```
**If phase already has RESEARCH.md:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONTEXT UPDATED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Updated decisions based on discussion.
Research may need refresh if decisions changed significantly.
───────────────────────────────────────────────────────────────
## ▶ Next Up
**Plan phase** — create execution plans with updated context
/gsd-plan-phase {phase}
/clear first → fresh context window
───────────────────────────────────────────────────────────────
**Also available:**
- /gsd-research-phase {phase} --refresh — re-research with new context
- cat .planning/phases/{phase_dir}/*-CONTEXT.md — review decisions
───────────────────────────────────────────────────────────────
```
- Don't ask about technical implementation (Claude decides)
- Don't let scope creep — phase boundary is fixed
- Don't ask generic questions — phase-specific gray areas
- Don't accept "whatever you think" — push for concrete decisions
- Don't write vague context — be specific and actionable
- [ ] Phase validated and exists in roadmap
- [ ] Existing CONTEXT.md handling (update/view/skip)
- [ ] Gray areas identified through intelligent analysis
- [ ] User chose which areas to discuss (at least one)
- [ ] Each selected area explored until satisfied
- [ ] Scope creep redirected to deferred ideas
- [ ] CONTEXT.md created with specific, actionable decisions
- [ ] File committed to git
- [ ] User knows next steps (research or plan)