第一章:AIが堂々巡りになったら?中断してやり直す技術とGit基本リセット戦略
Vibe Codingにおいて最も頻繁に遭遇する問題は間違いなく「AIが突然コードをめちゃくちゃに変更し、修正すればするほど悪化する!」現象です。これは俗に「AIの堂々巡り」と呼ばれます。本章ではこの現象が発生する理由と、「中断してやり直す」技術と「Gitリセット」で完璧に解決する方法を深く解説します。
なぜAIは堂々巡りに陥るのか?
AI大規模言語モデル(GPT-4、Claude 3.5 Sonnetなど)の本質は「文字継ぎ」です。コンテキストウィンドウに誤ったロジック、無効な修正(Patch)、または矛盾するプロンプトが充満すると、AIの注意メカニズム(Attention Mechanism)がこれらのノイズに干渉されます。
具体的に、堂々巡りは以下の状況で発生します:
- 連続修正(Band-aid Fixes):バグを見つけ、AIが修正案を提示、しかし別のバグを引き起こす。さらに新しいバグを提示し、AIがまた修正...最終的にファイルが原型を留めなくなる
- コンテキスト汚染:会話スレッドが長すぎて、AIが最初のシステムアーキテクチャ設定を忘れる
- 幻覚(Hallucination):AIが存在しないパッケージやAPIライブラリをでっち上げる
核心の心得:中断してやり直す技術
AIが連続2回の修正で同じ問題を解決できず、さらにエラーが増える場合、即座に会話を停止してください! もう壊れたコードをAIに修正させようとしないでください。必要なのは「中断してやり直す」ことです。
中断してやり直すとは?
- 現在の会話スレッド(Context)を放棄する
- コードを「最後に動作していた状態」(Working State)に戻す
- 全新規の会話スレッドを開始し、問題を改めて説明する
実践チュートリアル:Gitで安全にリセットする方法
Vibe Codingでは「小さな機能を完成させるごとにCommitする」ことを強く推奨します。こうすることでAIが失敗した時、ワンクリックで復元できます。
シミュレーションシナリオ
ログインボタンを開発中で、元々美しいボタンだったが、AIにアニメーションを追加させたらボタンが消えた。20分間AIと議論した結果、ページ全体が真っ白になった。
ステップ1:現在の変更状態を確認
ターミナルまたはCursorのGitパネルで以下を実行:
git status
変更されたファイルが赤字で表示されます。
ステップ2:心を鬼にして全て破棄
まだ壊れたコードをCommitしていない場合、以下のコマンドで全ての変更を破棄できます:
# ステージングされていない変更を全て破棄(警告:この操作は元に戻せません)
git checkout .
# 追跡されていない新規ファイルがある場合、これで削除
git clean -fd
ステップ3:すでにCommitしてしまった場合?
誤って壊れたコードをCommitしてしまっても慌てないでください。git resetが使えます。
まず履歴を確認:
git log --oneline
最後に動作していたバージョン(例:hashがa1b2c3d)を見つけ、実行:
git reset --hard a1b2c3d
バン!プロジェクトはあの美しい瞬間に戻りました。
会話を再開するプロンプト技術
安全なポイントに戻ったら、全新規の会話(New Chat)を開始します。汚染された古い会話は使わないでください。
以下のプロンプト構造で会話を再開します:
[目標]
LoginButton.tsxにFramer MotionのHoverアニメーションを追加したい[現在のコード] (復元したクリーンで動作するコードを貼り付け)
[前回の失敗から学んだこと] 前回
<motion.div>で直接ラップしようとしたら、元のflexレイアウトが崩れてボタンが消えました 特にclassName="flex items-center"構造を破壊しないよう注意してください
まとめ
- AIの堂々巡りの根本原因はコンテキスト汚染
- 連続2回修正できないバグに遭遇したら即停止
- Gitで最後の安全なポイントにリセット
- 新規会話を開始し、失敗を総括してプロンプトを再送信
この心得をマスターすれば、CursorやChatGPTでコーディングする際の効率が300%向上し、AIにイライラしてPCを叩き壊すこともなくなります!
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