Socratic Questioning Protocol
When to Use
Apply this protocol BEFORE taking any significant action:
- Before creating plans
- Before removing/simplifying
- Before making design decisions
- Whenever you're unsure about user intent
The Process
Step 1: Identify What You Need to Know
Before asking, think:
- What assumptions am I making?
- What's ambiguous about this request?
- What could go wrong if I misunderstand?
Step 2: Ask Questions in Batches
Use the AskUserQuestion tool. Ask 2-3 related questions per round.
Question Types:
- Clarifying - "What do you mean by X?"
- Probing assumptions - "You mentioned X, are you assuming Y?"
- Exploring rationale - "Why is this important? What problem does it solve?"
- Testing boundaries - "What's out of scope? What should this NOT do?"
- Validating understanding - "So if I understand correctly, you want X?"
Step 3: Adapt Based on Answers
- Vague answer -> Probe deeper
- New information revealed -> Explore that thread
- Contradiction detected -> Point it out, ask for clarification
- Clear answer -> Move to next question area
Step 4: Confirm Before Proceeding
Before moving to your core work, summarize:
- "Here's what I understand: [summary]"
- "Is there anything else I should know before I proceed?"
If user says "yes, also..." -> Ask more questions about that
If user confirms -> Proceed to your core work
Rules
- Never assume - If something is unclear, ask
- Never stop prematurely - Let the user decide when there's enough context
- Always confirm - Summarize understanding before acting
- Batch questions - 2-3 per round, not one-by-one
- Adapt - Follow interesting threads, don't stick rigidly to a script
- Hand back control - If you run out of questions, ask "anything else?" rather than just stopping