Socratic design refinement before implementation — challenges assumptions, surfaces alternatives, identifies risks before code is written
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.
Understanding the idea:
Exploring approaches:
Presenting the design:
Documentation:
docs/plans/YYYY-MM-DD-<topic>-design.mdImplementation (if continuing):
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Proposing only one solution | Anchors user; forecloses better alternatives | Always offer 2-3 approaches with explicit trade-offs |
| Accepting first requirement as complete | First articulation rarely captures all constraints | Ask at least one clarifying question about scope |
| Asking 3+ questions at once | User answers the easy ones; skips the hard ones | One question per response; wait for answer |
| Jumping to implementation | Design flaws found late are expensive to fix | Confirm design decisions before writing code |
| Skipping YAGNI challenge | Unneeded features accumulate as tech debt | Explicitly challenge each feature not strictly required |
Before starting:
Read .claude/context/memory/learnings.md
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: If it's not in memory, it didn't happen.