2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIに同じ質問を投げ直す前に確認したい「詰まりの止め時」サイン5つ ── 未経験が1つのエラーに数時間溶かさないために

2
Posted at

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 設計までセットで含みます。

※ Qiita 読者の方には易しすぎる内容なので、初心者の知り合いへの紹介や社内研修の参考としてどうぞ。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?