From bcc58add6ad08c0e690d486cd2f069d7bcf16120 Mon Sep 17 00:00:00 2001 From: Lex Christopherson Date: Mon, 15 Dec 2025 17:49:28 -0600 Subject: [PATCH] Prevent scope creep in discuss-phase command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add explicit guardrails to ensure context gathering questions clarify HOW to implement roadmap scope rather than suggesting WHAT to add. Questions must never expand scope - if user adds scope, direct them to update ROADMAP first instead. Changes: - Template: Replace "Secondary goals" with "Clarifications" (HOW, not WHAT ELSE) - Workflow: Add CRITICAL block forbidding scope-expanding questions - Workflow: Update decision gate to emphasize clarification over expansion - Command: Add NO SCOPE CREEP rules 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .gitignore | 1 + commands/gsd/discuss-phase.md | 7 +++++- get-shit-done/templates/context.md | 14 +++++------ get-shit-done/workflows/discuss-phase.md | 31 ++++++++++++++++-------- 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 43c50eb0e..5f932f407 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ package-lock.json .DS_Store +TO-DOS.md \ No newline at end of file diff --git a/commands/gsd/discuss-phase.md b/commands/gsd/discuss-phase.md index 59acc2ed0..d173cdb80 100644 --- a/commands/gsd/discuss-phase.md +++ b/commands/gsd/discuss-phase.md @@ -32,10 +32,15 @@ Phase number: $ARGUMENTS (required) 4. Follow discuss-phase.md workflow: - Present initial context from roadmap - Analyze gaps in: objectives, constraints, risks, success indicators, codebase context - - Ask 2-4 questions about genuine gaps (skip what roadmap provides) + - Ask 2-4 CLARIFYING questions (never suggest additions or expansions) - Present decision gate (ready / ask more / let me add context) - Create CONTEXT.md using template 5. Offer next steps (typically: 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 diff --git a/get-shit-done/templates/context.md b/get-shit-done/templates/context.md index bf08cdb55..cfb1909a6 100644 --- a/get-shit-done/templates/context.md +++ b/get-shit-done/templates/context.md @@ -20,10 +20,10 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - phase context docum [Clear, specific description of what this phase delivers] **Primary goal:** -[Main objective - what ships at the end] +[Main objective from roadmap - what ships at the end] -**Secondary goals:** -[Supporting objectives or nice-to-haves] +**Clarifications:** +[Any clarified details about HOW the primary goal works - not additional features] **Out of scope:** [What this phase explicitly does NOT include - prevents scope creep] @@ -178,10 +178,10 @@ Implement JWT-based authentication with secure session management. **Primary goal:** Users can register, login, logout with JWT tokens stored in httpOnly cookies. Protected routes verify authentication. -**Secondary goals:** -- Password reset flow via email -- Remember me functionality -- Session expiry and refresh +**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 **Out of scope:** - OAuth providers (Google, GitHub) - deferred to Phase 4 diff --git a/get-shit-done/workflows/discuss-phase.md b/get-shit-done/workflows/discuss-phase.md index fccdae495..cf97a33a5 100644 --- a/get-shit-done/workflows/discuss-phase.md +++ b/get-shit-done/workflows/discuss-phase.md @@ -99,17 +99,23 @@ Identify gaps where additional clarity would improve planning quality. Ask 2-4 questions based on actual gaps. Use AskUserQuestion with structured options. +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 + **If objectives are vague:** header: "Phase Objectives" -question: "What should Phase ${PHASE} accomplish?" +question: "The roadmap says [X]. How should this work specifically?" options: -- "Create new functionality" - Build something that doesn't exist yet -- "Modify existing system" - Change or enhance what's already there -- "Fix or refactor" - Address bugs or improve code quality -- "Integrate external service" - Connect to API, library, or third-party -- "Infrastructure or setup" - Database, deployment, configuration -- "Other" - Something different +- "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 **If constraints are unclear:** header: "Constraints" @@ -180,13 +186,18 @@ If "Not sure" selected, offer to scan codebase: Header: "Context Gathering" Options: 1. "Create CONTEXT.md" - I have enough context, proceed - 2. "Ask more questions" - There are details I want to clarify - 3. "Let me add context" - I want to provide additional information + 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 contextual follow-ups based on accumulated context → return to gate. +If "Ask more questions" → generate 2-3 CLARIFYING follow-ups (never suggest additions) → 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