catalog/repos/aidankinzett--claude-git-pr-skill.md

208 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GitHub PR审查技能
`Claude Code` `GitHub` `代码审查` `PR` `gh CLI`
# Claude Code 的 GitHub PR 审查技能
一个 Claude Code 技能,通过 `gh` CLI 使用待处理审查和代码建议,确保 GitHub Pull Request 审查的一致性与专业性。
## 技能功能
本技能教会 Claude
- **始终使用待处理审查**来批量提交评论(即使在时间压力下)
- **使用 ```suggestion 语法创建代码建议**
- **选择正确的事件类型**COMMENT、APPROVE 或 REQUEST_CHANGES
- **使用正确的 `gh api` 语法**,包括正确的引号和参数标志
## 安装
### 方式一:插件市场(推荐)
通过 Claude Code 直接从市场安装:
```bash
# 添加此市场
/plugin marketplace add aidankinzett/claude-git-pr-skill
# 安装插件
/plugin install github-pr-review
# 验证安装
/plugin list
```
**团队全局安装**,添加到 `.claude/settings.json`
```json
{
"extraKnownMarketplaces": [
{
"name": "github-pr-skills",
"source": {
"source": "github",
"repo": "aidankinzett/claude-git-pr-skill"
}
}
],
"plugins": {
"github-pr-review": {
"enabled": true
}
}
}
```
### 方式二:手动复制
直接将技能复制到技能目录:
```bash
# 个人使用(所有项目)
cp -r github-pr-review/skills/github-pr-review ~/.claude/skills/
# 项目专用
cp -r github-pr-review/skills/github-pr-review .claude/skills/
```
## 使用方法
安装后,当你请求 Claude 审查 Pull Request 时,它会自动使用本技能。例如:
```
你:"审查 PR #123 并提出改进建议"
Claude*使用 github-pr-review 技能创建带批量评论的待处理审查*
```
## 本技能的独特之处
**没有本技能**Claude 可能会:
- 未经确认直接发布评论
- 在时间压力下跳过待处理审查
- 使用错误的 `gh api` 语法
- 选择错误的事件类型
- 发布你未批准的评论
**使用本技能**Claude 将:
-**发布前向你展示确切内容**
-**通过是/否问题请求明确批准**
- ✅ 始终先创建待处理审查
- ✅ 批量汇总所有评论
- ✅ 使用 ```suggestion 块提供代码建议
- ✅ 选择合适的事件类型(小建议用 APPROVE阻塞性问题用 REQUEST_CHANGES
- ✅ 使用正确语法(`comments[][]` 参数用单引号包裹)
## 工作流程
本技能强制执行以下工作流:
**1. 起草 → 2. 展示并批准 → 3. 发布**
### 第一步:起草审查
Claude 分析 PR 并准备包含代码建议的评论。
### 第二步:展示并获得批准
Claude 向你展示**确切将要发布的内容**
- 每条评论及其文件和行号
- 已格式化的代码建议
- 事件类型APPROVE / REQUEST_CHANGES / COMMENT
- 整体审查摘要
你审阅后批准(或要求修改)。
### 第三步:发布审查(技术细节)
获得批准后Claude 使用以下模式发布:
```bash
# 第一步:创建包含所有评论的 PENDING 审查
gh api repos/:owner/:repo/pulls/123/reviews \
-X POST \
-f commit_id="<SHA>" \
-f 'comments[][path]=file.ts' \
-F 'comments[][line]=42' \
-f 'comments[][side]=RIGHT' \
-f 'comments[][body]=带有 ```suggestion 块的评论...' \
--jq '{id, state}'
# 第二步:准备好后提交
gh api repos/:owner/:repo/pulls/123/reviews/<REVIEW_ID>/events \
-X POST \
-f event="APPROVE" \
-f body="整体审查摘要"
```
## 优势
- **一致的工作流**,适用于所有 PR 审查
- **专业的批量评论**,避免零散通知
- **每次使用正确语法**
- **更好的事件类型决策**
- **经过实践验证的模式**,在压力下同样有效
## 前提条件
- Claude Code
- 已安装并认证的 GitHub CLI`gh`
## 许可证
MIT或指定你的许可证
## 仓库结构
```
.claude-plugin/
marketplace.json # 插件市场定义
github-pr-review/ # 插件根目录
skills/ # 技能目录
github-pr-review/ # 技能本体
SKILL.md # 技能定义
CHANGELOG.md # 版本历史与变更记录
```
## 版本管理
本技能遵循[语义化版本规范](https://semver.org/)
- **当前版本:** 1.0.0
- **版本位置:** `.claude-plugin/marketplace.json`
- **变更历史:** 参见 [CHANGELOG.md](CHANGELOG.md)
### 更新版本
进行变更时:
1. **更新 CHANGELOG.md** — 在 `[Unreleased]` 下添加条目
2. **发布时:**
- 将未发布条目移至 CHANGELOG.md 的新版本章节
- 更新 `.claude-plugin/marketplace.json` 中的 `version`
- 创建 git 标签:`git tag -a v1.0.1 -m "Release v1.0.1"`
- 连同标签推送:`git push --tags`
**版本号说明:**
- **PATCH**1.0.1)— Bug 修复、错别字、小幅改进
- **MINOR**1.1.0)— 新功能,向后兼容
- **MAJOR**2.0.0)— 技能行为的破坏性变更
## 贡献
本技能采用测试驱动开发方式构建:
1. 基准测试识别出违规行为(在时间压力下立即发布、无用户批准)
2. 编写技能以解决这些违规问题
3. 测试验证技能正确运行
4. 测试并处理边界情况
5. 根据用户反馈添加批准工作流
如果发现技能无法正确处理的边界情况,欢迎提交 Issue
## 开发
本地测试变更:
```bash
# 创建符号链接用于测试
ln -s $(pwd)/github-pr-review/skills/github-pr-review ~/.claude/skills/github-pr-review
# 或在本地使用插件市场
/plugin marketplace add file://$(pwd)
/plugin install github-pr-review
```