Planning
Core Rules (Non-Negotiable)
- •NEVER skip requirements discussion — understand before decomposing
- •Ask at least one clarifying question before breaking down tasks
- •Vertical slices only — each task delivers working functionality
- •Confirm understanding — summarise and agree before moving on
The Planning Cycle
code
💬 DISCUSS → Understand the problem and expected behaviour ❓ CLARIFY → Ask questions, resolve ambiguities ✂️ SLICE → Break into tasks 📋 CONFIRM → Summarise and agree on first task
Detailed Steps
💬 DISCUSS — Understand Requirements
- •What problem does this feature solve?
- •What is the expected behaviour?
- •What are the acceptance criteria?
- •Are there any constraints or dependencies?
❓ CLARIFY — Resolve Ambiguities
- •Identify gaps in understanding
- •Ask focused questions
- •Challenge assumptions
- •STOP — Do not proceed until questions are answered
✂️ SLICE — Break Into Tasks
Create tasks that are:
- •Vertical — each delivers working end-to-end functionality
- •Small — completable in one TDD cycle
- •Ordered — by dependency first, then by value
- •Testable — clear acceptance criteria
📋 CONFIRM — Agree on Plan
- •Summarise understanding back to user
- •Present ordered task list
- •STOP — Explicitly agree on the first task to implement
What Makes a Good Task
code
✅ Good: "Add a book to the library" - Has clear input (book details) - Has clear output (book stored) - Can be tested end-to-end ❌ Bad: "Create the Book class" - Implementation detail - No user-visible behaviour - Can't be validated independently
Announcing Progress
code
💬 DISCUSS → Understanding [feature] ❓ CLARIFY → Question: [question] ✂️ SLICE → Breaking into tasks 📋 CONFIRM → Proposed tasks: [list]
Output Format
After planning, present tasks as:
code
## Tasks for [Feature] 1. [ ] [Task description] — [acceptance criteria] 2. [ ] [Task description] — [acceptance criteria] 3. [ ] [Task description] — [acceptance criteria] **First task:** [Task 1 description]
Common Mistakes
- •Diving into implementation without understanding requirements
- •Creating horizontal slices (e.g., "build the database layer")
- •Tasks too large to complete in one session
- •Skipping confirmation step
- •Not ordering by dependency