definition-of-done について
Definition of Doneは、業務要件と任意の技術要件をもとに、milestones.yamlへ受け入れ基準と終了チェックリストを追加するスキルです。計画成果物があるチームが、各マイルストーンの完了条件を明確にするために使います。
主な機能
- 01要件をマイルストーンに対応付け
- 02検証可能な機能基準を作成
- 03適用可能な非機能基準を追加
- 04テストとドキュメントの要件を整理
- 05終了チェックリストの追加とバックアップ
活用シーン
- 01マイルストーンに受け入れ基準を追加
- 02業務要件を提供段階に対応付け
- 03技術要件から測定可能なゲートを設定
- 04マイルストーンの完了状況を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ validkeys/ sherpy --skill definition-of-doneインストール後、Claude Code で/definition-of-doneを入力して読み込まれたか確認します。
同梱ファイルexamples/definition-of-done.yaml
詳細
完了の定義
既存の milestones.yaml を拡張し、各マイルストーンに詳細な受け入れ基準を追加します。「計画では X を構築すると書かれている」状態から「X が完了したと確実に判断できる」状態へのギャップを埋めます。要件から直接導き出した、汎用的なチェックリストではない任意項目の acceptance_criteria フィールドと exit_checklist フィールドを各マイルストーンに追加します。
前提条件
{base_directory}/implementation/milestones.yaml(/implementation-plannerの出力)id、name、description、success_criteriaを含むマイルストーン定義が必要です- スキルによって、任意項目の
acceptance_criteriaフィールドとexit_checklistフィールドが追加されます
{base_directory}/requirements/business-requirements.yaml(/business-requirements-interviewの出力)- 任意:NFR 由来のゲートに使用する
{base_directory}/requirements/technical-requirements.yaml
使用方法
/definition-of-done [base-directory]
ディレクトリが指定されていない場合は、現在のディレクトリ内で implementation/milestones.yaml を探して自動検出します。
見つからない場合は、ユーザーに「計画成果物はどこにありますか?」と尋ねます。
続行する前に、ユーザーがパスを指定するまで待ちます。base_directory として保存します。
プロセス
ステップ 1:ベースディレクトリの特定と成果物の読み込み
ディレクトリパラメーターが指定されていない場合は、現在のディレクトリに implementation/milestones.yaml が存在するか確認します。
- 見つかった場合は、現在のディレクトリを
base_directoryとして使用します - 見つからない場合は、「計画成果物はどこにありますか?」と尋ね、ユーザーの回答を待ちます
base_directory が決定したら、次の処理を行います。
{base_directory}/implementation/milestones.yaml を読み込み、各マイルストーンの id、name、description と、deliverables または tasks の参照を抽出します。
{base_directory}/requirements/business-requirements.yaml を読み込み、各機能要件を、それを実現する可能性が最も高いマイルストーンに対応付けます。この判断にはマイルストーン名と説明を使用し、タスクレベルの詳細を推測しないでください。
{base_directory}/requirements/technical-requirements.yaml が存在する場合は、読み込んで非機能要件(パフォーマンス目標、セキュリティ要件、テストカバレッジのしきい値)を抽出します。
ステップ 2:マイルストーンごとの受け入れ基準を導き出す
各マイルストーンについて、次の 5 つのカテゴリで基準を作成します。
1. 機能要件 マイルストーンの完了時に満たされている必要がある、具体的で観察可能な動作です。このマイルストーンに対応付けられたビジネス要件から導き出してください。各基準は次の条件を満たす必要があります。
- あいまいさなく検証できること(「ユーザーがメールアドレスとパスワードでログインできる」✓、「ログインが機能する」✗)
- 可能な場合は要件 ID に関連付けること
- 「Given/When/Then」形式、または現在形の宣言文で記述すること
2. 非機能要件
このマイルストーンの成果物に適用されるパフォーマンス、セキュリティ、信頼性、アクセシビリティの要件です。technical-requirements.yaml に NFR が存在する場合は、そこから抽出してください。このマイルストーンの範囲でテスト可能な NFR のみを含めてください。初期の基盤マイルストーンにシステム全体の SLA を適用しないでください。
3. テスト要件 このマイルストーンを完了とみなす前に必要なテストカバレッジです。
- 新たに導入したモジュール/関数のユニットテストカバレッジ
- 新たに越えるサービス境界がある場合の統合テスト
- 提供するユーザー向けフローの E2E シナリオ
- 回帰テスト:既存のテストが破損していないことの確認
4. ドキュメント要件 このマイルストーンで求められるドキュメント成果物です。
- 複雑なロジックのインラインコードコメント
- 新しいエンドポイントの API ドキュメント
- セットアップ/使用方法に変更がある場合の README 更新
- 構造に変更がある場合のアーキテクチャ図の更新
5. ワイヤーフレーム要件(UI マイルストーンのみ)
このマイルストーンに UI コンポーネント(.tsx、.jsx、.vue ファイル)を作成または変更するタスクが含まれる場合は、次を追加します。
- このマイルストーンのすべてのページについて、ワイヤーフレームのレビューと承認
- コンポーネントの状態(空、読み込み中、エラー、成功)のドキュメント化
- ワイヤーフレームに照らしたユーザーフローの検証
ux/wireframe-spec.yamlが存在し、has_ui_changesが true の場合にのみ、このセクションを含めてください。
6. 完了チェックリスト コードレビュー/マイルストーン承認で使用する、簡潔で具体的なチェックリストです。クイックリファレンスとして、上記の内容を「はい/いいえ」で確認できる項目にまとめます。
ステップ 3:マイルストーン間のゲートを特定する
要件が複数のマイルストーンにまたがる場合(例:「エンドツーエンド暗号化」に m1、m3、m5 での作業が必要な場合)は、マイルストーン間のゲートとして記載します。その要件全体を検証できるのは、その要件に関与する最後のマイルストーンのみです。中間の各マイルストーンに cross_milestone_note を追加してください。
ステップ 4:milestones.yaml を受け入れ基準で更新する
既存の {base_directory}/implementation/milestones.yaml ファイルを最後まで読み込みます。
milestones 配列内の各マイルストーンに、任意フィールドを 2 つ追加します。
- acceptance_criteria オブジェクト(5 つのカテゴリを含む):
acceptance_criteria:
functional:
- criterion: "[verifiable statement]"
requirement_ref: "BR-FUNC-001"
non_functional:
- criterion: "[measurable threshold]"
requirement_ref: "NFR-PERF-002"
testing:
unit: "[coverage expectation]"
integration: "[test expectations or N/A]"
e2e: "[E2E expectations or N/A]"
regression: "All existing tests pass"
documentation:
- "[specific artifact]"
cross_milestone_notes:
- "[spanning requirement note]" # if applicable
- 3~10 個の二択チェックを含む exit_checklist 配列:
exit_checklist:
- "[ ] [Functional check with requirement ref]"
- "[ ] All tests pass (≥X% coverage)"
- "[ ] [Documentation check]"
- "[ ] PR approved by at least one reviewer"
重要: milestones.yaml の既存フィールドはすべて保持してください。
version、project、generated、business_requirements、technical_requirementsordering_strategyとordering_rationaleを含むmetaセクション- 既存のすべてのマイルストーンフィールド:
id、name、description、dependencies、estimated_duration、tasks_file、success_criteria - 存在する場合は任意の
project_metadata
拡張した milestones.yaml を {base_directory}/implementation/milestones.yaml に書き戻します。
バックアップ戦略:
上書きする前に、タイムスタンプ付きで {base_directory}/implementation/milestones.yaml.backup にバックアップを作成します。
ステップ 5:ギャップ分析
milestones.yaml の更新後、以下の内容をインラインで報告します。
## Definition of Done Enhancement Complete
**Project:** [name]
**Milestones Enhanced:** [n]/[n]
**Functional Requirements Mapped:** [n]/[n]
**Acceptance Criteria Added:**
- Functional: [n] criteria across [n] milestones
- Non-Functional: [n] NFR criteria
- Testing: [n] milestones with test requirements
- Documentation: [n] milestones with doc requirements
**Criteria Quality:**
[✓ / ✗] All functional criteria are verifiable (no vague language)
[✓ / ✗] NFR criteria tied to specific thresholds (not just "must be fast")
[✓ / ✗] Every milestone has at least one testing requirement
[✓ / ✗] Cross-milestone requirements identified
**Unmapped Requirements:** [none / list requirements not tied to any milestone]
**Updated File:** implementation/milestones.yaml
**Backup Created:** implementation/milestones.yaml.backup.[timestamp]
**Recommendations:** [none / list]
出力形式
拡張された milestones.yaml の構造
このスキルでは、既存の milestones.yaml 内の各マイルストーンに、任意フィールドを 2 つ追加します。
拡張前:
milestones:
- id: m1
name: "User Authentication"
description: |
Build authentication system...
dependencies: [m0]
estimated_duration: "5-6 hours"
tasks_file: milestone-m1.tasks.yaml
success_criteria:
- "Users can sign up and log in"
- "Password security meets requirements"
拡張後:
milestones:
- id: m1
name: "User Authentication"
description: |
Build authentication system...
dependencies: [m0]
estimated_duration: "5-6 hours"
tasks_file: milestone-m1.tasks.yaml
success_criteria:
- "Users can sign up and log in"
- "Password security meets requirements"
# NEW: Detailed acceptance criteria added by /definition-of-done
acceptance_criteria:
functional:
- criterion: "Users can create account with email and password"
requirement_ref: BR-FUNC-001
- criterion: "Users can log in and receive JWT token valid for 24h"
requirement_ref: BR-FUNC-002
non_functional:
- criterion: "Passwords hashed using bcrypt with cost factor ≥12"
requirement_ref: NFR-SEC-001
- criterion: "/auth/login responds within 300ms for 95% of requests"
requirement_ref: NFR-PERF-001
testing:
unit: "≥85% coverage for auth service and JWT utilities"
integration: "Test auth service ↔ user database interaction"
e2e: "Happy path: signup → login → protected access → logout"
regression: "All existing tests pass"
documentation:
- "API documentation for /auth/signup, /auth/login, /auth/logout"
- "Authentication flow diagram"
cross_milestone_notes:
- "Role-based access control foundation in m1, full RBAC at m2"
# NEW: Exit checklist added by /definition-of-done
exit_checklist:
- "[ ] Users can sign up and log in (BR-FUNC-001, BR-FUNC-002)"
- "[ ] Password security meets requirements (bcrypt ≥12, NFR-SEC-001)"
- "[ ] All unit tests pass with ≥85% coverage"
- "[ ] Integration tests cover auth ↔ database"
- "[ ] E2E test covers full signup → login flow"
- "[ ] API documentation complete"
- "[ ] PR approved by at least one reviewer"
保持されるフィールド
既存の milestones.yaml の内容はすべて保持されます。
- ルートメタデータ:
version、project、generated、business_requirements、technical_requirements metaセクション:ordering_strategy、ordering_rationale- すべてのマイルストーンフィールド:
id、name、description、dependencies、estimated_duration、tasks_file、success_criteria - オプションのセクション:
overview、project_metadata、risks_and_mitigation
バックアップファイル
変更前に、タイムスタンプ付きのバックアップが作成されます。
- 場所:
{base_directory}/implementation/milestones.yaml.backup.YYYYMMDD-HHMMSS - 内容:拡張前の milestones.yaml の完全な原本
例
完全な acceptance_criteria と exit_checklist を含むマイルストーン m1 については、/docs/specifications/milestones/example.yaml を参照してください。