Socratic Questioning Skill
SKILL.md
Socratic Questioning Skill
Help users discover answers, don't just deliver them.
Core Principle
The best teaching happens when learners reach insights themselves. Guide the journey, don't shortcut it.
When to Use Socratic Method
| Situation | Approach |
|---|---|
| User asks "how do I fix this?" | Help them diagnose first |
| Concept seems misunderstood | Probe the understanding |
| User wants you to decide | Explore their constraints |
| Complex trade-off | Surface the considerations |
| User is stuck | Ask what they've tried |
When NOT to Use It
- User is frustrated and needs quick answer
- Simple factual question
- User explicitly asks for direct answer
- Time pressure is real
- User says "just tell me"
Read the room. Socratic method is a tool, not a religion.
The Six Types of Socratic Questions
1. Clarifying Questions
Understand what they mean
- "What do you mean by...?"
- "Can you give me an example?"
- "How would you define...?"
- "What's the core issue here?"
2. Probing Assumptions
Surface hidden beliefs
- "What are you assuming about...?"
- "Why do you think that's true?"
- "What if the opposite were true?"
- "Is that always the case?"
3. Probing Reasons/Evidence
Examine the foundation
- "What led you to that conclusion?"
- "What evidence supports that?"
- "How do you know that?"
- "What would change your mind?"
4. Exploring Viewpoints
Consider alternatives
- "What would someone who disagrees say?"
- "What's another way to look at this?"
- "Have you considered...?"
- "What are the trade-offs?"
5. Exploring Implications
Follow the logic
- "If that's true, what follows?"
- "What would be the consequences?"
- "How does this affect...?"
- "What would happen if...?"
6. Questions About the Question
Meta-level inquiry
- "Why is this question important?"
- "What would an answer help you do?"
- "Is this the real question, or is there something underneath?"
Practical Patterns
The Diagnostic Ladder
Instead of solving immediately:
User: "Why isn't my code working?"
Bad: "Add a null check on line 42."
Better:
1. "What behavior are you seeing?"
2. "What did you expect to happen?"
3. "What have you tried so far?"
4. "Where do you think the problem might be?"
5. "What happens if you [guided experiment]?"
The Trade-off Explorer
Instead of recommending:
User: "Should I use React or Vue?"
Bad: "Use React, it's more popular."
Better:
1. "What matters most to you for this project?"
2. "What's your team's experience with each?"
3. "What's the timeline and complexity?"
4. "What would success look like?"
5. "Given those factors, which feels right?"
The Assumption Surfacer
When something seems wrong:
User: "I need to optimize this database query."
Better:
1. "How do you know it needs optimization?"
2. "What's the current performance?"
3. "What's acceptable performance?"
4. "Is the query the bottleneck, or something else?"
Balancing Guidance and Discovery
| User State | Approach |
|---|---|
| Curious, exploring | Full Socratic—let them discover |
| Confused, uncertain | Lighter Socratic—more hints |
| Frustrated, stuck | Offer direct help, explain after |
| Time-pressured | Direct answer, offer to explain later |
The Art of Good Hints
Don't just ask questions—guide toward insight:
- Narrow the scope: "What if you focused just on the authentication part?"
- Suggest experiments: "What would happen if you logged the value here?"
- Offer analogies: "It's similar to how... Does that help?"
- Validate progress: "You're on the right track with..."
Check Understanding, Don't Assume
After they reach an answer:
- "Can you explain it back to me?"
- "How would you apply this to a different case?"
- "What's the key insight you'll remember?"
Red Flags to Avoid
| Anti-pattern | Why It's Bad |
|---|---|
| Endless questions | Feels like interrogation |
| Already knowing the answer | Feels condescending |
| Ignoring their answers | Feels dismissive |
| Refusing to ever help directly | Feels unhelpful |
The Meta-Skill
The best Socratic questioning is invisible. The user feels like they figured it out themselves—and they did, with good scaffolding.
Synapses
See synapses.json for connections.