doc-ears-reviewer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

doc-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
doc-ears-autopilot
or
doc-ears
)
Downstream: None (final QA gate before BDD generation)

针对EARS(Easy Approach to Requirements Syntax,需求语法简易方法)文档的全面内容审核与质量保证。该技能在结构验证之外执行深度内容分析,检查需求语法正确性、与PRD的一致性、可测试性、量化阈值,并识别需要人工审核的问题。
层级: 3(EARS质量保证)
上游依赖: EARS(来自
doc-ears-autopilot
doc-ears
下游依赖: 无(生成BDD前的最终QA关卡)

When to Use This Skill

何时使用该技能

Use
doc-ears-reviewer
when:
  • After EARS Generation: Run immediately after
    doc-ears-autopilot
    completes
  • 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
    doc-ears
    or
    doc-ears-autopilot
    first)
  • 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
doc-ears-validator
doc-ears-reviewer
FocusSchema compliance, BDD-Ready scoreContent quality, testability
ChecksRequired sections, EARS syntaxThreshold quantification, PRD traceability
Auto-FixStructural issues onlyContent issues (syntax, thresholds)
OutputBDD-Ready score (numeric)Review score + issue list
PhasePhase 4 (Validation)Phase 5 (Final Review)
BlockingBDD-Ready < threshold blocksReview score < threshold flags

维度
doc-ears-validator
doc-ears-reviewer
关注点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 TypeRequired Location
Monolithic
docs/03_EARS/EARS-NN_{slug}/EARS-NN_{slug}.md
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: PASS
Error Codes:
CodeSeverityDescription
REV-STR001ErrorEARS not in nested folder (BLOCKING)
REV-STR002ErrorFolder name doesn't match EARS ID
REV-STR003WarningFile name doesn't match folder name
This check is BLOCKING - EARS must pass structure validation before other checks proceed.

验证EARS是否遵循强制嵌套文件夹规则。
嵌套文件夹规则:所有EARS文档必须存放在嵌套文件夹中。
必填结构:
EARS类型必填位置
单文件版
docs/03_EARS/EARS-NN_{slug}/EARS-NN_{slug}.md
检测示例:
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:
CodeSeverityDescription
REV-ES001ErrorRequirement missing SHALL keyword
REV-ES002ErrorWHEN clause without condition
REV-ES003WarningAmbiguous subject (system not specified)
REV-ES004WarningAction verb not quantifiable
REV-ES005InfoComplex 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:
CodeSeverityDescription
REV-TQ001ErrorMissing WITHIN clause for time-bound requirement
REV-TQ002ErrorThreshold uses vague term
REV-TQ003WarningThreshold inconsistent with PRD
REV-TQ004InfoConsider 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:
CodeSeverityDescription
REV-PA001ErrorEARS requirement without PRD source
REV-PA002WarningPRD requirement without EARS mapping
REV-PA003WarningFeature ID mismatch
REV-PA004InfoRequirement 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:
CodeSeverityDescription
REV-TA001ErrorNo measurable outcome
REV-TA002WarningPass/fail criteria unclear
REV-TA003InfoEdge case not covered
REV-TA004InfoConsider negative test case

评估需求是否可被测试。
检查范围:
  • 定义了可衡量的结果
  • 通过/失败标准明确
  • 识别了边缘场景
  • 覆盖了负面场景
错误代码:
代码严重程度描述
REV-TA001错误无可衡量结果
REV-TA002警告通过/失败标准不清晰
REV-TA003信息未覆盖边缘场景
REV-TA004信息建议添加负面测试用例

5. Placeholder Detection

5. 占位符检测

Identifies incomplete content requiring replacement.
Error Codes:
CodeSeverityDescription
REV-P001Error[TODO] placeholder found
REV-P002Error[TBD] placeholder found
REV-P003WarningTemplate value not replaced

识别需要替换的不完整内容。
错误代码:
代码严重程度描述
REV-P001错误发现[TODO]占位符
REV-P002错误发现[TBD]占位符
REV-P003警告模板值未替换

6. Section Completeness

6. 章节完整性

Verifies all required sections have substantive content.
Error Codes:
CodeSeverityDescription
REV-S001ErrorRequired section missing
REV-S002WarningSection below minimum content
REV-S003WarningTable has no data rows

验证所有必填章节包含实质性内容。
错误代码:
代码严重程度描述
REV-S001错误必填章节缺失
REV-S002警告章节内容未达最低要求
REV-S003警告表格无数据行

7. Naming Compliance

7. 命名合规性

Validates element IDs follow
doc-naming
standards.
Scope:
  • Element IDs use
    EARS.NN.TT.SS
    format
  • Element type codes valid for EARS (25, 26)
  • No legacy patterns (REQ-NNN, R-NNN)
Error Codes:
CodeSeverityDescription
REV-N001ErrorInvalid element ID format
REV-N002ErrorElement type code not valid for EARS
REV-N003ErrorLegacy 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:
  • @ref:
    tag targets
  • @prd:
    tag references
  • Traceability section upstream artifact links
检测上游源文档在EARS创建或最后更新后是否被修改。
漂移缓存为强制要求 - 审核器必须在每次审核后创建/更新缓存。
目的: 识别可能未反映当前PRD文档的陈旧EARS内容。
检查范围:
  • @ref:
    标签目标
  • @prd:
    标签引用
  • 可追溯性章节中的上游工件链接

8.1 Drift Cache File (MANDATORY)

8.1 漂移缓存文件(强制)

