Agent Skills: 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.

UncategorizedID: goodluckz/claude-code-config/socratic-questioning

Install this agent skill to your local

pnpm dlx add-skill https://github.com/goodluckz/claude-code-config/tree/HEAD/skills/socratic-questioning

Skill Files

Browse the full folder contents for socratic-questioning.

Download Skill

Loading file tree…

skills/socratic-questioning/SKILL.md

Skill Metadata

Name
socratic-questioning
Description
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.

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:

## 苏格拉底问答记录

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

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

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

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

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

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

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

**结论:** <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.