Skip to content

[PR Flow] 为低风险小 diff 提供轻量化 security fragment 证据路径 #121

Description

@liuli195

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 付出完整深扫成本;高风险改动仍保持严格审查。

详细技术实现方案

  1. 在 Security fragment contract 中增加可选 metadata:modelightweight / full)、risk_levelrisk_reasonsevidence_refsscan_receipt
  2. 增加 diff risk classifier:根据 changed files、diff content、dependency/workflow changes、secret-like patterns、network/auth/webhook/API usage、trading critical paths 选择 lightweight 或 full。
  3. lightweight path 生成结构化 receipt,至少包含:current head、diff_files_hash、changed files、classifier version、检查项、结果、tool 名称、no-findings verdict。
  4. high-risk path 继续要求完整 Codex Security scan,并把 report / artifact 路径写入 fragment evidence。
  5. 如果 classifier 不确定,默认升级 full scan,不允许默认放行。
  6. pr-submit 校验 Security fragment 时同时验证 mode 与 risk reasons;低风险 receipt 缺少必要字段时拒绝。
  7. 增加测试:低风险治理测试 diff 走 lightweight;workflow/secrets/auth/dependency/trading critical path 走 full;不确定分类升级 full;lightweight receipt stale head/diff 时失败。

Acceptance criteria

  • 低风险小 diff 可以生成 schema-valid lightweight Security fragment。
  • 高风险 diff 仍必须走 full Codex Security scan。
  • lightweight receipt 记录 tool、risk classification、current head 和 diff fingerprint。
  • 分类不确定时默认升级 full scan。
  • open P0/P1 security findings 仍会阻断 pr-submit
  • PR 修复 PR Flow 本地 review fragment 契约 #119 这类治理契约/测试小 diff 有回归测试或文档示例。

Blocked by

None - can start immediately

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:P1High priority: important correctness or workflow reliability improvementready-for-agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions