ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Plane 的 create-pull-request 技能:用 Claude Code 技能文件自动化生成标准化 PR 的完整工作流

Plane 的 create-pull-request 技能:用 Claude Code 技能文件自动化生成标准化 PR 的完整工作流 Plane 的 create-pull-request 技能用 Claude Code 技能文件自动化生成标准化 PR 的完整工作流【免费下载链接】plane Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.项目地址: https://gitcode.com/GitHub_Trending/pl/planePlane 仓库在.claude/skills/目录下维护了一组 Claude Code 技能SKILL.md其中create-pull-request技能定义了从分支上下文到 PR 创建的完整自动化流程以preview为默认目标分支从分支名中提取 Plane 工作项 ID 作为 PR 标题前缀并依据仓库根目录的.github/pull_request_template.md逐节填写 PR 正文。读完本文你可以完整理解该技能的六步工作流、每条 git/gh 命令的用途、PR 标题与正文的格式规范以及它与branch-name技能在分支命名约定上的配合关系。技能文件结构与 Frontmatter技能定义位于 .claude/skills/create-pull-request/SKILL.md采用标准的 Claude Code 技能格式YAML frontmatter 加 Markdown 正文。frontmatter 包含三个字段字段值作用namecreate-pull-request技能标识与所在目录同名descriptionUse when creating a pull request for the current branch — gathers branch context, generates a PR description following the repos pull_request_template.md, and creates the PR with a Plane work item ID prefix in the title.触发条件描述供 Agent 判断何时调用该技能user_invocabletrue允许用户直接显式调用如输入/create-pull-request而不仅由 Agent 自动触发该技能位于 Plane 的.claude/skills/技能族中同目录还有 branch-name、release-notes、react-doctor 等技能各自覆盖分支命名、PR 创建、发布说明生成、React 代码体检等环节共同构成一套面向 Plane 开发流程的 Agent 工具链。六步工作流从上下文采集到 PR 创建技能正文# Create PR一节把整个流程拆分为 6 个步骤每一步都有明确的命令与判断规则。步骤 1确定目标base分支默认目标分支为preview除非用户另行指定。这一点与 release-notes 技能 中记录的 Plane 发布约定一致——功能分支通常汇入preview/master体系PR 的 base 选择直接影响 diff 的基准。步骤 2并行采集分支上下文技能要求以下 6 个上下文采集操作尽量并行执行一次性拿全判断依据命令 / 操作用途git status -s检查是否存在未提交的改动避免 PR 遗漏工作区内容git diff base...HEAD --stat查看变更文件统计确定影响范围git log base...HEAD --oneline列出分支上全部提交而非仅最新一条git diff base...HEAD --no-color完整 diff用于理解改动实质若 diff 过大优先聚焦最重要的文件git rev-parse --abbrev-ref --symbolic-full-name {u}判断当前分支是否已设置远程跟踪upstream决定后续 push 是否需要-u读取.github/pull_request_template.md从仓库根目录读取 PR 模板作为正文结构的唯一来源其中三点值得注意使用base...HEAD三点语法而非base..HEAD即 diff 基于两者的共同祖先merge-base保证只包含本分支引入的变更git log明确覆盖分支上所有提交——这直接对应常见错误一节中的第一条只总结最新提交是典型错误读取 PR 模板而非凭记忆撰写正文保证 PR 结构与 .github/pull_request_template.md 保持同步模板变更时无需修改技能本身。步骤 3确定工作项Work ItemIDPlane 团队使用 Plane 自身作为项目管理工具PR 标题前缀采用[工作项ID]形式。ID 的确定规则优先从分支名提取。分支命名约定为type/work-item-id-short-description例如chore/silo-1146-foo→SILO-1146feat/web-1234-x→WEB-1234注意分支名中 ID 是小写的silo-1146作为 PR 标题前缀时需还原为大写形式SILO-1146。分支名中找不到时询问用户而不是自行编造一个 ID。这一约定与姊妹技能 branch-name 形成闭环该技能在创建分支时强制使用type/work-item-id-short-description格式其描述中明确写道compatible with the create-pr skills work item ID extraction与 create-pr 技能的 ID 提取逻辑保持兼容。branch-name 技能还给出了一组示例分支名fix/silo-1146-relative-config-urls feat/web-1234-app-tile-visibility chore/web-2201-bump-eslint refactor/silo-980-extract-auth-middleware docs/web-1500-pr-template-update perf/silo-1310-cache-workspace-lookup至于SILO、WEB等前缀的含义release-notes 技能 中有更完整的说明[WEB-XXXX]是 web/前端产品项[SILO-XXXX]对应 SiloSlack、GitHub、GitLab 等集成项目另有[MOBILE-XXXX]、[API-XXXX]等。步骤 4按模板起草 PR这是技能的核心产出环节规则分为标题与正文两部分。标题格式[WORK-ITEM-ID] type: concise summarytype反映变更性质fix、feat、chore、refactor、docs、perf等与 branch-name 技能中定义的分支类型枚举保持一致整体长度控制在 70 字符以内。技能给出的示例标题[SILO-1146] fix: allow relative URLs for configuration_url and improve app tile visibility正文结构要求基于实际 diff 填写模板的每一个小节Fill in every section from the PR template based on the actual diff。模板即 .github/pull_request_template.md共五个小节技能的填写要求如下模板小节模板原文注释技能的填写要求DescriptionProvide a detailed description of the changes in this PR简洁说明 PR 做了什么、为什么做聚焦 what 与 why 而非逐行改动提及重要的实现决策Type of Change六个候选复选框Bug fix / Feature / Improvement / Code refactoring / Performance improvements / Documentation update勾选与变更匹配的框可多选Screenshots and MediaAdd screenshots to help explain your changes, ideally showcasing before and after保留占位注释!-- Add screenshots here --截图由用户后续补充Test ScenariosPlease describe the tests that you ran to verify your changes给出基于实际改动的具体验证场景如进入项目设置页并验证新开关生效而非泛泛的通用描述ReferencesLink related issues if there are any包含工作项 ID、用户提到的关联 issue以及对话中引用过的 Sentry issue 链接/ID如SENTRY-ABC123此外技能要求在正文末尾追加一行 Claude Code 会话标识Append a Claude Code session line at the bottom of the body用于标明该 PR 描述由 Claude Code 会话生成——这是一种常见的 AI 辅助贡献标注实践。步骤 5推送并创建 PR在尽可能并行的前提下执行两件事若步骤 2 中发现分支没有 upstream推送时带上-u参数建立跟踪关系git push -u origin branch用 GitHub CLI 创建 PR正文通过HEREDOC传入以避免 shell 对反引号、$等字符的解析gh pr create --base preview \ --title [SILO-1146] fix: allow relative URLs for configuration_url \ --body $(cat EOF ### Description ... EOF )单引号包裹的EOF是关键细节——release-notes 技能 在gh pr edit --body场景下也使用了同样的写法并特别强调Always use a HEREDOC with single-quotedEOFso backticks/dollars in the notes are preserved。步骤 6返回 PR URL流程的终点是把gh pr create返回的 PR 链接交还给用户形成闭环。编写准则与常见错误技能文档用两节清单约束生成质量这部分对任何让 Agent 代写 PR 描述的实践都有参考价值。Guidelines准则描述要简洁但信息充分concise but informative列举多项改动时使用要点列表bullet points聚焦用户可见的影响而非实现细节不得编造与本次改动无关的测试场景Dont fabricate test scenarios that arent relevant to the actual changes——这条与步骤 4 中Test Scenarios 必须基于实际改动相互呼应。Common Mistakes常见错误只总结最新一条提交而漏掉分支上的其他提交——对应步骤 2 中git log base...HEAD覆盖全部提交的设计推送前忘记检查 upstream——对应步骤 2 中git rev-parse {u}检查的设计工作项 ID 格式与分支约定不一致如大小写、位置放错——对应步骤 3 的提取规则也是 branch-name 技能 中Common Mistakes强调的镜像问题该技能指出把 ID 放在末尾而不是 type 之后会破坏提取把 PR 正文整体包进代码围栏再传给gh pr create——会导致 GitHub 把正文渲染成代码块而非 Markdown。该技能在 Plane 仓库中的定位从源码结构看Plane 仓库把 PR 流程的多个环节都沉淀成了可版本化的技能文件创建分支时branch-name 技能 保证分支名携带可提取的工作项 ID提交代码前react-doctor 技能 要求对 React 改动跑npx react-doctorlatest --verbose --diff回归体检分数回退需先修复再提交开 PR 时本文介绍的 create-pull-request 技能完成上下文采集、标题规范化、模板化正文与推送创建发版时release-notes 技能 从 release PR 的提交列表生成 GitHub Releases 格式的版本说明并明确排除了Sync: Enterprise Changes等同步噪音提交。值得注意的是与 create-pull-request 配套的 AGENTS.md 定义了仓库级的命令与代码风格约定如pnpm dev、pnpm check、OxLint、MobX store 位于packages/shared-state等Agent 在采集 diff 并撰写Test Scenarios时可参照其中的测试约定后端 pytest 套件通过docker-compose-test.yml运行给出贴合实际的验证建议。小结create-pull-request技能本质上是一份把人类撰写 PR的隐性规范显式化为机器可执行流程的技能文件它用git log base...HEAD与git diff base...HEAD保证不遗漏分支上的任何提交用type/work-item-id-...分支约定保证工作项 ID 可机械提取用preview默认 base 与gh pr create 单引号 HEREDOC 保证推送与创建动作的可复现性并以上游 PR 模板 .github/pull_request_template.md 作为正文结构的单一事实来源。对维护者而言模板放.github/、流程放.claude/skills/、二者解耦的划分方式使得 PR 格式变更时无需改动技能逻辑而 Agent 行为调整时也无需触碰模板文件——这对任何希望规范化 AI 辅助贡献流程的开源仓库都是可以直接借鉴的组织方式。【免费下载链接】plane Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.项目地址: https://gitcode.com/GitHub_Trending/pl/plane创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表