关于 doc-prd-reviewer
doc-prd-reviewer 是一项已弃用的 PRD 内容与一致性审查技能,可检查链接、指标阈值、BRD 对齐、占位内容和完整性。README 建议改用 doc-prd-audit。
主要功能
- 01交叉检查 PRD 链接与阈值
- 02核对与 BRD 需求的对齐情况
- 03查找占位内容和不完整章节
- 04检查可追溯标签与命名规范
- 05标记需业务审核的客户内容
适用场景
- 01修改后复查现有 PRD
- 02生成 EARS 前检查 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-Ready 评分 | 内容质量、跨文档一致性 |
| 检查项 | 必需章节、字段格式 | 链接完整性、阈值对齐、占位符 |
| 自动修复 | 仅修复结构问题 | 修复内容问题(链接、日期、占位符) |
| 输出 | EARS-Ready 评分(数值) | 审查评分 + 问题列表 |
| 阶段 | 第 4 阶段(验证) | 第 5 阶段(最终审查) |
| 阻断规则 | EARS-Ready 低于阈值时阻断 | 审查评分低于阈值时发出标记 |
审查工作流
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 | 错误 | PRD 需求没有 BRD 来源 |
| REV-A002 | 警告 | BRD 需求没有 PRD 映射 |
| 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引用的 PRD 均存在@discoverability: PRD-XX引用的 PRD 均存在- 标签格式符合约定
检测:
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 | 错误 | 完全缺少必需章节 |
| REV-S002 | 警告 | 章节未达到最低字数 |
| REV-S003 | 警告 | 表格没有数据行 |
| REV-S004 | 错误 | 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 | 错误 | 缺少第 10 节 |
| REV-C002 | 警告 | 第 10 节是占位内容 |
| REV-C003 | 信息 | 客户内容中包含技术术语 |
| REV-C004 | 标记 | 需要营销/业务审查 |
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 | 错误 | 元素 ID 格式无效 |
| REV-N002 | 错误 | 元素类型代码对 PRD 无效 |
| REV-N003 | 错误 | 检测到旧版模式(US-NNN、FR-NNN 等) |
| REV-N004 | 错误 | 阈值标签缺少文档引用 |
| REV-N005 | 警告 | 阈值键格式不符合标准 |
参考:完整命名规则请参阅 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 | 错误 | PRD 未放在嵌套文件夹中(阻止继续) |
| REV-STR002 | 错误 | PRD 文件夹名称与 PRD ID 不匹配 |
| REV-STR003 | 警告 | 单体 PRD 应拆分为多个章节(>25KB) |
| REV-STR004 | 错误 | 嵌套文件夹中的 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 检测算法(三个阶段)
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 个十六进制字符 |
| 字符 | 只能包含 [0-9a-f] |
拒绝的值(如发现,应立即重新计算):
sha256:verified_no_driftsha256:pending_verificationpending_verificationsha256:TBD- 十六进制部分长度不等于 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 日期(无缓存) |
| REV-D002 | 警告 | 引用的内容已更改 | 哈希值不匹配(有缓存) |
| REV-D003 | 信息 | 上游文档版本号已递增 | 版本字段已更改 |
| 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 - 后续评审:版本号自动递增(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]
Autopilot 集成:
# 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 | Check #8 的命名规范 |
doc-prd-autopilot | 在 Phase 5 调用此技能 |
doc-prd-validator | 结构验证(Phase 4) |
doc-prd-fixer | 根据审查结果应用修复 |
doc-prd-audit | 包装器,将此审查器的输出与验证器结果相结合 |
doc-prd | PRD 创建规则 |
doc-brd-audit | BRD 源验证(统一质量门禁) |
doc-ears-autopilot | 下游使用方 |
版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| 2.0 | 2026-03-02 | 已弃用:作为 2-skill 模型标准化的一部分,已合并到 doc-prd-audit。请改用 doc-prd-audit。 |
| 1.9 | 2026-03-01 | 2-Skill 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 | 将 frontmatter 迁移到 metadata 架构;记录与 doc-prd-audit 包装器的关系 |
| 1.6 | 2026-02-11 | 编号修复:将 Check #10 的子节从 9.1-9.6 更正为 10.1-10.6(漂移缓存、检测算法、哈希计算、错误代码、报告输出、配置) |
| 1.5 | 2026-02-11 | 结构合规性:添加 Check #9,用于强制执行嵌套文件夹规则(REV-STR001-STR004);将上游漂移移至 Check #10;将结构合规性纳入评分(权重 12%,阻断项);将工作流图更新为 10 项检查 |
| 1.4 | 2026-02-10T17:00:00 | 强制漂移缓存:审查器每次审查后都必须创建/更新 .drift_cache.json;三阶段检测算法;SHA-256 哈希计算;存在缓存时采用哈希比较模式;用于创建缓存的 REV-D006 代码;包含 review_history 跟踪的缓存架构 |
| 1.3 | 2026-02-10 | 添加 Check #9:上游漂移检测——检测 PRD 创建后 BRD 文档是否发生修改;REV-D001-D005 错误代码;漂移配置;将 doc-prd-fixer 添加到相关技能 |
| 1.2 | 2026-02-10 | 添加审查版本控制支持(_vNNN 模式);提供分数比较的差异报告 |
| 1.1 | 2026-02-08 | 添加 Check #8:命名合规性(集成 doc-naming) |
| 1.0 | 2026-02-08 | 初始技能创建,包含 7 项审查检查 |
实施计划一致性(IPLAN-004)
- 将基于计划的输出视为有效的源模式,并根据实施计划的范围/目标验证意图是否得到保留。
- 验证上游自动驾驶的优先级假设:
--iplan > --ref > --prompt。 - 将计划上下文与产出物输出之间的目标/范围冲突标记为需要澄清的阻断问题。
- 不要引入
docs-v2.0/00_REF等旧版回退路径。