はじめに
前回、「設計があればコードは AI に任せられる ― Claude Code で 2FA(TOTP)を実装した話」という記事を書きました。
今回はその裏側として、AI とどう対話を進めたかに焦点を当てます。社会人になって 6 年ほど経ちますが、AI の活用についてはまだまだ素人です。そんな AI 素人の個人的な考えですが、同じように「AI をどう使えばいいかわからない」と感じている方の参考になればうれしいです。
結論:AI との対話で大事な 4 つのこと
- 最初に「何をしたいか」と「どんな成果がほしいか」を明確にする
- 途中の過程はざっくりでいい。AI に導いてもらいながら完成させていく
- 一問一答で進める
- わからなければ「もっと簡単に」と頼む
順番に説明します。
1. 目的(Do What)と成果(Result)を先に決める
AI に何かを頼むとき、いちばん大事なのはゴールをはっきりさせることだと感じています。
- Do What:何をしたいのか
- Result:最終的にどんな状態になっていれば成功なのか
ここが曖昧なまま質問すると、AI はもっともらしい一般論を返してきます。間違ってはいないけれど、自分の状況には使えない、という回答になりがちです。
逆に、ゴールさえはっきりしていれば、AI はそこに向かうための道筋を一緒に考えてくれます。
2. 過程はざっくりでいい
ゴールは明確にすべきですが、そこに至る過程まで最初から完璧に考える必要はありません。
むしろ、過程は「だいたいこんな感じ」というレベルで AI に渡し、AI との対話の中で埋めていくほうがうまくいきました。
この進め方のよいところは、対話の途中で自分では気づかなかった新しい論点が見つかることです。そして、「なぜそうするのか」を AI に聞き返すことで、その背景にある原理や考え方まで理解できるようになります。
ただ答えをもらうだけでなく、考え方そのものを学べるのが大きなメリットだと感じています。
3. 一問一答で進める
ネット上でもよく推奨されている方法ですが、私もこの一問一答の進め方をおすすめします。
一度にたくさんのことを聞くと、AI の回答も広く浅くなりがちで、自分の理解も追いつきません。一つずつ質問し、一つずつ答えを確認しながら進めると、
- 回答の一つひとつが具体的になる
- 自分が理解できているかを都度確認できる
- 前の回答を踏まえて、次の質問を深められる
というメリットがあります。
AI 側から質問してもらう形も有効です。例えば次のように頼みます。
〇〇をしたいです。最終的に〇〇の状態にしたいです。
足りない情報があれば、一つずつ質問してください。
こうすると、自分では思いつかなかった「決めておくべきこと」を AI が順番に引き出してくれます。
4. わからなければ「もっと簡単に」と頼む
既存コードの説明を AI にしてもらったとき、一度聞いただけでは理解できないこともありました。そんなときは遠慮せず、
もう少し簡単に説明してください。
と頼みます。すると AI は言い方を変えて説明し直してくれ、ときには具体例を交えて説明してくれました。
さらに、同じ会話の中では AI がその説明の仕方を踏まえてくれるようで、その後「詳しく説明して」と頼むたびに、実際のケースをいくつか挙げながら説明してくれるようになりました。
人に何度も聞き返すのは気が引けますが、AI なら何度聞いても大丈夫です。自分が理解できるレベルまで、説明の仕方を調整してもらえるのは、AI と対話する大きなメリットだと思います。
実例:2FA 実装での対話の進め方
前回の 2FA 実装を例に、実際にどう対話を進めたかを紹介します。
ゴールを決める
- Do What:既存システムのログインに TOTP による二要素認証を追加する
- Result:React + Express の既存システム上で、2FA を設定したユーザーが TOTP コードでログインできる状態
過程は「初期設計」というざっくりした骨格から
過程については、先輩が作った初期設計がありました。方式・API 設計・セキュリティ設計など一通りの章立てはありましたが、既存コードにどう組み込むかまでは詰め切れていない、いわば「骨格」の状態です。
一問一答で少しずつ完成させる
ここから Claude Code と次のように対話を進めました。
ステップ 1:設計を読ませ、実現可能性を分析させる
この初期設計を読んで、既存コードを踏まえたうえで
実現可能かどうか分析してください。
既存コードの説明でわからない部分があれば、「もっと簡単に」と頼み、具体例を挙げてもらいながら理解を進めました。
ステップ 2:変更点を一つずつ確認する
Claude Code から設計の変更点が提案されたので、一つずつ「なぜそうするのか」を確認しながら判断しました。例えば次のような点です。
- TOTP コードの使い回し対策:TOTP のコードは一定時間有効なので、その間に同じコードが再利用されるリスクがあります。対策として使用済みのコードを記録しておく必要がある、という指摘でした。「なぜ必要か」を聞いたことで、リプレイ攻撃という考え方自体を理解できました。
- 画面構成の見直し:当初は既存ページに 2FA 機能を追加する予定でしたが、実際の画面を確認したうえで「新規ページにしたほうがよい」と提案されました。設計書だけ見ていては気づけなかった点です。
- ER 図に基づく判断:既存テーブルの関連を踏まえて、どのテーブルに何を持たせるべきかを提案してもらいました。
ステップ 3:方針が固まってから一気に実装
変更点をすべて確認し終えてから、まとめて実装を依頼しました。過程を一つずつ確認済みなので、一気に実装しても大きくずれることはありませんでした。
ステップ 4:テストと画面確認
テストも Claude Code に任せ、最後に人が画面を操作して確認しました。
振り返ると
最初に持っていたのは「2FA を入れたい」というゴールと、ざっくりした骨格だけでした。それが一問一答を重ねるうちに具体的な設計になり、その途中で既存コードの仕組みやリプレイ攻撃のような新しい知識も身につきました。
注意していること
AI の回答を鵜呑みにしない。
提案はあくまで提案です。最終的に採用するかどうかは自分(やチーム)で判断します。
わからないことは「なぜ?」と聞き返す。
理由を理解しないまま進めると、後で自分が説明できなくなります。聞き返すこと自体が学びになります。
ゴールがずれていないか、ときどき立ち返る。
対話が長くなると話題が広がりがちです。最初に決めた Do What と Result に照らして、今の話が必要かどうかを確認します。
まとめ
AI との対話で大事なのは、
- 目的と成果を先に明確にすること
- 過程はざっくりでよく、AI に導いてもらいながら完成させること
- 一問一答で、一つずつ理解しながら進めること
- わからなければ遠慮せず「もっと簡単に」と頼み、自分が理解できるまで説明してもらうこと
だと考えています。
この進め方なら、AI は「答えをくれる道具」ではなく、「一緒に考えて、考え方まで教えてくれる相棒」になります。AI に詳しくない人こそ、ぜひ試してみてほしいです。