AIへの要件の伝え方を変えたら、生成されるコードの品質が向上した話。
AIに対する指示(プロンプト)を構造化することで、生成されるコードの品質がどう変わるか実験してみました。ToDoアプリを題材に、4つの異なる指示方法を比較した結果をまとめています。
| パターン | 総合点 | 機能実装 | 技術品質 | 特徴 |
|---|---|---|---|---|
| A(要件定義書) | 94点 | 69/70 | 25/30 | 構造化・詳細仕様 |
| C(箇条書き) | 83点 | 60/70 | 23/30 | 簡潔な構造化 |
| B(チャット) | 81点※ | 58/70 | 23/30 | 会話的・段階的 |
| D(最小限) | 63点 | 40/70 | 23/30 | 最小限の指示 |
※パターンBは3回中2回エラーが発生
- 構造化された指示の方が高得点(94点 vs 63点)
- 自然な会話形式は意外と不安定(3回中2回エラー)
- コード品質はどのパターンでも大きく変わらない
.
├── research/ # リサーチ関連ファイル
│ ├── results/ # 調査結果
│ ├── overview.md # プロジェクト背景
│ └── research-session-prompts.md # リサーチ用プロンプト
├── experiments/ # 実験データ
│ ├── pattern-a/ # パターンA: 要件定義フォーマット
│ ├── pattern-b/ # パターンB: 自然言語
│ ├── pattern-c/ # パターンC: 箇条書き
│ ├── pattern-d/ # パターンD: 最小限
│ └── evaluation/ # 評価基準
└── format/ # フォーマット定義
└── v0.1/
└── specification.md # 仕様書
AI向け要件定義について調べた内容(既存手法、ベストプラクティスなど)
4パターンの実験データ(入力、出力、評価結果)
実験で使用した要件定義フォーマットの仕様
- 個人の週末実験です
- サンプル数は4つだけ
- ToDoアプリという簡単な題材での検証
- AIが生成したコードをAIが評価
- あくまで参考程度に
注: これは学術研究ではなく、一個人の実験プロジェクトです。結果は参考程度にご覧ください。