バイブコーディング実践編 — Claude Code を中心に AIで安全に作る力 / 要件→プロンプト→受入条件 — 仕様を固定する技術
プロンプトテンプレート集 (Vibe Charter v1)
読了目安 6 分
学習のねらい
AI との対話は、一度きりのプロンプトで終わるものではありません。 タスクの種類 (新機能追加、バグ修正、リファクタリングなど) に応じて、効果的なプロンプトの「型 (テンプレート)」を持っておくと、毎回ゼロから考える手間が省け、AI からの応答品質も安定します。 このレッスンでは、Vibe Charter v1 と名付けたプロンプトテンプレートの考え方を学び、自身の業務に合わせたテンプレートを作成する準備をします。
プロンプトテンプレートの重要性
プロンプトテンプレートは、以下のようなメリットをもたらします。
- 品質の安定: 必要な情報 (コンテキスト、AC、出力形式など) を漏れなく伝えられるため、AI の生成するコード品質が安定します。
- 作業の効率化: 毎回プロンプトを考える時間を短縮し、より本質的な指示に集中できます。
- 学習の促進: どのようなプロンプトが効果的だったかをテンプレートとして蓄積することで、自分自身のプロンプトエンジニアリングスキルが向上します。
- チームでの共有: チーム内でテンプレートを共有することで、AI 活用のベストプラクティスを標準化できます。
新機能 / バグ / リファクタの3型
AI を使った開発タスクは、大きく以下の3つのカテゴリに分けられます。それぞれのカテゴリに合わせたテンプレートを持つことが効果的です。
-
新機能追加 (Feature)
- 目的: 新しい機能をゼロから実装する。
- 含めるべき要素:
- 機能の概要と目的
- Acceptance Criteria (AC)
- 既存の設計やコードとの整合性 (参照ファイルパスなど)
- 出力形式 (ファイル名、関数名など)
- テストの要件
- 例: 「Given/When/Then に基づいて、ユーザーのプロフィール編集機能を実装してください。
schemas/user.pyのモデル定義に従い、src/api/user.pyにエンドポイントを追加してください。単体テストも生成してください。」
-
バグ修正 (Bug Fix)
- 目的: 既存のバグを特定し、修正する。
- 含めるべき要素:
- バグの具体的な再現手順と期待される振る舞い (失敗例の提示)
- 影響範囲 (どのファイル、どの機能に影響するか)
- 修正後のテストの要件 (既存テストのパス、新しいリグレッションテストの追加など)
- 例: 「
GET /users/{id}エンドポイントで、idに負の値を渡すと 500 エラーが発生します。AC にあるように、400 Bad Request を返すように修正してください。既存のテストがパスすることと、このケースに対するテストを追加してください。」
-
リファクタリング (Refactoring)
- 目的: コードの品質 (可読性、保守性、パフォーマンスなど) を向上させるが、外部からの振る舞いは変えない。
- 含めるべき要素:
- リファクタリングの目的 (例: パフォーマンス改善、可読性向上)
- 対象となるコード範囲 (ファイル、関数、クラス)
- 変更してはいけない振る舞い (既存テストのパスを必須とする)
- 特定のデザインパターンや規約の適用指示
- 例: 「
src/legacy_parser.pyのparse_data関数は可読性が低く、拡張が困難です。既存の単体テストがすべてパスすることを条件に、ストラテジーパターンを適用してリファクタリングしてください。」
禁止語句と出力フォーマット指定
プロンプトテンプレートには、AI に守らせたい「禁止語句」や「出力フォーマット」を明示することも有効です。
- 禁止語句: 「
eval関数は使わない」「外部 API キーを直接コードに埋め込まない」など、セキュリティや品質に関わる制約を伝えます。 - 出力フォーマット指定:
- 「コードブロックで生成してください」
- 「JSON 形式で出力してください」
- 「ファイルごとに区切って、ファイルパスを先頭に書いてください」
- 「変更点だけを Markdown の差分形式で出力してください」
- 「実装理由をコメントで詳細に記述してください」
これにより、AI の応答がより構造化され、人間が利用しやすい形になります。
まとめ
効果的なプロンプトテンプレートは、AI 開発の生産性と品質を向上させる強力なツールです。 「新機能」「バグ修正」「リファクタリング」の3つのタスク型に応じたテンプレートを準備し、禁止語句や出力フォーマット指定を組み合わせることで、AI との対話を最適化し、あなたの業務を加速させましょう。