予習・大局観 / 開発が詰まるとき / 2026.08.30

分かっていないことが、
分からない

AIと開発していて手が止まるとき、足りないのはたいてい根気ではありません。 問題の形が見えていないのです。細かいレビューばかりして進まない。何を指示すればいいか分からず、 曖昧な言い方になる。出てくる用語を、なんとなくで流している。
私はこれを、三つのものを頭の外に出すことで抜けました。git と、サイドチャットと、書いて公開すること。 それぞれ別のものを外に出しています。

形式 私の経験からの仮説 対象 AIと開発していて止まっている人 診断 8問のチェックつき
症状 止まっているときの形

三つの止まり方

詰まっている状態には、いくつか典型的な形があります。私が繰り返し落ちたのは次の3つです。

① レビューの往復が、止まらない

書いたコードを Codex に貼ってレビューしてもらい、返ってきた指摘を直す。また貼る。また指摘が返る。 また直す——これを延々と繰り返していました。

おかしいと思ったのは、指摘の中身です。変数名、エラー処理の抜け、命名の一貫性。 どれも間違ってはいないのですが、重箱の隅ばかりで、そもそもやりたかったことには近づいていかない。 時間だけが経ちました。

しばらく、なぜこうなるのか分かりませんでした。いまはこう考えています。

レビューを頼むとき、私は「何を見てほしいか」を言っていませんでした。 正確には、言えませんでした。何が論点なのかが、自分で分かっていなかったからです。

観点を指定せずにレビューを頼む ↓ 一般的なコード品質の観点で見られる ↓ 一般論でよければ、指摘はいくらでも出せる 頼まれた側も「特に問題ありません」とは返しにくい ↓ 指摘が出る → 直す → また指摘が出る → また直す ↓ ループが自走する。その間ずっと、 本来の要求条件は誰の視野にも入っていない

自分が指示すべきポイント・検討すべきポイントが分かっていないから、 この低生産性のループに入り込んでいるのではないか—— そう考えたのが、私の場合の転機でした。

そこでサイドチャットに切り替えて、用語や構造を理解しにいきました。 もやもやが晴れると、別の観点の指示が出せるようになる。 「ここを見てほしい」が言えるようになって、レビューの往復も意味を持ちはじめました。

レビューの自動化そのものは、悪くありません

往復を自動化する仕組みは コピペリレーを消す — Claude Code × Codex レビューループの自動化 に書きました。止まらなくなるのは自動化のせいではなく、観点を渡していないせいだと思っています。

観点が決まっていれば、往復が速いほど良い。決まっていないまま速く回すと、細部だけが速く増えます。

② 指示が出せない迷走

「もう少しいい感じにして」「ちゃんとエラー処理して」——曖昧な指示を出して、曖昧な結果が返ってくる。 それを見て、また曖昧に直させる。

具体的に指示できないのは、何が選択肢なのかを知らないからです。 選択肢を知らないと、選ぶことも、選ばない理由を言うこともできません。

③ 用語の霧

出てくる単語の半分くらいは、なんとなくで流している。動いているから問題ない、と思っている。 しかし判断が必要になった瞬間、根拠がないことに気づきます。

3つとも、原因は同じところにあります

頭の中だけで抱えていて、外に出していない。 問題の全体像も、経緯も、分からない用語も、全部その場の作業記憶に乗せたまま動いている。

作業記憶は狭いので、細部を見ている間は全体が落ち、全体を見ている間は細部が落ちます。 行ったり来たりするうちに、どちらも保持できなくなる。これが「詰まった」の正体だと思っています。

処方 何を外に出すか

三つの外部化

「外に出す」と一言で言っても、出すものが3種類あります。そして道具も別です。

