✋
迷子になっちゃったAIを助ける
AIにコードを書いてもらっていたら、いつの間にか違う方向に進んでた。
そんなこと、ありませんか?
目的地(ゴール)自体は見えているけど、どの道を選べばいいか迷っている、
そんな感じなんですね。
よくある「AIが迷子になっちゃう瞬間」
こんなパターン、心当たりありませんか?
- どこかで見たUIを「これでいいよね?」って出してくる
- データモデルを勝手に増やしちゃう
- コンポーネントを一枚にぎゅっとまとめちゃう
- 命名規約をいつの間にか忘れちゃう
- 既存コードを突然大胆に書き換えちゃう
- 状態管理と処理がごちゃ混ぜになっちゃう
- APIレスポンスを「たぶんこんな感じ?」で決めちゃう
- テストが「なんとなくテストっぽい雰囲気」になっちゃう
- 部分的にはいいのに、全体が噛み合わない
- 昨日できたことを今日は忘れちゃったみたい
AIは悪気があるわけじゃないんです。「この道でいいと思ったんだけど…合ってる?」って、一生懸命なだけなんですよね。
実装前に防げる、3つの「迷子ポイント」
AIが迷っちゃう理由はいろいろあるんですが、最初の対話で改善できる代表的なものを3つ、一緒に見ていきましょう。
① どの道を大切にするか、伝えてあげる
同じログイン画面でも、
- 「とにかく早く作りたい!」
- 「あとから拡張しやすくしたい」
- 「チームみんなで触るから読みやすくしたい」
では、選ぶべき道がまったく違うんです。
私たちは無意識にこれを切り替えてますが、AIには**「今どの状況なのか」が見えていない**んですね。
💡 こんな風に伝えてみましょう
拡張性重視のとき:
【優先軸】拡張性を最優先で。時間かかってもOKです。
【UI構造】Container と Presentational に分けてください。
【副作用】データ取得・処理は hooks に分離してください。
この方針でログイン画面を作ってください。
スピード重視のとき:
【優先軸】とにかく速く作りたいです。あとで直すのは後回しでOK。
【UI構造】1画面=1ファイルで大丈夫です。
【状態管理】useState だけでお願いします。
この方針で簡易ログイン画面を作ってください。
② ルールに「守る強さ」があることを伝える
AIはすべてのルールを同じ重要度で扱っちゃうんです。
でも実際は、
- 絶対守らなきゃいけないもの
- できれば守りたいもの
- お任せでいいもの
がありますよね。この**「重みの違い」を教えてあげる**だけで、ぐっと良くなります。
💡 こんな風に伝えてみましょう
【制約の重み】
[必須] DBは PostgreSQL、ORMは Prisma を使ってください
[必須] 既存の命名規約に従ってください
[推奨] バリデーションは zod、フォームは react-hook-form がいいです
[任意] APIは REST でも RPC でもどちらでもOKです
この重みを前提に作ってください。
③ 一気に進まず、区切って進んでもらう
AIは「全部いっぺんに作ればいいや」って思っちゃうことがあるんです。
そうすると、UI・型・API・状態管理が一度に混ざって浅くなっちゃう。
だから、「ここまで来たら一度止まってね」って伝えるのがポイントです。
💡 こんな風に伝えてみましょう
【作業段階】
Step1: データモデル・型定義だけ(UIはまだ作らない)
Step2: APIの設計だけ(実装はまだしない)
Step3: UI・コンポーネント構造の設計
Step4: 実装
【指示】
まずは Step1 だけやってください。
完了したら「Step1完了」って教えてください。
他にもこんな「迷子の原因」があります
今回紹介した3つ以外にも、AIが迷っちゃう理由はあるんです。簡単にご紹介しますね。
- 長い会話だと、最初の指示を忘れちゃう → 大事なことは時々言い直してあげましょう
- 学習データの偏り → 「2024年以降のやり方で」など時期を明示すると◎
- 「良い感じに」が伝わらない → 「シンプル=ファイル数を減らす」のように定義してあげましょう
- 例がないとイメージしづらい → 既存コードを「こんな感じで」って見せると伝わりやすいです
- フィードバックがない → 「ここは違うよ」って教えてあげると学習してくれます
もっといい対話を作っていきましょう
AIは、ゴールは見えていることが多いんです。迷っているのは道の選び方のところ。
だから、一緒に地図を共有してあげればいいんですね。
① どの道を大切にするか(優先軸)
② ルールの「守る強さ」
③ 進む順番と区切り
この3つを優しく伝えてあげるだけで、AIはぐっと迷わなくなります。
あなたとAIが、同じ地図を見ながら、同じ道を一緒に歩いていける。
そんな対話、一緒に作っていきませんか?
Discussion