# Socratic

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

- Skill: `corygabrielsen/socratic` (Agent Skill)
- Install (CLI): `npx skillmds@latest add corygabrielsen/socratic`
- Raw SKILL.md: https://api.skillmd.com/api/skills/corygabrielsen/socratic/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: corygabrielsen (https://skillmd.com/u/corygabrielsen)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/corygabrielsen/socratic

---


# 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.