EXTERNALIZE 01
git
→ 経緯を外に出す
いつ・何を・なぜ変えたか。時間軸の構造を持ち出す。 昨日の自分が何を試して何を捨てたかを、思い出さなくてよくなる。
EXTERNALIZE 02
サイドチャット
→ 理解を外に出す
本流を止めずに「そもそもこれは何か」を解決する。概念の構造を作る場所。 分からない用語を、分からないまま持ち歩かなくてよくなる。
EXTERNALIZE 03
書いて公開する
→ 理解を検証して手放す
説明できるかで理解を測り、済んだものとして頭から降ろす。 「あとで調べる」の山が減る。

3つとも、作業記憶を空けるための操作です。空けば、全体を見る余裕が出ます。 全体が見えれば、指示が具体的になります。指示が具体的になると、開発が動き出す。

診断 どれが足りていないか

いま、どこで止まっているか

自己診断 / 当てはまるものを選んでください

8つのうち、いま自分に当てはまるものにチェックを入れてください。 正解を測るものではなく、どの外部化が足りていないかを見るためのものです。

チェックを入れると、診断が出ます
当てはまるものが1つもなければ、いまは詰まっていません。この記事は必要ないと思います。
02 サイドチャット

本流で、素朴な質問をしない

三つのうち、いちばん効いたのにいちばん語られていないのがこれだと思います。

実装しているセッションは、文脈が重くなっています。ファイルを読み、方針を決め、コードを書いている。 そこで「そもそも◯◯って何ですか」と聞くと、2つのことが起きます。

だから別のチャットを開きます。そこは実装から切り離された場所で、素朴な質問をするコストがゼロです。 「バカな質問」ができる。しかも本流は止まっていません。

聞き方に、型があります

私がよく使う3つを置いておきます。そのまま貼れます。

① 全体像を先に取る
いま【技術名】を使って【やろうとしていること】を進めています。
まだ用語が分かっていない前提で、全体像を教えてください。

- 何の層があって、どれが上に乗っているかを階層で
- 各層が「何を解決するために」存在するのか
- 私がいま触っているのは、どの層か

説明の中で出てくる用語のうち、初出のものには
短い言い換えを添えてください。
② 原理と、実務で効く性質を分ける
【技術名】について、次の3つに分けて説明してください。

1. 原理を3行で(なぜそう動くのか)
2. その原理から出てくる、実務で効く性質を3つ
3. その性質を知らないと踏む失敗を3つ

「使い方」は要りません。原理と、そこから導かれることだけ。
③ 要求を、検証できる要件に変える
私のいまの要求は「【やりたいこと】」です。
これは要求であって、要件になっていないと思っています。

検証可能な要件に書き直すのを手伝ってください。

- 何を、どこまで、何を犠牲にして達成するのか
- 「できた」と judged できる基準は何か
- 私が決めていない前提があれば、決めるべき順に質問して

一度に全部答えず、まず質問を出してください。

③がいちばん効きます

詰まっているとき、多くの場合要求は言えています。「速くしたい」「使いやすくしたい」「自動化したい」。 言えていないのは要件です。

「速くしたい」は要求で、「1000件の処理を、メモリを2GB以内に抑えたまま、5秒以内に」は要件です。 後者になって初めて、設計判断ができます。何を犠牲にするかが書いてあるからです。

要件 エンジニアリングで捉える

要求のままでは、
壁にぶつかる

ここは私が長く分かっていなかったところです。要件定義を、日本語の作文だと思っていました。 やりたいことを丁寧に書けば伝わるはずだ、と。

伝わりません。要求と要件は、種類が違います。

要求(want)要件(requirement)
書き手使う人の言葉作る人が判断できる言葉
「〜したい」「〜のとき、〜を、〜以内で」
検証できない(主観)できる(測れる)
トレードオフ書かれていない何を捨てるかが書いてある
AIに渡すともっともらしい何かが返る設計の選択肢が返る

そして重要なのは、この変換には原理の理解が要るということです。 何を犠牲にできるかは、その技術の性質を知らないと書けません。 メモリと速度が交換できるのか、精度と応答時間が交換できるのか——交換レートを知らないと、要件は書けない。

だから、遠回りが近道になります

詰まっているときに原理を勉強するのは、遠回りに見えます。私の場合は、そこが抜け道になりました。ほかにも道はあるのだと思います。

