Parent
#89
相关边界
详细背景
PR #119 的实际代码变更集中在 PR Flow / governance 契约和测试,但为了生成本地 Security review fragment 的 no-findings evidence,仍执行了完整 Codex Security diff scan 工作流。
本次 scan 产出完整报告与 artifacts,并消耗约 36,932 tokens / 158 秒。对涉及凭据、网络、认证、CI secrets、依赖或交易执行路径的改动,这种深度是合理的;但对小范围治理契约和测试改动,完整报告、ledger、HTML artifact 的成本明显偏高。
#109 已经要求 Security fragment 记录 security_review.tool 和 fallback metadata,这保证了证据来源可追溯;但它没有解决“低风险小 diff 是否必须走完整重扫描和重报告”的效率问题。
产品解决方案
为本地 Security review fragment 增加风险分级证据路径:
- 低风险小 diff 使用轻量化 security receipt:记录 diff 范围、风险分类、执行的基础检查、tool、结论和 evidence ref。
- 高风险 diff 仍强制走完整 Codex Security scan:例如 secrets、auth、webhook、网络 IO、依赖、GitHub Actions、权限、外部上传、交易执行关键路径等。
- 轻量路径不能绕过 P0/P1 发现;一旦分类命中高风险或基础检查发现问题,自动升级到 full scan 或停在
DISPATCH_REQUIRED。
用户视角:小范围治理改动不再为生成 no-findings security fragment 付出完整深扫成本;高风险改动仍保持严格审查。
详细技术实现方案
- 在 Security fragment contract 中增加可选 metadata:
mode(lightweight / full)、risk_level、risk_reasons、evidence_refs、scan_receipt。
- 增加 diff risk classifier:根据 changed files、diff content、dependency/workflow changes、secret-like patterns、network/auth/webhook/API usage、trading critical paths 选择 lightweight 或 full。
- lightweight path 生成结构化 receipt,至少包含:current head、diff_files_hash、changed files、classifier version、检查项、结果、tool 名称、no-findings verdict。
- high-risk path 继续要求完整 Codex Security scan,并把 report / artifact 路径写入 fragment evidence。
- 如果 classifier 不确定,默认升级 full scan,不允许默认放行。
pr-submit 校验 Security fragment 时同时验证 mode 与 risk reasons;低风险 receipt 缺少必要字段时拒绝。
- 增加测试:低风险治理测试 diff 走 lightweight;workflow/secrets/auth/dependency/trading critical path 走 full;不确定分类升级 full;lightweight receipt stale head/diff 时失败。
Acceptance criteria
Blocked by
None - can start immediately
Parent
#89
相关边界
pr-submit阶段化进度和耗时遥测;本 issue 解决的是 security evidence 生成成本过高,不只是展示进度。verify fullfingerprint cache;本 issue 不缓存测试结果,只约束 security review evidence 的深度和产物。详细背景
PR #119 的实际代码变更集中在 PR Flow / governance 契约和测试,但为了生成本地 Security review fragment 的 no-findings evidence,仍执行了完整 Codex Security diff scan 工作流。
本次 scan 产出完整报告与 artifacts,并消耗约 36,932 tokens / 158 秒。对涉及凭据、网络、认证、CI secrets、依赖或交易执行路径的改动,这种深度是合理的;但对小范围治理契约和测试改动,完整报告、ledger、HTML artifact 的成本明显偏高。
#109 已经要求 Security fragment 记录
security_review.tool和 fallback metadata,这保证了证据来源可追溯;但它没有解决“低风险小 diff 是否必须走完整重扫描和重报告”的效率问题。产品解决方案
为本地 Security review fragment 增加风险分级证据路径:
DISPATCH_REQUIRED。用户视角:小范围治理改动不再为生成 no-findings security fragment 付出完整深扫成本;高风险改动仍保持严格审查。
详细技术实现方案
mode(lightweight/full)、risk_level、risk_reasons、evidence_refs、scan_receipt。pr-submit校验 Security fragment 时同时验证 mode 与 risk reasons;低风险 receipt 缺少必要字段时拒绝。Acceptance criteria
pr-submit。Blocked by
None - can start immediately