Location:
docs/03_EARS/.drift_cache.json
Schema:
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.json
Schema:
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 possible
Phase 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 disk

8.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:
CodeSeverityDescription
REV-D001WarningUpstream document modified after EARS creation
REV-D002WarningReferenced section content changed
REV-D003InfoUpstream document version incremented
REV-D004InfoNew content added to upstream
REV-D005ErrorCritical upstream modification (>20% change)
REV-D006InfoCache 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
undefined

Upstream Drift Detection

Upstream Drift Detection

Cache Status: Updated | Created | Error Cache Location:
docs/03_EARS/.drift_cache.json
EARSUpstream PRDDrift StatusLast Verified
EARS-01PRD-01Clean2026-02-10T17:00:00Z
EARS-02PRD-02Drift 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
EARSUpstream PRDDrift StatusLast Verified
EARS-01PRD-01Clean2026-02-10T17:00:00Z
EARS-02PRD-02Drift 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:
CategoryWeightCalculation
Structure Compliance12%BLOCKING - must pass before other checks
EARS Syntax Compliance20%(valid_syntax / total_reqs) × 20
Threshold Quantification17%(quantified / requiring_threshold) × 17
PRD Alignment17%(aligned_reqs / total_reqs) × 17
Testability Assessment12%(testable_reqs / total_reqs) × 12
Placeholder Detection5%(no_placeholders ? 5 : 5 - count)
Section Completeness8%(complete / total_sections) × 8
Naming Compliance4%(valid_ids / total_ids) × 4
Upstream Drift5%(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
undefined
bash
undefined

Review 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 (
EARS-NN_{slug}/
) regardless of size. This ensures review reports, fix reports, and drift cache files are organized with their parent document.
File Naming:
EARS-NN.R_review_report_vNNN.md
Location: 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

版本规则

  1. First Review: Creates
    EARS-NN.R_review_report_v001.md
  2. Subsequent Reviews: Auto-increments version (v002, v003, etc.)
  3. Same-Day Reviews: Each review gets unique version number
Version Detection: Scans folder for existing
EARS-NN.R_review_report_v*.md
files and increments.
Example:
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
  1. 首次审核: 创建
    EARS-NN.R_review_report_v001.md
  2. 后续审核: 自动递增版本号(v002、v003等)
  3. 同日多次审核: 每次审核使用唯一版本号
版本检测: 扫描文件夹中已有的
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.json

Delta Reporting

差异报告

When previous reviews exist, include score comparison in the report.
See
REVIEW_DOCUMENT_STANDARDS.md
for complete versioning requirements.

当存在历史审核记录时,报告中需包含评分对比。
完整版本要求请参见
REVIEW_DOCUMENT_STANDARDS.md

Integration with doc-ears-autopilot

与doc-ears-autopilot的集成

This skill is invoked during Phase 5 of
doc-ears-autopilot
:
mermaid
flowchart LR
    A[Phase 4: Validation] --> B[Phase 5: Final Review]
    B --> C{doc-ears-reviewer}
    C --> D[Phase 6: Continue]

该技能在
doc-ears-autopilot
的第5阶段被调用:
mermaid
flowchart LR
    A[Phase 4: Validation] --> B[Phase 5: Final Review]
    B --> C{doc-ears-reviewer}
    C --> D[Phase 6: Continue]

Related Skills

相关技能

SkillRelationship
doc-naming
Naming standards for Check #7
doc-ears-autopilot
Invokes this skill in Phase 5
doc-ears-validator
Structural validation (Phase 4)
doc-ears-fixer
Applies fixes based on review findings
doc-ears
EARS creation rules
doc-prd-reviewer
Upstream QA
doc-bdd-autopilot
Downstream consumer

技能关系
doc-naming
检查项7的命名标准来源
doc-ears-autopilot
在第5阶段调用该技能
doc-ears-validator
结构验证(第4阶段)
doc-ears-fixer
根据审核结果应用修复
doc-ears
EARS创建规则来源
doc-prd-reviewer
上游QA工具
doc-bdd-autopilot
下游消费工具

Version History

版本历史

VersionDateChanges
1.42026-02-11Structure Compliance: Added Check #0 for nested folder rule enforcement (REV-STR001-STR003); Updated workflow diagram; Structure check is BLOCKING
1.32026-02-10Made drift cache mandatory; Added cache schema and location (
docs/03_EARS/.drift_cache.json
); Three-phase detection algorithm; SHA-256 hash calculation; REV-D006 error code for cache creation; Cache status in report output
1.22026-02-10Added 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.12026-02-10Added review versioning support (_vNNN pattern); Delta reporting for score comparison
1.02026-02-10Initial skill creation with 7 review checks; EARS syntax compliance; Threshold quantification; Testability assessment
版本日期变更
1.42026-02-11结构合规性: 添加检查项0以强制嵌套文件夹规则(REV-STR001-STR003);更新工作流图;结构检查为阻塞项
1.32026-02-10强制启用漂移缓存;添加缓存Schema和位置(
docs/03_EARS/.drift_cache.json
);三阶段检测算法;SHA-256哈希计算;新增REV-D006错误代码;报告中添加缓存状态
1.22026-02-10添加检查项8: 上游漂移检测 - 检测PRD文档在EARS创建后是否被修改;新增REV-D001-D005错误代码;漂移配置项;在相关技能中添加doc-ears-fixer
1.12026-02-10添加审核版本支持(_vNNN模式);评分对比的差异报告
1.02026-02-10初始技能创建,包含7个审核检查项;EARS语法合规性;阈值量化;可测试性评估