The Map Is Not the Territory

指示書は、現場ではない

原題は古い格言 “The map is not the territory”(地図は領土ではない)。ここでは「地図 = あなたが AI に渡す指示書」「領土 = 仕事が行われる現場」と読み替えて紹介する。指示書には現場のすべては書ききれない——その「書けていない部分 = 未知」を潰す技術が、AI に任せる仕事の質を決める。

結局、何が言いたいの? — 30秒版

  1. AI への指示書(プロンプト)と、実際の現場(コードや現実の制約)には必ずズレがある。このズレが「未知」。Claude は未知にぶつかると推測で動くしかない。
  2. いまや仕事の質は、モデルの賢さより「未知をどれだけ事前に・途中で潰せるか」で決まる。
  3. 未知は一度の計画では潰しきれない。実装の前・最中・後に、Claude 自身を使って安く見つけ続ける——その具体的な方法が、この記事の 8 つのテクニック。

01 — 指示書と現場

「指示書」と「現場」のズレが「未知」

指示書(地図)とは、これからやる仕事を紙の上に写しとったもの。プロンプト、スキル、コンテキストなど、あなたが Claude に渡すもの一式だ。現場(領土)とは、実際に仕事が行われる場所。コードベース、現実の世界、そこに横たわる本当の制約のことだ。

地図がどれだけ精巧でも、現地を完全には写せない。同じように、どれだけ丁寧に指示を書いても、現場のすべては書ききれない。

地図 = 指示書 プロンプト・スキル・コンテキスト = Claude に渡すもの 領土 = 現場 コードベース・現実世界・ 実際の制約 差分 = 未知
指示書(渡したもの)と現場(実際の作業場所)のズレ。この差分が「未知(unknowns)」になる。

指示書に書かれていないこと(未知)にぶつかった Claude は、「たぶんこうしてほしいのだろう」という推測で判断するしかない。任せる仕事が大きくなるほど、Claude がぶつかる未知も増えていく。

Fable は、「Claude がぶつかる未知を、こちらがどれだけ明確にしてやれるか」が仕事の質のボトルネックになる、初めてのモデルだ。

重要なのは、事前に計画するだけでは足りないということ。実装の奥深くで未知が見つかることもあれば、見つけた未知が「そもそも別の解き方をすべきだ」と教えてくれることもある。だから Fable との仕事は、実装の前・最中・後を通じて自分の未知を発見していく反復プロセスになる。

02 — 未知を知る

あなたの「未知」は 4 種類ある

問題を Claude に持ち込むとき、原文の筆者は次の 4 つに分解して考えるという。

KNOWN KNOWNS

既知の既知 = 書いたこと

プロンプトに書いてあること。エージェントに「これが欲しい」と伝えた内容そのもの。
例:「ログイン画面に Google ログインを追加して」と書いた。

KNOWN UNKNOWNS

既知の未知 = 保留と自覚していること

まだ決めていないが、「決めていない」と自覚していること。
例:エラー時の文言はまだ決めていない(あとで決めるつもり)。

UNKNOWN KNOWNS

未知の既知 = 見れば分かること

当たり前すぎてわざわざ書かないが、見せられれば「これだ/これじゃない」と分かること。
例:社内では日付は和暦表示が常識。書き忘れたが、洋暦で出てきたら即気づく。

UNKNOWN UNKNOWNS

未知の未知 = 考えたことすらないこと

そもそも検討の土俵に上がっていないこと。知らないことに気づいてすらいない知識。「どこまで良くできるか」を知らないこと。
例:既存モジュールに同じ機能があったのに、存在を知らず作り直していた。

※ 各象限の「例:」は理解を助けるための訳注で、原文にはありません。

AI エージェントに開発を任せるのが上手い人ほど、未知が少ない。Boris や Jarred のような達人のプロンプトを見ていると、自分が欲しいものを細部まで分かっているのが伝わってくる。コードベースにもモデルの癖にも深く馴染んでいるのだ。

それでも彼らは「未知は必ずある」という前提で動く。未知を減らし、残った未知に備えること——それこそが「AI に仕事を任せる技術」の正体だ。そして幸い、このスキルは Claude と一緒に働くなかで鍛えていける。

03 — 指示のバランス

Claude を助けて、Claude に助けてもらう

Claude への指示は、細かすぎても粗すぎてもうまくいかない。

細かすぎると…方針転換したほうがいい場面でも、Claude は言われたとおりに突き進んでしまう。
ちょうどいい未知を織り込んだ指示
粗すぎると…足りない部分を「世間一般のベストプラクティス」で埋められてしまう。あなたの状況に合うとは限らない。

自分の未知を洗い出していないと、この両側で同時に失敗する。「この先に落とし穴がある」と知らないまま細かい指示で突き進ませてしまうし、逆に「道はまっすぐだが、本当は途中で曲がってほしい」ということを伝えそこねるからだ。

頼もしいのは、その未知の発見自体を Claude が速めてくれること。コードベースもインターネットも猛スピードで調べられるし、たいていの話題はあなたより詳しく、失敗からの立て直しも速い。

