我的 Claude Code 工作仓库,含两个 skill:
- pr-explain:输入 PR 链接(GitCode / GitHub),快速知道"这个 PR 改了哪些地方、每处修改对应什么功能"(只读)
- repo-write:对 GitHub 仓库执行受控写操作——创建 Issue、评论、编辑 PR 元信息、状态与标签(每次写操作前完整预览并确认)
git clone https://github.com/yanbao1217/work-agent.git
cd work-agent在本项目根目录启动 Claude Code:
claude/pr-explain https://gitcode.com/cann/ops-nn/pull/10061 这个 PR 改了什么
/pr-explain https://github.com/{owner}/{repo}/pull/123 帮我解读这个 PR
也支持自然语言触发(给出 PR 链接 + 问"改了什么/对应什么功能"即可)。
/repo-write 在 yanbao1217/work-agent 建一个 issue:标题 xxx,内容 xxx
/repo-write 给 https://github.com/{owner}/{repo}/pull/12 评论:已验证通过
/repo-write 把 {PR 链接} 的标题改成 xxx / 关闭这个 PR / 给它打上 bug 标签
功能矩阵:
| 操作 | 说明 | 可撤性 |
|---|---|---|
| 创建 Issue | 标题/正文/标签/指派 | 半可撤(可关闭,编号不回收) |
| 评论(PR/Issue) | 长正文自动走文件,防转义 | 可删除 |
| 编辑 PR 元信息 | 标题/描述/base 分支(旧值→新值对照) | 可改回 |
| PR/Issue 状态 | 关闭/重开/draft 转正 | 可逆(转正除外) |
| 打/移除标签 | PR 与 Issue | 可移除 |
安全机制:每次写操作前展示五要素预览(目标仓库 / 对象 / 操作 / 将发布内容全文 / 精确命令 + 可撤性)并经用户确认;一次确认只覆盖一个对象的一个操作,禁止批量;失败不自动重试(防重复创建)。
- 会话内展示(pr-explain):一句话概述 + "修改点 → 功能"对照表 + 按功能分组解读 + 影响面
- 落盘文档(pr-explain,确认后):
docs/pr-explain-{platform}-{repo}-{n}.md - 操作回执(repo-write):对象 URL + 读回核对结果
- 过程日志(两者):
logs/{skill}_{YYYYMMDD}_{HHMMSS}.log
| 项 | 说明 |
|---|---|
GITCODE_TOKEN |
pr-explain 解读 GitCode PR 时必需 |
gh CLI(已登录,scopes 含 repo) |
repo-write 必需;pr-explain 解读 GitHub PR 时可选(有则不受匿名限速) |
GITHUB_TOKEN |
可选。GitHub 公开仓库可匿名读取(限速 60 次/小时) |
| git / curl / python3 | 必需 |
代理环境(http_proxy)已适配:GitCode 克隆自动直连,GitHub 自动走代理。
- pr-explain 平台:GitCode(
/pull/、/pulls/、/merge_requests/)+ GitHub(/pull/{n}) - repo-write 平台:仅 GitHub
- 大 PR:≤30 文件全量分析;31~100 核心深读+测试聚合;>100 目录级分层并注明深读范围
按 skill 分级:
- pr-explain 只读:不评论、不更新 PR、不做任何远程写操作
- repo-write 受控写:仅 GitHub 元信息层操作;不合并 PR、不推送代码、不批量操作、不删除分支或仓库;每次写操作必须预览确认