# 仕様書あり・計画だけ・いきなり実装 の作り比べ（実験素材）

記事: 仕様駆動開発は重すぎる？（spec-driven-development-comparison）

同じ小さなPython製タスク管理CLI（`base/`）に、4つの依頼を3つの進め方で出し、隠しテストで採点した。各セル5回、計60試行（修正課題にだけ対照のlookを5回足して65試行）。

| 依頼 | ファイル | 隠しテスト |
|---|---|---|
| 小さな修正（期限当日が期限切れ扱い） | `tasks/fix.md` | `hidden/test_fix.py`（5件） |
| 新機能A 繰り返しタスク | `tasks/feature.md` | `hidden/test_feature.py`（12件） |
| 新機能B アーカイブ | `tasks/archive.md` | `hidden/test_archive.py`（8件） |
| 新機能C 依存関係 | `tasks/depends.md` | `hidden/test_depends.py`（10件） |

| 進め方 | やったこと |
|---|---|
| direct | 依頼文のまま実装させる |
| plan | Claude Codeのplan modeで計画だけ立てさせ、同じセッションで「計画どおりに実装して」 |
| look | （小さな修正だけの対照）依頼文に「直す前に、関係するコードを読んで、影響範囲を確認してください。」を足して実装させる。直接実装で取りこぼしが出た後に足した追加条件 |
| spec | GitHub Spec Kit v1.2.0 を `specify init` し、`/speckit-specify` → `/speckit-plan` → `/speckit-tasks` → `/speckit-implement` を順に実行 |

- モデル: `claude-sonnet-5-5`（Claude Code 2.1.300、`claude -p`、`--permission-mode bypassPermissions`、`--setting-sources project`）
- 実行: `python3 run_experiment.py <fix|feature|archive|depends> <direct|plan|spec|look> <rep>`
- 採点し直し: `rescore.py`、集計: `aggregate.py` → `results-summary.json`
- `results/<task>-<cond>-<rep>/` に `summary.json`（採点・コスト・差分行数）、`src.diff`（コードとテストの差分）、spec条件の1回目だけ生成された仕様書類（`docs/`）。会話ログは公開用に外した。
- `results-failed/`: 実験の仕組み側で止まった2試行（feature-plan-4、feature-spec-3）。理由はどちらも途中の1回の呼び出しが0ターンで終わったこと。同じ設定で撮り直した結果を本集計に使った。

## 注意

- `total_cost_usd` と `duration_api_ms` は `--resume` を挟むと累積値で返る。1試行の値は最後のphaseの値。最初の集計では足し合わせてしまい、後から直した。
- コストはAPI単価換算（サブスクリプションの実費ではない）。
- Spec Kitの `constitution` `clarify` `analyze` `checklist` は実行していない。人間によるゲート（承認）もない自律実行。
