Claude Fable のフィールドガイド:未知の領域を見つける方法
Anthropic は、Claude Fable を活用して技術的な不明点を特定し解決するための実践的ガイドを公開し、LLM の限界理解と効果的な利用法を体系化した。
キーポイント
技術的不明点の可視化手法
Claude Fable を用いることで、開発者が抱える「何を知っているか」だけでなく「何を知らないか(Unknowns)」という盲点を明確に特定するフレームワークを提供している。
体系的な問題解決アプローチ
単なる質問の羅列ではなく、不明点を構造化し、論理的な推論プロセスを通じて技術的課題を段階的に解決するための具体的な手順を提示している。
LLM 利用の質向上への寄与
AI ツールを盲目的に使うのではなく、その能力範囲と限界を理解することで、より信頼性の高い結果を得るためのベストプラクティスを示唆している。
影響分析・編集コメントを表示
影響分析
この記事は、LLM を単なる情報検索ツールではなく、思考の拡張や盲点発見のための対話パートナーとして位置づける重要な示唆を与えています。特に、技術開発現場において「何を知っているか」だけでなく「何を知らないか」を意識的に管理する必要性を強調しており、AI リテラシー向上と実務への効果的な導入に向けた指針となります。
編集コメント
LLM の能力を最大限に引き出すためには、ツールの限界を理解し、未知の領域を意識的に探求する姿勢が不可欠です。このガイドは、そのための具体的な思考フレームワークを提供しており、開発者にとって非常に有益なリソースとなります。
未知のものを把握する
あなたの「未知のもの」とは何ですか?私が Claude に問題を持ち込むとき、私はそれを 4 つの観点に分解して考えます:
- 既知の既知(Known Knowns):これは本質的にプロンプトに含まれる内容です。エージェントに対して何を伝えたいのか。
- 既知の未知(Known Unknowns):まだ解明していないが、自分がそれを知らないことを自覚していること。
- 未知の既知(Unknown Knowns):あまりにも明白すぎて書き留める必要はないが、もし目にしたなら認識できること。
- 未知の未知(Unknown Unknowns):全く考慮したことがないもの。どのような知識を欠いているのか?あるものがどれほど優れたものになり得るかを知っているか。
最も優秀なエージェント型コーディングを行う人々は、比較的少ない「未知のもの」しか持っていません。Boris や Jarred といった人物がプロンプトを打つ様子を見ていると、彼らが何を詳細に求めているかを明確に理解していることがわかります。彼らはコードベースとモデルの挙動の両方に深く精通しています。

しかし、彼らはまた「未知のもの」を前提としています。多くの点で、未知のものを減らし、それを見越して計画することが、エージェント型コーディングにおけるスキルです。ただし幸いなことに、これは Claude と共に作業することで向上できるスキルです。
Claude に協力してもらう

