mcpField
L
land-pr

land-pr

github.com/martian-engineering开发4.9k47 次安装1 天前更新
代码仓库

关于 land-pr

用于评估并合入 lossless-claw 拉取请求的流程技能,固定 PR 头部提交,检查就绪状态和审查结果,并规范合并及合并后跟进。

主要功能

  1. 01合并前固定 PR 头部 SHA
  2. 02验证必需检查和就绪状态
  3. 03执行或确认最终代码审查
  4. 04搜索并评估相关未结问题
  5. 05按固定提交合并
  6. 06记录合并后的跟进事项

适用场景

  1. 01判断 PR 是否可以合并
  2. 02合入已验证的 lossless-claw 更改
  3. 03检查未结问题是否已解决
  4. 04整理完整的合并报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/martian-engineering/lossless-claw --skill land-pr

安装后在 Claude Code 中输入/land-pr确认已加载。

详细介绍

无损 PR 合并

在合并 lossless-claw 拉取请求或回答它是否已准备好合并时,使用此技能。

工作流

  1. 首先阅读仓库说明。

    • 遵循 AGENTS.md,尤其是其中关于数据保留、变更集、兼容性和命令报告的规则。
    • 如果此仓库有确定性合并包装脚本,优先使用;否则使用下方的手动备用方案。
  2. 确认并固定 PR 头部。

    • 获取实际 PR 元数据:
      gh pr view <PR> --json number,title,state,isDraft,baseRefName,headRefName,headRefOid,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,author,files,closingIssuesReferences,url
      
    • 将 headRefOid 作为合并固定值。合并前立即重新读取。
  3. 验证是否已准备就绪。

    • PR 必须处于开放状态、不是草稿、可合并且没有冲突。
    • 固定头部上的所有必需且最新的检查都必须已完成并成功:
      gh pr checks <PR> --json name,state,bucket,workflow,link,startedAt,completedAt
      
    • 如果检查仍在等待、失败、缺失,或对应的是不同的头部 SHA,请勿合并。
    • 如果 PR 更改了包可见行为、面向用户的行为、文档可见行为、兼容性元数据、配置接口或发布行为,请在合并前回答变更集相关问题。
    • 不要指望外部贡献者添加 Changesets 元数据。此项由维护者负责。
  4. 运行或确认最终审查。

    • 优先使用仓库实际的 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 与固定的 PR headRefOid 完全一致时,才运行分支审查。
    • 采取行动前,先根据代码核实每一项已接受的发现。
    • 存在尚未解决且可采取行动的问题时,不要合并。
  5. 合并前搜索开放的 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 可能有所帮助并询问是否已解决,而不要直接关闭。
  6. 确定性地合并。

    • 如果存在首选包装脚本,请使用:
      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 发生变化,请勿合并。
  7. 合并后验证与维护者后续跟进。

    • 确认 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。
  8. 最终报告。

    • 说明 PR 是否已就绪、是否已合并。
    • 包括 PR 编号/标题、固定的 head SHA、检查摘要、审查命令/结果、合并命令、合并提交 SHA、贡献者感谢评论 URL、问题搜索结果、已评论/关闭的问题,以及 changeset 处理结果。
    • 按照 AGENTS.md 的要求,在代码块中列出运行过的命令及其结果。

不要

  • 不要在合并过程中删除、清除、截断或以其他方式丢弃持久化的用户数据。
  • 不要绕过失败或仍在等待的必需检查。
  • 不要在未固定 head SHA 的情况下合并。
  • 不要仅仅因为 PR 正文中没有 Fixes #...,就假设不存在相关问题。
  • 不要关闭情况不明的问题。应发表评论或报告不确定性。

评论

支持 Markdown