关于 land-pr
用于评估并合入 lossless-claw 拉取请求的流程技能,固定 PR 头部提交,检查就绪状态和审查结果,并规范合并及合并后跟进。
主要功能
- 01合并前固定 PR 头部 SHA
- 02验证必需检查和就绪状态
- 03执行或确认最终代码审查
- 04搜索并评估相关未结问题
- 05按固定提交合并
- 06记录合并后的跟进事项
适用场景
- 01判断 PR 是否可以合并
- 02合入已验证的 lossless-claw 更改
- 03检查未结问题是否已解决
- 04整理完整的合并报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ martian-engineering/ lossless-claw --skill land-pr安装后在 Claude Code 中输入/land-pr确认已加载。
详细介绍
无损 PR 合并
在合并 lossless-claw 拉取请求或回答它是否已准备好合并时,使用此技能。
工作流
-
首先阅读仓库说明。
- 遵循
AGENTS.md,尤其是其中关于数据保留、变更集、兼容性和命令报告的规则。 - 如果此仓库有确定性合并包装脚本,优先使用;否则使用下方的手动备用方案。
- 遵循
-
确认并固定 PR 头部。
- 获取实际 PR 元数据:
gh pr view <PR> --json number,title,state,isDraft,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,author,files,closingIssuesReferences,url - 将
headRefOid作为合并固定值。合并前立即重新读取。
- 获取实际 PR 元数据:
-
验证是否已准备就绪。
- PR 必须处于开放状态、不是草稿、可合并且没有冲突。
- 固定头部上的所有必需且最新的检查都必须已完成并成功:
gh pr checks <PR> --json name,state,bucket,workflow,link,startedAt,completedAt - 如果检查仍在等待、失败、缺失,或对应的是不同的头部 SHA,请勿合并。
- 如果 PR 更改了包可见行为、面向用户的行为、文档可见行为、兼容性元数据、配置接口或发布行为,请在合并前回答变更集相关问题。
- 不要指望外部贡献者添加 Changesets 元数据。此项由维护者负责。
-
运行或确认最终审查。
- 优先使用仓库实际的 PR 基分支:
head=$(gh pr view <PR> --json headRefOid --jq .headRefOid) base=$(gh pr view <PR> --json baseRefName --jq .baseRefName) gh pr checkout <PR> test "$(git rev-parse HEAD)" = "$head" /Users/phaedrus/Projects/prompts/skills/autoreview/scripts/autoreview --mode branch --base "origin/$base" - 仅当检出工作区的
HEAD与固定的 PRheadRefOid完全一致时,才运行分支审查。 - 采取行动前,先根据代码核实每一项已接受的发现。
- 存在尚未解决且可采取行动的问题时,不要合并。
- 优先使用仓库实际的 PR 基分支:
-
合并前搜索开放的 issue 并完成收尾。
- 检查明确的关闭引用:
gh pr view <PR> --json closingIssuesReferences --jq '.closingIssuesReferences' - 使用 PR 标题、关键错误字符串、功能名称、变更行为以及提交或正文中提到的 issue 编号,搜索可能重复或已被覆盖的开放 issue:
gh issue list --state open --limit 50 --search "<keyword terms> repo:Martian-Engineering/lossless-claw" - 在判断候选 issue 已被覆盖前,先阅读其内容:
gh issue view <ISSUE> --json number,title,state,body,url,labels,comments - 如果 PR 明确修复了某个 issue,且 GitHub 不会自动关闭它,请在合并后关闭该 issue,并附上简短评论链接到已合并的 PR。
- 如果不确定,请在 issue 上留言,说明该 PR 可能有所帮助并询问是否已解决,而不要直接关闭。
- 检查明确的关闭引用:
-
确定性地合并。
- 如果存在首选包装脚本,请使用:
scripts/pr-merge verify <PR> scripts/pr-merge run <PR> - 手动备用方案:
head=$(gh pr view <PR> --json headRefOid --jq .headRefOid) title=$(gh pr view <PR> --json title --jq .title) gh pr merge <PR> --squash --match-head-commit "$head" --subject "$title" - 此工作流中切勿使用
--auto。 - 如果从验证到合并期间头部 SHA 发生变化,请勿合并。
- 如果存在首选包装脚本,请使用:
-
合并后验证与维护者后续跟进。
- 确认 PR 的状态为
MERGED,并记录合并提交:gh pr view <PR> --json state,mergeCommit,mergedAt,mergedBy,url - 合并后,为外部贡献者留下简短的感谢评论:
gh pr comment <PR> --body "Thanks for the contribution, @<login>. This is landed now." - 对仍处于开启状态且已确认由此 PR 解决的问题,发表评论并关闭问题,评论中链接 PR 和合并记录。
- 如果合并前未包含必需的 changeset,立即创建一个小型后续 PR,仅添加缺失的
.changeset/*.md。
- 确认 PR 的状态为
-
最终报告。
- 说明 PR 是否已就绪、是否已合并。
- 包括 PR 编号/标题、固定的 head SHA、检查摘要、审查命令/结果、合并命令、合并提交 SHA、贡献者感谢评论 URL、问题搜索结果、已评论/关闭的问题,以及 changeset 处理结果。
- 按照
AGENTS.md的要求,在代码块中列出运行过的命令及其结果。
不要
- 不要在合并过程中删除、清除、截断或以其他方式丢弃持久化的用户数据。
- 不要绕过失败或仍在等待的必需检查。
- 不要在未固定 head SHA 的情况下合并。
- 不要仅仅因为 PR 正文中没有
Fixes #...,就假设不存在相关问题。 - 不要关闭情况不明的问题。应发表评论或报告不确定性。
评论
支持 Markdown