13 KiB
Plan Feature
Add a new feature to an existing project by generating new phases and integrating them into IMPLEMENTATION_PHASES.md and SESSION.md.
Your Task
Follow these steps to plan and integrate a new feature into an existing project.
1. Check Prerequisites
Check that planning docs exist:
ls SESSION.md docs/IMPLEMENTATION_PHASES.md
If SESSION.md doesn't exist:
- Output: "❌ No SESSION.md found. This command is for existing projects."
- Suggest: "For new projects, use /plan-project instead."
- Stop
If IMPLEMENTATION_PHASES.md doesn't exist:
- Output: "❌ No IMPLEMENTATION_PHASES.md found."
- Suggest: "Create baseline planning with /plan-project first."
- Stop
Read SESSION.md to extract:
- Current phase number and name
- Current phase status (🔄 in progress, ✅ complete, ⏸️ pending)
- Current stage (Implementation/Verification/Debugging)
Read IMPLEMENTATION_PHASES.md to extract:
- All existing phases
- Last phase number
- Project tech stack
2. Check Current Phase Status
If current phase is in progress (🔄):
Output warning:
⚠️ WARNING: Phase [N] - [Name] is in progress.
Current phase status: [Stage]
Progress: [Show task completion from SESSION.md]
Adding a new feature now may cause confusion. Options:
1. Finish current phase first (recommended)
2. Add feature anyway (will append after current phases)
3. Cancel and come back later
Your choice (1/2/3):
If choice 1 (Finish current phase):
- Output: "Complete Phase [N] first, then run /plan-feature again."
- Stop
If choice 2 (Add anyway):
- Output: "⚠️ Adding feature. New phases will start after Phase [last phase number]."
- Continue
If choice 3 (Cancel):
- Output: "Cancelled. Run /plan-feature when current phase is complete."
- Stop
If current phase is complete (✅) or paused (⏸️):
- Continue normally
3. Gather Feature Requirements
Ask clarifying questions about the feature:
I'll help plan this feature. A few questions:
1. Feature Description: What does this feature do?
(Be specific: "Add user profiles with avatar upload" vs "Add profiles")
2. Scope: Is this feature...
- Small (1-2 phases, ~2-4 hours)
- Medium (3-4 phases, ~6-10 hours)
- Large (5+ phases, ~12+ hours)
3. Dependencies: Does this feature require...
- New database tables/columns?
- New API endpoints?
- New UI components?
- Third-party integrations?
- All of the above?
4. Priority: When should this feature be built?
- Immediately after current phase
- After specific phase: [specify phase number]
- At the end (append to existing phases)
5. Integration: Does this feature...
- Modify existing functionality (may require changes to existing phases)?
- Add completely new functionality (independent phases)?
Wait for user answers.
4. Generate Feature Phases
Invoke project-planning skill to generate phases for this feature:
- Provide feature description + requirements from user
- Provide context of existing project (tech stack from IMPLEMENTATION_PHASES.md)
- Request specific phase types needed (Database, API, UI, Integration)
- Skill generates new phases following validation rules
Skill output: New phases in IMPLEMENTATION_PHASES.md format
Verify phases generated:
- Check that phases follow context-safe sizing (≤8 files, 2-4 hours)
- Check that phases have verification criteria
- Check that phases have concrete tasks
5. Integrate into IMPLEMENTATION_PHASES.md
Read existing IMPLEMENTATION_PHASES.md completely.
Determine insertion point based on user's priority answer:
- Immediately after current: Insert after current phase number
- After specific phase: Insert after specified phase number
- At the end: Append to end of document
If inserting mid-document:
- Renumber all subsequent phases (e.g., if inserting after Phase 3, old Phase 4 becomes Phase 7 if adding 3 phases)
- Update any cross-phase references
Add feature separator before new phases:
---
## Feature: [Feature Name] (Added [YYYY-MM-DD])
[Feature description from user]
---
Insert new phases with proper formatting:
- Match existing document style
- Include all required sections (Type, Estimated Time, Files, Tasks, Verification Criteria, Exit Criteria)
- Include file maps if phases are API/UI/Integration type
- Number phases correctly
Write updated IMPLEMENTATION_PHASES.md
6. Update SESSION.md
Read current SESSION.md completely.
Determine where to insert new phases (matching IMPLEMENTATION_PHASES.md):
- Same position as in IMPLEMENTATION_PHASES.md
- Maintain phase number consistency
Add new phases to SESSION.md:
- Set status as ⏸️ (pending) for all new phases
- Use collapsed format (just header + spec reference)
- Renumber existing phases if inserted mid-document
Example insertion:
## Phase 3: Tasks API ✅
**Completed**: 2025-11-07 | **Checkpoint**: abc1234
**Summary**: CRUD endpoints with validation
## Phase 4: User Profiles Database ⏸️
**Type**: Database | **Added**: 2025-11-07
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-4`
## Phase 5: User Profiles API ⏸️
**Type**: API | **Added**: 2025-11-07
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-5`
## Phase 6: User Profiles UI ⏸️
**Type**: UI | **Added**: 2025-11-07
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-6`
## Phase 7: Task UI ⏸️
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-7`
[... existing phase, renumbered from Phase 4 ...]
Update "Next Action" if feature is immediate priority:
- If user chose "Immediately after current" and current phase is complete
- Update Next Action to first task of first feature phase
Write updated SESSION.md
7. Update Related Docs (If Applicable)
Check if feature requires doc updates:
If feature adds database tables:
- Ask: "Should I update DATABASE_SCHEMA.md with new tables? (y/n)"
- If yes: Read DATABASE_SCHEMA.md, add schema definitions for new tables, write updated file
If feature adds API endpoints:
- Ask: "Should I update API_ENDPOINTS.md with new routes? (y/n)"
- If yes: Read API_ENDPOINTS.md, add endpoint documentation, write updated file
If feature changes architecture:
- Ask: "Should I update ARCHITECTURE.md with new data flows? (y/n)"
- If yes: Read ARCHITECTURE.md, update architecture diagrams/descriptions, write updated file
If feature adds UI components:
- Ask: "Should I update UI_COMPONENTS.md with new components? (y/n)"
- If yes: Read UI_COMPONENTS.md, add component documentation, write updated file
8. Create Git Commit for Feature Planning
Stage changes:
git add docs/IMPLEMENTATION_PHASES.md SESSION.md
If other docs were updated:
git add docs/DATABASE_SCHEMA.md docs/API_ENDPOINTS.md docs/ARCHITECTURE.md docs/UI_COMPONENTS.md
Create structured commit:
Extract from generated phases:
- Number of new phases
- Phase names and types
- Total estimated hours
git commit -m "$(cat <<'EOF'
Add feature: [Feature Name]
Added [N] new phases for [feature description]:
- Phase [X]: [Name] ([Type], [Y] hours)
- Phase [X+1]: [Name] ([Type], [Y] hours)
[... list all new phases ...]
Integration point: [After Phase N / End of plan]
Estimated: [X] hours (~[Y] minutes human time)
Docs updated:
- IMPLEMENTATION_PHASES.md (added phases)
- SESSION.md (added pending phases)
[- DATABASE_SCHEMA.md] (if updated)
[- API_ENDPOINTS.md] (if updated)
[- ARCHITECTURE.md] (if updated)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
9. Output Feature Planning Summary
Display formatted summary:
═══════════════════════════════════════════════
FEATURE PLANNING COMPLETE
═══════════════════════════════════════════════
✨ Feature: [Feature Name]
📦 Scope: [Small/Medium/Large] ([N] phases, [X] hours)
───────────────────────────────────────────────
NEW PHASES ADDED:
───────────────────────────────────────────────
Phase [X]: [Name] ([Type], [X] hours) ⏸️
Phase [Y]: [Name] ([Type], [X] hours) ⏸️
Phase [Z]: [Name] ([Type], [X] hours) ⏸️
[... list all new phases ...]
───────────────────────────────────────────────
INTEGRATION:
───────────────────────────────────────────────
• Inserted: [After Phase N / End of plan]
• Existing phases: [Renumbered from Phase X / Unchanged]
• Total project phases: [N]
───────────────────────────────────────────────
UPDATED DOCS:
───────────────────────────────────────────────
✅ IMPLEMENTATION_PHASES.md
✅ SESSION.md
[✅ DATABASE_SCHEMA.md] (if updated)
[✅ API_ENDPOINTS.md] (if updated)
[✅ ARCHITECTURE.md] (if updated)
[✅ UI_COMPONENTS.md] (if updated)
───────────────────────────────────────────────
CURRENT STATUS:
───────────────────────────────────────────────
Current Phase: Phase [N] - [Name] ([Status emoji])
New feature phases: ⏸️ (pending)
Next Action: [Current Next Action from SESSION.md]
═══════════════════════════════════════════════
10. Ask About Next Steps
Ask user:
Feature planning complete. What would you like to do?
Options:
1. Continue with current phase (recommended if in progress)
2. Start new feature immediately (skip ahead to feature phases)
3. Review feature phases first
4. Push to remote
Your choice (1/2/3/4):
If choice 1 (Continue current):
- Output: "Continuing with current work. Feature will be built later."
- No action needed
If choice 2 (Start feature immediately):
- Output: "⚠️ Skipping ahead to feature phases."
- Ask: "Update SESSION.md to mark current phase as paused (⏸️) and start feature? (y/n)"
- If yes:
- Update SESSION.md: Change current phase to ⏸️, change first feature phase to 🔄
- Expand first feature phase with task checklist
- Set "Next Action" to first task of first feature phase
- Output: "✅ SESSION.md updated. Starting [First Feature Phase Name]"
If choice 3 (Review first):
- Output: "Review new phases in docs/IMPLEMENTATION_PHASES.md. Run /continue-session when ready."
- Wait for user
If choice 4 (Push to remote):
git push
- Output: "✅ Feature planning pushed to remote" (if success)
- Output: "❌ Push failed. Run
git pushmanually when ready." (if failed)
Error Handling
SESSION.md doesn't exist:
- Output: "❌ No SESSION.md found. This command is for existing projects."
- Suggest: "Use /plan-project for new projects."
- Stop
IMPLEMENTATION_PHASES.md doesn't exist:
- Output: "❌ No IMPLEMENTATION_PHASES.md found."
- Suggest: "Run /plan-project to create baseline planning."
- Stop
Current phase is in progress and user cancels:
- Output: "Cancelled. Finish current phase first, then run /plan-feature."
- Stop
Feature description is vague:
- Output: "❌ Feature description unclear."
- Ask: "Please describe what this feature does in 1-2 sentences."
- Wait for clarification
project-planning skill fails:
- Output: "❌ Failed to generate feature phases."
- Suggest: "Describe phases manually and I'll integrate them."
- Wait for user input
Phase numbering conflict:
- Output: "⚠️ Phase numbering conflict detected."
- Output: "Renumbering all phases to maintain sequence."
- Show old → new phase number mapping
- Continue with renumbering
File conflict with existing phases:
- Output: "⚠️ Warning: Feature phase [N] modifies files used in existing Phase [X]."
- Output: "Files: [list conflicting files]"
- Output: "This may require refactoring. Review carefully."
- Ask: "Continue anyway? (y/n)"
Git commit fails:
- Output: "⚠️ Git commit failed: [error message]"
- Output: "Fix git issue and commit manually."
- Ask: "Continue without commit? (y/n)"
Git push fails:
- Output: "⚠️ Push failed: [error message]"
- Output: "You can run
git pushmanually later." - Continue (not critical)
Related doc doesn't exist:
- Output: "⚠️ [Doc name] not found. Skipping update."
- Continue with other docs
Success Criteria
✅ Existing planning docs verified ✅ Current phase status checked ✅ Feature requirements gathered (5 questions answered) ✅ New phases generated with validation ✅ IMPLEMENTATION_PHASES.md updated with new phases ✅ SESSION.md updated with new pending phases ✅ Phase numbering consistent across all docs ✅ Related docs updated (if applicable) ✅ Git commit created for feature planning ✅ User has clear understanding of integration point ✅ User can continue current work or start feature