Claude への指示出しは、微妙なバランスの上に成り立っています。指示が細かすぎると、状況によっては方針転換の方が適切である場合でも、Claude は指示に従ってしまいます。逆に指示が曖昧すぎると、Claude は業界のベストプラクティスに基づいて判断や仮定を行いますが、それがあなたのタスクに適合しないこともあります。
未知の要素を考慮しない場合、どちらの方向にも失敗することになります。道に障害が待ち受けている時と、道がクリアな時に Claude が迂回すべきかどうかを、あなたは知り得ないのです。
Claude は、あなたが抱える未知の要素をより早く発見する手助けをしてくれます。コードベースやインターネットを極めて高速で検索でき、平均的なトピックについてはあなたよりも多くの知識を持っています。また、失敗からの反復も迅速に行えます。
このプロセスで最も重要なのは、スタート地点に関する文脈を Claude に与えることです。例えば、思考のどの段階にいるかを伝え、問題やコードベースに対する自身の経験を開示し、思考のパートナーとして共に作業できるようにします。
本記事では、これらの未知の要素を発見するために私が用いるいくつかのパターンについて詳述します:
実装前:
- ブラインドスポットの確認
- 脳内会議とプロトタイプ作成
- インタビュー
- リファレンス(参考資料)
- 実装計画
実装中:
- 実装ノート
実装後:
- プレゼンテーションと解説資料
- クイズ
Blind Spot Pass
作業を開始する際、最も有用なことのひとつは自分の盲点を理解することです。例えば、コードベースの新しい部分に機能を実装している場合や、デザインの反復など見慣れない作業を Claude に手伝ってもらう場合は、未知の未知(unknown unknowns)が非常に多く存在する可能性が高いです。
何を質問すべきか、何が良質なのか、過去のどのような作業が行われたのか、あるいは避けるべき落とし穴は何かといったことがわからないかもしれません。
このような状況では、Claude に自分の「未知の未知」を見つけ出し、それらを説明してもらうよう依頼できます。私は「盲点パス(blind spot pass)」や「未知の未知」という言葉をそのまま使うことを好みます。自分自身が誰で、何を既知としているかという文脈を与えることは、Claude があなたと協力する最善の方法を理解するために通常重要です。
例となるプロンプト:
- 「新しい認証プロバイダーを追加しようとしていますが、このコードベース内の認証モジュールについては何も知りません。私の関連する未知の未知を特定し、より良いプロンプトを作成できるよう支援するための盲点パスを行っていただけますか。」
- 「カラーグレーディングが何かもわかりませんが、このビデオにカラーグレーディングを施す必要があります。カラーグレーディングに関する自分の未知の未知を理解できるように教えていただき、より良いプロンプトを作成できるようにしてください。」
Brainstorms and prototypes
私が既知の未知(unknown knowns)が多く、基準は目にしたときにしか定義できないような分野で作業している場合、Claude に私と一緒にブレインストーミングやプロトタイピングを依頼することがあります。
プロトタイピングの初期段階で既知の未知(unknown knowns)を特定し、言語化しておくことは極めて価値があります。なぜなら、実装段階になってからそれらを見つけるのは(相対的に)高コストになる可能性があるからです。機能や仕様における小さな変更が、コード上では劇的に異なる実装を引き起こすことがあり、その場合、エージェントが以前の修正を元に戻すのがより困難になることがあります。
例えば、バックエンドのルートを設定したり、フロントエンドで追加の状態管理を行ったりすることなく、フレームに追加されたボタンがどのように見えるかを確認したいだけの場合があります。
もう一つの例として、視覚デザインが挙げられます。私にとってこれは言語化するのが難しいものですが、目にした瞬間に自分が何を求めているかはわかります。このようなケースでは、アーティファクトに対して複数のデザインアプローチを求めます。
また、コーディングセッションのほとんどは、探索やブレインストーミングのフェーズから始めます。これにより、プロジェクトのスコープを定義する意図を持ってスタートできます。Claude は私が見過ごしていた高価値なアプローチを見つけ出すことが多く、時には木を見て森を見ないという状況に陥ることもあります。ブレインストーミングを行うことで、スコープが狭すぎたり広すぎたりすることを防いでいます。
例となるプロンプト:
- 「このデータのダッシュボードを作りたいのですが、私はビジュアルセンスがなく、何が可能か分かりません。4 つの全く異なるデザイン方向性の HTML ページを作成して、私が反応できるようにしてください。」
- 「何かを接続する前に、新しいエディタツールバーをフェイクデータで模倣した単一の HTML ファイルを作ってください。実際のアプリに触れる前にレイアウトに反応したいのです。」
- 「私の大まかな問題はこうです:ユーザーはオンボーディング後に離脱します。コードベースを検索し、最も安価なものから最も野心的なものまで、介入できる 10 の場所をブレインストーミングしてください。私が共感するものを伝えます。」
インタビュー
十分なブレインストーミングを行った後でも、まだ不明な点が残っていることが多いです。
そのような場合は、Claude に不明点や曖昧な点についてインタビューしてもらうようにします。Claude にインタビューさせる際は、質問の方向性を示すために問題に関する文脈を伝えるよう心がけてください。
プロンプト例:
- 「曖昧な点について一度に 1 つずつ質問してください。私の回答によってアーキテクチャが変わる可能性が高い質問を優先してください。」
レファレンス
時には、何を求めているかを詳細に説明できないこともあります。例えば、適切な言葉が見つからない場合や、説明が複雑すぎて時間がかかりすぎる場合があります。
そのような場合、最良のアプローチはレファレンス(参考資料)を使うことです。図解、ドキュメント、画像を含めることもできますが、最も優れたレファレンスは*ソースコード*です。
特定の方式で実装されたライブラリや、本当に気に入ったデザインコンポーネントがある場合は、Fable をそのフォルダに指し示して、何を探すべきかを伝えるだけで構いません。たとえそれが異なる言語で記述されていても問題ありません。これにより、例えばスクリーンショットと比較した場合、マークアップや構造に関する詳細が Claude にとってはるかに豊かになります。
例のプロンプト:
- "vendor/rate-limiter のこの Rust クレートは、私が望むバックオフ動作を正確に実装しています。これを読み込み、同じセマンティクスを私たちの TypeScript API クライアントで再実装してください。"
実装計画
実装の準備ができたと感じたとき、私は通常 Claude にレビュー用の実装計画を作成するよう依頼します。この計画は、データモデル、型インターフェース、または UX フローなど、変更される可能性が最も高い部分に焦点を当てています。これにより、実際に修正が必要となる事項を Claude が浮き彫りにしてくれます。
例のプロンプト:
- "HTML で実装計画を作成してください。ただし、データモデルの変更、新しい型インターフェース、ユーザー向け機能など、私が最も調整する可能性が高い決定事項から始めてください。機械的なリファクタリングは最後に記述し、その部分はあなたに任せます。"
実装中
実装ノート
計画に満足したら、私は新しいセッションを開始し、作成したアーティファクトをプロンプトに渡します。これにより、Claude は計画段階で収集したすべての情報を保持しつつ、新鮮なコンテキストウィンドウを得ることができます。例えば、仕様書とプロトタイプを渡してエージェントに実装させるようなケースです。
しかし真実は、どれだけ綿密に計画を立てても、常に未知の未知(unknown unknowns)が潜んでいるということです。エージェントは作業中に、コード内で発見したエッジケースのために別のアプローチを取る必要があることに気づくかもしれません。
私は Claude Code に、一時的な「implementation-notes.md」(または .html)ファイルを作成させ、そこで意思決定を追跡させるようにしています。これにより、次の試行で学べるようになります。
例のプロンプト:
- 「implementation-notes.md ファイルを維持してください。エッジケースに遭遇して計画から逸脱せざるを得なくなった場合は、保守的な選択肢を選び、『Deviations(逸脱)』の下に記録し、作業を継続してください。」
実装後
ピッチと説明資料
何かをリリースする際、最も重要な部分の一つは関係者の合意形成と承認を得ることです。最終ドキュメントにピッチや説明資料のアーティファクトを組み込むことで、以下の効果が得られます:
- レビュー担当者があなたと同じ未知の点から始めるとき、理解を加速させる
- 専門家があなたが未知の点や、彼らが予期したであろう一般的な失敗点を考慮していることを確認したいときに、承認プロセスを加速させる
例のプロンプト:
- 「プロトタイプ、仕様書、実装メモを一つのドキュメントにパッケージ化し、Slack に貼り付けて合意形成を得られるようにしてください。デモ GIF を先頭に配置してください。」
クイズ
長時間の作業セッションの後、Claude は私が認識していた以上に多くのことを達成している可能性があります。コードの差分(diff)を読むだけでは、既存のコードパスに依存する動作が多いため、何が起きたのかを軽く理解する程度しかできません。
変更点について文脈を提示した後に、Claude にクイズを出してもらうことで、何が起きたのかを理解するのに役立ちます。私は完璧にクイズをクリアした後でしかマージしません。
プロンプトの例:
- 「この変更で何が起こったのかをすべて理解しているか確認したいです。文脈、直感、何が行われたかなどを含め、読んで理解できるための HTML レポートと、私が合格しなければならない変更点に関するクイズを最後に作成してください。」
これがどう組み合わさって Fable のローンチにつながるか:
Fable のローンチ動画は、Claude Code を用いて最初から最後まで編集されました。これは私にとって新しい分野であり、私は決して専門家ではありません。
そこで、私が知っていることから始めました。Claude がコードを使って動画を編集したり、文字起こしを行ったりできることは知っていましたが、それが十分な精度を持っているかどうかは確信が持てませんでした。そこで、Whisper などの文字起こしがどのように機能するのかを Claude に説明してもらい、ffmpeg を使って「um」や大きな一時停止などを正確にカットできるかどうかを尋ねました。
私は私が話している言葉とタイミングを合わせた UI を作成したいと考えていましたが、それが可能かどうか確信が持てなかったため、Remotion と文字起こしデータを使用してプロトタイプの動画を作成し、実際に機能するかを試すよう Claude に依頼しました。
最後に、動画自体が少し抑えめに見えたのですが、これはカラーグレーディングの結果だと知っていましたが、カラーグレーディングとは何かは本当に知りませんでした。最初の試みとして、Claude にいくつかのバリエーションを作成させて選んでもらおうとしましたが、カラーグレーディングにおいて「良い」状態がどう見えるのかを自分が知らないことに気づきました。そこで代わりに、私の未知の領域を見つけるために Claude にカラーグレーディングについて教えてもらうよう依頼しました。
マップとテリトリーの整合性
より優れたモデルほど、適切なアプローチを用いれば達成できることが増えます。長期にわたるタスクが誤って返ってきた場合、おそらく未知の領域を定義する時間をより多く取るか、あなたと Claude がそれらを通じて適応できるようにする実装計画を作成する必要があります。
すべての解説、ブレインストーミング、インタビュー、プロトタイプ、参照資料は、修正が高価になる前に自分が知らなかったことを発見するための安価な手段です。
したがって、次のプロジェクトでは、Claude に未知の領域を見つけるのを手伝ってもらうことから始めてください。
*この記事は、Anthropic の技術スタッフである Thariq Shihipar によって書かれました。*
原文を表示
Knowing your unknowns
What are your unknowns? When I come to Claude with a problem I tend to break it down in 4 ways:
- Known Knowns: This is essentially what is in my prompt. What do I tell the agent that I want?
- Known Unknowns: What haven't I figured out yet, but I’m aware that I haven’t?
- Unknown Knowns: What's so obvious I’d never write it down, but would recognize it if I saw it?
- Unknown Unknowns: What haven't I considered at all? What knowledge am I not aware of? Do I know how good something can be?
The best agentic coders have relatively few unknowns. Watching someone like Boris or Jarred prompt, it is obvious to me that they know what they want in-detail. They are deeply in-sync with both the codebase and the model behaviors.

