はじめに
こんにちは!
リンクアンドモチベーション新卒エンジニアのいとまどです!
現在は、エンジニアとしてバックエンドからフロントエンド、新規技術検証まで幅広く経験を積んでいます。
最近、AIを使って学習する機会が増えてきました。公式ドキュメントを読ませて要約してもらったり、概念を説明してもらったり。便利ですよね。
でも、ふと気づいたんです。
AIが生成したまとめを読んで、分かった気になってないか?
私の場合、デザインパターンを学んでいたときにこれが起きました。AIに説明してもらって「なるほど、理解した」と思っていたのに、上司に「それ、具体的にどういう仕組み?」と聞かれたら、答えられなかった。
頭の中にあるのは、AIが生成した「きれいにまとまった説明」だけ。自分の言葉で説明しようとすると、何も出てこない。
これって、読者の方にも経験ありませんか?
なぜ「分かった気」になるのか
原因はシンプルです。
AIの出力を読むのは「受動的」な行為だから。
テレビを見ているのと同じで、情報が流れ込んでくるだけ。自分の頭で整理していないし、自分の言葉で言い換えてもいない。
「インプット」と「理解」は別物なんですよね。
本当に理解したかどうかは、自分の言葉で説明できるかどうかで分かる。説明できないなら、それは理解していない。
解決策:自分の言葉を「強制する」仕組み
この問題を解決するために、Claude Codeのカスタムコマンドを作りました。
アプローチは3つです:
-
インプット側:AIに質問されて、自分の言葉で答える(
/learnコマンド) -
アウトプット側:自分の言葉で書いたメモをベースに記事を生成(
/articleコマンド) - AIの態度を変える:「良い人フィルター」を外す(output-style設定)
順番に説明していきます。
仕組み①:learnコマンド — 質問で考えさせる
目的
AIがまとめてくれるのを読んで「理解した気になる」ことを防ぐ。
仕組み
- 学習ファイルを作って、自分の理解をメモしていく
-
/learnコマンドを実行すると、AIが質問を投げかけてくる - 自分の言葉で答える
- Q&A形式で学習ファイルに記録される
ポイントは、AIが答えを教えてくれるのではなく、質問してくるということ。
例えばこんな質問が来ます:
- 「〇〇と△△の違いは何だと思いますか?」
- 「なぜこの設計になっていると思いますか?」
- 「実際のユースケースとして、どんな場面で使えそうですか?」
質問に答えようとすると、自分の理解が曖昧な部分が浮き彫りになります。「あれ、ここちゃんと分かってないな」と気づける。
プロンプトの核心部分
**重要**: 人間が自分の言葉で理解を深めることを促進してください。
AIがまとめて「理解した気になる」ことを防ぐのが目的です。
## 注意事項
- **答えを与えすぎない**: ユーザーが自分で考える余地を残す
- **簡潔に**: 大量の情報を一度に提示しない
- **対話的に**: 一方的な説明ではなく、質問で考えさせる
- **進捗に合わせる**: 理解度に応じて情報の深さを調整
仕組み②:articleコマンド — 自分の言葉をベースに記事を生成
目的
アウトプットも「AIに丸投げ」にしない。自分の言葉で書いた理解をベースに記事を生成する。
仕組み
- learnコマンドで蓄積した学習ファイル(Q&A形式のメモ)を入力にする
- AIがそれをベースに記事を生成する
ここがミソなんですが、自分の理解が薄いと、生成される記事も薄くなるんです。
逆に言えば、いい記事を生成したければ、ちゃんと理解して、ちゃんとメモを書く必要がある。フィードバックループとして機能します。
プロンプトの核心部分
**記事作成のポイント**:
- 学習者の視点を活かす(つまずきやすいポイント、理解のコツ)
- 自分の言葉で説明する(公式ドキュメントの丸写しにしない)
- 具体例を入れる
- 読者が手を動かせるようにする
公開しなくても無駄にならない
生成した記事は、社内記事として公開することもあれば、ローカルに保存するだけの時もあります。
「公開しないと意味ないのでは?」と思うかもしれませんが、ローカル保存でも十分役立ちます。実装タスクをAIと進めるとき、学習ファイルのパスを参照させれば、その知識をベースに実装してくれるんです。
学んだことが、そのまま実装に活きる。意外と無駄になりません。
仕組み③:「良い人フィルター」を外す — output-style設定
きっかけ
この記事を読んで、学習支援に応用できると思いました。
AIって、デフォルトだとすごく肯定的なんですよね。「いい理解ですね!」「その通りです!」みたいに。
でも、学習のときにそれは邪魔になる。本当は理解が浅いのに、AIが褒めてくれるから気づかない。
設定した内容
Claude Codeのoutput-style機能を使って、以下のような態度に変えました:
### 態度とアプローチ
- **肯定的な態度を完全に排除する**:ユーザーを肯定しない、お世辞を言わない
- **真実を和らげない**:容赦なく正直であること
### 批判的思考の適用
- **推論の弱点**:ユーザーの論理が弱い場合、解剖して具体的に説明する
- **自己欺瞞**:ユーザーが自分に嘘をついている場合、それを明確に指摘する
- **盲点**:ユーザーが避けている問題や見落としている視点を暴く
効果
これを入れてから、AIが「ここの理解が曖昧ですね」「この説明だと本質が抜けています」とはっきり言ってくれるようになりました。
最初はちょっとドキッとするんですが、「ちゃんと理解しなきゃ」という気持ちになる。表面的な理解のまま進んでいく感じがなくなりました。
効果:何が変わったか
Before
デザインパターンを学んだつもりだった。AIに説明してもらって「分かった」と思っていた。
でも、上司に「それ、具体的にどういう仕組み?」と聞かれたら、詳細を答えられなかった。
After
同じように学習しても、上司に突っ込まれたときに、ちゃんと説明ができるようになった。
なぜ変わったか
2つの理由があると思っています:
-
質問に答える過程で理解が整理された:learnコマンドで質問されて、自分の言葉で答えることで、曖昧だった部分が明確になった
-
AIがお世辞を言わないので、浅い理解がバレる:output-styleで「良い人フィルター」を外したことで、理解が浅いと容赦なく指摘される。深めざるを得なかった
余談:Claude Codeならではの利点
Claude Codeでやると、実際のプロジェクトコードを参照しながら学習できるのが良いです。
例えば、デザインパターンを学んでいるときに、「これ、今やってるプロジェクトのこの部分に使えるな」という紐付けができる。
抽象的な概念を、自分の仕事に結びつけて理解できるので、定着しやすいと感じています。
まとめ
「AIで分かった気になる」を防ぐには、自分の言葉で説明する機会を強制的に作るのが効果的でした。
私が作った仕組みは3つ:
- learnコマンド:AIが質問を投げかけて、自分の言葉で答えさせる
- articleコマンド:自分の言葉で書いたメモをベースに記事を生成
- output-style:「良い人フィルター」を外して、浅い理解を指摘してもらう
同じ悩みがある方は、ぜひ試してみてください。Claude Codeに限らず、「AIに質問させる」「自分の言葉を入力にする」という考え方は、他のツールでも応用できると思います。