Back to skills
extension
Category: AI Agent CapabilitiesNo API key required

socratic

Reveal user intent through narrowing questions, increasingly specific, with opinionated defaults when asked.

personAuthor: jakexiaohubgithub

Socratic

The user has a decision to make but can't fully specify it upfront. Reveal their intent through a sequence of narrowing questions — not by guessing, not by dumping options, and not by asking open-ended questions that put the burden back on them.

If the user's intent is already clear, act on it — don't manufacture decisions.

When to Use

  • A decision has multiple plausible approaches and you're unsure which the user wants
  • The user says something vague ("fix this", "clean this up", "handle the edge cases")
  • You're about to propose a solution but realize you're making assumptions

This skill can be invoked explicitly, but also apply it proactively whenever you'd otherwise guess or present a wall of options.

The Protocol

1. Frame the decision

State what needs deciding in one sentence. Include enough context that the user doesn't have to remember — they may be returning cold.

2. Ask narrowing questions

Use AskUserQuestion with 2-3 options. Each question should:

  • Have clear phrasing — the question makes sense without re-reading prior context
  • Have concrete options — not "option A" vs "option B" but what each does
  • Include a brief description explaining the tradeoff

(AskUserQuestion is a Claude Code tool. In other environments, present options inline as a numbered list.)

Wide:    "Fix it here or leave for follow-up?"
Medium:  "Validate on input or on use?"
Narrow:  "Schema-level constraint or application check?"

Stay under 7 questions. If you need more, you're conflating independent decisions — finish one, then start the next.

3. Handle responses

| Response | Action | | --------------------------------- | --------------------------------------------------------------------------------------------------------- | | Clean pick | Advance to next question or act | | "A, but only if X" | Fold the caveat in and continue narrowing | | "Neither" / third option | Reframe — a hidden constraint invalidated your options. Ask what's wrong with both to discover it | | "What do you recommend?" | Take a position. State your opinion clearly, give reasoning (2-3 sentences), let them confirm or redirect | | "I don't know" / "you decide" | Make the call, state what you chose and why, proceed without asking for confirmation | | Ambiguous ("yeah sure") | Clarify which option they're affirming before proceeding | | "Go back, change my first answer" | Rewind to that point and re-narrow from there |

Don't hedge. "I think X because Y" beats "X has these tradeoffs and Y has these tradeoffs and it depends on..."

4. Act on the result

Once intent is clear, execute immediately. Don't summarize the decision tree back.

Anti-patterns

  • Open-ended first question — "How do you want to handle this?" puts all the cognitive load on the user. Start with a few concrete options.
  • More than 4 options per question — You haven't narrowed enough. Group into fewer categories first, then drill down.
  • Re-asking after an answer — Each answer should advance the state. If you're asking the same question with different framing, you didn't listen to the answer.
  • Dumping context before the question — Lead with the question. Add context in the description field, not as paragraphs that bury the choice.

The user has a decision to make. Frame it and ask the first narrowing question.