Overview
Through natural collaborative dialogue, help turn ideas into complete designs and specifications.
First understand the current project context, then ask one question at a time to refine the idea. Once you understand what you are building, break the design into small parts (200-300 words) and check after each part whether it looks correct so far.
Process
Understand the idea:
- First check the current project status (files, documentation, recent commits)
- Ask one question at a time to refine the idea
- Choose multiple-choice questions as much as possible, but open-ended questions are also fine
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria
Explore approaches:
- Propose 2-3 different approaches with trade-offs
- Present the options conversationally along with your recommendation and reasoning
- Start with the option you recommend and explain why
Present the design:
- Once you believe you understand what you are building, present the design
- Break it into 200-300 word sections
- After each section, ask whether it looks correct so far
- Cover: architecture, components, data flow, error handling, testing
- If something does not make sense, be ready to go back and clarify
After the design
Documentation:
- Write the validated design to
docs/plans/YYYY-MM-DD-<topic>-design.md - If possible, use style elements: clear and concise writing techniques
- Commit the design document to git
Implementation (if continuing):
- Ask: "Ready to implement?"
- Use superpowers: using-git-worktrees to create an isolated workspace
- Use superpowers: writing plans to create a detailed implementation plan
Key principles
- One question at a time - do not overwhelm with multiple questions
- Prefer multiple choice - if possible, easier to answer than open-ended
- YAGNI ruthlessly - remove unnecessary features from all designs
- Explore alternatives - always propose 2-3 approaches before settling
- Incremental validation - present the design in parts and validate each part
- Stay flexible - go back and clarify when something does not make sense