doc-ears-reviewer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesedoc-ears-reviewer
doc-ears-reviewer
Purpose
用途
Comprehensive content review and quality assurance for EARS (Easy Approach to Requirements Syntax) documents. This skill performs deep content analysis beyond structural validation, checking requirement syntax correctness, PRD alignment, testability, quantifiable thresholds, and identifying issues that require manual review.
Layer: 3 (EARS Quality Assurance)
Upstream: EARS (from or )
doc-ears-autopilotdoc-earsDownstream: None (final QA gate before BDD generation)
针对EARS(Easy Approach to Requirements Syntax,需求语法简易方法)文档的全面内容审核与质量保证。该技能在结构验证之外执行深度内容分析,检查需求语法正确性、与PRD的一致性、可测试性、量化阈值,并识别需要人工审核的问题。
层级: 3(EARS质量保证)
上游依赖: EARS(来自或)
doc-ears-autopilotdoc-ears下游依赖: 无(生成BDD前的最终QA关卡)
When to Use This Skill
何时使用该技能
Use when:
doc-ears-reviewer- After EARS Generation: Run immediately after completes
doc-ears-autopilot - Manual EARS Edits: After making manual changes to EARS
- Pre-BDD Check: Before running
doc-bdd-autopilot - Periodic Review: Regular quality checks on existing EARS
- CI/CD Integration: Automated review gate in documentation pipelines
Do NOT use when:
- EARS does not exist yet (use or
doc-earsfirst)doc-ears-autopilot - Need structural/schema validation only (use )
doc-ears-validator - Generating new EARS content (use )
doc-ears
在以下场景使用:
doc-ears-reviewer- EARS生成后: 在完成后立即运行
doc-ears-autopilot - 手动编辑EARS后: 对EARS进行手动修改后
- BDD生成前检查: 在运行之前
doc-bdd-autopilot - 定期审核: 对现有EARS进行常规质量检查
- CI/CD集成: 在文档流水线中作为自动化审核关卡
请勿在以下场景使用:
- EARS尚未生成(请先使用或
doc-ears)doc-ears-autopilot - 仅需要结构/ schema验证(请使用)
doc-ears-validator - 生成新的EARS内容(请使用)
doc-ears
Skill vs Validator: Key Differences
技能与验证工具的核心差异
| Aspect | | |
|---|---|---|
| Focus | Schema compliance, BDD-Ready score | Content quality, testability |
| Checks | Required sections, EARS syntax | Threshold quantification, PRD traceability |
| Auto-Fix | Structural issues only | Content issues (syntax, thresholds) |
| Output | BDD-Ready score (numeric) | Review score + issue list |
| Phase | Phase 4 (Validation) | Phase 5 (Final Review) |
| Blocking | BDD-Ready < threshold blocks | Review score < threshold flags |
| 维度 | | |
|---|---|---|
| 关注点 | Schema合规性、BDD就绪评分 | 内容质量、可测试性 |
| 检查内容 | 必填章节、EARS语法 | 阈值量化、PRD可追溯性 |
| 自动修复 | 仅结构问题 | 内容问题(语法、阈值) |
| 输出结果 | BDD就绪评分(数值) | 审核评分 + 问题列表 |
| 阶段 | 第4阶段(验证) | 第5阶段(最终审核) |
| 阻塞规则 | BDD就绪评分低于阈值则阻塞 | 审核评分低于阈值则标记 |
Review Workflow
审核工作流
mermaid
flowchart TD
A[Input: EARS Path] --> B[Load EARS 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 --> F0[0. Structure Compliance]
F0 --> G[1. EARS Syntax Compliance]
G --> H[2. Threshold Quantification]
H --> I[3. PRD Alignment]
I --> J[4. Testability Assessment]
J --> K[5. Placeholder Detection]
K --> L[6. Section Completeness]
L --> M[7. Naming Compliance]
M --> M2[8. Upstream Drift Detection]
end
M2 --> 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]mermaid
flowchart TD
A[Input: EARS Path] --> B[Load EARS 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 --> F0[0. Structure Compliance]
F0 --> G[1. EARS Syntax Compliance]
G --> H[2. Threshold Quantification]
H --> I[3. PRD Alignment]
I --> J[4. Testability Assessment]
J --> K[5. Placeholder Detection]
K --> L[6. Section Completeness]
L --> M[7. Naming Compliance]
M --> M2[8. Upstream Drift Detection]
end
M2 --> 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]Review Checks
审核检查项
0. Structure Compliance (12/12) - BLOCKING
0. 结构合规性(12/12)- 阻塞项
Validates EARS follows the mandatory nested folder rule.
Nested Folder Rule: ALL EARS documents MUST be in nested folders.
Required Structure:
| EARS Type | Required Location |
|---|---|
| Monolithic | |
Detection:
Validating folder structure...
├── EARS Location: docs/03_EARS/EARS-01_f1_iam/EARS-01_f1_iam.md
├── Expected Folder: EARS-01_f1_iam ✓
├── Parent Path: docs/03_EARS/ ✓
├── Nested Structure: Valid ✓
└── Result: PASSError Codes:
| Code | Severity | Description |
|---|---|---|
| REV-STR001 | Error | EARS not in nested folder (BLOCKING) |
| REV-STR002 | Error | Folder name doesn't match EARS ID |
| REV-STR003 | Warning | File name doesn't match folder name |
This check is BLOCKING - EARS must pass structure validation before other checks proceed.
验证EARS是否遵循强制嵌套文件夹规则。
嵌套文件夹规则:所有EARS文档必须存放在嵌套文件夹中。
必填结构:
| EARS类型 | 必填位置 |
|---|---|
| 单文件版 | |
检测示例:
Validating folder structure...
├── EARS Location: docs/03_EARS/EARS-01_f1_iam/EARS-01_f1_iam.md
├── Expected Folder: EARS-01_f1_iam ✓
├── Parent Path: docs/03_EARS/ ✓
├── Nested Structure: Valid ✓
└── Result: PASS错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-STR001 | 错误 | EARS未存放在嵌套文件夹中(阻塞项) |
| REV-STR002 | 错误 | 文件夹名称与EARS ID不匹配 |
| REV-STR003 | 警告 | 文件名称与文件夹名称不匹配 |
该检查为阻塞项 - EARS必须通过结构验证后,才能进行其他检查。
1. EARS Syntax Compliance
1. EARS语法合规性
Validates all requirements follow correct EARS patterns.
EARS Patterns:
- Ubiquitous:
THE {system} SHALL {action} - Event-Driven:
WHEN {event} THE {system} SHALL {action} - State-Driven:
WHILE {state} THE {system} SHALL {action} - Optional:
WHERE {feature} THE {system} SHALL {action} - Complex:
WHEN {event} WHILE {state} THE {system} SHALL {action} - Unwanted:
IF {condition} THEN THE {system} SHALL {action} WITHIN {time}
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-ES001 | Error | Requirement missing SHALL keyword |
| REV-ES002 | Error | WHEN clause without condition |
| REV-ES003 | Warning | Ambiguous subject (system not specified) |
| REV-ES004 | Warning | Action verb not quantifiable |
| REV-ES005 | Info | Complex pattern may be split |
验证所有需求是否遵循正确的EARS模式。
EARS模式:
- 通用型:
THE {system} SHALL {action} - 事件驱动型:
WHEN {event} THE {system} SHALL {action} - 状态驱动型:
WHILE {state} THE {system} SHALL {action} - 可选型:
WHERE {feature} THE {system} SHALL {action} - 复杂型:
WHEN {event} WHILE {state} THE {system} SHALL {action} - 不推荐型:
IF {condition} THEN THE {system} SHALL {action} WITHIN {time}
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-ES001 | 错误 | 需求缺少SHALL关键字 |
| REV-ES002 | 错误 | WHEN子句无条件内容 |
| REV-ES003 | 警告 | 主体模糊(未指定系统) |
| REV-ES004 | 警告 | 动作动词无法量化 |
| REV-ES005 | 信息 | 复杂模式可拆分为多个需求 |
2. Threshold Quantification
2. 阈值量化
Validates all timing/performance thresholds are specific.
Scope:
- WITHIN clauses have numeric values
- Units specified (ms, s, min)
- Consistent with PRD thresholds
- No vague terms ("quickly", "fast", "responsive")
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-TQ001 | Error | Missing WITHIN clause for time-bound requirement |
| REV-TQ002 | Error | Threshold uses vague term |
| REV-TQ003 | Warning | Threshold inconsistent with PRD |
| REV-TQ004 | Info | Consider adding failure threshold |
验证所有时间/性能阈值是否明确具体。
检查范围:
- WITHIN子句包含数值
- 指定单位(ms、s、min)
- 与PRD阈值一致
- 无模糊表述(如“快速”、“迅速”、“响应及时”)
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-TQ001 | 错误 | 时间绑定需求缺少WITHIN子句 |
| REV-TQ002 | 错误 | 阈值使用模糊表述 |
| REV-TQ003 | 警告 | 阈值与PRD不一致 |
| REV-TQ004 | 信息 | 建议添加失败阈值 |
3. PRD Alignment
3. PRD一致性
Validates EARS requirements trace to PRD source.
Scope:
- Every EARS requirement maps to PRD requirement
- No orphaned requirements
- No missing requirements (PRD without EARS)
- Feature IDs consistent
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-PA001 | Error | EARS requirement without PRD source |
| REV-PA002 | Warning | PRD requirement without EARS mapping |
| REV-PA003 | Warning | Feature ID mismatch |
| REV-PA004 | Info | Requirement correctly marked as deferred |
验证EARS需求可追溯至PRD源文档。
检查范围:
- 每个EARS需求都映射到PRD需求
- 无孤立需求
- 无遗漏需求(PRD中有但EARS未覆盖)
- 功能ID一致
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-PA001 | 错误 | EARS需求无PRD源文档对应 |
| REV-PA002 | 警告 | PRD需求无EARS映射 |
| REV-PA003 | 警告 | 功能ID不匹配 |
| REV-PA004 | 信息 | 需求已正确标记为延期 |
4. Testability Assessment
4. 可测试性评估
Evaluates if requirements can be tested.
Scope:
- Measurable outcomes defined
- Pass/fail criteria clear
- Edge cases identified
- Negative cases covered
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-TA001 | Error | No measurable outcome |
| REV-TA002 | Warning | Pass/fail criteria unclear |
| REV-TA003 | Info | Edge case not covered |
| REV-TA004 | Info | Consider negative test case |
评估需求是否可被测试。
检查范围:
- 定义了可衡量的结果
- 通过/失败标准明确
- 识别了边缘场景
- 覆盖了负面场景
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-TA001 | 错误 | 无可衡量结果 |
| REV-TA002 | 警告 | 通过/失败标准不清晰 |
| REV-TA003 | 信息 | 未覆盖边缘场景 |
| REV-TA004 | 信息 | 建议添加负面测试用例 |
5. Placeholder Detection
5. 占位符检测
Identifies incomplete content requiring replacement.
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-P001 | Error | [TODO] placeholder found |
| REV-P002 | Error | [TBD] placeholder found |
| REV-P003 | Warning | Template value not replaced |
识别需要替换的不完整内容。
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-P001 | 错误 | 发现[TODO]占位符 |
| REV-P002 | 错误 | 发现[TBD]占位符 |
| REV-P003 | 警告 | 模板值未替换 |
6. Section Completeness
6. 章节完整性
Verifies all required sections have substantive content.
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-S001 | Error | Required section missing |
| REV-S002 | Warning | Section below minimum content |
| REV-S003 | Warning | Table has no data rows |
验证所有必填章节包含实质性内容。
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-S001 | 错误 | 必填章节缺失 |
| REV-S002 | 警告 | 章节内容未达最低要求 |
| REV-S003 | 警告 | 表格无数据行 |
7. Naming Compliance
7. 命名合规性
Validates element IDs follow standards.
doc-namingScope:
- Element IDs use format
EARS.NN.TT.SS - Element type codes valid for EARS (25, 26)
- No legacy patterns (REQ-NNN, R-NNN)
Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-N001 | Error | Invalid element ID format |
| REV-N002 | Error | Element type code not valid for EARS |
| REV-N003 | Error | Legacy pattern detected |
验证元素ID遵循标准。
doc-naming检查范围:
- 元素ID使用格式
EARS.NN.TT.SS - 元素类型代码适用于EARS(25、26)
- 无遗留模式(REQ-NNN、R-NNN)
错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-N001 | 错误 | 元素ID格式无效 |
| REV-N002 | 错误 | 元素类型代码不适用于EARS |
| REV-N003 | 错误 | 检测到遗留模式 |
8. Upstream Drift Detection (Mandatory Cache)
8. 上游漂移检测(强制缓存)
Detects when upstream source documents have been modified after the EARS was created or last updated.
The drift cache is mandatory - the reviewer MUST create/update it after every review.
Purpose: Identifies stale EARS content that may not reflect current PRD documentation.
Scope:
- tag targets
@ref: - tag references
@prd: - Traceability section upstream artifact links
检测上游源文档在EARS创建或最后更新后是否被修改。
漂移缓存为强制要求 - 审核器必须在每次审核后创建/更新缓存。
目的: 识别可能未反映当前PRD文档的陈旧EARS内容。
检查范围:
- 标签目标
@ref: - 标签引用
@prd: - 可追溯性章节中的上游工件链接
8.1 Drift Cache File (MANDATORY)
8.1 漂移缓存文件(强制)
Location:
docs/03_EARS/.drift_cache.jsonSchema:
json
{
"cache_version": "1.0",
"artifact_type": "EARS",
"upstream_type": "PRD",
"last_updated": "2026-02-10T17:00:00Z",
"entries": {
"EARS-01": {
"ears_file": "docs/03_EARS/EARS-01_f1_iam.md",
"ears_hash": "sha256:abc123...",
"ears_mtime": "2026-02-10T15:00:00Z",
"upstream_refs": [
{
"prd_id": "PRD-01",
"prd_file": "docs/02_PRD/PRD-01_f1_iam.md",
"prd_hash": "sha256:def456...",
"prd_mtime": "2026-02-10T14:00:00Z",
"prd_version": "1.2"
}
],
"last_review": "2026-02-10T16:00:00Z",
"drift_status": "clean"
}
}
}位置:
docs/03_EARS/.drift_cache.jsonSchema:
json
{
"cache_version": "1.0",
"artifact_type": "EARS",
"upstream_type": "PRD",
"last_updated": "2026-02-10T17:00:00Z",
"entries": {
"EARS-01": {
"ears_file": "docs/03_EARS/EARS-01_f1_iam/EARS-01_f1_iam.md",
"ears_hash": "sha256:abc123...",
"ears_mtime": "2026-02-10T15:00:00Z",
"upstream_refs": [
{
"prd_id": "PRD-01",
"prd_file": "docs/02_PRD/PRD-01_f1_iam.md",
"prd_hash": "sha256:def456...",
"prd_mtime": "2026-02-10T14:00:00Z",
"prd_version": "1.2"
}
],
"last_review": "2026-02-10T16:00:00Z",
"drift_status": "clean"
}
}
}8.2 Detection Algorithm (Three-Phase)
8.2 检测算法(三阶段)
Phase 1: Load Cache
IF cache file exists:
Load existing cache
Validate cache schema
ELSE:
Initialize empty cache
Mark as first review (REV-D006)Phase 2: Detect Drift
FOR each EARS document:
Calculate current EARS hash
FOR each upstream PRD reference:
Calculate current PRD hash
IF cache entry exists:
Compare PRD hash with cached hash
IF hashes differ:
Flag drift (REV-D001/D002/D005)
Compare PRD mtime with cached mtime
IF mtime newer:
Flag potential drift (REV-D003)
ELSE:
New reference - no drift comparison possiblePhase 3: Update Cache (MANDATORY)
FOR each reviewed EARS document:
Update EARS hash and mtime
FOR each upstream PRD reference:
Update PRD hash, mtime, and version
Set drift_status based on review results
Set last_review to current timestamp
Write updated cache to disk阶段1: 加载缓存
IF cache file exists:
Load existing cache
Validate cache schema
ELSE:
Initialize empty cache
Mark as first review (REV-D006)阶段2: 检测漂移
FOR each EARS document:
Calculate current EARS hash
FOR each upstream PRD reference:
Calculate current PRD hash
IF cache entry exists:
Compare PRD hash with cached hash
IF hashes differ:
Flag drift (REV-D001/D002/D005)
Compare PRD mtime with cached mtime
IF mtime newer:
Flag potential drift (REV-D003)
ELSE:
New reference - no drift comparison possible阶段3: 更新缓存(强制)
FOR each reviewed EARS document:
Update EARS hash and mtime
FOR each upstream PRD reference:
Update PRD hash, mtime, and version
Set drift_status based on review results
Set last_review to current timestamp
Write updated cache to disk8.3 Hash Calculation
8.3 哈希计算
python
import hashlib
def calculate_content_hash(file_path: str) -> str:
"""Calculate SHA-256 hash of file content."""
with open(file_path, 'rb') as f:
content = f.read()
return f"sha256:{hashlib.sha256(content).hexdigest()}"Error Codes:
| Code | Severity | Description |
|---|---|---|
| REV-D001 | Warning | Upstream document modified after EARS creation |
| REV-D002 | Warning | Referenced section content changed |
| REV-D003 | Info | Upstream document version incremented |
| REV-D004 | Info | New content added to upstream |
| REV-D005 | Error | Critical upstream modification (>20% change) |
| REV-D006 | Info | Cache created - first review |
python
import hashlib
def calculate_content_hash(file_path: str) -> str:
"""Calculate SHA-256 hash of file content."""
with open(file_path, 'rb') as f:
content = f.read()
return f"sha256:{hashlib.sha256(content).hexdigest()}"错误代码:
| 代码 | 严重程度 | 描述 |
|---|---|---|
| REV-D001 | 警告 | 上游文档在EARS创建后被修改 |
| REV-D002 | 警告 | 引用章节内容已更改 |
| REV-D003 | 信息 | 上游文档版本已升级 |
| REV-D004 | 信息 | 上游文档添加了新内容 |
| REV-D005 | 错误 | 上游文档发生重大修改(变更>20%) |
| REV-D006 | 信息 | 缓存已创建 - 首次审核 |
8.5 Report Output
8.5 报告输出
The review report MUST include cache status:
markdown
undefined审核报告必须包含缓存状态:
markdown
undefinedUpstream Drift Detection
Upstream Drift Detection
Cache Status: Updated | Created | Error
Cache Location:
docs/03_EARS/.drift_cache.json| EARS | Upstream PRD | Drift Status | Last Verified |
|---|---|---|---|
| EARS-01 | PRD-01 | Clean | 2026-02-10T17:00:00Z |
| EARS-02 | PRD-02 | Drift Detected (REV-D002) | 2026-02-10T17:00:00Z |
**Configuration**:
| Setting | Default | Description |
|---------|---------|-------------|
| `cache_enabled` | true | Mandatory - cannot be disabled |
| `drift_threshold_days` | 7 | Days before drift becomes Warning |
| `critical_threshold_days` | 30 | Days before drift becomes Error |
| `enable_hash_check` | true | SHA-256 content hashing enabled |
---Cache Status: Updated | Created | Error
Cache Location:
docs/03_EARS/.drift_cache.json| EARS | Upstream PRD | Drift Status | Last Verified |
|---|---|---|---|
| EARS-01 | PRD-01 | Clean | 2026-02-10T17:00:00Z |
| EARS-02 | PRD-02 | Drift Detected (REV-D002) | 2026-02-10T17:00:00Z |
**配置项**:
| 设置项 | 默认值 | 描述 |
|---------|---------|-------------|
| `cache_enabled` | true | 强制启用 - 无法禁用 |
| `drift_threshold_days` | 7 | 漂移变为警告状态的天数阈值 |
| `critical_threshold_days` | 30 | 漂移变为错误状态的天数阈值 |
| `enable_hash_check` | true | 启用SHA-256内容哈希检查 |
---Review Score Calculation
审核评分计算
Scoring Formula:
| Category | Weight | Calculation |
|---|---|---|
| Structure Compliance | 12% | BLOCKING - must pass before other checks |
| EARS Syntax Compliance | 20% | (valid_syntax / total_reqs) × 20 |
| Threshold Quantification | 17% | (quantified / requiring_threshold) × 17 |
| PRD Alignment | 17% | (aligned_reqs / total_reqs) × 17 |
| Testability Assessment | 12% | (testable_reqs / total_reqs) × 12 |
| Placeholder Detection | 5% | (no_placeholders ? 5 : 5 - count) |
| Section Completeness | 8% | (complete / total_sections) × 8 |
| Naming Compliance | 4% | (valid_ids / total_ids) × 4 |
| Upstream Drift | 5% | (fresh_refs / total_refs) × 5 |
Total: Sum of all categories (max 100)
Thresholds:
- PASS: ≥ 90
- WARNING: 80-89
- FAIL: < 80
评分公式:
| 类别 | 权重 | 计算方式 |
|---|---|---|
| 结构合规性 | 12% | 阻塞项 - 必须通过后才能进行其他检查 |
| EARS语法合规性 | 20% | (有效语法数 / 总需求数) × 20 |
| 阈值量化 | 17% | (已量化数 / 需要阈值的需求数) × 17 |
| PRD一致性 | 17% | (一致需求数 / 总需求数) × 17 |
| 可测试性评估 | 12% | (可测试需求数 / 总需求数) × 12 |
| 占位符检测 | 5% | (无占位符则得5分,否则5 - 占位符数量) |
| 章节完整性 | 8% | (完整章节数 / 总章节数) × 8 |
| 命名合规性 | 4% | (有效ID数 / 总ID数) × 4 |
| 上游漂移 | 5% | (最新引用数 / 总引用数) × 5 |
总分: 所有类别得分之和(最高100分)
阈值:
- 通过: ≥ 90
- 警告: 80-89
- 失败: < 80
Command Usage
命令用法
bash
undefinedbash
undefinedReview specific EARS
审核指定EARS
/doc-ears-reviewer EARS-01
/doc-ears-reviewer EARS-01
Review EARS by path
通过路径审核EARS
/doc-ears-reviewer docs/03_EARS/EARS-01_f1_iam.md
/doc-ears-reviewer docs/03_EARS/EARS-01_f1_iam.md
Review all EARS
审核所有EARS
/doc-ears-reviewer all
---/doc-ears-reviewer all
---Output Report
输出报告
Review reports are stored alongside the reviewed document per project standards.
Nested Folder Rule: ALL EARS use nested folders () regardless of size. This ensures review reports, fix reports, and drift cache files are organized with their parent document.
EARS-NN_{slug}/File Naming:
EARS-NN.R_review_report_vNNN.mdLocation: Inside the EARS nested folder:
docs/03_EARS/EARS-NN_{slug}/审核报告按照项目标准存储在对应审核文档的同级目录。
嵌套文件夹规则: 所有EARS无论大小都使用嵌套文件夹()。确保审核报告、修复报告和漂移缓存文件与父文档统一管理。
EARS-NN_{slug}/文件命名:
EARS-NN.R_review_report_vNNN.md位置: EARS嵌套文件夹内:
docs/03_EARS/EARS-NN_{slug}/Versioning Rules
版本规则
- First Review: Creates
EARS-NN.R_review_report_v001.md - Subsequent Reviews: Auto-increments version (v002, v003, etc.)
- Same-Day Reviews: Each review gets unique version number
Version Detection: Scans folder for existing files and increments.
EARS-NN.R_review_report_v*.mdExample:
docs/03_EARS/EARS-01_f1_iam/
├── EARS-01_f1_iam.md
├── EARS-01.R_review_report_v001.md # First review
├── EARS-01.R_review_report_v002.md # After fixes
└── .drift_cache.json- 首次审核: 创建
EARS-NN.R_review_report_v001.md - 后续审核: 自动递增版本号(v002、v003等)
- 同日多次审核: 每次审核使用唯一版本号
版本检测: 扫描文件夹中已有的文件并递增版本号。
EARS-NN.R_review_report_v*.md示例:
docs/03_EARS/EARS-01_f1_iam/
├── EARS-01_f1_iam.md
├── EARS-01.R_review_report_v001.md # 首次审核
├── EARS-01.R_review_report_v002.md # 修复后审核
└── .drift_cache.jsonDelta Reporting
差异报告
When previous reviews exist, include score comparison in the report.
See for complete versioning requirements.
REVIEW_DOCUMENT_STANDARDS.md当存在历史审核记录时,报告中需包含评分对比。
完整版本要求请参见。
REVIEW_DOCUMENT_STANDARDS.mdIntegration with doc-ears-autopilot
与doc-ears-autopilot的集成
This skill is invoked during Phase 5 of :
doc-ears-autopilotmermaid
flowchart LR
A[Phase 4: Validation] --> B[Phase 5: Final Review]
B --> C{doc-ears-reviewer}
C --> D[Phase 6: Continue]该技能在的第5阶段被调用:
doc-ears-autopilotmermaid
flowchart LR
A[Phase 4: Validation] --> B[Phase 5: Final Review]
B --> C{doc-ears-reviewer}
C --> D[Phase 6: Continue]Related Skills
相关技能
| Skill | Relationship |
|---|---|
| Naming standards for Check #7 |
| Invokes this skill in Phase 5 |
| Structural validation (Phase 4) |
| Applies fixes based on review findings |
| EARS creation rules |
| Upstream QA |
| Downstream consumer |
| 技能 | 关系 |
|---|---|
| 检查项7的命名标准来源 |
| 在第5阶段调用该技能 |
| 结构验证(第4阶段) |
| 根据审核结果应用修复 |
| EARS创建规则来源 |
| 上游QA工具 |
| 下游消费工具 |
Version History
版本历史
| Version | Date | Changes |
|---|---|---|
| 1.4 | 2026-02-11 | Structure Compliance: Added Check #0 for nested folder rule enforcement (REV-STR001-STR003); Updated workflow diagram; Structure check is BLOCKING |
| 1.3 | 2026-02-10 | Made drift cache mandatory; Added cache schema and location ( |
| 1.2 | 2026-02-10 | Added Check #8: Upstream Drift Detection - detects when PRD documents modified after EARS creation; REV-D001-D005 error codes; drift configuration; Added doc-ears-fixer to related skills |
| 1.1 | 2026-02-10 | Added review versioning support (_vNNN pattern); Delta reporting for score comparison |
| 1.0 | 2026-02-10 | Initial skill creation with 7 review checks; EARS syntax compliance; Threshold quantification; Testability assessment |
| 版本 | 日期 | 变更 |
|---|---|---|
| 1.4 | 2026-02-11 | 结构合规性: 添加检查项0以强制嵌套文件夹规则(REV-STR001-STR003);更新工作流图;结构检查为阻塞项 |
| 1.3 | 2026-02-10 | 强制启用漂移缓存;添加缓存Schema和位置( |
| 1.2 | 2026-02-10 | 添加检查项8: 上游漂移检测 - 检测PRD文档在EARS创建后是否被修改;新增REV-D001-D005错误代码;漂移配置项;在相关技能中添加doc-ears-fixer |
| 1.1 | 2026-02-10 | 添加审核版本支持(_vNNN模式);评分对比的差异报告 |
| 1.0 | 2026-02-10 | 初始技能创建,包含7个审核检查项;EARS语法合规性;阈值量化;可测试性评估 |