Plan・設計

Phase 2 Plan と Phase 3 要件設計。

Plan 承認後 に設計 docs を揃え、実装前にレビューする。

やること

  1. Plan を確定
  2. 01〜04 設計 docs を生成 or 追記
  3. レビュー後に実装へ

完了: 設計レビュー OK が記録されている

Plan を先に。完了 → Phase 3 または実装へ

Phase 2 は、コードを書く前に「何を・どの順で・どこまでやるか」を AI と一緒に固める段階です。Plan が通れば Phase 3 の設計 docs に進みます。

着手前の確認

着手前チェック:中規模以上の機能は、Approved PRD(または 00_brief.md)を Plan 入力に入れてから始めてください。未承認のまま Plan に入ると、あとで設計や実装がやり直しになりやすいです。

Plan プロンプト

新規タスクの最初のメッセージとして、Plan モード(または同等の計画フェーズ)のチャットに貼り付けます。角括弧 [...] は自分の PRD パス・Issue・既存コードのパスに置き換えてから送ってください。

新規タスクに着手します。Planモードで進行表を作ってください。
実装の中身はまだ書かないでください。

【タスク】
- PRD(Approved): [docs/prd/xxx.md へのパス]
- Issue: [URL]

【コンテキスト】
- 関連する既存実装: [パス]
- 関連するルールファイル (.cursor/rules / CLAUDE.md / .claude/skills): [該当ファイル]
- 関連する個人メモ (あれば): [z_docs などへのリンク]
- スプリント目標との関係: [あれば]
- 期限・優先度: [あれば]

【作ってほしいもの】
1. タスク分解 (各サブタスクの完了条件)
2. 影響範囲の調査結果 (どのモジュール/ファイル/テストが影響を受けるか)
3. 設計判断が必要なポイント (代替案を3つまで)
4. リスクと回避策
5. レビュアー観点での確認ポイント
6. PoC/プロトタイプで先に確認すべき不確実箇所 (あれば)

出力先: **まずはこのチャット**。チームで追う Plan は **tasks/todo.md** にチェックリスト化(テンプレ同梱)。個人たたき台だけなら **z_docs/<feature-name>/00_plan.md** でも可(docs/ の公式成果物ではない)

実装やコード生成はまだ不要です。

大事なポイント:コンテキストの「関連する既存実装」は省略しないでください。パスが無いと、AI はリポジトリの慣習と違う案を出しがちです。

Plan の成果物

Plan 完了時に揃えたい出力は次のとおりです。tasks/todo.md はチーム共有の Plan 正式な記録、z_docs/ は個人メモ用(詳細は tasks/(リポジトリ))。

出力必須保存先
タスク分解(完了条件付き)必須チャット / tasks/todo.md(推奨)/ z_docs/<feature>/00_plan.md(個人のみ)
Plan 結果・レビュー推奨tasks/todo.md の「レビュー・結果」
影響範囲調査必須チャット
設計判断ポイント(代替案)推奨チャット → Phase 3 で docs へ
リスクと回避策必須チャット
レビュアー確認ポイント推奨PR description 下書き
下書き PR(下書き PR(Draft PR))推奨GitHub

進め方(流れ)

開発者・AI・PM/レビュアーのやり取りは、おおよそ次の流れになります。

sequenceDiagram participant Dev as 開発者 participant AI as AI participant Team as PM/レビュアー Dev->>AI: Plan プロンプト + 既存実装パス AI-->>Dev: 分解・リスク・影響範囲 Dev->>Dev: 出力レビュー alt 不明点あり Dev->>Team: 事前確認 Team-->>Dev: 回答 Dev->>AI: Plan 修正 end Dev->>Dev: 下書き PR(下書き PR(Draft PR)) 作成


小規模は 3段フロー で足りることも。完了 → Phase 4

Phase 3 = AI と docs を作る手順。DDD / クリーンアーキなどの設計方針はプロジェクト固有です。正式な記録は docs/・ADR・rules。参考は メモ — DDD / クリーンアーキ

設計ドキュメント生成

Phase 3 では、要件と設計を docs/<feature>/ にまとめます。レイヤ分割やモジュール構成は既存コードと ADR に合わせる。方針が未決なら、実装の前に ADR を起票してください。

AI 協働・設計 docs・検証の役割の違いは、次の表のとおりです。

