要件定義書(Markdown)から実装を完遂するオーケストレーターskill。要件定義書のパスを受け取り、ファイルベース計画 → subagent駆動開発の順で実装を進める。「要件定義書通りに実装して」「specから実装して」「requirements.mdを実装して」といった指示で使用する。コンテキスト消費を最小化しcompact耐性を確保する。
要件定義書を読み、計画を立て、subagentで実装する。コンテキストはファイルに逃がし、実装は独立したsubagentに委譲する。
1. Validate spec → 要件定義書の実装可否を検証
2. Read spec → タスクを特定、グローバル制約を抽出
3. Plan to file → task_plan.md に実装計画を書き出す
4. Execute → タスクごとにsubagentを起動して実装
5. Finish → 最終レビュー・ブランチ仕上げ
要件定義書を読み、実装に進めるか検証する。requirements-definition skillの出力を想定。
以下を確認し、該当があればユーザーに報告して判断を仰ぐ:
ユーザーへの報告フォーマット:
実装対象: Must項目 N件
除外: Should/Could項目 N件(詳細未定)
未解決: N件(セクション8より)
→ このスコープで進めてよいですか?
ユーザーの承認を得てから次のステップへ進む。
要件定義書から以下のグローバル制約を抽出し、task_plan.mdに記録する。これらは全subagentに共通で渡す:
実装対象の機能をタスク単位に分解する:
要件定義書と同じディレクトリに以下を作成し、repo rootからの相対パスを控えておく(以降 <plan-dir> と表記):
<plan-dir>/task_plan.md — タスク一覧・依存関係・進捗・グローバル制約<plan-dir>/progress.md — セッションログ・エラー記録例: 要件定義書が docs/spec/requirements.md なら <plan-dir> = docs/spec/
注意: 以降のgitコマンドでは :(top) prefix を使い、cwdに依存しないようにする。
# Implementation Plan
## Source
- Spec: [要件定義書のパス]
## Global Constraints
<!-- 全subagentに共通で渡す制約。specのセクション5(非機能要件)/セクション6(技術要件)から抽出 -->
### Non-Functional Requirements
<!-- specセクション5から抽出 -->
- [例: レスポンスタイム 200ms以内]
- [例: SQLインジェクション対策必須、入力値は全てバリデーション]
- [例: エラーは統一フォーマットで返却]
### Tech Stack & Architecture
<!-- specセクション6から抽出 -->
- [例: Next.js 14 App Router, TypeScript strict, PostgreSQL]
- [例: API は RESTful、認証は NextAuth.js]
### Coding Conventions
- [例: 命名規則、ディレクトリ構成ルール]
## Traceability Matrix
<!-- 各Must要件が少なくとも1つのタスクにマッピングされていることを保証する -->
| Must要件 | Spec参照 | 対応タスク | 実装状態 |
|----------|----------|-----------|---------|
| [例: ユーザー登録] | 3.1-FR-001 | Task 1 | pending |
| [例: ログイン認証] | 3.1-FR-002 | Task 2, Task 3 | pending |
<!-- 全Must要件を列挙。対応タスクが空の行があってはならない -->
<!-- 実装状態は対応タスクが「全て」completeになった時だけcompleteにする -->
## Tasks
### Task 1: [タスク名]
- **Status:** pending
- **Base SHA:** (実行時に記録)
- **Head SHA:** (完了時に記録)
- **Depends on:** なし
- **Spec section:** [要件定義書の該当セクション]
- **Acceptance criteria:**
- [具体的な完了条件1]
- [具体的な完了条件2]
- **Working directory:** [対象ディレクトリ]
- **Key files:** [関連ファイルのパス]
### Task 2: [タスク名]
- **Status:** pending
- **Base SHA:** (実行時に記録)
- **Head SHA:** (完了時に記録)
- **Depends on:** Task 1
...
最初のタスク開始前に、task_plan.md / progress.md 以外の未コミット変更がないことを確認:
git status --porcelain | grep -v '<plan-dir>/task_plan.md' | grep -v '<plan-dir>/progress.md'
出力がある場合はユーザーに報告し、stash / commit / discard の判断を仰ぐ。クリーンになるまでタスク実行に進まない。
タスクごとに以下を繰り返す:
タスク開始前にplan fileを更新し、管理コミットを作成してからbase SHAを記録する:
in_progress に変更git add ':(top)<plan-dir>/task_plan.md' ':(top)<plan-dir>/progress.md'
git commit -m "chore: update plan - Task N in_progress"
git rev-parse HEAD
Agent tool (general-purpose) で起動。プロンプトに以下を全て埋め込む:
<plan-dir>/task_plan.md, <plan-dir>/progress.md はコミットに含めないこと」という指示(実際のパスを埋め込む)重要:
別のsubagentで仕様準拠レビュー。プロンプトに含める:
指摘があればimplementer subagentを再起動して修正・コミットさせ、再度spec reviewを実施する。指摘がゼロになるまで繰り返す。
spec compliance が通ったら、コード品質レビュー。
まず現時点のHEADを取得してタスクスコープdiffを作る(修正コミットを含む最終状態):
git rev-parse HEAD # → current head
git diff <base-sha> <current-head> -- ':(top,exclude)<plan-dir>/task_plan.md' ':(top,exclude)<plan-dir>/progress.md'
プロンプトに含める:
指摘があればimplementer subagentを再起動して修正・コミットさせた後、3c(spec compliance review)から再実行する。品質改善のリファクタが仕様や非機能要件を壊していないことを確認するため。両レビューの指摘がゼロになるまで繰り返す。
全レビューが通った後:
git rev-parse HEAD
complete に変更complete に更新(1つのMust要件が複数タスクにまたがる場合、残タスクがあればまだcompleteにしない)git add ':(top)<plan-dir>/task_plan.md' ':(top)<plan-dir>/progress.md'
git commit -m "chore: update plan - Task N complete"
次のタスクへ。依存関係を確認し、前提タスクが完了していることを確認してから進む。
全タスク完了後:
<plan-dir>/ で一貫させる — git add, diff, status すべてで実パスを使うPyTorch深度学习模式与最佳实践,用于构建稳健、高效且可复现的训练流程、模型架构和数据加载。