But they also assume unknowns. In many ways, reducing and planning for your unknowns is the skill of agentic coding. But luckily, this is a skill you can improve at, by working with Claude.
Help Claude help you

Instructing Claude is a delicate balance. If you are too specific, Claude will follow your instructions even when a pivot may be more appropriate. If you are too vague, Claude will often make choices and assumptions based on industry best practices that may not be a fit for your task.
When you don’t account for your unknowns, you fail both ways. You don't know when the path will be filled with obstacles, and you don’t know when the path will be clear, but you still want Claude to veer.
Claude can help you discover your unknowns faster. It can search through your codebase and the internet extremely quickly, and it knows much more about the average topic than you. It can also iterate from failure faster.
The most important part of this process is to give Claude context about your starting point. For example, tell it where you are in your thought process; disclose your experience with the problem and codebase; and let it work with you like a thought partner.
In this article I detail some of the patterns I use to uncover these unknowns including:
Pre-implementation:
- Blind spot pass
- Brainstorms and prototype
- Interviews
- References
- Implementation plan
During implementation:
- Implementation notes
Post implementation
- Pitches and explainers
- Quizzes
Pre-implementation
Blind Spot Pass
When starting work, one of the most useful things you can do is understand your blind spots. For example, if you’re writing a feature in a new part of the codebase, or using Claude to help you with unfamiliar work like iterating on a design, you’re likely to have a lot of unknown unknowns.
You may not know what questions to ask, what good looks like, what historical work has been done, or what potholes to avoid.
In these situations, you can ask Claude to help you find your unknown unknowns and explain them to you. I like to use the literal words “blind spot pass” and “unknown unknowns.” Giving it context on who you are and what you know is usually important for Claude to understand the best way to start collaborating with you.
Example prompts:
- “I'm working on adding a new auth provider but I know nothing about the auth modules in this codebase. Can you do a blind spot pass to help me figure out my relevant unknown unknowns and help me prompt you better.”
- “I don’t know what color grading is but I need to grade this video. Can you teach me to understand my unknown unknowns about color grading, so that I can prompt better?”
Brainstorms and prototypes
When I’m working in an area with a lot of unknown knowns, involving criteria I only know to define when I see it, I like to ask Claude to brainstorm and prototype with me.
It’s extremely valuable to identify and verbalize unknown knowns early during prototyping, because finding them out during implementation can be (relatively) expensive. Small changes in a feature or spec can cause drastically different implementations in code, and it can be more difficult for your agent to revert previous changes.
For example, you may just want to see how a button added to a frame looks without having to wire up a backend route or maintaining additional state in the frontend.
Another example is visual design, which for me, is something that is difficult to articulate, but I know what I want when I see it. In these cases, I’ll ask for several design approaches to an artifact.
I also start almost every coding session with an exploration or brainstorming phase. This helps me start with intent to define the project’s scope. Claude often finds high-value approaches I would have missed, and sometimes misses the forest through the trees. Brainstorming prevents me from setting too narrow or too wide a scope.
Example prompts:
- "I want a dashboard for this data but I have no visual taste and don't know what's possible. Make me an HTML page with 4 wildly different design directions so I can react to them.”
- “Before wiring anything up, make a single HTML file mocking the new editor toolbar with fake data. I want to react to the layout before you touch the real app."
- "Here's my rough problem: users churn after onboarding. Search the codebase and brainstorm 10 places we could intervene, from cheapest to most ambitious. I'll tell you which ones resonate."
Interviews
Once I’ve done sufficient brainstorming, I likely still have unknowns.
In this case, I ask Claude to interview me about any unknowns or ambiguities. When asking Claude to interview you, try and give it context about your problem to guide its questions.
Example prompt:
- "Interview me one question at a time about anything ambiguous, prioritize questions where my answer would change the architecture."
References
Sometimes you can’t describe what you want in detail. For example, you might not have the language or it might be so complicated that it would take you quite a while.
In this case, the best approach is a reference. While you can include diagrams, documentation or pictures, the absolute best reference is *source code*.
If you have a library that implements something in a certain way or a design component you really like, just point Fable at the folder and tell it what to look for, even if it’s in a different language. This provides Claude much richer detail around the markup and structure, compared to for example a screenshot.
Example prompts:
- "This Rust crate in vendor/rate-limiter implements the exact backoff behavior I want. Read it and reimplement the same semantics in our TypeScript API client."
Implementation Plans
When I think I’m ready to implement, I tend to ask Claude to put together an implementation plan for me to review. The plan focuses on the parts that might be most likely to change such as data models, type interfaces, or UX flows. This allows Claude to surface things I might actually need to alter.
Example prompt:
- "Write an implementation plan in HTML, but lead with the decisions I'm most likely to tweak with: data model changes, new type interfaces, and anything user-facing. Bury the mechanical refactoring at the bottom, I trust you on that part."
During implementation
Implementation notes
Once I am satisfied with my plan, I make a new session and pass any artifacts to the prompt. This gives Claude a fresh context window but with all of the information it compiled from your planning. For example, I might pass in a spec file and a prototype and ask an agent to implement it.
But the truth is that no matter how much planning you do, there are always unknown unknowns lurking. The agent may find during its work that it needs to take a different tack due to an edge case it found in the code.
I ask Claude Code to keep a temporary ‘implementation-notes.md’ (or .html) file where it keeps track of decisions it makes so we can learn for our next attempt.
Example prompt:
- "Keep an implementation-notes.md file. If you hit an edge case that forces you to deviate from the plan, pick the conservative option, log it under 'Deviations', and keep going."
Post implementation
Pitches and explainers
One of the most important parts of shipping something is getting buy-in and approvals. Building pitch and explainer artifacts in the final document helps:
- Accelerate understanding when reviewers start with the same unknowns you did
- Accelerate approvals when experts want to see you accounted for the unknowns and common failure points they would have anticipated
Example prompt:
- "Package the prototype, the spec, and the implementation notes into a single doc I can drop in Slack to get buy-in. Lead with the demo GIF."
Quizzes
After a long working session, Claude might have accomplished a lot more than I realized. Reading the code diffs can only give me a light understanding of what happened, since much of the behavior will depend on existing code paths.
Asking Claude to quiz me about the change after giving me a bunch of context helps me understand what happens. I only merge after I pass the quiz perfectly.
Example prompt:
- “I want to make sure I understand everything that's happened in this change. Give me a HTML report on the changes for me to read and understand with context, intuition, what was done, etc. and a quiz at the bottom on the changes that I must pass.”
How this comes together: launching Fable
The launch video for Fable was edited end-to-end using Claude Code. This was a new domain for me and I’m by no means an expert.
So I started with what I did know. I knew that Claude could use code to edit videos and transcribe them, but I wasn’t sure if it was accurate enough. I then asked Claude to explain to me how transcription like Whisper worked, and whether I would be able to accurately cut out things like ums or large pauses using ffmpeg.
I wanted Claude to create a UI that was timed with the words I was saying, but wasn’t sure it was possible so I asked Claude to create a prototype video using Remotion and a transcription to see if it would work.
Finally, the video itself looked a bit muted, which I knew was the result of color grading but I didn’t really know what color grading was. My first pass attempt was to try and get Claude to do a few variations to pick, but I realized that I didn’t know what “good” looked like when it came to color grading. So instead, I asked Claude to teach me about color grading to discover my unknowns.
Matching the Map and Territory
The better models get, the more you can achieve with the right approach. When a long-horizon task comes back wrong, it's likely you need to spend more time defining your unknowns or creating an implementation plan that allows for you and Claude to adapt through them.
Every explainer, brainstorm, interview, prototype, and reference is a cheap way to find out what you didn't know before it gets expensive to fix.
So start your next project by asking Claude to help you find your unknowns.
*This article was written by Thariq Shihipar, member of technical staff, Anthropic.*
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み