# タスク設計書テンプレート

## ファイル命名規則

- 保存先: リポジトリ配下の `docs/task-designs/` に保存する。
- `docs/task-designs/` が存在しない場合は作成してから保存する。
- 形式: `YYYYMMDDHHMMSS_{task-name}.md`
- `YYYYMMDDHHMMSS` は初版作成日時を日本時間（JST）で使用する。
- `task-name` は英小文字の kebab-case を推奨（スペースなし）。
- 更新時は原則ファイル名を変更しない。更新日は本文の `最終更新` を更新する。
- 既存ドキュメントで作成時刻が不明な場合は `YYYYMMDD000000_{task-name}.md` を使用する。
- `README.md` と `_task-design-template.md` は例外（プレフィックス不要）。

例:

- `docs/task-designs/20260101103045_frontend-run-history-delete.md`
- `docs/task-designs/20251224000000_backend-run-history-list-api-auth.md`

## 本文フォーマット

以下の順序で出力すること。該当なしは `該当なし` と明記する。

# タスク設計書: <タイトル>

最終更新: <YYYY-MM-DD>
- ステータス: <下書き(draft) / レビュー待ち(review-ready) / 承認済み(approved) / 保留(blocked) / 実装中(in-progress) / 完了(done)>
- 作成者: <名前>
- レビュー: <担当者>
- 対象コンポーネント: <backend / frontend / docs / infra / data>
- 関連: <リンクや関連設計書>
- チケット/リンク: <Issue/PR/外部リンク>
- 関連ゴールID: <G-01 など。該当なしの場合は `該当なし`>
- 関連マイルストーンID: <M-01 など。該当なしの場合は `該当なし`>

## 0. TL;DR
- <目的と結論を3〜5行で要約>
- <何をどこに追加/変更するか>
- <影響範囲や注意点>

## 1. 背景 / 課題
- <なぜこの変更が必要か>
- <現状の課題や制約>

## 2. ゴール / 非ゴール
### 2.1 ゴール
- <達成したい状態>

### 2.2 非ゴール
- <今回やらないこと>

## 3. スコープ / 影響範囲
- 変更対象: <API/画面/データ/設定など>
- 影響範囲: <利用者/運用/データなど>
- 互換性: <後方互換/破壊的変更の有無>
- 依存関係: <外部API/ライブラリ/他チーム依存>

## 4. 要件
### 4.1 機能要件
- <機能要件>

### 4.2 非機能要件 / 制約
- <性能/可用性/セキュリティ/運用制約>

## 5. 仕様 / 設計
### 5.1 全体方針
- <設計方針>

### 5.2 変更点一覧
| 対象 | 変更内容 | 影響 | 備考 |
| --- | --- | --- | --- |
| <component / file / API> | <何を変えるか> | <影響> | <補足> |

### 5.3 詳細
#### API
- <エンドポイント/リクエスト/レスポンス/エラー>

#### UI
- <画面/導線/コピー/バリデーション>

#### データモデル / 永続化
- <スキーマ/保存先/移行>

#### 設定 / 環境変数
- <追加/変更/デフォルト値>

### 5.4 代替案と不採用理由
- 代替案A: <案>
  - 不採用理由: <理由>
- 代替案B: <案>
  - 不採用理由: <理由>

## 6. 移行 / ロールアウト
- <段階的リリース/フラグ/リスク低減策>
- ロールバック条件: <切り戻し判断基準>
- ロールバック手順: <手順>

## 7. テスト計画
- 単体: <対象>
- 結合: <対象>
- 手動: <手順>
- LLM/外部依存: <モック方針>
- 合格条件: <何をもってテスト完了とするか>

## 8. 受け入れ基準
- <操作手順と期待結果を列挙>

## 9. リスク / 対策
- <リスクと回避策>

## 10. オープン事項 / 要確認
- <未確定事項・相談事項>
- ※本セクションが埋まっている（=未解消事項がある）場合、**実装は開始しない**。依頼者と実行者で合意が取れ次第、項目を解消してから着手する。

## 11. 実装タスクリスト
- [ ] <実装タスク>
- [ ] <テスト追加>
- [ ] <必要な移行/運用作業>

## 12. ドキュメント更新
- [ ] `README.md`（必要に応じて）
- [ ] `AGENTS.md`（必要に応じて）
- [ ] `docs/`（該当ファイルあれば）

## 13. 承認ログ
- 承認者: <名前>
- 承認日時: <YYYY-MM-DD HH:mm>
- 承認コメント: <条件付き承認の場合は条件を明記>

## 実装開始条件
- [ ] ステータスが `承認済み(approved)` である
- [ ] 10. オープン事項が空である
- [ ] 受け入れ基準とテスト計画に合意済み
