Skip to content

[PR Flow] 优化 stale local review fragments 的 agent 接手体验 #132

Description

@liuli195

详细背景

PR #131 的流程中,第一次运行:

make pr-submit TITLE="策略:兼容模拟盘缺失参数"

流程正确停在 stale local review fragments:

DISPATCH_REQUIRED: local-review: standards fragment head is stale; local-review: standards fragment diff is stale; local-review: spec fragment head is stale; local-review: spec fragment diff is stale
reason_code: FRAGMENT_MISSING
phase: submit_fragments
retryable: true
next_actions:
- dispatch review agents to regenerate fragments

需要先澄清:#120 已经解决了底层安全能力问题。当前仓库已有:

  • .local/pr-flow/review-fragments-handoff.json,能给出 current head、current diff、目标 fragment 和 builder 输入模板。
  • build-review-fragment,能把结构化 reviewer verdict 安全落成 current-head fragment。
  • head/diff 校验、P0/P1 lifecycle、Security metadata 校验等约束。

本 issue 不认为 #120 失败,也不要求用脚本替代 agent review 能力。脚本不能替代 Standards / Spec / Security 的判断,也不能自动从旧 fragment、聊天总结或空 completion 推断 pass。

本 issue 记录的是 #120 之后仍存在的体验/编排问题:当 stale fragments 发生时,主 agent 仍需要执行较多机械步骤:

  • 读取 handoff。
  • 派发 Standards / Spec 子 agent。
  • 等待并判断 reviewer 结论。
  • 单独完成 Security review 判断。
  • 把 reviewer verdict 整理为 payload。
  • 调用 builder 写入 fragments。
  • 再次运行 pr-submit

这些步骤本身合理,但手工衔接成本较高,容易消耗时间和 token,也容易在 payload 字段、reviewer 标识、security metadata 等地方出现机械错误。

产品解决方案

优化 stale local review fragments 的 agent 接手体验:让 pr-submit 输出更清晰、更可执行的 agent handoff,而不是试图自动替代 agent review。

目标是让 agent 更少做机械拼装,更多做必须由 agent 完成的判断:

  • Standards / Spec 是否无发现或有什么 finding。
  • Security diff 风险和 verdict。
  • P0/P1 finding 是否 fixed / false_positive / open。

不改变的边界:

详细技术实现方案

  1. 改进 review-fragments-handoff.json 的可读性和可执行性:
    • 每个 role 给出明确的 agent task prompt。
    • 明确 fixed point、diff command、changed files、目标 fragment path。
    • 明确 payload 必填字段和允许值。
  2. 增加 agent-only payload skeleton 生成能力,但只生成待填模板:
    • 自动填 current head / diff / source / target path。
    • reviewer、verdict、findings、security_review 仍必须由 agent 填写。
    • skeleton 明确标记 TODO,不能直接通过 builder。
  3. 改进 pr-submitnext_actions
    • 区分“必须重新 review”的 diff stale 和“可 refresh”的 same-diff head stale。
    • 输出下一步建议命令和 handoff 路径。
  4. builder 错误信息更贴近 agent 操作:
    • 缺 reviewer、缺 security tool、head/diff mismatch 时给出具体修复字段。
  5. 增加回归测试:
    • stale diff handoff 包含 role-level task prompt。
    • payload skeleton 不能直接写 fragment。
    • skeleton 自动填 head/diff,但 verdict 必须由 agent 提供。
    • Security skeleton 缺 verdict/tool 时 builder 拒绝。
    • same-diff head stale 路径仍不强迫重新 review。

Acceptance criteria

Blocked by

#120 已完成。本 issue 是 #120 后续体验优化,不是底层能力缺失修复。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:P2Medium priority: efficiency or operator-experience improvementready-for-agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions