~/VibeHandbook
無料 PDF

08 · 01

タスクを与える前にコンテキストを与える

AIはあなたが見るようにはプロジェクトを見られない。フレームワークのバージョンも、ファイル構造も、すでに確立した規約も知らない。これを飛ばすと、AIは推測する——しかも下手に推測する。さらに悪いことに、自信満々に推測する。だから出力は、あなたの実際のコードベースとぶつかるまではもっともらしく見える。

同じ要求に対するこの二つのプロンプトを比べてみよう。

メールを検証する関数を追加して。
これは Express と Zod でバリデーションする TypeScript バックエンドです。
すでに src/schemas/ で Zod スキーマを使って入力を検証しています。
そのスタイルでメールバリデーションのスキーマを追加してください。メールは
lowercase、max 254 chars で、src/config.ts にある既存の
BLOCKED_DOMAINS リストの使い捨てドメインは拒否すること。

最初のプロンプトは、あなたが望まない正規表現を使うかもしれない、コードベースに合わないスタイルの汎用的なコードを生む。二つ目はそのまま貼り付けられるコードを生む。ルールはこうだ。スタックを、規約を、そしてAIが再利用すべき既存の部品を述べよ。

良いプロンプトはこれらの部品を下から上へ順に積み上げる——土台にコンテキスト、頂上近くに実際の要求を:

        ┌──────────────────────────────┐
        │   例                         │  入力1つ → 出力
        ├──────────────────────────────┤
        │   制約                       │  してはいけない事
        ├──────────────────────────────┤
        │   エッジケース               │  空・無効・エラー
        ├──────────────────────────────┤
        │   入力 / 出力                │  型と形
        ├──────────────────────────────┤
        │   ゴール                     │  明確なタスク1つ
        ├──────────────────────────────┤
        │   コンテキスト               │  スタック・ファイル・パターン
        └──────────────────────────────┘
              まず土台から ▲

エンターを押す前に役立つ心の中のチェックリスト。言語とフレームワーク(重要ならバージョンまで)、関連するファイルやモジュール、プロジェクトにすでにあるパターン、そしてAIが好むべき、または避けるべきライブラリ。毎回四つすべてが要るわけではない——だが答えがそのうちの一つによって変わるなら、それを名指せ。迷ったら、新しいコードが合わせるべき実際のシグネチャ、型、または設定を貼り付けよ。数行の既存コードは、一段落の説明よりはるかに、あなたの規約をAIに教える。

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。