PRD、ADR、Design Doc、作業計画書の作成を支援。テンプレートと作成判定マトリクスを提供。
このスキルはドキュメントの振り分け、すなわち変更に伴って記録すべき、後続作業に長く影響する判断と各ドキュメントの保存先を定める。各ドキュメントの内容と構造の要件は、「保存場所」からリンクされた各テンプレートが定める。
Accepted は現時点で選ばれている手段を記録したものであり、維持する義務ではない。確認済みの成果、将来状態の要件、対象外を維持したまま、より小さく十分な選択を後のエビデンスが支持する場合は、そのADRを更新または置き換える。完全な実装設計はDesign Docに記載する| 構造スケール | 基本ドキュメント | 作成順序 |
|---|---|---|
| 小規模 | なし | 直接実装 |
| 中規模 | Design Doc、作業計画書 | Design Doc -> 作業計画書 |
| 大規模 | PRD、Design Doc、作業計画書 | PRD -> Design Doc -> 作業計画書 |
フロントエンドまたはフルスタックの作業でUIに関する判断が未確定の場合は、Design Docの前にUI Specを追加する。適格なADRバッチはDesign Docの前に完了させる。適格なADRがある場合、スケールは最低でも中規模とする。
大規模変更のPRD要件は、新規PRDの作成、関連PRDの更新、現行のプロダクト文書がない場合のリバースPRD作成のいずれかで満たす。どのスケールでも、プロダクトスコープが変わる場合は既存PRDを更新する。
分類するのはリポジトリ上のレイアウトではなく判断負荷である。ファイル数は補助的なエビデンスにとどまる。
| スケール | 判断負荷 |
|---|---|
| 小規模 | まとまった成果が1つで、1つの責務境界の中にリポジトリの根拠がある明白な実装が1つあり、後続作業に長く影響する未解決の選択がない |
| 中規模 | まとまった成果が1つで、境界の調整を伴うか、後続作業に長く影響しうる選択を含む |
| 大規模 | 独立して価値を持つ成果が複数あり、それぞれ別個の設計判断を要する |
レイヤーをまたぐ実装であっても、まとまった成果1つに資する場合は中規模のままでよい。
確認済みの実装スコープ内にある技術的な論点ごとに、選択(Choice)フィルタ、次いで長期影響(Durability)フィルタを適用する。新たな記録を作る前に、承認済みADRを確認する。
両方のフィルタを通過した論点ごとにADRを1つ作成し、バッチ全体をまとめてレビューする。一緒に選択または再検討しなければならない判断はまとめ、独立して再検討できる判断は分ける。ローカルな実装詳細や、安価に元へ戻せるその他の選択はDesign Docに記載する。
| ドキュメント | パス | 命名規則 | テンプレート |
|---|---|---|---|
| PRD | docs/prd/ |
[feature-name]-prd.md |
prd-template.md |
| ADR | docs/adr/ |
ADR-[4-digits]-[title].md |
adr-template.md |
| UI Spec | docs/ui-spec/ |
[feature-name]-ui-spec.md |
ui-spec-template.md |
| UI Specアセット | docs/ui-spec/assets/{feature-name}/ |
プロトタイプコードファイル | - |
| Design Doc | docs/design/ |
[feature-name]-design.md |
design-template.md |
| 作業計画書 | docs/plans/ |
YYYYMMDD-{type}-{description}.md |
plan-template.md |
| タスクファイル | docs/plans/tasks/ |
{plan-name}-task-{NN}.md(backendのみの計画)、{plan-name}-backend-task-{NN}.md(frontendを含む計画のbackend)、{plan-name}-frontend-task-{NN}.md(frontend) |
task-template.md |
生成パスの可変部分は、小文字ASCIIのkebab-case slugとする。非ASCIIの入力はパス作成前にこの形式へ変換する。
作業計画書は.gitignoreで除外される。
各テンプレートが、そのドキュメントの内容、ステータス規則、必要なエビデンス、任意の図、完了条件を定める。作成またはレビューするドキュメントのテンプレートだけを読み込む。