diff --git a/commands/gsd/create-roadmap.md b/commands/gsd/create-roadmap.md index 218a7391a..38bf97d3a 100644 --- a/commands/gsd/create-roadmap.md +++ b/commands/gsd/create-roadmap.md @@ -24,6 +24,7 @@ Roadmaps define what work happens in what order. Run after /gsd:new-project. @.planning/PROJECT.md @.planning/config.json +@.planning/research/SUMMARY.md (if exists) diff --git a/commands/gsd/new-project.md b/commands/gsd/new-project.md index 5221d5a24..56f7631be 100644 --- a/commands/gsd/new-project.md +++ b/commands/gsd/new-project.md @@ -303,7 +303,15 @@ Project initialized: ## ▶ Next Up -**[Project Name]** — create roadmap +Choose your path: + +**Option A: Research first** (recommended for new domains) +Research the ecosystem before creating roadmap. Discovers standard stacks, expected features, architecture patterns, and common pitfalls. + +`/gsd:research-project` + +**Option B: Create roadmap directly** (for familiar domains) +Skip research if you know this domain well or have a clear spec. `/gsd:create-roadmap` diff --git a/commands/gsd/research-project.md b/commands/gsd/research-project.md new file mode 100644 index 000000000..d4fc211c7 --- /dev/null +++ b/commands/gsd/research-project.md @@ -0,0 +1,134 @@ +--- +name: gsd:research-project +description: Research domain ecosystem before creating roadmap +allowed-tools: + - Read + - Write + - Bash + - Glob + - Grep + - Task + - WebFetch + - WebSearch + - mcp__context7__* +--- + + +Comprehensive domain research before roadmap creation. + +Answers the questions that inform quality roadmaps: +- What's the standard stack for this type of product? +- What features do users expect? +- How are these systems typically structured? +- What do projects in this domain commonly get wrong? + +Run after `/gsd:new-project`, before `/gsd:create-roadmap`. + +Output: `.planning/research/` folder with ecosystem knowledge. + + + +@~/.claude/get-shit-done/workflows/research-project.md +@~/.claude/get-shit-done/templates/research-project/SUMMARY.md +@~/.claude/get-shit-done/templates/research-project/STACK.md +@~/.claude/get-shit-done/templates/research-project/FEATURES.md +@~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md +@~/.claude/get-shit-done/templates/research-project/PITFALLS.md + + + +@.planning/PROJECT.md +@.planning/config.json (if exists) + + + + + +```bash +# Verify project exists +[ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md found. Run /gsd:new-project first."; exit 1; } + +# Check if roadmap already exists +[ -f .planning/ROADMAP.md ] && echo "WARNING: ROADMAP.md already exists. Research is typically done before roadmap creation." + +# Check if research already exists +[ -d .planning/research ] && echo "RESEARCH_EXISTS" || echo "NO_RESEARCH" +``` + + + +**If RESEARCH_EXISTS:** + +Use AskUserQuestion: +- header: "Research exists" +- question: "Research folder already exists. What would you like to do?" +- options: + - "View existing" — Show current research summary + - "Replace" — Run fresh research (will overwrite) + - "Cancel" — Keep existing research + +If "View existing": Read and display `.planning/research/SUMMARY.md`, then exit +If "Cancel": Exit +If "Replace": Continue with workflow + + + +Follow the research-project.md workflow: +- Analyze PROJECT.md to determine domain +- Identify research questions based on domain +- Spawn parallel research agents +- Aggregate results into `.planning/research/` +- Create SUMMARY.md with roadmap implications + + + +``` +Research complete: + +- Summary: .planning/research/SUMMARY.md +- Stack: .planning/research/STACK.md +- Features: .planning/research/FEATURES.md +- Architecture: .planning/research/ARCHITECTURE.md +- Pitfalls: .planning/research/PITFALLS.md + +--- + +## ▶ Next Up + +**Create roadmap** — informed by research + +`/gsd:create-roadmap` + +`/clear` first → fresh context window + +--- +``` + + + + + +**Use research-project for:** +- Greenfield projects in established domains (community, e-commerce, SaaS) +- When "what features should exist" is partially unknown +- Complex integrations requiring ecosystem knowledge +- Domains where best practices matter (auth, payments, real-time) +- Any project where you'd Google "how to build a [X]" before starting + +**Skip research-project for:** +- Well-defined specs ("build exactly this API") +- Simple tools/utilities with clear scope +- Adding features to existing codebases (use research-phase instead) +- Domains you've built in many times before + + + +- [ ] PROJECT.md validated +- [ ] Domain identified from project description +- [ ] Research questions determined and approved +- [ ] Parallel research agents spawned +- [ ] All research documents created in .planning/research/ +- [ ] SUMMARY.md includes roadmap implications +- [ ] Research committed to git +- [ ] User knows next step (create-roadmap) + diff --git a/get-shit-done/templates/research-project/ARCHITECTURE.md b/get-shit-done/templates/research-project/ARCHITECTURE.md new file mode 100644 index 000000000..19d49dd82 --- /dev/null +++ b/get-shit-done/templates/research-project/ARCHITECTURE.md @@ -0,0 +1,204 @@ +# Architecture Research Template + +Template for `.planning/research/ARCHITECTURE.md` — system structure patterns for the project domain. + + + + + +**System Overview:** +- Use ASCII diagrams for clarity +- Show major components and their relationships +- Don't over-detail — this is conceptual, not implementation + +**Project Structure:** +- Be specific about folder organization +- Explain the rationale for grouping +- Match conventions of the chosen stack + +**Patterns:** +- Include code examples where helpful +- Explain trade-offs honestly +- Note when patterns are overkill for small projects + +**Scaling Considerations:** +- Be realistic — most projects don't need to scale to millions +- Focus on "what breaks first" not theoretical limits +- Avoid premature optimization recommendations + +**Anti-Patterns:** +- Specific to this domain +- Include what to do instead +- Helps prevent common mistakes during implementation + + diff --git a/get-shit-done/templates/research-project/FEATURES.md b/get-shit-done/templates/research-project/FEATURES.md new file mode 100644 index 000000000..431c52ba5 --- /dev/null +++ b/get-shit-done/templates/research-project/FEATURES.md @@ -0,0 +1,147 @@ +# Features Research Template + +Template for `.planning/research/FEATURES.md` — feature landscape for the project domain. + + + + + +**Table Stakes:** +- These are non-negotiable for launch +- Users don't give credit for having them, but penalize for missing them +- Example: A community platform without user profiles is broken + +**Differentiators:** +- These are where you compete +- Should align with the Core Value from PROJECT.md +- Don't try to differentiate on everything + +**Anti-Features:** +- Prevent scope creep by documenting what seems good but isn't +- Include the alternative approach +- Example: "Real-time everything" often creates complexity without value + +**Feature Dependencies:** +- Critical for roadmap phase ordering +- If A requires B, B must be in an earlier phase +- Conflicts inform what NOT to combine in same phase + +**MVP Definition:** +- Be ruthless about what's truly minimum +- "Nice to have" is not MVP +- Launch with less, validate, then expand + + diff --git a/get-shit-done/templates/research-project/PITFALLS.md b/get-shit-done/templates/research-project/PITFALLS.md new file mode 100644 index 000000000..9d66e6a6c --- /dev/null +++ b/get-shit-done/templates/research-project/PITFALLS.md @@ -0,0 +1,200 @@ +# Pitfalls Research Template + +Template for `.planning/research/PITFALLS.md` — common mistakes to avoid in the project domain. + + + + + +**Critical Pitfalls:** +- Focus on domain-specific issues, not generic mistakes +- Include warning signs — early detection prevents disasters +- Link to specific phases — makes pitfalls actionable + +**Technical Debt:** +- Be realistic — some shortcuts are acceptable +- Note when shortcuts are "never acceptable" vs. "only in MVP" +- Include the long-term cost to inform tradeoff decisions + +**Performance Traps:** +- Include scale thresholds ("breaks at 10k users") +- Focus on what's relevant for this project's expected scale +- Don't over-engineer for hypothetical scale + +**Security Mistakes:** +- Beyond OWASP basics — domain-specific issues +- Example: Community platforms have different security concerns than e-commerce +- Include risk level to prioritize + +**"Looks Done But Isn't":** +- Checklist format for verification during execution +- Common in demos vs. production +- Prevents "it works on my machine" issues + +**Pitfall-to-Phase Mapping:** +- Critical for roadmap creation +- Each pitfall should map to a phase that prevents it +- Informs phase ordering and success criteria + + diff --git a/get-shit-done/templates/research-project/STACK.md b/get-shit-done/templates/research-project/STACK.md new file mode 100644 index 000000000..cdd663ba2 --- /dev/null +++ b/get-shit-done/templates/research-project/STACK.md @@ -0,0 +1,120 @@ +# Stack Research Template + +Template for `.planning/research/STACK.md` — recommended technologies for the project domain. + + + + + +**Core Technologies:** +- Include specific version numbers +- Explain why this is the standard choice, not just what it does +- Focus on technologies that affect architecture decisions + +**Supporting Libraries:** +- Include libraries commonly needed for this domain +- Note when each is needed (not all projects need all libraries) + +**Alternatives:** +- Don't just dismiss alternatives +- Explain when alternatives make sense +- Helps user make informed decisions if they disagree + +**What NOT to Use:** +- Actively warn against outdated or problematic choices +- Explain the specific problem, not just "it's old" +- Provide the recommended alternative + +**Version Compatibility:** +- Note any known compatibility issues +- Critical for avoiding debugging time later + + diff --git a/get-shit-done/templates/research-project/SUMMARY.md b/get-shit-done/templates/research-project/SUMMARY.md new file mode 100644 index 000000000..c336b8a8e --- /dev/null +++ b/get-shit-done/templates/research-project/SUMMARY.md @@ -0,0 +1,170 @@ +# Research Summary Template + +Template for `.planning/research/SUMMARY.md` — executive summary of project research with roadmap implications. + + + + + +**Executive Summary:** +- Write for someone who will only read this section +- Include the key recommendation and main risk +- 2-3 paragraphs maximum + +**Key Findings:** +- Summarize, don't duplicate full documents +- Link to detailed docs (STACK.md, FEATURES.md, etc.) +- Focus on what matters for roadmap decisions + +**Implications for Roadmap:** +- This is the most important section +- Directly informs create-roadmap workflow +- Be explicit about phase suggestions and rationale +- Include research flags for each suggested phase + +**Confidence Assessment:** +- Be honest about uncertainty +- Note gaps that need resolution during planning +- HIGH = verified with official sources +- MEDIUM = community consensus, multiple sources agree +- LOW = single source or inference + +**Integration with create-roadmap:** +- This file is loaded as @context in create-roadmap +- Phase suggestions here become starting point for roadmap +- Research flags inform detect_research_needs step + + diff --git a/get-shit-done/workflows/create-roadmap.md b/get-shit-done/workflows/create-roadmap.md index 33bbc8feb..bcfc06d74 100644 --- a/get-shit-done/workflows/create-roadmap.md +++ b/get-shit-done/workflows/create-roadmap.md @@ -9,7 +9,8 @@ that delivers value. The roadmap provides structure, not detailed tasks. 1. ~/.claude/get-shit-done/templates/roadmap.md 2. ~/.claude/get-shit-done/templates/state.md 3. Read `.planning/PROJECT.md` if it exists - +4. Read `.planning/research/SUMMARY.md` if it exists + @@ -27,6 +28,39 @@ If proceeding without brief, gather quick context: - What's the rough scope? + +Check for project research: + +```bash +[ -d .planning/research ] && echo "RESEARCH_EXISTS" || echo "NO_RESEARCH" +``` + +**If RESEARCH_EXISTS:** + +Read `.planning/research/SUMMARY.md` and extract: +- Suggested phase structure from "Implications for Roadmap" section +- Research flags for each suggested phase +- Key findings that inform phase ordering + +``` +Research found. Using findings to inform roadmap: + +Suggested phases from research: +1. [Phase from research] — [rationale] +2. [Phase from research] — [rationale] +3. [Phase from research] — [rationale] + +Research confidence: [HIGH/MEDIUM/LOW] + +Proceeding with research-informed phase identification... +``` + +**If NO_RESEARCH:** + +Continue without research context. Phase identification will rely on PROJECT.md and domain expertise only. + +**Note:** Research is optional. Roadmap can be created without it, but research-informed roadmaps tend to have better phase structure and fewer surprises. + Scan for available domain expertise: @@ -83,6 +117,15 @@ Select (comma-separate for multiple): Derive phases from the actual work needed. +**If research exists (.planning/research/SUMMARY.md):** +- Start with suggested phases from research +- Validate against PROJECT.md requirements +- Adjust based on domain expertise (if any) +- Research already identified dependencies and pitfalls — use them + +**If no research:** +- Derive phases from PROJECT.md and domain expertise only + **Check depth setting:** ```bash cat .planning/config.json 2>/dev/null | grep depth diff --git a/get-shit-done/workflows/research-project.md b/get-shit-done/workflows/research-project.md new file mode 100644 index 000000000..ec159af9d --- /dev/null +++ b/get-shit-done/workflows/research-project.md @@ -0,0 +1,315 @@ + +Comprehensive domain research before roadmap creation. + +Answers the questions that inform quality roadmaps: +- What's the standard stack for this type of product? +- What features do users expect? +- How are these systems typically structured? +- What do projects in this domain commonly get wrong? + +This research shapes the roadmap. Without it, phases are guesses based on intuition. +With it, phases reflect how experts actually build these systems. + + + +**Use for:** +- Greenfield projects in established domains +- When "what features should exist" is partially unknown +- Complex integrations requiring ecosystem knowledge +- Any project where you'd research before starting + +**Skip for:** +- Well-defined specs with clear scope +- Simple utilities +- Brownfield features (use research-phase instead) + + + +**Read these files NOW:** + +1. ~/.claude/get-shit-done/templates/research-project/SUMMARY.md +2. ~/.claude/get-shit-done/templates/research-project/STACK.md +3. ~/.claude/get-shit-done/templates/research-project/FEATURES.md +4. ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md +5. ~/.claude/get-shit-done/templates/research-project/PITFALLS.md +6. .planning/PROJECT.md + + + + + +Read PROJECT.md and extract: + +1. **Domain**: What type of product is this? + - Community platform, e-commerce, SaaS tool, developer tool, mobile app, game, etc. + +2. **Stated stack**: Did user specify technologies? + - If yes: research how to use that stack for this domain + - If no: research what stack is standard for this domain + +3. **Core value**: What's the one thing that must work? + +4. **Requirements**: What did user explicitly request? + +5. **Constraints**: Any limitations on choices? + +Present analysis: +``` +Domain analysis: + +- Type: [inferred domain] +- Stack: [stated or "to be determined"] +- Core: [core value from PROJECT.md] +- Key requirements: [list] + +Does this look right? (yes / adjust) +``` + + + +Based on domain, generate 4 research questions: + +| Dimension | Question Template | +|-----------|-------------------| +| Stack | "What's the standard 2025 stack for building [domain]?" | +| Features | "What features do [domain] products have? What's table stakes vs. differentiating?" | +| Architecture | "How are [domain] systems typically structured? What are the major components?" | +| Pitfalls | "What do [domain] projects commonly get wrong? What are the critical mistakes?" | + +**Customize questions based on project specifics:** + +- If stack is stated: "How do you build [domain] with [stack]? What supporting libraries?" +- If specific features mentioned: "How do experts implement [feature] in [domain]?" +- If constraints exist: "What's the best approach for [domain] given [constraint]?" + +Present questions for approval: +``` +Research questions: + +1. Stack: [question] +2. Features: [question] +3. Architecture: [question] +4. Pitfalls: [question] + +Proceed with these questions? (yes / adjust) +``` + + + +Spawn 4 parallel Task agents using subagent_type: "general-purpose". + +**Agent prompt template:** + +``` +Research question: [question] + +Domain: [domain from analyze_project] +Project context: [summary from PROJECT.md] + +Instructions: +1. Use Context7 to find relevant library documentation +2. Use WebSearch to find current best practices (2024-2025) +3. Cross-verify all WebSearch findings with authoritative sources +4. Focus on actionable recommendations, not theoretical overview + +Output format: +- Direct answer to the question +- Specific recommendations with rationale +- Code examples where relevant +- Sources with confidence levels (HIGH/MEDIUM/LOW) + +Constraints: +- Prefer official docs and Context7 over blog posts +- Mark anything unverified as LOW confidence +- Be specific: versions, library names, patterns +``` + +**Spawn all 4 agents in parallel:** + +``` +Spawning research agents: + +1. Stack research → [running] +2. Features research → [running] +3. Architecture research → [running] +4. Pitfalls research → [running] + +This may take 2-3 minutes... +``` + +Wait for all agents to complete. + + + +Create `.planning/research/` directory: + +```bash +mkdir -p .planning/research +``` + +**For each research dimension, create document using templates:** + +1. **STACK.md** — From stack agent results + - Use template from templates/research-project/STACK.md + - Populate with agent findings + - Include version numbers and rationale + +2. **FEATURES.md** — From features agent results + - Use template from templates/research-project/FEATURES.md + - Categorize as table stakes / differentiators / anti-features + - Note complexity and dependencies + +3. **ARCHITECTURE.md** — From architecture agent results + - Use template from templates/research-project/ARCHITECTURE.md + - Include system diagrams (ASCII) + - Document component responsibilities + +4. **PITFALLS.md** — From pitfalls agent results + - Use template from templates/research-project/PITFALLS.md + - Include warning signs and prevention + - Note which phase should address each pitfall + +5. **SUMMARY.md** — Synthesize all results + - Use template from templates/research-project/SUMMARY.md + - Executive summary of all findings + - **Critical: Include "Implications for Roadmap" section** + - Suggest phase structure based on research + + + +In SUMMARY.md, include explicit roadmap guidance: + +```markdown +## Implications for Roadmap + +Based on research, suggested phase structure: + +1. **[Phase name]** — [rationale from research] + - Addresses: [features from FEATURES.md] + - Avoids: [pitfall from PITFALLS.md] + +2. **[Phase name]** — [rationale from research] + - Implements: [architecture component from ARCHITECTURE.md] + - Uses: [stack element from STACK.md] + +3. **[Phase name]** — [rationale from research] + ... + +**Phase ordering rationale:** +- [Why this order based on dependencies discovered] +- [Why this grouping based on architecture patterns] + +**Research flags for phases:** +- Phase [X]: Likely needs deeper research (reason) +- Phase [Y]: Standard patterns, unlikely to need research +``` + +This section directly feeds into create-roadmap. + + + +Add confidence section to SUMMARY.md: + +```markdown +## Confidence Assessment + +| Area | Confidence | Notes | +|------|------------|-------| +| Stack | [HIGH/MEDIUM/LOW] | [reason - e.g., "verified with Context7"] | +| Features | [HIGH/MEDIUM/LOW] | [reason - e.g., "based on competitor analysis"] | +| Architecture | [HIGH/MEDIUM/LOW] | [reason - e.g., "standard patterns, well-documented"] | +| Pitfalls | [HIGH/MEDIUM/LOW] | [reason - e.g., "from post-mortems and community"] | + +**Overall confidence:** [HIGH/MEDIUM/LOW] + +**Gaps to address during planning:** +- [Any areas where research was inconclusive] +- [Topics that need phase-specific research later] +``` + + + +Commit research: + +```bash +git add .planning/research/ +git commit -m "$(cat <<'EOF' +docs: research [domain] ecosystem + +Researched stack, features, architecture, and pitfalls for [project name]. + +Key findings: +- Stack: [one-liner] +- Architecture: [one-liner] +- Critical pitfall: [one-liner] + +Ready for roadmap creation. +EOF +)" +``` + + + +``` +Research complete: + +## Files Created + +- .planning/research/SUMMARY.md — Executive summary + roadmap implications +- .planning/research/STACK.md — Recommended technologies +- .planning/research/FEATURES.md — Feature landscape +- .planning/research/ARCHITECTURE.md — System structure patterns +- .planning/research/PITFALLS.md — Common mistakes to avoid + +## Key Findings + +**Stack:** [one-liner from STACK.md] +**Architecture:** [one-liner from ARCHITECTURE.md] +**Critical pitfall:** [most important from PITFALLS.md] + +## Suggested Phases + +[List from SUMMARY.md Implications for Roadmap section] + +--- + +## ▶ Next Up + +**Create roadmap** — using research findings + +`/gsd:create-roadmap` + +`/clear` first → fresh context window + +--- +``` + + + + + +**Good research answers:** +- What specific libraries/versions to use (not just "use React") +- What features users expect (not just "add features") +- How components connect (not just "it has a backend") +- What specific mistakes to avoid (not just "be careful") + +**Research is ready when:** +- Each document has specific, actionable content +- Sources are cited with confidence levels +- Roadmap implications are explicit +- A developer could start planning immediately + + + +- [ ] PROJECT.md analyzed, domain identified +- [ ] Research questions customized and approved +- [ ] 4 parallel agents spawned and completed +- [ ] STACK.md created with specific recommendations +- [ ] FEATURES.md created with prioritized features +- [ ] ARCHITECTURE.md created with system structure +- [ ] PITFALLS.md created with prevention strategies +- [ ] SUMMARY.md created with roadmap implications +- [ ] Confidence assessment included +- [ ] Research committed to git +