AIと往復しても抜けないとき、「もう一回聞けば直るかも」でついもう一往復してしまいます。気づくと1つのエラーに2〜3時間。しかも翌朝、頭がクリアな状態で見たら5分で解けた——未経験のうちは、これを何度も繰り返します。
粘るか止めるかは、技術力の前に**「合図(サイン)を持っているか」**の問題です。合図があれば、同じ質問を投げ直す往復が5回→1〜2回に減り、溶かす時間がまるごと縮みます。
この記事は、AIとのデバッグで**「これが起きたら手を変える/一旦止める」止め時サインを5つのチェックリスト**にまとめたものです。各サインに 検知の目印 → 取るべき次の一手(実プロンプト or 行動) を必ずセットで添えました。精神論の「休みましょう」ではなく、具体的に次に何を打つかまで書きます。
技術的な「どう切り分けるか」は別記事に譲り、ここは**「いつ止めるか(時間の区切り方)」**の一点に絞ります。
前提:この記事が扱うのは「切り分け技術」ではなく「撤退ライン」
先に線引きしておきます。デバッグには2つの別々のスキルがあります。
- 切り分け技術:エラーの原因をどう絞り込むか(二分探索、最小再現手順の作り方など)
- 撤退ライン:同じアプローチをいつ諦めて手を変えるか(この記事)
切り分けが上手くても、「粘りすぎ」の判断がないと1エラーに数時間溶かします。逆に撤退ラインを持っていれば、切り分けが下手でも「これは今の自分+AIじゃ抜けない」と早めに気づいて別ルートに移れます。中上級の方には「ループエンジニアリングの撤退ライン」の話として、未経験の方には「今日から真似できる区切り手順」として読めるはずです。
では、5つの止め時サインを見ていきます。
サイン① 同じ趣旨の質問を3回投げても堂々巡り → AIの文脈が汚れた合図
検知の目印
同じエラーについて、言い回しを変えながら3回聞いた。でもAIの答えが似たり寄ったりで前に進まない。「試しました、直りません」を繰り返している。
これは多くの場合、会話が長くなりすぎてAIの文脈(コンテキスト)が汚れているサインです。最初に貼ったコードと今のコードがズレていたり、途中で試した「効かなかった案」が文脈に残って邪魔をしていたりします。
次の一手:/clear して状況1行から出し直す
会話をリセットして、今の状況だけを再提示します。Claude Code なら /clear でコンテキストを消してから、以下のように前提・期待・実際を1回で渡します。
悪い例(同じ会話で連投し続ける):
まだ直りません。
やっぱりダメでした。
別のエラーが出ました、直してください。
良い例(リセットして状況を構造化して出し直す):
状況をリセットして相談します。
- 前提:Next.js 15 (App Router) + Supabase。ログインフォームを作っています
- 期待:ログイン成功後に /dashboard へリダイレクトしたい
- 実際:ログインは通るが URL は /login のまま、画面も変わらない
- 関連コード:(該当の Server Action だけ貼る)
原因の仮説と、まず確認すべき1点だけ教えてください。
ポイントは、「まだ直りません」には情報がゼロなこと。何が前提で・何を期待して・実際どうなっているか、をリセット後の最初の1通に詰め直すだけで、AIの回答が別物になります。
得:ダラダラ続く「直りません」の往復が5回続いていたのが、リセット+状況1通で1〜2回に減ります。
サイン② AIが「さっきと同じコード」を出してくる → 前提が伝わっていない合図
検知の目印
「直してください」と頼んだのに、AIがほぼ同じコードを再提示してくる。あるいは、あなたの環境では存在しないファイル名・古いAPIを前提にした答えが返ってくる。
これは前提(環境・バージョン)が伝わっていないサインです。AIは一般論で答えていて、あなたの実物を見ていません。
次の一手:環境とバージョンを明示して聞き直す
「直して」ではなく、AIが誤解している前提を1行で固定します。
悪い例(環境が抜けた頼み方):
このエラー直して。
useRouter が動きません。
良い例(環境・バージョン・現物を渡す):
環境を明示します。Next.js 15 の App Router です(pages ではありません)。
- `next/router` ではなく `next/navigation` を使う前提です
- 現状のコード:
(実際のコンポーネント全文を貼る)
- 出ているエラー全文:
(ターミナル/ブラウザのエラーをそのまま貼る)
App Router 前提で、このコードのどこを直せば良いか教えてください。
next/router(旧 Pages Router)と next/navigation(App Router)のように、バージョンで作法が変わるところは、未経験のうちは自分で気づけません。AIに「App Router です」と一言固定するだけで、堂々巡りが止まります。
得:同じコードを出され続ける無限ループが、前提1行の追加で1回で抜けます。
サイン③ エラーメッセージ自体が全く変わらない → 直す場所が違う可能性
検知の目印
コードをあちこち書き換えているのに、エラーの文言が一字一句同じ。行番号すら動かない。
これは「直そうとしている場所」と「本当に壊れている場所」が違うサインです。手を動かしている実感はあるのに、そもそも触るべき場所を触っていません。
次の一手:半分に絞って切り分ける(技術詳細は別記事へ)
ここで初めて「切り分け技術」の出番です。怪しい処理を半分コメントアウトして、エラーが消えるか見る。消えれば原因は消した側、消えなければ残した側——と絞り込みます。
export default function Page() {
// まず後半を丸ごとコメントアウトして、エラーが消えるか確認する
return (
<main>
<Header />
{/*
<PostList />
<Footer />
*/}
</main>
);
}
エラーが消えたら、犯人はコメントアウトした <PostList /> か <Footer /> の中にいます。次はその半分だけを戻して、また半分に絞る——これを繰り返します。
具体的な二分探索の進め方(git bisect を含む)は別記事にまとめてあるので、切り分けを深掘りしたい人はそちらへどうぞ。この記事の主眼は**「エラーが変わらない=今の手は空振り。手を変える合図」**を検知することです。
得:同じ場所を何度も書き換える空振りが止まり、1回の切り分けで犯人の半分が確定します。
サイン④ 15分以上「何を試したか」を自分で言えなくなった → 頭が飽和した合図
検知の目印
「さっき何を試したっけ?」がすぐ出てこない。試した案と結果がごちゃ混ぜになっていて、同じ案をもう一度試してしまう。
これはAI側ではなく人間側の頭が飽和したサインです。ここでAIに投げ続けても、あなた自身が状況を把握できていないので、良い質問が作れません。
次の一手:AIに聞く前に「試したこと」を書き出す
キーボードから手を離して、紙かメモアプリに試したことと結果を箇条書きにします。AIに投げるのではなく、まず自分の頭を整理します。
【試したこと台帳】
- [試1] .env に SUPABASE_URL を追加 → 変化なし(同じエラー)
- [試2] npm run build し直し → 変化なし
- [試3] next.config.js の設定を戻した → 別のエラーが出た(進んだ?)
- [試4] ブラウザのキャッシュ削除 → 未確認 ← 次これ
書き出すと、**「試3で一回エラーが変わった=そこに手掛かりがある」**のような、往復の中では見えなかった線が浮かびます。そのうえで、この台帳をそのままAIに貼れば、サイン①の「状況リセット」にもなって一石二鳥です。
得:同じ案を試し直す二度手間が消え、次に打つべき1手が自分で決まります。
サイン⑤ 明らかに眠い/イライラしている → 翌日に回す判断
検知の目印
エラーメッセージを読んでも頭に入ってこない。AIの回答を「とりあえず全部コピペ」で試している。イライラして雑になっている自覚がある。
疲れているときの自分は、エラー文の見落とし・打ち間違い・的外れな質問を量産します。この状態でAIと往復しても、質問の質が落ちているので抜けません。
次の一手:区切って翌日に回す(翌朝5分で解ける事例は本当に多い)
無理せず、今日はここまでにします。撤退するときは、明日の自分のために「どこまで詰めたか」だけ1行残します。
【今日の撤退メモ 2026-07-21】
- 詰まり:ログイン後にリダイレクトされない(サイン①のログ参照)
- 最後に試したこと:redirect() を Server Action 内に移動 → まだ /login のまま
- 明日やること:Server Action の戻り値と redirect の位置関係を確認
未経験のうちは信じにくいのですが、寝て起きた翌朝、同じエラーが5分で解けることが本当によくあります。脳が整理された状態だと、昨日は見えなかったエラー文の1行に気づけるからです。「粘り」より「一晩置く」が最短ルートのことがあります。
得:疲れた頭で溶かす2時間が、翌朝の5分に置き換わります。
悪い例 → 良い例:サインを無視するとどうなるか(実演)
5つのサインの効果を、1つの場面で並べてみます。「ログイン後にリダイレクトされない」で詰まったケースです。
悪い例(サインを全部無視して「直して」を連投):
(同じ会話で)
リダイレクトされません、直して。
まだダメです。
やっぱり動きません、なぜ?
別の書き方で直して。
それでもダメでした。
...(10往復、体感2時間)
AIは一般論を返すだけ。前提が固定されていないので、next/router を前提にした答えと next/navigation を前提にした答えが混ざり、余計に混乱します。
良い例(サイン②で1回止めて前提を足す):
(2〜3往復して「同じ答えが返る」と気づいた時点で止める)
環境を明示します。Next.js 15 App Router です。next/navigation を使う前提です。
現状のコード(全文)と、出ているエラー全文を貼ります。
(コードとエラーを貼付)
App Router 前提で、redirect の位置を含めてどこを直せば良いか教えてください。
止め時サインを持っていると、「同じ答えが返ってきた=前提が伝わっていない」を2〜3往復で検知できます。そこで一回止めて前提を足すだけで、10往復が1〜2往復に縮みます。差は「技術力」ではなく「止め時を知っていたか」です。
まとめ:5つの止め時チェックリスト
デバッグで抜けなくなったら、この5つを順に自問してください。
| サイン | 目印 | 次の一手 |
|---|---|---|
| ① 堂々巡り | 3回聞いても答えが似たり寄ったり |
/clear して前提・期待・実際を1通に |
| ② 同じコード | AIが同じ答えを返す | 環境・バージョンを1行で固定して聞き直す |
| ③ エラー不変 | 文言が一字一句変わらない | 半分コメントアウトして切り分ける |
| ④ 頭の飽和 | 何を試したか言えない | 試したことを箇条書きで書き出す |
| ⑤ 疲労 | 眠い・イライラ・雑になっている | 撤退メモを1行残して翌日に回す |
粘るのが悪いのではありません。「粘るべき時」と「手を変える/止める時」を合図で見分けられるかが、同じ時間を全然違う成果に変えます。未経験のうちほど、この5つの合図を紙に貼っておくだけで、溶かす時間がまるごと減ります。
未経験者向けの講座を運営しています
未経験から Next.js + Supabase + Claude Code で Webアプリを作って公開するまで を、全20セッションで体系化した教材です。Claude Code を学習パートナーにする CLAUDE.md / Skills 設計までセットで含みます。
- 無料体験版(git clone してすぐ動く・最初の数セッション分・⭐ Star もよろしくお願いします)→ https://github.com/ayies128/next-ai-camp-trial
- 教材完全版+月5,500円のメンタリング(全20セッション+チャット質問し放題)→ https://menta.work/plan/20251?ref=qiita
- YouTube『AIエンジニア情報局』(AI×開発ニュースを1本5分でキャッチアップできる別運営チャンネル・無料)→ https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/?ref=qiita
※ Qiita 読者の方には易しすぎる内容なので、初心者の知り合いへの紹介や社内研修の参考としてどうぞ。