Skip to content

docs(review-single-pr): refine conflict handling workflow#858

Merged
ZR233 merged 1 commit into
devfrom
docs/review-single-pr-conflict-guidance
May 22, 2026
Merged

docs(review-single-pr): refine conflict handling workflow#858
ZR233 merged 1 commit into
devfrom
docs/review-single-pr-conflict-guidance

Conversation

@ZR233

@ZR233 ZR233 commented May 22, 2026

Copy link
Copy Markdown
Member

问题

review-single-pr 之前对可修复合并冲突的说明偏粗:只描述了 DIRTY + maintainer 可修改时可以修复,但没有明确区分当前聚合审批状态和历史 approve 记录,也没有说明冲突修复时如何避免把已经被 base 替换的旧 API 重新带回来。

修改

  • review-single-pr skill 中补充安全冲突修复流程:先刷新 PR 元数据、区分 reviewDecision 和历史 review、确认 mergeStateStatusmaintainerCanModify 后再行动。
  • 增加独立 conflict worktree 的操作步骤,包括校验 fork head、解释 conflict marker 中 HEAD/ours 与 origin/<base>/theirs 的含义、提交前的 marker/diff/验证检查。
  • 把 PR 837 的实际演练经验沉淀为示例:将 /proc/kallsyms 的 PR 意图迁移到当前 base 的 SeqObject + SpecialFsFile::new_regular_with_perm API,而不是恢复旧 SeqFile 结构,并同时保留两边独立新增的 section/dependency。
  • 在 blocking 条件和 review body 要求中加入冲突修复未验证、恢复旧 base API、以及 dry-run/是否推送的说明。
  • 更新 AGENTS.mdreview-single-pr 的触发描述,覆盖 otherwise approvable PR 的 merge-conflict handling 场景。

逻辑

这次调整把冲突处理拆成“是否适合修复”和“如何修复”两层:只有当前 PR 状态仍然满足可维护者修复条件时才进行可推送修复;如果只是历史 approve 或状态不明确,则作为 dry-run 或调查结果处理。实际修复时以当前 base 行为为准,把 PR 的功能意图移植到新抽象上,避免合并冲突解决把过期实现重新引入。

验证

  • git diff --check origin/dev...HEAD -- AGENTS.md .claude/skills/review-single-pr/SKILL.md
  • python3 /home/zhourui/.codex/skills/.system/skill-creator/scripts/quick_validate.py /home/zhourui/opensource/tgoskits-all/.claude/skills/review-single-pr

@ZR233
ZR233 merged commit e3ef414 into dev May 22, 2026
@ZR233
ZR233 deleted the docs/review-single-pr-conflict-guidance branch May 22, 2026 03:57

@mai-team-app mai-team-app Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #858 审查总结

变更概述

本 PR 改进了 review-single-pr skill 的冲突处理工作流,并新增了 StarryOS 应用支持 PR 的测试放置规则。修改了 2 个 Markdown 文件(无 Rust 代码变更):

  1. .claude/skills/review-single-pr/SKILL.md(+56/-5)
  2. AGENTS.md(+1/-1)

主要改进点

冲突处理(Merge Conflicts)

  • 新增冲突/审批状态刷新与分类步骤,区分 reviewDecision(聚合状态)与历史 APPROVED 记录,避免基于过期审批状态进行可推送修复。
  • 新增 mergeStateStatus=UNKNOWN 的处理:要求刷新后再操作,不从过期数据推断冲突。
  • 详细的 conflict worktree 创建流程:包含 git ls-remote 校验 fork head、conflict marker 方向说明(HEAD/ours = PR 分支,theirs = 当前 base)。
  • 语义化冲突解决规则:不以机械合并处理冲突,而是把 PR 功能意图迁移到当前 base 抽象上,避免恢复已被 base 替换的旧 API。PR #837SeqFile → SeqObject 经验作为参考示例。
  • 修复前完整验证清单:cargo fmt、conflict marker 检查、diff --check、targeted 验证命令。
  • 推送前双重校验:headRefOid 确认 + git ls-remote re-check。
  • dry-run 处理:仅流程演练时不推送不提交 review,记录调查结果。

StarryOS 应用支持规则(Review Focus + Validation)

  • 明确分离 app 场景(apps/starry/)与语义回归覆盖(test-suit/starryos/normal),交叉放置为 blocking。
  • 应用 smoke 通过不等于 syscall/ABI 覆盖充分。
  • app 验证不替代 normal 回归验证,两者需分别运行。