原理が分かる → 何を犠牲にできるか分かる → 要件が書ける → 指示が具体的になる → 開発が動く。 この順序を飛ばして「もっといい感じに」と言い続けていたとき、私は何周かして同じ場所にいました。

03 書いて公開する

忘れるために、書く

3つめの外部化には、予想していなかった効果がありました。

分かったことを記事にしてサイトに出すと、その件を頭から降ろせます。 「あそこに書いた」という参照だけ持てばよくなり、内容そのものを保持しなくてよくなる。

抱えているときは、こうなっていました。

書く前 「あとで調べる」 ×7件 ← 全部が常駐している 「あれ結局どうなったんだっけ」 ×3件 → 作業記憶が埋まっていて、新しいことが入らない 書いたあと 記事1本 = 参照1つ → 中身は外にある。思い出す必要がない → 空いた分だけ、次のことを考えられる

書き終わるまでは、頭から落ちません。中途半端に分かっているものほど居座ります。 書き切って初めて、手放せる。だから「忘れるために書く」というのは、比喩ではありません。

もうひとつ、書くと分かることがあります

説明できないところが、分かっていないところでした。書いてみるまで、自分では気づけませんでした。

読んでいるときは分かった気になります。しかし書こうとすると、私はたいてい、ある一文で手が止まります。 そこが穴です。頭の中でぐるぐる考えていても、この穴は見つかりません。外に出す形式にして初めて、輪郭が出ます。

公開する必要があるのか

手元のメモでも半分は効きます。ただ、公開するつもりで書くと、精度が上がります。 「これ、他人が読んで分かるか」という検査が入るからです。

そして間違っていたら誰かが教えてくれる可能性が生まれます。手元のメモは、間違ったまま何年も残ります。

ループ 繋がる

三つは、円環になる

git 経緯を外に サイドチャット 理解を外に 書いて出す 検証して手放す 経緯が残るから、何が分かっていないか見える 理解したことを 説明できる形に 空いた記憶で 次の作業に戻る 作業記憶 が空く

git に経緯が残っているから、何が分かっていないかが見えます。 「ここで3回詰まっている」は、履歴がないと気づけません。

サイドチャットで理解したことは、説明できる形になっています。だから記事にできる。 理解していないものは、書こうとすると手が止まるので、そこで分かります。

書いて手放すと、作業記憶が空きます。空いた分で、次の作業に戻れる。 そしてその作業がまた git に残る。

私の場合、これで動き直しました

止まっていたときは、3つとも頭の中でやろうとしていました。 経緯も覚えておこうとし、分からない用語も抱えたままにし、理解したことも書かずに次へ進む。

それで回るほど、作業記憶は広くありません。能力の問題ではなく、容量の問題でした。 外に出す先を3つ作っただけで、同じ頭のまま前に進めるようになりました。

具体へ

私は、この順で始めました

仕組みの側から知りたい場合は Gitの内部構造を8層で読む が、まさに①のプロンプトで作った層構造の実例になっています。

自分でも区別がついていないこと

作業記憶という説明が正しいのか、単に自分に合う比喩なのか——ここが分かっていません。 そう言い換えると腑に落ちる、という以上のことは言えないままです。

サイドチャットが効いた理由も切り分けられていません。 別のチャットに分けたから効いたのか、それとも単に聞き方を変えたからなのか。 後者だとしたら、本流の中でも同じことができるはずですが、試していません。

3つの外部化という整理も、後から振り返って形にしただけです。 当時は行き当たりばったりでした。順序立ててやったように書いてしまうのは、たぶん正確ではありません。

これは仮説です

私の経験から書いていて、誰にでも当てはまるかは分かりません。 作業記憶の話も、そう説明すると腑に落ちるという以上のことは言えません。

合わなかった、あるいは別のやり方で抜けたという話があれば聞きたいです。 掲示板に置いていってください。うまくいった話より、詰まった話のほうが役に立ちます。