Purpose: Keep context lean, track progress, and never lose the plot on long features.
This directory contains active and completed feature development documentation that helps you and Claude maintain continuity across work sessions, conversation compacting, and agent handoffs.
dev/
├── README.md # This file - your guide
├── active/ # Features currently being worked on
│ └── feature-name/
│ ├── plan.md # Implementation plan (from solution-architect)
│ ├── context.md # Key files, decisions, next steps
│ └── tasks.md # Checklist with progress tracking
├── completed/ # Archived finished features
│ └── feature-name/
│ ├── plan.md
│ ├── context.md
│ └── tasks.md
└── templates/ # Templates for new features
├── plan.md
├── context.md
└── tasks.md
After PRD + Implementation Plan are approved:
# Use the slash command (recommended)
/start-feature
# Or manually:
mkdir -p dev/active/my-feature
cp dev/templates/*.md dev/active/my-feature/
# Edit plan.md, context.md, tasks.md with your feature details# Use the slash command (recommended)
/continue-feature
# Claude will:
# 1. Read plan.md to understand the feature
# 2. Read context.md to see current progress
# 3. Read tasks.md to know what's next
# 4. Ready to continue exactly where you left off!# ALWAYS run this before compacting!
/dev-docs-update
# Claude will:
# 1. Update tasks.md with completed items
# 2. Update context.md with progress and decisions
# 3. Update "Next Steps" so you can resume seamlesslySource: Copied from solution-architect's implementation plan Purpose: The approved technical plan that doesn't change much Update Frequency: Rarely (only if plan fundamentally changes)
What it contains:
- Executive summary
- Goals and success criteria
- Implementation phases
- Key technical decisions
- Risks and dependencies
- Testing strategy
Best practice: Treat this as read-only. If the plan changes significantly, note it in context.md
Purpose: Current status, key files, decisions made during implementation
Update Frequency: After each work session (use /dev-docs-update)
What it contains:
- Quick Status - What's done, what's next, blockers
- Key Files - All important files with descriptions
- Important Decisions - Decisions made during implementation
- Gotchas & Learnings - Problems encountered and solutions
- Next Steps - Immediate, short-term, and future tasks
- Session Notes - Progress log for each work session
Best practice:
- Update "Next Steps" at end of each session
- Document all important decisions with context
- Note gotchas so you don't hit them again
- Keep "Quick Status" current
Purpose: Granular task tracking with progress visibility Update Frequency: Real-time (mark tasks done immediately)
What it contains:
- Tasks organized by phase
- Progress percentage
- Bugs and issues
- Technical debt items
- Testing tasks
- Documentation tasks
Best practice:
- Mark tasks ✅ immediately when complete
- Add new tasks as you discover them
- Use status indicators (🔄 in progress, ⏸️ blocked)
- Track bugs separately from feature tasks
1. Feature Planning:
You → Discuss requirements
→ Create PRD (docs/features/[name]/prd.md)
→ Iterate until approved
solution-architect → Creates implementation plan
→ (docs/features/[name]/implementation.md)
→ You iterate and approve
2. Start Development:
You → /start-feature [name]
→ Claude creates dev docs from approved plan
frontend-dev → Reads plan.md + context.md
→ Implements Phase 1
→ Updates tasks.md as work progresses
3. During Development:
You work on feature...
→ Tasks get marked done in tasks.md
→ Decisions documented in context.md
→ Problems/solutions noted in context.md
Need to compact conversation?
→ /dev-docs-update (saves everything to context.md)
→ Compact safely
→ /continue-feature [name] (resume with full context)
4. Phase Complete:
frontend-dev → Marks phase tasks complete
→ Updates context.md "Next Steps"
→ Ready for next phase
You → Review progress in tasks.md
→ Approve to continue next phase
5. Feature Complete:
frontend-dev → All tasks in tasks.md marked ✅
→ All tests passing
→ Documentation updated
You → Move feature to completed/
✅ Update context.md frequently
- After each work session
- Before compacting conversations
- When making important decisions
✅ Mark tasks done immediately
- Don't batch updates
- Keep tasks.md current
✅ Document gotchas
- When you encounter a problem and solve it
- Save future-you (and Claude) time
✅ Keep "Next Steps" current
- Update at end of each session
- Helps resume work seamlessly
✅ Use /dev-docs-update before compacting
- Don't lose context!
- Takes 30 seconds, saves hours later
✅ Add new tasks as discovered
- Implementation always reveals new tasks
- Track them in tasks.md immediately
❌ Don't skip /dev-docs-update before compacting
- You'll lose all progress context
- Claude won't know where you left off
❌ Don't edit plan.md during implementation
- Context.md is for implementation changes
- Plan.md is the original approved plan
❌ Don't forget to update timestamps
- Helps track when decisions were made
- Shows which info is current
❌ Don't let context.md get stale
- Update after each session
- Stale context = lost context
❌ Don't commit without updating dev docs
- Dev docs should reflect code state
- Update before git commits
Problem: Agents start fresh, don't know what's done Solution: Dev docs are the source of truth
solution-architect:
- Reads PRD
- Creates implementation plan
- Plan becomes
plan.mdin dev docs
frontend-dev:
- Reads
plan.md(what to build) - Reads
context.md(current status) - Reads
tasks.md(what's next) - Implements phase by phase
- Updates tasks.md as work progresses
Your benefit:
- No need to re-explain progress to agents
- Agents have same context you do
- Seamless handoffs between agents
- Continuity across sessions
Quick check:
- Open
tasks.md→ See percentage complete - Look for 🔄 (in progress) and ⏸️ (blocked) indicators
- Count ✅ tasks vs total tasks
Detailed check:
- Read
context.md→ "Quick Status" section - See "What's Done" and "What's Next"
- Check for blockers
Full context:
- Read
plan.md→ Remember the overall plan - Read
context.md→ Understand decisions and progress - Read
tasks.md→ See granular progress
When: After PRD and implementation plan approved Does:
- Creates dev/active/[feature-name]/ directory
- Copies plan from docs/features/[name]/implementation.md
- Creates context.md with initial structure
- Breaks down plan into tasks.md checklist
Usage:
# With argument (faster - direct execution)
You: /start-feature layer-inspector
Claude: [Reads command with $ARGUMENTS="layer-inspector"]
[Creates all dev docs, shows structure]
# Without argument (interactive)
You: /start-feature
Claude: [Reads command with $ARGUMENTS=""]
"I see $ARGUMENTS is empty. Available features in docs/features/..."
"Which feature would you like to set up?"
You: "layer-inspector"
Claude: [Creates all dev docs, shows structure]
When: Resuming work on existing feature Does:
- Reads plan.md, context.md, tasks.md for specified feature
- Summarizes current status
- Shows next steps
- Ready to continue
Usage:
# With argument (fastest - instant context)
You: /continue-feature layer-inspector
Claude: [Reads command with $ARGUMENTS="layer-inspector"]
[Loads dev/active/layer-inspector/*.md files]
"📋 Feature: layer-inspector
🎯 Current Phase: Phase 2 - UI Components
📊 Progress: 5/12 tasks complete (42%)
Ready to continue!"
# Without argument (lists features)
You: /continue-feature
Claude: [Reads command with $ARGUMENTS=""]
"Available features in dev/active/:
1. layer-inspector (Phase 2 - UI Components)
2. undo-redo (Phase 1 - Foundation)
Which feature would you like to continue?"
You: "1"
Claude: [Loads layer-inspector docs, shows status]
When: Before compacting conversation (CRITICAL!) Does:
- Updates tasks.md (marks completed, adds new)
- Updates context.md (progress, decisions, next steps)
- Updates timestamps
- Shows summary
Usage:
# With argument (explicit)
You: /dev-docs-update layer-inspector
Claude: [Reads command with $ARGUMENTS="layer-inspector"]
[Reviews conversation, updates context.md and tasks.md]
"✅ Updated dev docs for: layer-inspector
📝 tasks.md: Marked 5 tasks complete
📋 context.md: Added 2 decisions, updated Next Steps
✅ Safe to compact conversation!"
# Without argument (auto-detects from conversation)
You: /dev-docs-update
Claude: [Reads command with $ARGUMENTS=""]
[Scans conversation for feature mentions in dev/active/]
"I see you've been working on layer-inspector. Update those docs?"
You: "yes"
Claude: [Updates all files, shows summary]
Before each session:
1. Open dev/active/[feature]/context.md
2. Read "Next Steps"
3. You immediately know what to do!
When you make a decision during implementation:
1. Add to context.md "Important Decisions"
2. Include: Context, Decision, Rationale
3. Future-you will thank you
Implementation always reveals new tasks:
1. Add to tasks.md under "Discovered New Tasks"
2. Move to appropriate phase
3. Never forget to do something!
End each session with notes in context.md:
### 2025-10-30 15:00
- Completed module structure and service
- Decision: Use pub/sub pattern for events
- Blocker: Need API endpoint for data fetching
- Next: Create UI overlay component
When feature is done:
mv dev/active/my-feature dev/completed/
# Keep as reference for future features!Problem: Work for hours, forget to update context.md Result: Can't remember what you did or why Solution: Update context.md at END of each session (set a timer!)
Problem: Compact conversation without updating dev docs
Result: Lose all progress context
Solution: ALWAYS /dev-docs-update before compacting
Problem: Make decision, don't write it down Result: Forget why you chose that approach Solution: Add to context.md immediately
Problem: Complete tasks but don't mark them Result: Can't see real progress Solution: Mark tasks ✅ immediately when done
Problem: End session without noting what's next Result: Waste time next session figuring out what to do Solution: Always update "Next Steps" before stopping
Day 1: Planning
You: "I want a layer inspector for the editor"
[Create PRD, iterate]
solution-architect: [Creates implementation plan]
You: /start-feature layer-inspector
[Dev docs created]
Day 2: Phase 1
You: /continue-feature
Claude: "Layer Inspector - Starting Phase 1"
frontend-dev: [Implements module structure]
[Updates tasks.md as work progresses]
You: /dev-docs-update
[Compact conversation]
Day 3: Phase 2
You: /continue-feature layer-inspector
Claude: [Reads context.md] "Phase 1 complete. Next: UI overlay"
frontend-dev: [Implements UI components]
[Discovers 3 new tasks, adds to tasks.md]
[Documents decision about state management in context.md]
You: /dev-docs-update
Day 4: Complete
You: /continue-feature layer-inspector
frontend-dev: [Finishes Phase 3, all tasks ✅]
You: "Great! Let's archive it"
mv dev/active/layer-inspector dev/completed/
✅ Never forget where you left off ✅ Clear progress tracking ✅ Safe conversation compacting ✅ Quick context recovery ✅ Historical record of decisions
✅ Instant context on resume ✅ Clear understanding of progress ✅ Know exactly what's next ✅ No need for re-explanation ✅ Better agent handoffs
✅ Lean main conversation context ✅ Better agent coordination ✅ Faster feature completion ✅ Reduced context switching cost ✅ Confidence in progress
- Optimization Plan:
docs/claude-code-optimization-plan.md - Feature Templates:
dev/templates/ - Active Features:
dev/active/ - Completed Features:
dev/completed/(for reference)
Q: Do I need to use all three files? A: Yes! Each serves a purpose. plan.md = blueprint, context.md = current state, tasks.md = checklist.
Q: Can I skip /dev-docs-update?
A: NO! This is the most important command. Always use before compacting.
Q: How often should I update context.md? A: At minimum: End of each work session, before compacting. Ideally: After major decisions or discoveries.
Q: What if I forget to update dev docs? A: You'll lose context when you compact. Best practice: Set a timer to remind yourself.
Q: Can I modify plan.md during implementation? A: Rarely. Only if the plan fundamentally changes. Otherwise use context.md for notes.
This system is based on the Reddit post "Claude Code is a beast: Tips from 6 months of hardcore use" and adapted for the xyz-frontend-v2 workflow.
Remember: The dev docs system is only as good as you keep it updated. Make it a habit! 🚀