Files
AirPlan-V2/commands/rvr.md
AirPlan a60d1a0c04 fix: Windows兼容性修复 + P1-24弱模型优化 + 3.2.9b禁止降级方案 + AirRvr三层审查放行标准
- lock.py: 跨平台进程锁(Unix fcntl / Windows msvcrt / O_CREAT|O_EXCL降级)
- eng_mode.py/eng_orchestrator.py: hasattr(os, "getloadavg") Windows防护
- arc_mode.py: 路径分隔符 replace("\\", "/") Windows兼容
- deploy_runtime.py: 修复语法错误(清理 import tempfile 残留)
- P1-24(3.2.18): AMBIGUOUS_VERBS歧义词检测 + SAFE_VERBS安全动词 + validate_task_description()
- TaskNode.keep_constraints 保留约束字段 + JSON序列化
- _build_graph_from_todo 返回歧义警告 + Arc自检集成
- 3.2.9b: FORBIDDEN_DEGRADATION_PATTERNS + check_forbidden_degradation()
- AirRvr三层审查放行标准: ReviewVerdict + evaluate_review_pass() + is_forbidden_pass_reason()
- commands/arc.md: 弱模型安全重写(操作类型拆分+保留约束+自检)
- commands/do.md/eng.md/rvr.md: 禁止降级方案 + 三层审查标准
- 测试: 7个新测试 + 74全量通过

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 09:58:29 +08:00

61 lines
3.4 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: "AirPlan rvr mode - requirement reviewer with highRiskAudit and code-to-design"
argument-hint: "[review|status]"
allowed-tools: "[Read, Glob, Grep, Bash, Write, Edit]"
---
# /rvr
AirRvr 是需求审查器。基于原始需求文档对已完成任务进行独立审查,验证交付物与需求的一致性。含 highRiskAudit生命周期/空指针/悬垂指针/异常安全/并发)和 Code-to-Design 逐行对照。
## 硬规则
1. **code-to-design 对照** — 每次审查必须逐行对照代码实现与设计文档ADR、C4、需求
2. **高风险审计** — 终审必须包含 lifecycle/nullPointer/danglingPointer/exceptionSafety/concurrency 五项检查
3. **审查放行标准(三层,不可降级)**
- **第一层(最高优先级)**: Code-to-Design 逐行对照 — codeToDesignTable 中不得有 status=divergent 或 status=missing 的条目,任何 divergent/missing 必须修复后才能放行
- **第二层(必选)**: 静态分析通过 — AirSDB 报告无 critical/high severity finding生命周期/空指针/悬垂指针/异常安全专项审计通过
- **第三层(必选)**: 测试通过 — 单元测试全部通过接口测试全部通过GUI 任务需 AirXDB 截图证据与设计稿一致
- 三层全部通过 → verdict=pass第一层有 divergent/missing → verdict=fail即使测试全绿第一层通过但第二/三层有问题 → verdict=conditional-pass
4. **禁止表面理由判定 pass** — 以下理由不得单独作为 pass 依据:"测试 pass"/"测试全绿"、"实现存在"/"函数存在"、"编译通过"/"无报错"、"能跑通"/"功能可用"。以上仅为必要不充分条件。
5. **verdict 控制合并** — fail 阻止合并conditional-pass 记录遗留项pass 正常合并
6. **deliveryVerdict = block-release** — eng dispatch 阻止所有后续派发
7. **降级语言检测 (3.2.9b)** — 在 code-to-design 审查中检测 Worker 是否使用了降级语言("兜底方案"、"先这样做"、"临时方案"等),检测到则 verdict 直接判定 fail要求按原始设计重新实现
## 审查模式
| 模式 | 触发时机 | 审查范围 |
|------|---------|---------|
| per-task | 单个任务完成后 | 单任务 |
| per-wave | 波次所有任务完成后 | 整波 |
| per-milestone | 项目阶段结束时 | 全量(比对 requirements.md |
## 子命令
### review — 执行审查
```bash
python scripts/airplan.py --mode rvr --project . --sub review --task-id T-001
```
返回 `{task_id, verdict, report_path}`。审查报告含 coverage/intentAlignment/regressionRisk/codeQuality/lifecycleHealth/runtimeStability/codeToDesignTable/highRiskAudit。
制品:`AirPlan/state/airrvr/reviews/{task_id}-{ts}.json`
### status — 查看审查状态
```bash
python scripts/airplan.py --mode rvr --project . --sub status
```
## 集成路径
**Eng merge 时自动检查**merge_worker_result Phase 1.5 自动调用 `get_verdict_for_task(task_id)`
- `verdict=fail` → 抛出 `ValueError` 阻止合并
- `verdict=conditional-pass` → 记录 residualItems 但允许合并
- `deliveryVerdict=block-release` → dispatch_worker_group 阻止所有后续派发
**触发方式**:设置 `reviewPolicy.requireBeforeMerge=true` 或在 result 中设 `requireReview=true`
**INVALIDATED 任务清理检查**P1-21ADR 变更级联失效后,手动调 `check_invalidated_cleanup()` 验证旧代码已清理。