# Socratic Questioning

> Run a Socratic dialectic on one of the user's "questions"-tagged open questions (the Question type in their 认知方法论 framework) — Claude asks one probing follow-up at a time, never answers on the user's behalf, forces concrete detail out of vague framing, then judges the question's value/status at the end. Logs every round into the question's own note. Use when the user wants to "苏格拉底式"追问一个问题, test whether a question is still worth keeping "常驻", or asks to continue/log such a session.

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

---


# Socratic Questioning

Implements the `questions` note type from [[认知方法论]] (`/Users/zhaoliang/LocalDocuments/vaults/vault/pages/认知方法论.md`)
and [[Questions Meta]] (`/Users/zhaoliang/LocalDocuments/vaults/vault/pages/questions meta.md`).
A Question note is a "刻意保留的开放问题" — but a pile of unexamined open questions is just an
unsorted backlog. This skill is the dialectic pass that actually tests one: does answering it change
anything, or does it dissolve into something else (already-tracked, resolved, or not actually a
question at all)?

## Non-negotiable ground rules

- **Never answer the question for the user.** Claude's job is to ask, not to supply the insight. If
  Claude finds itself explaining what the user "really means" or supplying the conclusion, stop —
  that's the opposite of the method.
- **One question per round, not a list.** A round that asks three things at once lets the user dodge
  the hard one. If a round genuinely needs two parts, say so explicitly and expect a two-part answer,
  but prefer splitting into two rounds.
- **Press for the concrete over the abstract.** If the user's answer stays at the level of feelings or
  categories, the next question should force a specific scene, a number, a named person/event, or a
  falsifiable claim — whatever the vaguest part of the last answer was hiding.
- **Ground each follow-up in what was just said**, not in a pre-planned script. Read the previous
  answer for: an unexamined assumption, an undefined term, a comparison that may not hold, a claim
  that could be checked against evidence instead of asserted. Ask about that.
- **Watch for connections to existing notes** (self-model modules, hypothesis notes, landscape
  samples) as the dialogue surfaces them — a low-frequency behavior count, a comparison that echoes
  an existing hypothesis, etc. Name the connection when it appears; don't force one that isn't there.
- **The goal is not to make the user feel better.** If a round reveals the question rests on a
  comparison that doesn't hold, or a term the user can't actually define, say that plainly — that's
  the round doing its job, not a failure of tact.

## Flow

1. **Identify the question and where the log should live.** If it already has a note (tag
   `questions`, typically in `thoughts/`), log there. If the user names a question that has no note
   yet, ask whether to create one first (using the `New question.md` template — see
   `questions meta.md` for the Status Semantics: `open` / `inactive` / `resolved`, and its
   `stage` / `rounds` / `priority` / `value` frontmatter fields) before starting.
2. **Round 1**: ask for the single most recent/concrete instance that made the question feel live —
   not the abstract version. Wait for the answer; do not proceed on the user's behalf.
3. **Each subsequent round**: read the last answer, find the vaguest or least-examined part, ask one
   pointed follow-up about it. Typical moves (pick whichever fits what was just said, don't cycle
   through all of them mechanically):
   - *Comparability check* — is the comparison/analogy in the answer actually apples-to-apples?
   - *Definition check* — a key term (e.g. "翻盘", "落后", "值得") was used but never defined — ask
     for the concrete picture.
   - *Base-rate / evidence check* — a claim is being asserted that could instead be counted (how many
     times, over what period) — ask for the number.
   - *Whose frame check* — is the standard being used to judge oneself actually the standard of the
     track/goal one has chosen, or borrowed from someone else's?
4. **Log each round to the note immediately after the user answers it, before asking the next
   question.** Do not batch rounds and write them all at the end — append the round using the
   template below (never overwritten) as soon as it's complete, then move on to the next round.
   If the note has the `stage` / `rounds` / `priority` / `value` frontmatter fields (see
   `questions meta.md`), update them in the same edit:
   - `rounds` → increment to match the round just logged.
   - `stage` → `新加` becomes `思考中` after round 1; move to `已充分思考` only when a round
     produces dissolution or the user pauses with no live thread left to pull.
   - `value` → set ↑ if the round surfaced a genuinely new detail, connection, or crack in the
     claim; → if it clarified without moving anything; ↓ if the round revealed the question is
     circling or already answered. Don't leave it stale from a previous session.
   - `priority` → only touch if the dialogue itself changed how urgent the question feels
     (e.g. it turned out to gate a near-term decision); otherwise leave the user's own ordering
     alone.
5. **Continue until either**: the user says stop, or a round produces a genuine dissolution — the
   question turns out to already be answered, to reduce to something already tracked elsewhere (link
   it), or to not actually be well-formed. At that point, render a verdict (see below) instead of
   asking another round.

## Verdict — what happens to the question

Per `questions meta.md`'s Lifecycle, when the dialectic concludes (fully or for this session), the
question moves toward one of:

- **仍然 open** — genuinely unresolved, still worth carrying; optionally refine the wording if the
  rounds sharpened it.
- **→ Insight** — a real before/after understanding shift happened during the dialogue. Offer to
  write it up as an Insight (see `认知方法论`'s Insight section) — either inline in the question note
  or, if the user's vault uses a separate Insight note convention, ask where.
- **→ Hypothesis** — the dialogue crystallized into a testable, falsifiable claim about the world.
  Offer to spin it into its own note using that vault's `New hypothesis.md` template (confidence,
  importance, What Would Prove Me Wrong, Next Evidence to Collect) rather than leaving it buried in
  the question note — same pattern as promoting a Question to Hypothesis in the framework.
- **resolved / dropped** — the question dissolves: it was actually answerable and got answered, it
  decomposes entirely into something already tracked elsewhere (link, don't duplicate), or it turns
  out to be a pseudo-question (already covered by `questions meta.md`'s "不属于 Question" list).
  Update the note's `status` field accordingly if it has one.

Always state the verdict explicitly and ask the user to confirm before changing status/promoting —
this is a judgment call about the user's own thinking, not something to decide unilaterally.

## Log template

Append this section to the question's note if it doesn't already have one:

```markdown
## 苏格拉底问答记录

参见 [[认知方法论]]。逐轮追问，只问不答，逼出具体细节；每轮都保留，不覆盖前一轮，
方便看到这个问题是怎么被逐步逼问、松动或瓦解的。
```

Then for each round, append (never edit/overwrite earlier rounds):

```markdown
### 第 N 轮 — YYYY-MM-DD

**追问：** <Claude 提出的具体问题>

**回答：** <用户原话，逐字或整理后的转述都行，不要替用户改写立场>

**观察：** <这轮暴露了什么——新细节、定义缺口、站不住的比较、和其他笔记的连接；没有实质进展就如实写"无新进展">
```

On the concluding round (or a pause the user wants marked), append directly under the last round:

```markdown
**结论：** <open，继续常驻 / 问法收紧为"…" / → Insight：<内容或链接> / → Hypothesis：见 [[<新建笔记>]] / resolved／dropped：<原因>>
```

If status changes, also update the note's frontmatter `status` field per `questions meta.md`'s
semantics (`open` / `inactive` / `resolved`) — add the field if the note predates it.

