doc-prd-reviewer について
doc-prd-reviewerは、PRDの内容と整合性を確認する非推奨のスキルです。リンク、しきい値、BRDとの整合、プレースホルダー、完全性を検査し、READMEではdoc-prd-auditへの移行を案内しています。
主な機能
- 01PRDのリンクとしきい値の相互確認
- 02BRD要件との整合性チェック
- 03プレースホルダーと未完了セクションの検出
- 04トレーサビリティタグと命名の確認
- 05顧客向け内容の業務レビューを提示
活用シーン
- 01編集後の既存PRDの再確認
- 02EARS生成前のPRDチェック
- 03ドキュメントパイプラインへのPRDレビュー工程の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vladm3105/ aidoc-flow-framework --skill doc-prd-reviewerインストール後、Claude Code で/doc-prd-reviewerを入力して読み込まれたか確認します。
詳細
doc-prd-reviewer
非推奨(2026-03-02):2 スキルモデルの標準化に伴い、このスキルは
doc-prd-auditに統合されました。PRD のレビューにはすべてdoc-prd-auditを使用してください。このファイルは参考用としてのみ保持されています。置き換え先:
/doc-prd-audit移行:対応は不要です。このスキルの代わりに
doc-prd-auditを使用してください。
レガシードキュメント(参考用のみ)
目的
製品要求仕様書(PRD)の包括的な内容レビューと品質保証を行います。このスキルは、構造検証にとどまらない詳細な内容分析を実施し、リンクの整合性、しきい値の一貫性、BRD との整合性を確認するとともに、手動でのビジネスレビューが必要な問題を特定します。
レイヤー:2(PRD 品質保証)
上流:PRD(doc-prd-autopilot または doc-prd から)
下流:なし(EARS 生成前の最終 QA ゲート)
このスキルを使用する場面
次の場合に doc-prd-reviewer を使用してください。
- PRD 生成後:
doc-prd-autopilotの完了直後に実行します - PRD の手動編集後:PRD に手動で変更を加えた後に実行します
- EARS 前の確認:
doc-ears-autopilotの実行前に確認します - 定期レビュー:既存の PRD を定期的に品質確認します
- CI/CD 統合:ドキュメントパイプラインに自動レビューゲートを導入します
次の場合は使用しないでください:
- PRD がまだ存在しない場合(先に
doc-prdまたはdoc-prd-autopilotを使用してください) - 構造/スキーマの検証のみが必要な場合(
doc-prd-validatorを使用してください) - 新しい PRD コンテンツを生成する場合(
doc-prdを使用してください)
スキルとバリデーターの主な違い
| 項目 | doc-prd-validator | doc-prd-reviewer |
|---|---|---|
| 重点 | スキーマ準拠、EARS 対応スコア | コンテンツ品質、ドキュメント間の一貫性 |
| チェック項目 | 必須セクション、フィールド形式 | リンクの整合性、しきい値の整合性、プレースホルダー |
| 自動修正 | 構造上の問題のみ | コンテンツ上の問題(リンク、日付、プレースホルダー) |
| 出力 | EARS 対応スコア(数値) | レビュースコア+問題一覧 |
| フェーズ | フェーズ 4(検証) | フェーズ 5(最終レビュー) |
| ブロック条件 | EARS 対応スコアがしきい値未満の場合はブロック | レビュースコアがしきい値未満の場合はフラグを付ける |
レビューワークフロー
flowchart TD
A[Input: PRD Path] --> B[Load PRD Files]
B --> C{Sectioned or Monolithic?}
C -->|Sectioned| D[Load All Section Files]
C -->|Monolithic| E[Load Single File]
D --> F[Run Review Checks]
E --> F
subgraph Review["Review Checks"]
F --> G[1. Link Integrity]
G --> H[2. Threshold Consistency]
H --> H2[2a. Diagram Contract Compliance]
H2 --> I[3. BRD Alignment]
I --> J[4. Placeholder Detection]
J --> K[5. Traceability Tags]
K --> L[6. Section Completeness]
L --> M[7. Customer Content]
M --> M2[8. Naming Compliance]
M2 --> M3[9. Structure Compliance]
M3 --> M4[10. Upstream Drift Detection]
end
M4 --> N{Issues Found?}
N -->|Yes| O[Categorize Issues]
O --> P{Auto-Fixable?}
P -->|Yes| Q[Apply Auto-Fixes]
Q --> R[Re-run Affected Checks]
P -->|No| S[Flag for Manual Review]
R --> N
S --> T[Generate Report]
N -->|No| T
T --> U[Calculate Review Score]
U --> V{Score >= Threshold?}
V -->|Yes| W[PASS]
V -->|No| X[FAIL with Details]
レビューチェック項目
1. リンクの整合性
すべての内部ドキュメントリンクが正しく解決されることを確認します。
対象範囲:
- ナビゲーションリンク(
[Previous: ...]、[Next: ...]) - セクション間の相互参照(
[See Section 8.2](...)) - 索引からセクションへのリンク
- 外部ドキュメントへのリンク(到達不能な場合は警告)
検出:
Scanning PRD-01 for internal links...
├── PRD-01.md: 17 links found
│ ├── PRD-01.1_document_control.md ✓
│ ├── PRD-01.2_executive_summary.md ✓
│ ├── PRD-01.18_missing_section.md ✗ NOT FOUND
│ └── ...
└── Result: 1 broken link found
自動修正:
- 存在しないセクションへのリンクを削除します
- 類似した名前の対象が存在する場合は、パスの誤記を修正します
- ファイルが移動された場合は、相対パスを更新します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-L001 | エラー | 内部リンクが無効です |
| REV-L002 | 警告 | 外部リンクに到達できません |
| REV-L003 | 情報 | リンクパスに相対パスではなく絶対パスが使われています |
2. しきい値の一貫性
すべてのセクションでパフォーマンス指標が一致していることを確認します。
対象範囲:
- セクション 5(成功指標)のしきい値
- セクション 9(品質属性)のパフォーマンス目標
- セクション 17/20(付録 B.1)のタイミングプロファイルマトリックス
- BRD のしきい値への相互参照
検出:
Comparing thresholds across sections...
├── Operation: auth.p99
│ ├── Section 5 (Success Metrics): 100ms ✓
│ ├── Section 9 (Quality Attributes): 100ms ✓
│ ├── Section 17 (Timing Matrix): 100ms ✓
│ └── BRD-01 (Source): 100ms ✓
├── Operation: authz.p99
│ ├── Section 5: 10ms ✓
│ ├── Section 9: 15ms ✗ MISMATCH
│ ├── Section 17: 10ms ✓
│ └── BRD-01: 10ms ✓
└── Result: 1 inconsistency found
自動修正:
- PRD の値を BRD の値(信頼できる情報源)に合わせます
- 一貫した値を使うようにすべてのセクションを更新します
- 自動修正とタイムスタンプを示すコメントを追加します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-T001 | エラー | PRD のセクション間でしきい値が一致しません |
| REV-T002 | エラー | しきい値が BRD の値と異なります |
| REV-T003 | 警告 | しきい値の単位が一致しません(ms と s) |
| REV-T004 | 情報 | しきい値が BRD より厳しく設定されています(許容範囲内) |
2a. 図の規約への準拠
ai_dev_ssd_flow/DIAGRAM_STANDARDS.md で定義されているPRDの図に関する規約要件を検証します。
対象範囲:
- 必須のPRDタグ:
@diagram: c4-l2、@diagram: dfd-l1、@diagram: sequence-* - 重要なジャーニーにおける、必須のシーケンス図のエラー/代替パスの網羅性
- インテントヘッダーのフィールド:
diagram_type、level、scope_boundary、upstream_refs、downstream_refs
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-DC001 | エラー | 必須のPRD図タグ(c4-l2、dfd-l1、またはsequence-*)がありません |
| REV-DC002 | エラー | 必須のシーケンスフローに明示的な例外パスがありません |
| REV-DC003 | 警告 | 図のインテントヘッダーに必須フィールドがありません |
3. BRDとの整合性
PRDの要件がBRDのソースを正確に反映しているかを検証します。
対象範囲:
- すべてのPRD要件がBRD要件に対応付けられていること
- 対応元のBRDがない要件(PRDの孤立要件)がないこと
- PRDに対応付けられていないBRD要件がないこと
- スコープ境界が一致していること
検出:
Verifying PRD requirements map to BRD source...
├── PRD.01.0101 → BRD.01.0101 (Multi-Provider Auth) ✓
├── PRD.01.0102 → BRD.01.0102 (4D Authorization) ✓
├── PRD.01.0103 → BRD.01.0103 (Trust Levels) ✓
├── PRD.01.0109 → ??? ✗ NO BRD MAPPING
├── BRD.01.0110 → ??? ✗ NO PRD MAPPING (deferred)
└── Result: 11/12 aligned, 1 orphan, 1 missing
Scope Alignment:
├── PRD In-Scope vs BRD In-Scope: MATCH ✓
├── PRD Out-Scope vs BRD Out-Scope: MATCH ✓
└── Deferred items: 2 (correctly marked)
手動レビューが必要:
- 孤立要件には正当な理由が必要です
- 未対応の要件には明示的な延期の注記が必要です
- スコープの不一致にはビジネス上の判断が必要です
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-A001 | エラー | BRDのソースがないPRD要件 |
| REV-A002 | 警告 | PRDに対応付けられていないBRD要件 |
| REV-A003 | エラー | スコープの不一致(PRDとBRD) |
| REV-A004 | 情報 | 要件が正しく延期としてマークされています |
4. プレースホルダーの検出
置き換えが必要な未完成の内容を特定します。
対象範囲:
[TODO]、[TBD]、[PLACEHOLDER]のテキスト- テンプレートの日付:
YYYY-MM-DDTHH:MM:SS、MM/DD/YYYY - テンプレートの名前:
[Name]、[Author]、[Reviewer] - 空のセクション:``
- Lorem ipsumまたはサンプルテキスト
検出:
Scanning for placeholder text...
├── [TODO]: 0 found ✓
├── [TBD]: 1 found
│ └── PRD-01.10_customer_content.md:42: "[TBD: Marketing copy]"
├── YYYY-MM-DDTHH:MM:SS: 0 found ✓
├── [Name]: 0 found ✓
├── Empty sections: 0 found ✓
└── Result: 1 placeholder found
自動修正:
YYYY-MM-DDTHH:MM:SSを現在の日時に置き換えます[Name]をメタデータに記載されたドキュメント作成者に置き換えます- 空のコメント用プレースホルダーを削除します
[TODO]/[TBD]に手動での入力が必要であることを示します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-P001 | エラー | [TODO] プレースホルダーが見つかりました |
| REV-P002 | エラー | [TBD] プレースホルダーが見つかりました |
| REV-P003 | 警告 | テンプレートの日付が置き換えられていません |
| REV-P004 | 警告 | テンプレートの名前が置き換えられていません |
| REV-P005 | 警告 | セクションの内容が空です |
5. トレーサビリティタグ
@brd:、@depends:、@discoverability: タグを検証します。
対象範囲:
- すべての
@brd: BRD.XX.XX.XXタグが有効なBRD IDを参照していること @depends: PRD-XXの参照先が存在すること@discoverability: PRD-XXの参照先が存在すること- タグの形式が規約に従っていること
検出:
Validating traceability tags...
├── @brd tags: 15 found
│ ├── BRD.01.0101 ✓ (exists in BRD-01)
│ ├── BRD.01.0102 ✓
│ ├── BRD.01.9901 ✗ NOT FOUND in BRD
│ └── ...
├── @depends tags: 2 found
│ ├── PRD-06 ✓ (exists)
│ └── PRD-07 ✓ (exists)
├── @discoverability tags: 2 found
│ ├── PRD-02 ✗ (planned, not yet created)
│ └── PRD-03 ✗ (planned, not yet created)
└── Result: 1 invalid @brd, 2 forward references (acceptable)
自動修正:
- 無効な
@brdタグを削除します - 一致する候補がある場合、タグIDの誤記を修正します
- 前方参照に
(planned)の接尾辞を追加します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-TR001 | エラー | @brd タグが存在しないBRD IDを参照しています |
| REV-TR002 | 警告 | @depends が存在しないPRDを参照しています |
| REV-TR003 | 情報 | @discoverability は前方参照です |
| REV-TR004 | 警告 | タグの形式が不正です |
6. セクションの完全性
必須セクションすべてに実質的な内容が含まれていることを検証します。
対象範囲:
- セクションごとの最小語数(設定可能)
- セクション見出しの有無
- 表にデータ行があること(見出しのみではない)
- Mermaid 図が正しくレンダリングされること
検出:
Checking section completeness...
├── Section 1 (Document Control): 150 words ✓
├── Section 2 (Executive Summary): 280 words ✓
├── Section 10 (Customer Content): 45 words ⚠ THIN
├── Section 17 (Appendices): 820 words ✓
├── Table check: 12 tables, all have data rows ✓
├── Mermaid check: 3 diagrams, all valid ✓
└── Result: 16/17 complete, 1 thin section
最小語数(設定可能):
| セクション | 最小語数 |
|---|---|
| エグゼクティブサマリー | 100 |
| 問題の説明 | 75 |
| 機能要件 | 200 |
| 品質特性 | 100 |
| 顧客向けコンテンツ | 100 |
| リスク評価 | 75 |
| 付録 | 200 |
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-S001 | Error | 必須セクションが完全に欠落しています |
| REV-S002 | Warning | セクションが最小語数を下回っています |
| REV-S003 | Warning | 表にデータ行がありません |
| REV-S004 | Error | Mermaid 図の構文エラー |
7. 顧客向けコンテンツのレビュー
セクション 10 に対して、必須のビジネス/マーケティングレビューを促します。
対象範囲:
- セクション 10(顧客向けコンテンツ)が存在すること
- 内容が実質的であること(プレースホルダーではない)
- マーケティング表現が適切であること
- 顧客向けテキストに技術用語が含まれていないこと
検出:
Reviewing customer-facing content (Section 10)...
├── Section exists: ✓
├── Word count: 180 words ✓
├── Placeholder check: PASS ✓
├── Technical jargon scan:
│ ├── "4D Matrix" - technical term found
│ ├── "OIDC" - acronym may need explanation
│ └── "mTLS" - technical term found
└── Result: FLAG for marketing review (3 technical terms)
手動レビューが必要です:
- セクション 10 のすべての内容について、ビジネス部門の承認が必要です
- 技術用語には顧客にわかりやすい代替表現が必要です
- ブランドガイドラインとのメッセージの整合性
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-C001 | Error | セクション 10 がありません |
| REV-C002 | Warning | セクション 10 がプレースホルダーの内容です |
| REV-C003 | Info | 顧客向けコンテンツに技術用語が含まれています |
| REV-C004 | Flag | マーケティング/ビジネスレビューが必要です |
8. 命名規則への準拠
要素 ID としきい値タグが doc-naming 標準に従っていることを検証します。
対象範囲:
- 要素 ID が
PRD.NN.xxxx形式であること - 要素タイプコードが PRD で有効であること(01-09、11、22、24)
- しきい値タグが
@threshold: PRD.NN.key形式であること - レガシーパターン(US-NNN、FR-NNN、AC-NNN、F-NNN)がないこと
検出:
Validating naming compliance (per doc-naming skill)...
├── Element IDs: 24 found
│ ├── PRD.01.0101 ✓ (valid format, code 01 valid for PRD)
│ ├── PRD.01.0905 ✓ (valid format, code 09 valid for PRD)
│ ├── PRD.01.2501 ✗ (code 25 not valid for PRD - EARS only)
│ └── ...
├── Threshold tags: 8 found
│ ├── @threshold: PRD.01.perf.auth.p99 ✓
│ ├── @threshold: perf.auth.p99 ✗ (missing PRD.NN prefix)
│ └── ...
├── Legacy patterns: 2 found
│ ├── US-001 ✗ (deprecated - use PRD.NN.09.SS)
│ └── FR-003 ✗ (deprecated - use PRD.NN.01.SS)
└── Result: 3 naming violations
自動修正:
- レガシーパターンを統一形式に変換します
- しきい値タグに欠落している
PRD.NNプレフィックスを追加します - 正しい要素タイプコードを提案します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-N001 | Error | 要素 ID の形式が無効です |
| REV-N002 | Error | PRD で無効な要素タイプコードです |
| REV-N003 | Error | レガシーパターンが検出されました(US-NNN、FR-NNN など) |
| REV-N004 | Error | しきい値タグにドキュメント参照がありません |
| REV-N005 | Warning | しきい値キーの形式が標準に準拠していません |
参照:命名規則の詳細については、doc-naming スキルを参照してください。
9. 構造への準拠(重大)
PRD が必須のネストフォルダ規則に従っていることを検証します。
ネストフォルダ規則:サイズにかかわらず、すべての PRD はネストフォルダ内に配置する必要があります。
必須の構造:
| PRD タイプ | 必須の場所 |
|---|---|
| モノリシック | docs/02_PRD/PRD-NN_{slug}/PRD-NN_{slug}.md |
| セクション分割 | docs/02_PRD/PRD-NN_{slug}/PRD-NN.0_index.md、PRD-NN.1_*.md など |
検出:
Validating folder structure...
├── PRD Location: docs/02_PRD/PRD-01_f1_iam/PRD-01_f1_iam.md
├── Expected Folder: PRD-01_f1_iam ✓
├── Parent Path: docs/02_PRD/ ✓
├── Nested Structure: Valid ✓
└── Result: PASS
失敗の検出:
Validating folder structure...
├── PRD Location: docs/02_PRD/PRD-02_f2_session.md
├── Expected: docs/02_PRD/PRD-02_f2_session/PRD-02_f2_session.md
├── Nested Structure: INVALID ✗
└── Result: FAIL - PRD not in nested folder
自動修正:
- ネストフォルダ
docs/02_PRD/PRD-NN_{slug}/を作成します - PRD ファイルをフォルダ内に移動します
- すべての内部リンク(ナビゲーション、相互参照)を更新します
- 上流の BRD リンクを更新します:
../01_BRD/→../../01_BRD/ - 用語集へのリンクを正しいパスに更新します
エラーコード:
| コード | 重大度 | 説明 |
|---|---|---|
| REV-STR001 | Error | PRD がネストフォルダ内にありません(ブロッキング) |
| REV-STR002 | Error | PRD フォルダ名が PRD ID と一致しません |
| REV-STR003 | Warning | モノリシック PRD はセクション分割する必要があります(>25KB) |
| REV-STR004 | Error | ネストフォルダに対する BRD リンクのパスが正しくありません |
このチェックはブロッキングです — ほかのチェックに進む前に、PRD は構造検証に合格する必要があります。
10. 上流の変更検出(キャッシュ必須)
PRD の作成後または最終更新後に、上流のソース文書が変更されているかを検出します。変更検出キャッシュは必須です。レビュー担当者は、レビューのたびに必ずキャッシュを作成または更新してください。
目的:現在の BRD ドキュメントを反映していない可能性のある古い PRD の内容を特定します。上流の文書(BRD 仕様、ビジネス要件)が変更された場合、整合性を保つために PRD の更新が必要になることがあります。
対象範囲:
@ref:タグの対象(BRD ドキュメント、技術仕様)@brd:タグの参照- トレーサビリティセクションの上流アーティファクトへのリンク
../01_BRD/またはソース文書へのすべての Markdown リンク
10.1 変更検出キャッシュファイル(必須)
場所:docs/02_PRD/{PRD_folder}/.drift_cache.json
重要:レビュー担当者は、必ず次の操作を行ってください。
- キャッシュが存在する場合は、ハッシュ比較のために読み込む
- キャッシュが存在しない場合は、作成する
- レビューのたびに、現在のハッシュを使ってキャッシュを更新する
キャッシュのスキーマ:
{
"schema_version": "1.0",
"document_id": "PRD-01",
"document_version": "1.0",
"last_reviewed": "2026-02-10T17:00:00",
"reviewer_version": "1.4",
"upstream_documents": {
"../../01_BRD/BRD-01_f1_iam/BRD-01.md": {
"hash": "sha256:a1b2c3d4e5f6g7h8i9j0...",
"last_modified": "2026-02-10T15:34:26",
"file_size": 50781,
"version": "1.0",
"sections_tracked": ["#7-functional-requirements", "#8-non-functional-requirements"]
},
"../../01_BRD/BRD-01_f1_iam/BRD-01.7_functional_requirements.md": {
"hash": "sha256:k1l2m3n4o5p6q7r8s9t0...",
"last_modified": "2026-02-10T15:34:21",
"file_size": 4730,
"version": "1.0",
"sections_tracked": ["#authentication", "#authorization"]
}
},
"review_history": [
{
"date": "2026-02-10T16:30:00",
"score": 97,
"drift_detected": false,
"report_version": "v002"
}
]
}
10.2 検出アルゴリズム(3 フェーズ)
PHASE 1: Load Cache (if exists)
=========================================
1. Check for .drift_cache.json in PRD folder
2. If exists:
- Load cached hashes and metadata
- Set detection_mode = "hash_comparison"
3. If not exists:
- Set detection_mode = "timestamp_only"
- Will create cache at end of review
PHASE 2: Detect Drift
=========================================
For each upstream reference in PRD:
A. Extract reference:
- @ref: tags → [path, section anchor]
- @brd: tags → [BRD ID, requirement ID]
- Links to ../01_BRD/ → [path]
- Traceability table upstream artifacts → [path]
B. Resolve and validate:
- Resolve path to absolute file path
- Check file exists (skip if covered by Check #1)
- Get file stats: mtime, size
C. Compare (based on detection_mode):
IF detection_mode == "hash_comparison":
- Compute SHA-256 hash of current file content
- Compare to cached hash
- IF hash differs:
- Calculate change_percentage
- Flag as CONTENT_DRIFT (REV-D002)
- IF change > 20%: Flag as CRITICAL (REV-D005)
ELSE (timestamp_only):
- Compare file mtime > PRD last_updated
- IF mtime > PRD date:
- Flag as TIMESTAMP_DRIFT (REV-D001)
D. Check version field (if YAML frontmatter):
- Extract version from upstream doc
- Compare to cached version
- IF version incremented: Flag REV-D003
PHASE 3: Update Cache (MANDATORY)
=========================================
1. Compute SHA-256 hash for ALL upstream documents
2. Create/update .drift_cache.json with:
- Current hashes
- Current timestamps
- Current file sizes
- Review metadata
3. Append to review_history array
10.3 ハッシュ計算(BASH の実行必須)
重要:ハッシュを計算するには、実際に bash コマンドを実行する必要があります。verified_no_drift や pending_verification などのプレースホルダー値を記述してはいけません。
10.3.1 ファイルハッシュの計算
上流文書ごとに、次の bash コマンドを実行します。
sha256sum <file_path> | cut -d' ' -f1
結果を変更検出キャッシュに次の形式で保存します:"hash": "sha256:<64_hex_characters>"
10.3.2 ハッシュ形式の検証
| チェック | 要件 |
|---|---|
| プレフィックス | sha256: であること |
| 長さ | プレフィックスの後に 64 個の 16 進文字があること |
| 文字 | [0-9a-f] のみ |
無効な値(見つかった場合は直ちに再計算してください):
sha256:verified_no_driftsha256:pending_verificationpending_verificationsha256:TBD- 16 進数部分が 64 文字でない値
10.3.3 キャッシュ書き込み後の検証
# Verify all hashes in cache are valid
grep -oP '"hash":\s*"sha256:[0-9a-f]{64}"' .drift_cache.json
# Must return valid matches for all upstream docs
10.3.4 セクションハッシュの計算
アンカー単位で追跡する場合は、まずセクションの内容を抽出してからハッシュを計算します。
# Extract section and compute hash
sed -n '/^## Section Name/,/^## /p' <file_path> | head -n -1 | sha256sum | cut -d' ' -f1
10.4 エラーコード
| コード | 重大度 | 説明 | 発生条件 |
|---|---|---|---|
| REV-D001 | 警告 | PRD の作成後に上流文書が変更された | mtime > PRD date(キャッシュなし) |
| REV-D002 | 警告 | 参照先の内容が変更された | ハッシュ不一致(キャッシュあり) |
| REV-D003 | 情報 | 上流文書のバージョンが更新された | version フィールドの変更 |
| REV-D004 | 情報 | 上流文書に新しい内容が追加された | ファイルサイズが 10% 超増加 |
| REV-D005 | エラー | 重大な変更(20% 超の変更) | ハッシュ差分が 20% 超 |
| REV-D006 | 情報 | キャッシュを作成した(初回レビュー) | 以前のキャッシュが存在しない |
| REV-D009 | エラー | 無効なハッシュプレースホルダーを検出した | ハッシュが verified_no_drift、pending_verification、または無効な形式 |
10.5 レポート出力
## 9. Upstream Drift Detection (5/5)
### Cache Status
| Field | Value |
|-------|-------|
| Cache File | `.drift_cache.json` |
| Cache Status | ✅ Updated |
| Detection Mode | Hash Comparison |
| Documents Tracked | 2 |
### Upstream Document Analysis
| Upstream Document | Hash Status | Last Modified | Change % | Status |
|-------------------|-------------|---------------|----------|--------|
| BRD-01.md | ✅ Match | 2026-02-10T15:34:26 | 0% | Current |
| BRD-01.7_functional_requirements.md | ✅ Match | 2026-02-10T15:34:21 | 0% | Current |
### Drift Summary
| Status | Count | Details |
|--------|-------|---------|
| ✅ Current | 2 | All upstream documents synchronized |
| ⚠️ Warning | 0 | No drift detected |
| ❌ Critical | 0 | No major changes |
**Cache updated**: 2026-02-10T17:00:00
10.6 設定
| 設定 | デフォルト | 説明 |
|---|---|---|
cache_enabled | true | 必須 — 常にキャッシュを作成または更新する |
drift_threshold_days | 7 | タイムスタンプのずれが警告になるまでの日数 |
critical_change_pct | 20 | 重大な変更とする変更率 |
track_sections | true | アンカー付き参照の個別セクションハッシュを追跡する |
max_history_entries | 10 | 保持する review_history エントリの最大数 |
レビュースコアの計算
スコア計算式:
| カテゴリ | 配点 | 計算方法 |
|---|---|---|
| リンクの整合性 | 10% | (valid_links / total_links) × 10 |
| しきい値の一貫性 | 10% | (consistent_thresholds / total_thresholds) × 10 |
| BRD との整合性 | 18% | (aligned_requirements / total_requirements) × 18 |
| プレースホルダーの検出 | 10% | (no_placeholders ? 10 : 10 - (placeholder_count × 2)) |
| トレーサビリティタグ | 10% | (valid_tags / total_tags) × 10 |
| セクションの完全性 | 10% | (complete_sections / total_sections) × 10 |
| 顧客コンテンツ | 5% | (exists && substantive ? 5 : 0) |
| 命名規則への準拠 | 10% | (valid_ids / total_ids) × 10 |
| 構造への準拠 | 12% | (nested_folder_valid ? 12 : 0) - ブロッキング |
| 上流ドリフト | 5% | (fresh_refs / total_refs) × 5 |
合計:各カテゴリの合計(最大 100)
注:構造への準拠はブロッキングチェックです。構造の検証に失敗した場合(REV-STR001)、他のスコアにかかわらずレビューは合格できません。
しきい値:
- 合格:≥ 90(設定可能)
- 警告:80-89
- 不合格:< 80
コマンドの使用方法
基本的な使用方法
# Review specific PRD
/doc-prd-reviewer PRD-01
# Review PRD by path
/doc-prd-reviewer docs/02_PRD/PRD-01_f1_iam/
# Review all PRDs
/doc-prd-reviewer all
オプション
| オプション | デフォルト | 説明 |
|---|---|---|
--min-score | 90 | レビューの最低合格スコア |
--auto-fix | true | 自動修正を適用します |
--no-auto-fix | false | 自動修正を無効にします(レポートのみ) |
--check | all | 実行する特定のチェック(カンマ区切り) |
--skip | none | スキップするチェック(カンマ区切り) |
--verbose | false | 各チェックの詳細な出力 |
--report | true | Markdown レポートを生成します |
--report-path | auto | レポートの保存場所(auto = ドキュメントと同じ場所) |
--version | auto | レビューバージョン(auto = 自動インクリメント) |
例
# Review with verbose output
/doc-prd-reviewer PRD-01 --verbose
# Report only (no auto-fix)
/doc-prd-reviewer PRD-01 --no-auto-fix
# Run only specific checks
/doc-prd-reviewer PRD-01 --check links,placeholders
# Skip customer content check
/doc-prd-reviewer PRD-01 --skip customer
# Lower threshold for draft review
/doc-prd-reviewer PRD-01 --min-score 80
設定
# config/prd_reviewer.yaml
prd_reviewer:
version: "1.0"
scoring:
min_score: 90
weights:
link_integrity: 15
threshold_consistency: 20
brd_alignment: 25
placeholder_detection: 15
traceability_tags: 10
section_completeness: 10
customer_content: 5
checks:
links:
enabled: true
check_external: false
auto_fix: true
thresholds:
enabled: true
source_priority: brd # brd or prd
auto_fix: true
alignment:
enabled: true
allow_orphans: false
require_deferral_notes: true
placeholders:
enabled: true
patterns:
- "[TODO]"
- "[TBD]"
- "[PLACEHOLDER]"
- "YYYY-MM-DDTHH:MM:SS"
- "[Name]"
auto_fix_dates: true
auto_fix_names: true
traceability:
enabled: true
allow_forward_refs: true
auto_fix_typos: true
completeness:
enabled: true
min_words:
executive_summary: 100
problem_statement: 75
functional_requirements: 200
quality_attributes: 100
customer_content: 100
risk_assessment: 75
appendices: 200
customer:
enabled: true
flag_always: true
jargon_patterns:
- "OIDC"
- "mTLS"
- "JWT"
- "4D Matrix"
output:
report_format: markdown
report_path: auto # auto = alongside reviewed document
versioning:
enabled: true
pattern: "_vNNN" # e.g., _v001, _v002
auto_increment: true
include_line_numbers: true
include_fix_diff: true
include_delta_report: true # Compare with previous version
出力レポート
ファイル名とバージョン管理
パターン:PRD-NN.R_review_report_vNNN.md
ネストされたフォルダーのルール:サイズにかかわらず、すべての PRD でネストされたフォルダー(PRD-NN_{slug}/)を使用します。これにより、レビューレポート、修正レポート、ドリフトキャッシュファイルが親ドキュメントと同じ場所に整理されます。
保存場所:PRD のネストされたフォルダー内:docs/02_PRD/PRD-NN_{slug}/
バージョン管理ルール:
- 初回レビュー:
PRD-NN.R_review_report_v001.mdを作成します - 2 回目以降のレビュー:バージョンを自動でインクリメントします(v002、v003 など)
- 同日のレビュー:レビューごとに一意のバージョン番号を割り当てます
ディレクトリの例:
docs/02_PRD/PRD-01_f1_iam/
├── PRD-01.md
├── PRD-01.R_review_report_v001.md # First review
├── PRD-01.R_review_report_v002.md # After fixes
└── PRD-01.R_review_report_v003.md # Final review
レポートの構成
# PRD Review Report: PRD-01 (v003)
**Review Date**: 2026-02-08T14:30:00
**Review Version**: v003
**PRD**: PRD-01 (F1 Identity & Access Management)
**Status**: PASS
**Review Score**: 95/100
---
## Summary
| Check | Status | Score | Issues |
|-------|--------|-------|--------|
| Link Integrity | PASS | 15/15 | 0 |
| Threshold Consistency | PASS | 20/20 | 0 |
| BRD Alignment | PASS | 23/25 | 2 deferred |
| Placeholder Detection | PASS | 15/15 | 0 |
| Traceability Tags | PASS | 10/10 | 0 |
| Section Completeness | PASS | 10/10 | 0 |
| Customer Content | FLAG | 2/5 | Needs review |
| **Total** | **PASS** | **95/100** | |
---
## Issues Detail
### Flagged for Manual Review
| File | Line | Issue | Code |
|------|------|-------|------|
| PRD-01.10_customer_content.md | 42 | Technical jargon: "4D Matrix" | REV-C003 |
| PRD-01.10_customer_content.md | 58 | Technical jargon: "OIDC" | REV-C003 |
| PRD-01.10_customer_content.md | - | Requires marketing review | REV-C004 |
### Auto-Fixes Applied
| File | Line | Fix | Code |
|------|------|-----|------|
| PRD-01.1_document_control.md | 15 | Date: YYYY-MM-DDTHH:MM:SS → 2026-02-08T14:30:00 | REV-P003 |
### Deferred Items (Acceptable)
| Requirement | Reason | Note |
|-------------|--------|------|
| BRD.01.0110 | Device Trust | Marked P3, next cycle |
| BRD.01.0112 | Time-Based Access | Marked P3, next cycle |
---
## Recommendations
1. **Section 10 Review**: Schedule marketing review for customer-facing content
2. **Technical Terms**: Consider adding glossary link for "4D Matrix", "OIDC"
3. **Deferred Items**: Confirm P3 priority with stakeholders
---
**Generated By**: doc-prd-reviewer v1.1
**Report Location**: docs/02_PRD/PRD-01_f1_iam/PRD-01.R_review_report_v003.md
**Previous Review**: v002 (Score: 91/100)
差分レポート
以前のレビューがある場合は、スコアの比較を含めます:
## Score Comparison (v002 → v003)
| Metric | Previous (v002) | Current (v003) | Delta |
|--------|-----------------|----------------|-------|
| Overall Score | 91 | 95 | +4 |
| Errors | 2 | 0 | -2 |
| Warnings | 5 | 3 | -2 |
| Issues Resolved | - | 4 | - |
| New Issues | - | 0 | - |
バージョン管理の要件について詳しくは、REVIEW_DOCUMENT_STANDARDS.md を参照してください。
doc-prd-autopilot との統合
このスキルは、doc-prd-autopilot のフェーズ 5 で自動的に呼び出されます:
flowchart LR
A[Phase 4: Validation] --> B[Phase 5: Final Review]
B --> C{doc-prd-reviewer}
C --> D[Phase 6: Continue]
オートパイロットとの統合:
# In doc-prd-autopilot config
review:
enabled: true
skill: doc-prd-reviewer
options:
min_score: 90
auto_fix: true
flag_customer_content: true
単独での使用と統合しての使用
| 使用例 | コマンド | 備考 |
|---|---|---|
| オートパイロット実行後 | 自動 | フェーズ 5 として呼び出されます |
| PRD の手動編集 | /doc-prd-reviewer PRD-01 | 明示的に実行します |
| EARS 前のチェック | /doc-prd-reviewer PRD-01 | EARS の前に検証します |
| 定期監査 | /doc-prd-reviewer all | すべての PRD をレビューします |
エラーからの復旧
よくある問題
| エラー | 原因 | 解決方法 |
|---|---|---|
PRDNotFoundError | PRD のパスが無効です | パスまたは PRD ID を確認します |
BRDNotFoundError | BRD のソースがありません | 整合性チェック用の BRD が存在することを確認します |
LowScoreError | スコアがしきい値を下回っています | 指摘された問題を修正します |
復旧コマンド
# Re-run after fixes
/doc-prd-reviewer PRD-01
# Run with lower threshold (for drafts)
/doc-prd-reviewer PRD-01 --min-score 75
# Skip failing check temporarily
/doc-prd-reviewer PRD-01 --skip alignment
関連スキル
| スキル | 関連性 |
|---|---|
doc-naming | チェック #8 の命名規則 |
doc-prd-autopilot | フェーズ 5 でこのスキルを呼び出します |
doc-prd-validator | 構造検証(フェーズ 4) |
doc-prd-fixer | レビュー結果に基づいて修正を適用します |
doc-prd-audit | このレビュー出力と検証結果を統合するラッパー |
doc-prd | PRD 作成ルール |
doc-brd-audit | BRD ソース検証(統合品質ゲート) |
doc-ears-autopilot | 後続の利用側 |
バージョン履歴
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 2.0 | 2026-03-02 | 非推奨:2 スキルモデルの標準化の一環として doc-prd-audit に統合されました。代わりに doc-prd-audit を使用してください。 |
| 1.9 | 2026-03-01 | 2 スキル BRD モデル:BRD 検証の参照先を doc-brd-validator から doc-brd-audit(統合品質ゲート)に更新 |
| 1.8 | 2026-02-27 | ハッシュ計算の修正:Python の疑似コードを必須の bash sha256sum 実行に置き換えました。ハッシュ検証(REV-D009)を追加しました。プレースホルダー値(verified_no_drift、pending_verification)を拒否します |
| 1.7 | 2026-02-26 | フロントマターを metadata スキーマに移行しました。doc-prd-audit ラッパーとの関係を記載しました |
| 1.6 | 2026-02-11 | 番号の修正:チェック #10 のサブセクションを 9.1~9.6 から 10.1~10.6 に修正しました(ドリフトキャッシュ、検出アルゴリズム、ハッシュ計算、エラーコード、レポート出力、設定) |
| 1.5 | 2026-02-11 | 構造準拠:ネストしたフォルダのルール適用に関するチェック #9 を追加しました(REV-STR001-STR004)。上流ドリフトをチェック #10 に移動しました。スコアリングに構造準拠を追加しました(重み 12%、ブロッキング)。ワークフロー図を 10 チェックに更新しました |
| 1.4 | 2026-02-10T17:00:00 | ドリフトキャッシュの必須化:レビュアーはレビューのたびに .drift_cache.json を作成/更新する必要があります。3 フェーズの検出アルゴリズムを追加しました。SHA-256 ハッシュ計算を追加しました。キャッシュがある場合のハッシュ比較モードを追加しました。キャッシュ作成用の REV-D006 コードを追加しました。review_history の追跡を含むキャッシュスキーマを追加しました |
| 1.3 | 2026-02-10 | チェック #9「上流ドリフト検出」を追加しました。PRD 作成後に BRD ドキュメントが変更された場合に検出します。REV-D001-D005 エラーコード、ドリフト設定、関連スキルへの doc-prd-fixer の追加を行いました |
| 1.2 | 2026-02-10 | レビューのバージョン管理(_vNNN パターン)を追加しました。スコア比較用の差分レポートを追加しました |
| 1.1 | 2026-02-08 | チェック #8「命名準拠」を追加しました(doc-naming との統合) |
| 1.0 | 2026-02-08 | 7 つのレビュー項目で初期スキルを作成 |
実装計画との整合性(IPLAN-004)
- 計画から導出された出力を有効なソースモードとして扱い、実装計画のスコープ/目標が維持されていることを検証します。
- 上流オートパイロットの優先順位の前提を検証します:
--iplan > --ref > --prompt。 - 計画のコンテキストと成果物の出力の間に目標/スコープの矛盾がある場合、明確化が必要なブロッキング問題として指摘します。
docs-v2.0/00_REFのようなレガシーなフォールバックパスを導入しないでください。