powered by TechFeed
表示モード
Deep Dive

AnthropicエンジニアのAIコーディング術 — 「プロンプトが悪い」のではなく「自分の盲点」を先に潰せ

7月4日、The Decoderが「Anthropic developer shares prompting tips for Fable 5 that focus on finding your own blind spots first」と題した記事を公開した。AnthropicのデベロッパーであるThariq Shihiparが、Claudeの最新モデル(開発コード名: Fable 5)を使ったAIコーディングで成果を出すためのプロンプティング手法を紹介している。AIコーディングエージェントの普及が急速に進む中、「どう使いこなすか」という問いへの関心は業界全体で高まっている。多くの開発者がプロンプトの書き方を工夫する一方、Shihiparが提示するのはより根本的な視点だ。アウトプットの品質を制限しているのはモデルではなく、ユーザー自身が「自分の盲点」を把握できていないことだ、という主張である。この「盲点を先に潰す」というアプローチが、本記事のコアメッセージとなっている。

7月4日、The Decoderが「Anthropic developer shares prompting tips for Fable 5 that focus on finding your own blind spots first」と題した記事を公開した。AnthropicのデベロッパーであるThariq Shihiparが、Claudeの最新モデル(開発コード名: Fable 5)を使ったAIコーディングで成果を出すためのプロンプティング手法を紹介している。

AIコーディングエージェントの普及が急速に進む中、「どう使いこなすか」という問いへの関心は業界全体で高まっている。多くの開発者がプロンプトの書き方を工夫する一方、Shihiparが提示するのはより根本的な視点だ。アウトプットの品質を制限しているのはモデルではなく、ユーザー自身が「自分の盲点」を把握できていないことだ、という主張である。この「盲点を先に潰す」というアプローチが、本記事のコアメッセージとなっている。


「モデルのせい」ではなく「自分の盲点のせい」という転換

Shihiparの主張はシンプルだ。Fable 5は、アウトプットの品質を制限するのはモデルではなく、ユーザー自身の「unknowns(未知)」を明確化できているかどうかだ、という。

彼はこの問題を次の4つの象限で整理している:

カテゴリ 意味
Known Knowns(既知の既知) プロンプトに書いた、自分が明示的に把握している知識
Known Unknowns(既知の未知) まだ答えが出ていないと自覚している問い
Unknown Knowns(未知の既知) 自明すぎて書かないが、見れば即座に認識できる知識
Unknown Unknowns(未知の未知) そもそも考慮すらしていないこと

中でも最も厄介なのが最後のUnknown Unknownsだ。「考慮していない」ので、プロンプトに書きようがない。この盲点を潰さないまま実装を進めると、仕様が崩れる。


「詳細すぎ」も「曖昧すぎ」も失敗する

Shihiparは、プロンプトの粒度についても明確な立場を取る。詳細すぎると、Claudeが指示に縛られ、途中で方向転換すべき局面でも従い続けてしまう。曖昧すぎると、Claudeが業界一般のデフォルト判断で補完し、タスク固有の要件から外れる。

「unknownsを処理しないと、どちらの方向にも失敗する」と彼は書いている。ここで重要なのは、Claudeは自分のunknownsを掘り起こすのを手伝えるという視点だ。コードベースやウェブを高速に調査でき、多くのトピックについて平均的なユーザーより深い知識を持っている。ただし、そのためにはClaudeに「自分が今どこにいるか」「この問題にどれだけ習熟しているか」というコンテキストを与える必要がある。


実装前:盲点を潰すための具体的な手法

Shihiparが紹介する最も核心的なテクニックが「blindspot pass(ブラインドスポットパス)」だ。実装に入る前に、まずClaudeにUnknown Unknownsを洗い出させる手法を指す。

彼が提案するプロンプト例:

"I'm working on adding a new auth provider but I know nothing about the auth modules in this codebase. Can you do a blindspot pass to help me figure out my relevant unknown unknowns and help me prompt you better."

(「認証プロバイダーを追加しようとしているが、このコードベースの認証モジュールについて何も知らない。blindspot passを行って、自分のUnknown Unknownsを把握し、より良いプロンプトを書けるよう手伝ってほしい」)

未知の多いビジュアルデザインのような領域では、ブレインストーミングとプロトタイピングを先行させる。いきなり実装するのではなく、Claudeに複数の全く異なるデザイン方向をHTMLアーティファクトとして生成させ、それに反応することで自分の好みを言語化する。

他にも以下の手法が挙げられている:

  • 構造化インタビュー:Claudeがアーキテクチャに影響する曖昧な点を一問一答形式で聞き出す
  • リファレンス活用:スクリーンショットではなく、ウェブサイトの実際のソースコードを参照させる(Claude Designがその例)
  • 実装計画の作成:変更頻度の高い部分(データモデル、型インターフェース、UIレイヤー)から優先的に計画し、機械的なリファクタリングは後回しにする

実装中・後:記録と理解で次につなげる

実装フェーズ中は、**implementation-notes.mdという一時ファイル**をClaudeに維持させ、判断の記録を残すよう指示する。予期しないエッジケースが出たときはClaudeに保守的な選択肢を取らせ、逸脱をログに残して作業を続行させる。

実装後には2つの手法を推奨している:

  1. ピッチと解説書(pitches and explainers):プロトタイプ・仕様・実装メモをまとめたステークホルダー向け要約ドキュメント
  2. クイズ:Claudeに変更内容の詳細をHTMLレポートとして生成させ、その後クイズ形式で理解を確認する。Shihiparは「クイズをノーミスで通過するまでマージしない」と明言している。

実例:Fableのローンチ動画をClaude Codeで全編編集

これらの手法が実際にどう機能するかを、ShihiparはFableのローンチ動画の編集を例に示している。動画編集は彼にとって未知の領域だった。

Whisperによる文字起こしの精度やffmpegでのカット編集の精度を事前に調査させ、UIアニメーションはRemotionでプロトタイプを構築した。カラーグレーディングについては、バリエーションを生成させただけでは「何が良いのか」自体がわからないと気づき、まずClaudeに基礎を教わることでUnknown Unknownsを潰した

「解説、ブレスト、インタビュー、プロトタイプ、リファレンスはすべて、修正コストが高くなる前に自分が知らなかったことを発見するための安価な手段だ」と彼はXに書いている。なお、Tipsのビジュアル版サイトも公開されている。


詳細はAnthropic developer shares prompting tips for Fable 5 that focus on finding your own blind spots firstを参照していただきたい。