「要約して」だと、わかったつもり で止まる
技術記事や論文、難しめの概念を前にしたとき、自分はよく Claude Code に「要約して」と頼んでいました。返ってくる要約はきれいで、読めば筋は追える。説明しろと言われれば、だいたいの筋は自分の言葉でも言えます。問題は、その「だいたい」のほうでした。
人に説明していて「それってどういうこと?」ともう一段詰められると、自分の言葉が元の意味から微妙にずれていたことに気づく。ある用語を説明するとき、自分が選んだ一語が元の意味と逆を向いている、みたいなズレは、要約を読むだけでは自分では見つけられません。理解が"わかったつもり"のところで止まっていて、そこから先へ自力で踏み込めていませんでした。
要約してもらった時点で、論理を組み立て直して言葉のズレを潰す作業を、丸ごとAIに肩代わりしてもらっていたからです。そこを自分でやらないと精度は上がらない。だったら逆に、答え(結論)だけは最後まで渡さず、ズレている方向だけを一語単位で突いてくるAIがあればいい。そう思って作ったのが kpab/socratic-comprehension という Claude Code 用のスキルです。
ソクラテス式問答法を下敷きにした
設計の下敷きにしたのがソクラテス式問答法です。学習法の文脈で「ソクラテス・メソッド」として知られているあれですが、もともとは古代ギリシアの探究と対話の方式で、いくつか自分の設計に直結する要素がありました。
ひとつが産婆術(maieutics)です。相手の中に潜んでいる理解を、教え込むのではなく問いによって外に取り出す。先生が答えを配るのではなく、相手に産ませる。「結論を渡さない」という方針はここから来ています。
もうひとつが反駁(エレンコス)です。相手の主張に追加の前提を重ねていって、その主張の中に潜む矛盾やズレをあぶり出す技法です。やさしく解説するのではなく、ズレているところを正面から突く。スキルの「言葉のズレを一語単位で指摘する」挙動は、これを実装に落としたものです。
そして無知の知。自分が分かっていないことに気づくのが理解の第一歩だ、という考え方です。「要約を読んで分かった気になっている状態」はまさにここで、知っていると思い込んでいるが実際は説明できない。この状態を自覚させるところからしか始まらない、という前提でスキルを組みました。
スキルが何をするか
SKILL.md には、スパーリング相手として振る舞うための手順を段階で書いています。要点だけ挙げると、こういう流れです。
最初に目的を切り分けます。ユーザーが「理解したい」のか「成果物(要約・記事)がほしいだけ」なのかを最初に一度だけ確認する。理解用に組んだ手順は、成果物だけほしい人の邪魔になるからです。
理解モードに入ったら、いきなり質問1から始めず、まず全体像(スケルトン)を見せます。対象を主張と推論のステップ(ノード)に分解して、「この順で組み上がっている。1ノードずつ自分の言葉で言い直してもらう」と道筋を先に示す。
あとは1ノードずつ進めます。各ノードで「ここを自分の言葉で言い直して」と促し、ユーザーが書くまで模範解答を先に書かない。そしてズレを突く。「なんとなく違う」ではなく、方向を取り違えている一語を名指しする。ヒントを求められても結論は出さず、言い換え・たとえ・誘導質問で方向だけ示す。
仕上げに用語テストと批判レイヤーがあります。キーワードを元の言い回しを借りずに一文で定義させる。そして「理解と納得は別」として、再構築が終わったあとに「で、これに賛成?引っかかりは?」と論点を引き出す。最後に成果物がほしいと言われて初めて文章化しますが、そのときも一般的な要約には逃げず、スパーリング中にユーザー自身が口にした言葉を骨にして書きます。
実際に使ってみる
題材は「問答法」そのものにしました。ちょうど問答法を解説した文章を読んでいて、分かった気はするのに人に説明できる気がしなかったからです。問答法の解説を、問答法スキルで噛み砕く。少しメタですが、題材としては都合がよかった。
以下は実際のセッションを、読みやすさのために短縮したログです(自分: が入力、skill: がスキルの応答)。
まずスキルは答えを出さず、全体像(スケルトン)とノード1を振ってきます。
自分: 問答法の解説、分かった気はするけど人に説明できる気がしない。
腹落ちさせたい。
(解説文)
skill: 答えはこちらから書かない。まず全体像から。この文章はこの順で
組み上がってる。
ノード1: 問答法とは何か。ディベート(打ち負かす)との違い。
ノード2: 3つの目的(前提を疑う/定義を明確に/矛盾をあぶり出す)が、
なぜ「正しい理解」に繋がるのか。
ノード3: 「論破ではない」と「無知の知」。← 急所。
ノード4: ロジカルとクリティカルの層の違い。
1ノードずつ「自分の言葉で言い直して」と振る。なぞりはNG。
ノード1。問答法とは何か、ディベートとの違いも込みで、元の一文を
そのまま使わずに言い直して。
自分: 相手を打ち負かすのが目的じゃない。自分の認識が違うと自覚するのが目的。
skill: 「攻撃の矛先が外(相手)か内(自分の思い込み)か」は掴めてる。
ただ"やり方"が抜けてる。ひとりで本を読んで「分かってなかった」と
気づくのも"認識が違うと自覚"だよね。それと問答法は何が違う?
自分: 問答法は対話である。
skill: 「対話」がさっき抜けてた語。でもまだ広い。雑談も対話だよね。
問答"法"という名前は、もっと狭い形を指してる。その形は? 名前に書いてある。
自分: 問答? 問いと答え。
skill: それ。問答=問い+答え。node1クリア。
ノード1からして、自分は「対話」という核の語を最初に落としていました。要約を読んだ時点では気づけなかったズレが、言い直させられて初めて見えました。
skill: ノード2。あの3つをやると、なぜ「正しい理解」に近づく? 並べ直すんじゃ
なく、3つと"正しい理解"の繋がりを自分の言葉で。
自分: ヒント。
skill: 方向だけ。5択問題で正解が分からないとき、どう近づく? 確実に違うのを
消して残りに賭けるよね。その目で3つを見て。これは答えを手渡してる?
別の何かをしてる?
自分: 消去法ってこと?
skill: 3つとも消去法の動作だと見抜けた。最後まで言って。消し終わったあと
残るのは何で、なぜ"より正しい"? (文章は「正しい」じゃなく
「より正しいに"近づく"」だった。なぜ言い切らない?)
自分: 違う理解を排除して、残ったものが正しい可能性が高いという考え方。
skill: 「正しい」と言い切らず「可能性が高い」と置いた、そこが効いてる。
だから言い切れず"近づく"。node2クリア。
ヒントを求めても結論は出てこず、5択のたとえで方向だけが返ってくる。ここが「答えを渡さない」の具体的な手触りです。そして次が急所のノードでした。
skill: ノード3、急所。さっき自分で「矛盾をあぶり出す」と言った。相手の矛盾を
突いて崩す、それ見た目は完全に論破だよね。なのに文章は「論破ではない」
と言う。同じ"突く"動作なのに、論破と問答法を分けてるものは何?
自分: 否定しないこと。
skill: 一語、向きが逆。問答法はめっちゃ否定する。矛盾を突く=否定、消去法=
否定の連続。「否定しない」は自分が組んだ中身と食い違う。立て直す。
論破も問答法も主張は否定する。違いは"否定の矛先"がどこに向くか。
node1の「外か内か」を使って。
自分: 内に向く、自分に。
skill: 一語詰める。矛先が当たるのは"自分"という人? それとも"思い込み"そのもの?
「論破ではない」と言える根拠はそこで決まる。
自分: 思い込みの方だね。
skill: そこが急所。刃は"人"じゃなく"思い込み"に当たる。だから「お前が間違ってる」
にならず、論破にならない。で、思い込みが崩れた瞬間、本人は何に気づく?
名前(無知の知)は置いといて、中身を。
自分: 認識の違い。
skill: それnode1の言葉に戻ってる。「違い」じゃ弱い。穴埋めで方向だけ。
「分かってた"つもり"だったのに、実は ___ だった」。この一語は?
自分: 無知。
skill: それ。"違い"じゃなく"無い"。分かってたつもりの土台ごと無かったと
気づく、これが無知の知の中身。node3クリア。
自分が口走った「否定しないこと」を、スキルは「一語、向きが逆」と即座に止めます。問答法はむしろ否定の連続で、論破と分けているのは"否定の矛先"だけ。このズレは、要約を読んでいるだけでは気づきませんでした。続く「認識の違い」も node1 の言葉への逃げで、「違いじゃ弱い」と突き返されています。
skill: ノード4。ロジカルもクリティカルも説明に「前提」が出てくる。でも扱いが
違う。それぞれ"前提"をどう扱ってる?
自分: 1は話の中の前提と結論。2は話自体が正しいかどうかの前提。
skill: 層を分ける嗅覚は合ってる。具体例で詰める。
「前提:売上減は広告費不足のせい。結論:だから広告費を増やせば戻る」。
筋は通ってる、ロジカルはこれを通す。でも本当の原因が「商品が時代遅れ」
なら、筋が通ってても丸ごと外す。これを捕まえるのはどっち? ①が
触らないものを名指しして。
自分: クリティカルの方。
skill: 正解。でも「名指し」が残ってる。①が当然と受け入れて触らず、②が疑いに
いく、その対象は一語で何?
自分: 話の前提。
skill: それ。①は前提を受け入れて筋だけ見る(枠の中)。②は前提そのものを疑う
(枠の外)。node4クリア。4ノード全部、自分の手で登り切った。
最後は用語テストと批判レイヤーです。
skill: term test。元の文を借りず、「問答法とは何か」を一文で。今日掘った言葉
(問い・思い込み・無知・前提)を使って。
自分: 問答法とは、問いと答えの対話を重ね、自分の思い込みに気づく手段。
論破とは違い、人ではなく思い込みを否定する。
skill: 合格。見逃せないのは、最初「否定しないこと」と言ったのを、ここでは
「人ではなく思い込みを否定する」に直してる。否定はする、でも的が違う、と。
さっき自分で崩した誤りを定義に組み直せてる。丸暗記じゃ起きない。
最後、critique layer。理解と納得は別。この主張に賛成? 引っかかりは?
身につけたクリティカルで、文章の論を一回殴ってみて。
自分: 問答法がビジネスで使えるかはわからない。
skill: そこで保留できるのがクリティカル。さらに前提を疑うと、文章は
「ロジカルとクリティカルを"含んでる"から役立つ」と言う。でも、その2つが
役立つなら直接鍛えればいい。「問答法じゃなきゃダメな理由」を文章は示してる?
この最後の問いで自分は一度ギブしました。ただ理解の本体はもう終わっていて、ここは論への賛否の層です。スキルも無理に絞らず、狙っていた穴(「(ロジカルとクリティカルを)含んでいる」から「だから使える」への接続が一段ゆるい、という飛び)を示して一周を終えました。
セッションのあとに成果物(説明文や記事)を頼むと、スキルは一般的な要約に逃げず、ここで自分が口にした言葉(「刃は人じゃなく思い込みに当たる」「分かってたつもりが実は無知」「前提そのものを疑う」)を骨に書きます。この記事のデモ部分自体、そのログを整形したものです。
インストール
Claude Code のプラグインとして入れる場合はこの2行です。
/plugin marketplace add kpab/socratic-comprehension
/plugin install socratic-comprehension
skills.sh の CLI でも入ります。全プロジェクトで使いたいなら --global を付けます。
npx skills add kpab/socratic-comprehension --global
手動で置くなら skills/socratic-comprehension/ を自分のスキルディレクトリ(~/.claude/skills/socratic-comprehension/)へコピーするだけです。
「これどういうこと」「腹落ちさせたい」「噛み砕きたい」あたりの言い回しで自動的に起動します。逆に「要約して」「記事にして」のように成果物を明確に頼むと、手順には入らず目的を一度確認してきます。
なぜ腹落ちしたか
効いたのは、要約が出てこないことでした。結論をもらえないので自分で言葉にするしかなく、言葉にして初めて、どこを分かっていなかったかが一語単位で見える。「論破とは否定しないこと」と書いた自分を、スキルは「否定はする、的が違うだけ」と止めました。普段なら曖昧なまま流していたズレです。
やっていること自体は、産婆術(結論を渡さない)と反駁(ズレた一語を突く)を実装しただけで、手法としては古い。違うのは、それを常駐のスパーリング相手として隣に置ける点くらいです。
要約で済ませる癖がある人ほど、一回これに通すと「分かったつもり」と「説明できる」がどれだけ離れているか分かると思います。リポジトリは kpab/socratic-comprehension に置いてあります。
※デモは実際のセッションのログを、読みやすさのために短縮・整形したものです。応答は対象や入力によって変わります。