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