Claude Code 技能
该仓库在 .claude/skills/ 下提供了一组 Claude Code skills,用于自动化维护者工作流中较为繁重的部分:PR 审查、issue 分类、squash 合并、变更日志生成等。
每个技能都位于其自己的目录中,并包含一个 SKILL.md 文件。当你打开仓库时,Claude Code 会自动加载它们;你可以通过用自然语言描述你的需求,或通过显式引用(例如 /squash-merge 1234)来调用它们。
可用技能
| 技能 | 当需要 |
|---|---|
github-pr-review-session | 审查特定 PR 或处理审查队列:起草审查正文,与源代码交叉核对,并以当前账户持有者的身份通过 gh 发布 |
github-issue-triage | 执行待办清理,关闭陈旧/重复的 issue,添加标签,并落实规范的issue 陈旧策略 |
github-issue | 提交结构化的问题(错误报告或功能请求) |
github-pr | 使用完全填充的模板正文打开或更新 PR |
squash-merge | 将已批准的 PR 合并到 master 分支,保留提交历史并显示紫色的 已合并 徽章 |
changelog-generation | 为发布准备 CHANGELOG-next.md:汇总自上次标签以来的合并记录 |
skill-creator | 创建、编辑或基准测试技能本身 |
zeroclaw | 操作正在运行的 ZeroClaw 实例(CLI + 网关 API) |
PR 审查流程
github-pr-review-session 技能是审查日的主要工具。一个典型的会话如下所示:
> review 1234
该技能会读取 AGENTS.md、审查员手册以及 PR 的差异和提交记录,然后起草一份审查意见。它使用:
- 行内差异注释,针对每一项与特定行关联的 🔴 阻塞、🟡 警告或 🔵 建议类发现。
- 评审正文用于说明总体结论、理解摘要、交叉引用,以及与具体行无关的模板级问题
- 裸提交哈希(绝不用反引号包裹:GitHub 会自动为其添加链接)
- @-前缀的用户名 在所有评论内容中
审查结论遵循反馈分类法:🔴 [blocking] 会阻止 PR 合并,🟡 [warning] 应当处理,🔵 [suggestion] 为可选项,🟢 [praise] 指出做得好的地方,✅ [resolved] 在重新审查时确认某项结论已得到处理。PR Review Protocol 是各级别及审查正文 Markdown 格式的权威依据。
该技能在发布前始终会显示草稿以供审批。评论以人工审查者的身份发布,而非以机器人身份发布。
更改后重新审查:
> re-review 1234
或者处理队列中的任务:
> go through the queue
问题分类工作流
github-issue-triage 技能在既定的权限范围内运行自主待办事项清理。不带参数运行时,它会执行一次核算遍历(待办事项状态,然后提示选择模式);否则,可用的模式如下:
- 分类:处理无分类标签的问题:归类、应用标签、关联到开放的 PR、标记信息不足的 bug 报告、重定向安全问题
- 清扫:按优先级顺序对全部待办事项进行处理(已被合并 PR 修复 → 重复项 →
r:support→ 过期候选项) - Stale:应用规范的议题过期策略(
status:stale、响应窗口、排除项及重新参与) - 不予修复:关闭违反某项明确核心工程约束的问题,并引用该约束及其
AGENTS.md/RFC 出处 - 单个:通过编号或 URL 处理一个 issue
标签定义见 Labels;该技能应用的分诊标签(r:needs-repro、r:support、stale-candidate、status:* 生命周期标签以及解决方案标签)均在此定义。陈旧处理流程见 issue-triage 技能协议,审阅方的相关背景见 Reviewer playbook → Issue triage。该技能在操作前会将不明确的情况上报给用户。
压缩合并策略
ZeroClaw 对所有 PR 使用 squash-merge。squash-merge 技能会生成紫色的 Merged 徽章,以及一个符合 conventional-commits 格式的 squash 消息,其中包含完整的提交历史。
为什么需要这个技能
GitHub 的默认压缩合并(squash-merge):
- 从主题中省略 PR 编号
- 不一致地格式化正文
- 不符合项目规范
直接将 squash 推送到 master 会绕过 PR 合并机制:PR 会显示为 “Closed” 而非 “Merged”(没有紫色徽章、不会自动关闭关联的 issue、没有合并关联记录)。该技能使用 gh pr merge --subject --body 来同时获得徽章和格式正确的提交。
格式
- 标题:
<PR title> (#<number>):必须符合 conventional commits 规范(feat(scope): …、fix: …等) - 正文(多提交 PR): PR 分支中
- <短 SHA> <提交主题>的无序列表 - 正文(单提交 PR): 完整的提交正文,如果没有则为空
预飞行检查
技能停止在:
- PR 未打开
- PR 指向的分支不是
master - 存在合并冲突(用户必须要求作者重新变基)
CHANGES_REQUESTED审查待处理ghCLI 版本小于 2.17.0(缺少--subject/--body标志)
REVIEW_REQUIRED 状态会提示确认,但不会阻止操作。
调用
> squash-merge 1234
或显式:
> /squash-merge 1234
该技能在调用 gh pr merge 之前,始终会确认生成的主题和正文。
Changelog 生成
changelog-generation 通过查询 gh 自上一个标签以来合并的 PR,按 conventional-commits 前缀进行分组,并格式化为项目特定的 changelog 样式,从而为发布构建 CHANGELOG-next.md。请将其作为发布运行手册的一部分,在触发 release-stable-manual.yml 之前使用。
编辑技能
Skills 是带有 YAML frontmatter 的纯 Markdown 文件。其 description 字段是 Claude Code 用来决定何时触发它们的依据:内容要具体,并包含明确的触发短语("review 1234"、"triage issues" 等)。使用 skill-creator 来编辑它们;它会强制执行结构规范,并帮助运行评估以衡量触发准确率。
当某个技能的行为与文档描述不符时(例如审查者手册发生变化),请同时更新该技能和所有引用它的文档。技能的 SKILL.md 是自动化的权威来源,而贡献文档则是面向人类的权威来源。