|
| 1 | +# Acceptance Checklist |
| 2 | + |
| 3 | +## 标准 1:8 条公开样本必须全部可运行并生成报告 |
| 4 | + |
| 5 | +- 已覆盖 8 条 fixture: |
| 6 | + - `clean.diff` |
| 7 | + - `security_issue.diff` |
| 8 | + - `async_resource_leak.diff` |
| 9 | + - `db_lifecycle_issue.diff` |
| 10 | + - `missing_tests.diff` |
| 11 | + - `duplicate_finding.diff` |
| 12 | + - `sandbox_failure.diff` |
| 13 | + - `secret_redaction.diff` |
| 14 | +- 已有集成测试和 CLI 路径生成 `review_report.json` 与 `review_report.md` |
| 15 | +- Phase 6 额外验证: |
| 16 | + - `fixture_runs_ok=8` |
| 17 | + - 新增质量门禁测试 `test_all_public_fixtures_generate_reports` |
| 18 | + |
| 19 | +## 标准 2:隐藏样本高危问题检出率 >= 80%,误报率 <= 15% |
| 20 | + |
| 21 | +- 当前实现以高信号确定性规则优先: |
| 22 | + - `eval` |
| 23 | + - `exec` |
| 24 | + - `pickle.loads` |
| 25 | + - `yaml.load` |
| 26 | + - `shell=True` |
| 27 | + - secret patterns |
| 28 | +- 低置信项自动降级为 `needs_human_review` 或 `warning` |
| 29 | +- 当前示例给出工程策略和测试基线,但隐藏样本上的最终指标仍需 PR 前人工复核说明 |
| 30 | + |
| 31 | +## 标准 3:数据库完整记录 task、sandbox run、finding 和 report |
| 32 | + |
| 33 | +- SQLite 已持久化: |
| 34 | + - `review_tasks` |
| 35 | + - `review_inputs` |
| 36 | + - `filter_decisions` |
| 37 | + - `sandbox_runs` |
| 38 | + - `findings` |
| 39 | + - `review_reports` |
| 40 | +- 已支持 `get_review_bundle(task_id)` 查询完整链路 |
| 41 | + |
| 42 | +## 标准 4:沙箱具备超时和输出限制,失败不崩 |
| 43 | + |
| 44 | +- 脚本执行层有 timeout |
| 45 | +- stdout/stderr 有统一截断上限 |
| 46 | +- sandbox failure / timeout 转换为结构化记录和 finding |
| 47 | +- 已有 `sandbox_failure.diff` 测试 |
| 48 | + |
| 49 | +## 标准 5:敏感信息脱敏检出率 >= 95% |
| 50 | + |
| 51 | +- 报告和数据库前统一调用 `redactor.py` |
| 52 | +- 覆盖: |
| 53 | + - API key |
| 54 | + - token |
| 55 | + - password |
| 56 | + - bearer token |
| 57 | + - private key |
| 58 | +- 已有 `secret_redaction.diff` 集成测试 |
| 59 | + |
| 60 | +## 标准 6:dry-run / fake model 模式 <= 2 分钟 |
| 61 | + |
| 62 | +- 主链路不依赖真实模型 |
| 63 | +- 规则和脚本执行均为轻量 deterministic 路径 |
| 64 | +- 当前测试集运行时间远低于 2 分钟 |
| 65 | +- Phase 6 单次 security fixture dry-run 实测约 `9.87s` |
| 66 | + |
| 67 | +## 标准 7:高风险脚本必须先经过 Filter 决策 |
| 68 | + |
| 69 | +- 所有 skill 脚本执行前统一经过 `filter_policy.py` |
| 70 | +- `deny / needs_human_review` 不直接进入执行 |
| 71 | +- 已测试 forbidden path 拦截 |
| 72 | + |
| 73 | +## 标准 8:报告必须包含关键信息 |
| 74 | + |
| 75 | +- 当前报告包含: |
| 76 | + - findings |
| 77 | + - severity stats |
| 78 | + - human review items |
| 79 | + - filter summary |
| 80 | + - sandbox summary |
| 81 | + - monitoring summary |
| 82 | + - actionable recommendations |
| 83 | + |
| 84 | +## PR 前仍需复核 |
| 85 | + |
| 86 | +- README 与最终示例输出是否同步 |
| 87 | +- 设计说明是否满足 300-500 字要求 |
| 88 | +- 是否需要再补一轮原生 `skill_run` 接入说明 |
| 89 | +- 是否需要附上最终 sample outputs 供 reviewer 直接查看 |
0 commit comments