Skip to content

[PR Flow] build-review-fragment 不验证审查结论是否基于当前 head #139

Description

@liuli195

@

问题陈述

PR #138 流程暴露了一个治理漏洞:

  1. Security 审查发现 P1 问题(deny 缺 iex 别名)
  2. 代码修复后提交(8a6d61d
  3. Standards / Spec 审查结论仍是基于修复前的代码,但未被要求重审
  4. build-review-fragment 校验 reviewed_head == current_head 放行
  5. pr-submit 接受所有 fragment,PR 合并

根因:fragment builder 只验证 head 匹配,不验证审查结论本身是否基于当前代码。修复审查发现并提交新代码后,修复前的审查结论在代码变更后可能已过时。

建议方案

Builder 层面(P1)

build-review-fragment 中增加 post-fix 校验:

  • 当同一分支的提交链中存在"审查→修复→写 fragment"模式时,修复提交之前的审查角色的 fragment 必须标记 post-fix-reverified: true 或提供 post-fix-reverify-fallback-reason
  • 无标记且无 fallback 原因时,builder 输出 DISPATCH_REQUIRED,要求重审

SKILL 层面(P2)

repo-pr-governance SKILL 中增加流程步骤:P0/P1 发现修复后必须重新运行对应角色审查,才能写 fragment。

技术参考

  • 复用 delegation_attempt 的 evidence / fallback reason 模式
  • 利用 commit intent 链追踪修复提交与审查提交的时序关系
  • build-review-fragment 已有 head/diff 校验,只需新增审查结论的 freshness 校验

相关

  • PR #138 — 本次流程的 PR
  • Issue #120 — current-head 映射基础设施(已关闭)
  • Issue #132 — stale fragment 接手体验优化(相关但不重复)

本 issue 由自动化流程创建,如有问题请联系维护者。
@

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority: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