docs(review-single-pr): refine conflict handling workflow#858
Conversation
There was a problem hiding this comment.
PR #858 审查总结
变更概述
本 PR 改进了 review-single-pr skill 的冲突处理工作流,并新增了 StarryOS 应用支持 PR 的测试放置规则。修改了 2 个 Markdown 文件(无 Rust 代码变更):
.claude/skills/review-single-pr/SKILL.md(+56/-5)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 #837 的
SeqFile → SeqObject经验作为参考示例。 - 修复前完整验证清单:
cargo fmt、conflict marker 检查、diff --check、targeted 验证命令。 - 推送前双重校验:
headRefOid确认 +git ls-remotere-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 checks 和 merge-conflict handling for otherwise approvable PRs。
验证
- 本 PR 只修改 Markdown 文档,无 Rust 代码变更,不需要
cargo fmt/cargo clippy/cargo test。 - PR 作者声称运行了
git diff --check和quick_validate.py,验证合理。
重复/重叠分析
- PR #536(原始创建 skill)、#567(简化 skill,添加冲突修复框架)、#855(添加重复检查和 reviewer 分配)均已合并。本 PR 在 #567 的冲突处理基础上细化操作流程,与历史 PR 互补,无重复。
- 搜索未发现其他 open PR 涉及
review-single-pr冲突处理或 StarryOS app-support 测试放置规则的修改。
结论
变更质量良好,逻辑清晰,补充了冲突处理中的实际操作细节和安全防护。StarryOS app-support 规则与项目既有 apps/starry 和 test-suit/starryos/normal 的分层一致。无 blocking 发现。
Powered by glm-5.1
There was a problem hiding this comment.
PR #858 审查总结
变更概述
本 PR 改进了 review-single-pr skill 的冲突处理工作流,并新增了 StarryOS 应用支持 PR 的测试放置规则。仅修改 2 个 Markdown 文件(+57/-6),无 Rust 代码变更。
.claude/skills/review-single-pr/SKILL.md(+56/-5)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 #837 的
SeqFile → 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 --check和quick_validate.py,验证合理。
重复/重叠分析
- PR #567(简化 skill,添加冲突修复框架)已合并。本 PR 在其基础上细化操作流程,互补关系,无重复。
- 搜索
review-single-pr conflict仅返回 #858 和 #567,无其他 open PR。
代码质量
- 内容结构清晰、逻辑连贯,新加入的
gh pr view和gh api命令与 skill 中其他 bash 示例格式一致。 - StarryOS app-support 规则与项目既有
apps/starry和test-suit/starryos/normal的分层一致。 - PR #837 的示例引用准确,与实际 PR 描述中的 API 变更一致。
CI 状态
- 无 check-runs 记录(文档 PR 无 CI 触发),不影响合并判断。
结论
无 blocking 发现。变更质量良好,补充了冲突处理中的实际操作细节和安全防护,StarryOS app-support 规则清晰合理。已合并。
Powered by glm-5.1
问题
review-single-pr之前对可修复合并冲突的说明偏粗:只描述了 DIRTY + maintainer 可修改时可以修复,但没有明确区分当前聚合审批状态和历史 approve 记录,也没有说明冲突修复时如何避免把已经被 base 替换的旧 API 重新带回来。修改
review-single-prskill 中补充安全冲突修复流程:先刷新 PR 元数据、区分reviewDecision和历史 review、确认mergeStateStatus与maintainerCanModify后再行动。HEAD/ours 与origin/<base>/theirs 的含义、提交前的 marker/diff/验证检查。/proc/kallsyms的 PR 意图迁移到当前 base 的SeqObject + SpecialFsFile::new_regular_with_permAPI,而不是恢复旧SeqFile结构,并同时保留两边独立新增的 section/dependency。AGENTS.md中review-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.mdpython3 /home/zhourui/.codex/skills/.system/skill-creator/scripts/quick_validate.py /home/zhourui/opensource/tgoskits-all/.claude/skills/review-single-pr