このとき何より大事なのは、「いま自分がどこに立っているか」を Claude に伝えること。考えがどこまで固まっているのか、その問題やコードベースにどれくらい詳しいのかを率直に開示して、壁打ち相手(思考のパートナー)として付き合ってもらう。こうした可視化には、ほとんどの場合 HTML アーティファクトが最適だ。

ここからは、原文の筆者が未知をあぶり出すために使っているパターン集。毎回すべてを使うわけではなく、「持っておくと便利な道具箱」として紹介されている。

04 — 8つのテクニック

実装前・実装中・実装後の道具箱

実装前PRE / 5 TECHNIQUES
1

ブラインドスポット・パスBLIND SPOT PASS

作業を始めるとき、まず自分の盲点を把握する。コードベースの新しい領域で機能を書くときや、デザインを反復して詰めていくような不慣れな作業を Claude に手伝ってもらうときは、未知の未知が大量にあるはずだ。何を質問すべきか、何が「良い」のか、過去にどんな経緯があったか、どんな落とし穴を避けるべきか——それすら分からない。

そこで Claude に「未知の未知を見つけて説明して」と頼む。“blindspot pass” や “unknown unknowns” という言葉をそのまま使うのがコツ。自分が誰で、何を知っているかのコンテキストも添える。

プロンプト例

新しい認証プロバイダを追加したいけど、このコードベースの認証まわりを何も知らない。ブラインドスポット・パスをして、関係する「未知の未知」を洗い出して、もっと上手くプロンプトできるように手伝って。
カラーグレーディングが何か知らないまま、この動画をグレーディングしないといけない。もっと良いプロンプトが書けるように、カラーグレーディングについての「未知の未知」を理解させて。
2

ブレストとプロトタイプBRAINSTORMS & PROTOTYPES

「見れば分かるのに、先に言葉にできない」——そんな基準(未知の既知)が多い領域では、Claude と一緒にブレストと試作をする。この手の未知は、実装中に発覚すると(相対的に)高くつく。仕様のほんの小さな変更がコードでは大改修になり、エージェントが以前の変更を巻き戻すのも難しくなるからだ。だからこそ、試作の段階で早めに言語化しておく価値が大きい。

たとえば、バックエンドの配線や状態管理を作り込む前に「フレームにボタンを足したらどう見えるか」だけを確かめたい、というように。ビジュアルデザインは特に「言葉にしづらいが、見れば分かる」の典型で、そういうときは 1 つのアーティファクトに複数のデザイン案を出してもらう。

筆者はほぼ毎回のコーディングセッションを探索・ブレストのフェーズから始めるという。こうすると、プロジェクトのスコープを意図を持って決めた状態でスタートできる。Claude は自分では思いつかなかった高価値なアプローチを見つけてくれることが多く(逆に木を見て森を見ずになることもある)、ブレストのおかげでスコープを狭すぎず・広すぎず設定できる。

プロンプト例

このデータのダッシュボードが欲しいけど、視覚的センスに自信がなくて何が可能かも分からない。まったく方向性の違う 4 つのデザイン案を 1 つの HTML ページにして。それを見て反応するから。
配線は何もしなくていいから、新しいエディタのツールバーをダミーデータでモックした HTML ファイルを 1 枚作って。実アプリに触る前に、レイアウトに反応したい。
ざっくりした課題:オンボーディング後にユーザーが離脱している。コードベースを調べて、介入できそうな場所を、手軽なものから野心的なものまで 10 個ブレストして。響いたものを伝えるから。
3

インタビューINTERVIEWS

十分ブレストしても、未知は残る。そこで今度は、曖昧な点について Claude に自分をインタビューしてもらう。質問の的を絞れるよう、問題のコンテキストを渡しておくとよい。

プロンプト例

曖昧な点について、1 問ずつ私にインタビューして。「答え次第でアーキテクチャが変わる質問」を優先して。
4

リファレンスREFERENCES

欲しいものを言葉で細かく説明できないこともある。語彙がなかったり、説明にとても時間がかかったり。そういうときの最善手はリファレンス(参照物)を渡すこと。図や資料や画像でもいいが、最強のリファレンスはソースコードだ。

望む挙動を実装しているライブラリや、気に入っているデザインコンポーネントがあるなら、そのフォルダを Fable に指して「これを見て」と言えばいい。別の言語で書かれていても構わない。Claude Design も同じ仕組みで動いている。ファイルを手渡す必要はなく(もちろん渡してもいい)、気に入ったウェブサイトのモジュールを指させれば、スクリーンショットではなくその下にあるコードを読んでくれる。マークアップや構造、そのコンポーネントが実際にどう組み立てられているかまで、ずっと豊かな情報が手に入る。

プロンプト例

vendor/rate-limiter にある Rust クレートが、まさに欲しいバックオフ挙動を実装してる。これを読んで、同じセマンティクスをうちの TypeScript API クライアントに再実装して。
5

実装計画IMPLEMENTATION PLANS