観点 AI 協働(本フロー) 設計(docs / ADR) 検証
役割 AI 出力の範囲・禁止・進め方を固定 責務・データ・API・不変条件の記述 仕様・ルールとの整合確認
主な適用 Phase Phase 1 → 全 Phase Phase 3 Phase 4〜4、PR 前
  • 推奨順:Phase 1 のルール → Phase 3 の設計 docs → それに沿った実装 → lint / テスト / CI / レビュー。
  • TDD 採用時:Phase 4 で 10.2 TDDテンプレ(任意) を使う。
  • DDD / クリーンアーキ採用時:下の折りたたみ、または メモ の追記ブロックをプロンプト末尾に足す。

Plan が承認されたあと、設計用チャットで docs 生成まで進める流れは次のとおりです。

sequenceDiagram participant Dev as 開発者 participant AI as AI participant Docs as docs/ Dev->>AI: 設計プロンプト + 既存コード参照 AI-->>Docs: 01_requirements.md AI-->>Docs: 02_design.md AI-->>Docs: 03_db_schema.md AI-->>Docs: 04_tech_decisions.md Dev->>Dev: 設計レビュー alt ADR 必要 AI-->>Docs: docs/adr/NNNN-*.md end

貼り付けタイミング:Phase 2 の Plan がレビューで OK になったあと、設計専用のチャット(または同チャットの続き)で、下のブロックをそのまま送ります。技術スタックの [選択] と参照パスを埋めてから貼ってください。

Planを承認します。技術スタックは [選択] で確定。
これから挙げる4ドキュメントを **`docs/<feature-name>/`** (チーム公式ドキュメント置き場) に生成または既存ファイルへ追記してください。
途中で確認を求めず一気通貫で出してください。

【前提】 ※ .cursor/rules/ または CLAUDE.md / AGENTS.md のプロジェクト制約に準拠
- 既存のアーキテクチャ・ディレクトリ構成・命名規則を踏襲する(逸脱する場合は 04_tech_decisions + ADR で理由を書く)

【既存コードベースの参照必須箇所】
- [類似機能のディレクトリ]
- [共通基盤のディレクトリ]

【生成/更新物】
1) docs/<feature-name>/01_requirements.md
   - 機能要件 (Must/Should/Won't を表で)
   - 非機能要件 (性能/信頼性/セキュリティ/保守性)
   - スコープ外
   - ユースケース図と主要シーケンス図 (Mermaid最小構文)
   - 既存機能との関係 (どこを拡張するか)
   - 用語 (既存 glossary.md と整合)

2) docs/<feature-name>/02_design.md
   - 影響を受けるモジュール/レイヤと変更点
   - 主要コンポーネントの責務 (新規/変更を区別)
   - データフロー・API 境界(該当する場合)
   - エラー設計方針
   - トランザクション境界・並行制御方針(該当する場合)
   - 既存パターンを踏襲した箇所 / 新規導入した箇所の説明

3) docs/<feature-name>/03_db_schema.md (DB変更がある場合のみ)
   - 既存ER図への差分 (Mermaid erDiagram)
   - 新規/変更テーブル: カラム/型/NULL/制約/INDEX/用途を表で
   - マイグレーション計画 (forward / rollback)
   - データ移行が必要なら別途記載

4) docs/<feature-name>/04_tech_decisions.md
   - 新規ライブラリ導入があれば理由と代替案
   - アーキテクチャ・設計スタイルの選択と理由(採用しなかった案も)
   - 既存規約と異なる選択をした場合の理由

最後に docs/<feature-name>/README.md にこれら4ドキュメントへのリンクを生成してください。
重要な技術選定 (FW変更・DB変更・破壊的変更等) は `docs/adr/NNNN-<slug>.md` として ADR (11.7 ADR) も併せて生成してください。
プロンプト追記 — DDD / クリーンアーキ採用時のみ

チームが DDD + クリーンアーキを採用しているときだけ、上のプロンプト末尾に次を追加します。詳細は メモ — DDD / クリーンアーキ

集約境界が曖昧なときは、02_design に「注文=集約ルート、明細は VO」と書き… — 集約境界が曖昧なときは、02_design に「注文=集約ルート、明細は VO」と書き、04_tech_decisions に Vertical Slice を採らなかった理由を 3 行で残す。

【02_design.md 追記 — DDD / クリーンアーキ採用時】
- DDD を適用する範囲 (Entity / Value Object / Aggregate / Domain Service / Repository)
- クリーンアーキテクチャの層境界と依存方向
- 業務例外と技術例外の分離

【04_tech_decisions.md 追記】
- DDD / クリーンアーキテクチャをどこまで採るか、その理由
- Vertical Slice / CRUD モノリス等、採用しなかった選択肢