Blocking 条件与 Review Body 要求

  • 新增 3 条 blocking 条件覆盖冲突修复和应用测试放置场景。
  • Review body 新增冲突处理状态要求。

AGENTS.md:同步更新触发描述,覆盖 Starry app-support test placement checksmerge-conflict handling for otherwise approvable PRs

验证

  • 本 PR 只修改 Markdown 文档,无 Rust 代码变更,不需要 cargo fmt/cargo clippy/cargo test
  • PR 作者声称运行了 git diff --checkquick_validate.py,验证合理。

重复/重叠分析

  • PR #536(原始创建 skill)、#567(简化 skill,添加冲突修复框架)、#855(添加重复检查和 reviewer 分配)均已合并。本 PR 在 #567 的冲突处理基础上细化操作流程,与历史 PR 互补,无重复。
  • 搜索未发现其他 open PR 涉及 review-single-pr 冲突处理或 StarryOS app-support 测试放置规则的修改。

结论

变更质量良好,逻辑清晰,补充了冲突处理中的实际操作细节和安全防护。StarryOS app-support 规则与项目既有 apps/starrytest-suit/starryos/normal 的分层一致。无 blocking 发现。

Powered by glm-5.1

@mai-team-app mai-team-app Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #858 审查总结

变更概述

本 PR 改进了 review-single-pr skill 的冲突处理工作流,并新增了 StarryOS 应用支持 PR 的测试放置规则。仅修改 2 个 Markdown 文件(+57/-6),无 Rust 代码变更。

  1. .claude/skills/review-single-pr/SKILL.md(+56/-5)
  2. AGENTS.md(+1/-1)

主要改进点

冲突处理(Merge Conflicts)

  • 新增冲突/审批状态刷新与分类步骤,明确区分 reviewDecision(聚合状态)与历史 APPROVED 记录,避免基于过期审批状态进行可推送修复。
  • 新增 mergeStateStatus=UNKNOWN 的处理:要求刷新后再操作。
  • 详细的 conflict worktree 创建流程:git ls-remote 校验 fork head、conflict marker 方向说明(HEAD/ours = PR 分支,theirs = base)。
  • 语义化冲突解决规则:以 PR 功能意图迁移到当前 base 抽象为主,避免恢复旧 API。PR #837SeqFile → SeqObject 经验作为参考。
  • 修复前完整验证清单:cargo fmt、marker 检查、diff --check、targeted 验证命令。
  • 推送前双重校验:headRefOid + git ls-remote
  • dry-run 处理:仅流程演练时不推送不提交 review,记录调查结果后清理 worktree。

StarryOS 应用支持规则

  • 明确分离 app 场景(apps/starry/)与语义回归覆盖(test-suit/starryos/normal),交叉放置为 blocking。
  • app smoke 通过不等于 syscall/ABI 覆盖充分。
  • app 验证不替代 normal 回归验证。

Blocking 条件与 Review Body 要求

  • 新增 2 条 blocking 条件覆盖冲突修复和应用测试放置场景。
  • Review body 新增冲突处理状态要求。

AGENTS.md:同步更新触发描述。

验证结果

  • 本 PR 仅修改 Markdown 文档,无需 cargo fmt/cargo clippy/cargo test
  • changed-files 辅助脚本确认无 Rust crate 受影响。
  • PR 作者声称运行了 git diff --checkquick_validate.py,验证合理。

重复/重叠分析

  • PR #567(简化 skill,添加冲突修复框架)已合并。本 PR 在其基础上细化操作流程,互补关系,无重复。
  • 搜索 review-single-pr conflict 仅返回 #858#567,无其他 open PR。

代码质量

  • 内容结构清晰、逻辑连贯,新加入的 gh pr viewgh api 命令与 skill 中其他 bash 示例格式一致。
  • StarryOS app-support 规则与项目既有 apps/starrytest-suit/starryos/normal 的分层一致。
  • PR #837 的示例引用准确,与实际 PR 描述中的 API 变更一致。

CI 状态

  • 无 check-runs 记录(文档 PR 无 CI 触发),不影响合并判断。

结论

无 blocking 发现。变更质量良好,补充了冲突处理中的实际操作细节和安全防护,StarryOS app-support 规则清晰合理。已合并。

Powered by glm-5.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant