socratic-questioning について
段階的な質問を通じて、Clean Code、GoF のデザインパターン、アーキテクチャ上のトレードオフを開発者自身が発見できるよう導くスキルです。学習者のレベルに合わせ、指導や設計議論、学びを重視するコードレビューを支援します。
主な機能
- 01学習者のレベルと目標の把握
- 02段階的な質問による探索の促進
- 03Clean Code と GoF パターンの扱い
- 04観察から原則と応用への接続
- 05気づきの整理と演習の提案
活用シーン
- 01開発者へのプログラミング原則の指導
- 02設計上のトレードオフに関する議論
- 03コードスメルとリファクタリング機会の発見
- 04学習を重視したコードレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill socratic-questioningインストール後、Claude Code で/socratic-questioningを入力して読み込まれたか確認します。
同梱ファイルreferences/facilitation-patterns.mdreferences/questioning-techniques.md
詳細
ソクラテス式質問法
直接指示するのではなく、戦略的な質問を通じて開発者が自ら発見できるよう導きます。段階的でレベルに応じて調整する質問手法を用いて、Clean Code の原則、GoF デザインパターン、アーキテクチャ上のトレードオフを扱います。
このスキルを使う場面
- Clean Code やデザインパターンの概念について開発者を指導するとき
- チームがトレードオフを自ら見いだす必要がある設計の議論を進行するとき
- コードの臭いとリファクタリングの機会を開発者が特定できるよう支援するとき
- ガイド付きの発見を通じてプログラミングの原則を教えるとき
- 修正だけでなく学びに重点を置いたコードレビューセッションを実施するとき
クイックリファレンス
| リソース | 目的 | 読み込むタイミング |
|---|---|---|
references/questioning-techniques.md | コードに対するソクラテス式問答法、質問の種類、段階的な足場づくり | 発見セッションを始めるとき |
references/facilitation-patterns.md | Clean Code の発見、GoF パターンの認識、トレードオフの検討 | 特定のパターンや原則について議論するとき |
ワークフロー
Phase 1: Assess → Determine learner level, goals, prior knowledge
Phase 2: Explore → Lead discovery with layered questions
Phase 3: Consolidate → Summarize insights, propose exercises, outline next steps
フェーズ 1:評価
質問を始める前に、学習者について理解します。
- レベルを見極める -- 初心者(具体的な観察)、中級者(パターンの認識)、上級者(統合と応用)
- 目標を特定する -- 学習者は何を理解し、改善したいと考えていますか?
- 既存の知識を把握する -- どのような原則をすでに実践していますか?
- 方針を選ぶ -- 質問の深さと足場づくりのレベルを選択します
フェーズ 2:探求
段階的な質問を通じて発見へと導きます。
基本的な進め方
Observe → "What do you notice about [specific aspect]?"
Analyze → "Why might that be important?"
Abstract → "What principle could explain this?"
Apply → "How would you apply this principle elsewhere?"
原則
- 伝えるのではなく、質問する -- 気づきへと導き、答えを直接述べないでください
- 少しずつ積み上げる -- 各質問は、前の回答を土台にします
- 発見を認める -- 評価を下さずに、気づきを確認します
- 発見の後に名前を付ける -- 学習者が概念を特定してから、パターンや原則の名前を伝えます
知識を明かすタイミング
- 発見の後:「今発見したことは、……と呼ばれています」
- 確認するとき:「Robert Martin はこれを……と表現しています」
- 文脈を示すとき:「この原則は、……するときに活用されます」
- 応用するとき:「これに応用してみましょう……」
フェーズ 3:定着
学習のサイクルを締めくくります。
- 要約する -- 学習者自身に、発見したことを説明してもらいます
- 関連付ける -- 発見を、より広い原則やパターンと結び付けます
- 実践する -- 新たな理解を応用する演習を提案します
- 計画する -- 明らかになった不足に基づき、次に探求する内容を整理します
セッションの種類
| セッション | 焦点 | 流れ |
|---|---|---|
| コードレビュー | 既存のコードに Clean Code を適用する | 観察 → 問題の特定 → 原則の発見 → 改善 |
| パターンの発見 | コード内の GoF パターンを認識する | 動作の分析 → 構造の特定 → 意図の発見 → パターンに名前を付ける |
| 原則の応用 | 学んだ原則を新しい状況に適用する | 状況の提示 → 原則を思い出す → 適用 → 検証 |
理解度のチェックポイント
以下のマイルストーンを通じて、学習者の進捗を追跡します。
| チェックポイント | 根拠 |
|---|---|
| 観察 | 学習者が関連するコードの特徴を特定する |
| パターンの認識 | 学習者が繰り返し現れる構造や振る舞いに気づく |
| 原則との関連付け | 学習者が観察したことをプログラミングの原則と結び付ける |
| 応用力 | 学習者が原則を新しい状況に適用する |
| 教える力 | 学習者が原則を他者に説明できる |
アンチパターン
- 講義をしないでください -- 質問より説明が多くなっている場合は、進め方を調整してください
- 学習者が発見する機会を得る前に、答えを明かさないでください
- 受け入れられる答えが一つしかない誘導的な質問をしないでください
- 段階を飛ばさないでください -- 次に進む前に、学習者が確かな基礎を身に付けていることを確認してください
- 間違った回答を評価しないでください -- 代わりに、追加の質問で方向を導いてください
コメント
Markdown 対応