実装の準備ができたと思ったら、レビュー用の実装計画を作ってもらう。ポイントは、変わる可能性が高い部分——データモデル、型インターフェース、UX フロー——を先頭に置いてもらうこと。自分が実際に手を入れるべき箇所を Claude が浮かび上がらせてくれる。

プロンプト例

実装計画を HTML で書いて。ただし私が調整しそうな決定——データモデルの変更、新しい型インターフェース、ユーザーに見える部分——を先頭に。機械的なリファクタリングは最後に回していい。そこは任せる。
実装中DURING / 1 TECHNIQUE
6

実装ノートIMPLEMENTATION NOTES

計画に満足したら、新しいセッションを立ち上げ、スペックやプロトタイプなどのアーティファクトをプロンプトに渡して実装してもらう。しかし、どれだけ計画しても未知の未知は必ず潜んでいる。エージェントは作業中に、コードで見つけたエッジケースのせいで別の進路を取る必要に迫られるかもしれない。

そこで Claude Code に、一時的な implementation-notes.md(.html でも)を持たせ、下した判断を記録してもらう。次の挑戦への学びになる。

プロンプト例

implementation-notes.md を維持して。計画から逸れざるを得ないエッジケースに当たったら、保守的な選択肢を選んで「Deviations」に記録し、作業を続けて。
実装後POST / 2 TECHNIQUES
7

ピッチと説明資料PITCHES & EXPLAINERS

何かを世に出すうえで最も重要な工程のひとつが、周囲の理解と承認を得ること。ピッチ資料・説明資料を成果物に添えると、(1) あなたと同じ未知からスタートするレビュアーの理解が速くなり、(2)「想定すべき未知や典型的な失敗点をちゃんと考慮したか」を見たい専門家の承認も速くなる。

プロンプト例

プロトタイプとスペックと実装ノートを、Slack に置くだけで賛同を得られる 1 つのドキュメントにまとめて。デモ GIF を先頭に。
8

クイズQUIZZES

長い作業セッションの後、Claude は自分が思っていた以上のことを成し遂げているかもしれない。コードの差分を読むだけでは浅い理解しか得られない——挙動の多くは既存のコードパスに依存しているからだ。

そこで、まず変更にまつわるコンテキストをたっぷり説明してもらったうえで、その内容について自分にクイズを出してもらう。筆者は、クイズに満点で合格するまでマージしないという。

プロンプト例

この変更で起きたことを全部理解しておきたい。背景、直感的な説明、何をやったかを含む HTML レポートを作って、最後に「合格必須」のクイズを付けて。

05 — ケーススタディ

実践例:Fable のローンチ動画

Fable のローンチ動画は、すべて Claude Code で編集された。筆者にとって動画編集は新しいドメインで、専門家でもなんでもない。それでも上のテクニックを組み合わせて完成させた。

1

知っていることから始める

Claude がコードで動画編集と文字起こしをできることは知っていた。しかし精度は未知数。そこでまず、Whisper のような文字起こしがどう動くのか、「um」や長い間(ま)を ffmpeg で正確にカットできるのかを Claude に説明してもらった。

2

プロトタイプで確かめる

話している言葉にタイミングを合わせた UI を作りたかったが、可能かどうか確信がない。Remotion と文字起こしを使ったプロトタイプ動画を作ってもらい、成立するかを先に確認した。

3

「良い」が分からないなら、まず学ぶ

映像が少しくすんで見えた。原因がカラーグレーディングにあることは知っていたが、それが何かはよく知らない。最初はバリエーションを何案か作らせて選ぼうとしたが、「そもそも自分は何が良いのか分かっていない」と気づいた。そこで方針を変え、Claude にカラーグレーディングを教えてもらって自分の未知を発見することから始めた。

06 — まとめ

指示書を、現場に近づけていく

モデルが賢くなるほど、正しい任せ方さえできれば届く成果は大きくなる。時間のかかるタスクが間違った結果で返ってきたなら、それはおそらく未知の洗い出しにもっと時間をかけるべきサイン——あるいは、Claude が未知に出会っても自力で乗り切れる余白を持たせた実装計画が必要だった、というサインだ。

説明資料も、ブレストも、インタビューも、プロトタイプも、リファレンスも——どれも「知らなかったこと」を、修正が高くつく前に安く知るための方法だ。

次のプロジェクトは、Claude に「私の未知を見つける手伝いをして」と頼むところから始めよう。

早見表:困りごとから逆引きする

新しい領域で、何を質問すべきかすら分からないブラインドスポット・パス実装前
見れば分かるはずだが、言葉にできないブレストとプロトタイプ実装前
決めきれていないことが残っている気がするインタビュー実装前
説明するより見せたほうが早いリファレンス(特にソースコード)実装前
実装に入る準備ができた(と思う)実装計画のレビュー実装前
計画外の判断を後から学びに変えたい実装ノート実装中
レビュアーの理解と承認を速くしたいピッチと説明資料実装後
変更を本当に理解できたか確かめたいクイズ(満点までマージしない)実装後