【免费下载链接】skills
Skills for Kotlin, Jetpack Compose, and Android development
Skills 项目的 shepherd 技能是一位专为合并请求(PR/MR)打造的AI 守护神:自动轮询仓库状态、分诊评审评论、修复 CI 失败并批量推送,全程以证据驱动、绝不越权合并。下面用新手友好的方式讲清它的工作方式、安全边界与快速上手方法。
什么是 shepherd:PR/MR 的自动守护神
提过 PR 的开发者都熟悉这种煎熬:提了合并请求之后,要时刻盯着 CI 是否跑绿、评审人有没有新评论、自己修完推送后还要再等一轮验证……
shepherd(牧羊人)就是为了解决这个问题而生的工作流技能。它接管"盯着 PR"这件事,核心原则只有一句话:
用证据(而非噪音)推动一个已授权的 PR/MR:轮询新变化 → 处理可行动项 → 本地修复批量合并成一次推送 → 解决已处理的讨论线程。
它会自动完成这些"保姆"工作:
- 📡轮询:通过
gh(GitHub)或glab(GitLab)定期检查 PR/MR 状态 - 🔍分诊:区分新评论和旧评论,只处理真正的新增反馈
- 🔧修复:格式、lint、编译、测试等小问题直接修,架构类争议立即上报
- 🧪验证:修复时跑受影响检查,合并前跑必要的全量检查,CI 只作最终确认
- 🛑守边界:没有明确的合并授权,绝不 merge
完整流程定义在 skills/shepherd/SKILL.md,项目总览见 README.md。
它如何工作:8 步守护流程
shepherd 的流程设计得非常克制,按顺序执行 8 步(摘自 SKILL.md):
| 步骤 | 做什么 | 关键点 |
|---|---|---|
| 1 | 识别平台 | 用git remote get-url origin判断用gh还是glab,模糊就停下来问 |
| 2 | 建立目标与快照 | 记录已处理的评论/评审 ID,快照之外的才算"新反馈" |
| 3 | 启用只读助手 | 有子代理时,派一个只读证据收集员,自己保留所有写操作 |
| 4 | 轮询比对 | 完整对比评论与 CI 状态,不重复处理旧反馈、不发"仅状态更新" |
| 5 | 先分诊后动手 | 清晰的问题直接修,架构/矛盾类反馈升级给人类 |
| 6 | 批量修复一次推 | 每个目标独立 checkout,已知问题攒成一次推送,不逐条评论逐条推 |
| 7 | 推送后复核 CI | 稳定期 2–5 分钟轮询,活跃修复期 30–60 秒,卡住则降频 |
| 8 | 合并门禁 | 需求、CI、冲突三项全绿且用户明确授权,才合并 |
两个细节特别值得新手学习:
- 快照机制:每轮轮询后记录反馈 ID 和 CI 状态,因此重启会话也不会漏掉或重复处理已有评论。
- CI 定位正确:CI 是"确认"而不是"迭代测试器"——本地验证先行,CI 兜底,避免把 CI 当试错沙箱。
GitHub 与 GitLab 通用:内置各平台命令
shepherd 内置了两大平台的只读检查命令(详见 provider-commands.md):
| 平台 | 查看反馈 | 查看检查与日志 |
|---|---|---|
| GitHub | gh pr view <number> --json comments,reviews,... | gh pr checks <number>;gh run view <run-id> --log-failed |
| GitLab | glab mr view <iid> --comments | glab ci list --mr <iid>;glab ci trace <job-id> |
GitLab 还有一个贴心的小规则:疑似偶发(flaky)的 job 允许用glab ci retry <job-id>重试一次,第二次失败就如实报告,不无限重试。
免轮询新姿势:宿主监控模式
如果你的客户端本身会在 PR 事件发生时"唤醒"AI 会话(例如 Claude 桌面版的ccd_pr工具),shepherd 会自动切换到事件驱动模式:
- 不再自己开定时器或循环轮询
- 每次被唤醒时只完整读一次:评审线程、检查状态、失败日志
- 推送修复后报告 SHA,把"等 CI"交给宿主监控
- 结束时明确声明哪些事件不在监控范围内
这套行为有专门的评估用例校准,见 evals/cases/shepherd-host-monitor-direct/case.json。
安全边界:守护神绝不越权
这是 shepherd 最让人放心的一面——它把"守边界"写进了规范:
- ⚠️绝不从"批准"推断合并授权,合并必须有用户的明确或长期授权
- ⚠️ 一次性查看、无开放目标、或需要人类判断时,报告状态然后停止,不启动持久轮询
- ⚠️ 修复三轮仍未解决的失败、评审方向矛盾、冲突无法解决时,立即升级给人类
- ⚠️ 报告必须诚实:实际跑了哪些检查就说哪些,没跑就明说"none"
负向用例 shepherd-negative 就模拟了"CI 全绿但没给合并授权"的场景——正确行为是什么都不做,这个"克制"正是它和简单脚本的本质区别。
快速上手:三步开始使用
1. 安装 Skills 插件包(任选其一):
# skills CLI npx skills add chrisbanes/skills # 或作为 Claude Code 插件 /plugin marketplace add chrisbanes/skills /plugin install chrisbanes-skills@chrisbanes-skills # 或作为 Codex 插件 codex plugin marketplace add chrisbanes/skills --ref main codex plugin add chrisbanes-skills@chrisbanes-skills2. 在 PR 所在仓库中唤起:直接用自然语言,例如"帮我盯一下这个 PR,处理评审评论和 CI 失败"。该技能默认不自动触发(见 skills/shepherd/agents/openai.yaml),需要你明确调用——这又是一道安全设计。
3. 看它汇报:每轮结束它会报告目标、当前 CI/评审状态、已执行的动作、实际运行的检查,以及下一个需要人类做的决定。
延伸阅读与配套资料
想深入源码级了解,推荐按此顺序阅读:
- 📖 skills/shepherd/SKILL.md — 完整 8 步流程与升级条件
- 📖 references/provider-commands.md — GitHub/GitLab 命令速查与宿主监控规则
- 📖 references/behavioral-review.md — 行为评审与两轮收敛审计
- 📖 references/subagent-selection.md — 只读子代理的选型与交接简报
- 🧪 evals/cases/shepherd-direct/case.json — "CI 失败后规划本地验证" 的评估用例
shepherd 在官方评估套件中的得分高达100%(见 README.md 中的结果表),是目前仓库里最"稳"的工作流技能之一。如果你正在为 PR 合并流程里的琐碎盯梢工作头疼,这位 AI 牧羊人值得放进你的工具箱 🐑✨
【免费下载链接】skills
Skills for Kotlin, Jetpack Compose, and Android development
相关推荐
tldraw 仓库 PR 维护自动化:用 shepherd-pr 技能自主评审 PR 评论、修复构建失败与清理线程
tldraw 仓库 PR 维护自动化:用 shepherd pr 技能自主评审 PR 评论、修复构建失败与清理线程 本篇技术指南围绕 tldraw 开源仓库(m
前端UI组件OpenWorker 实战指南:用 security-fix-pr 技能把分诊后的安全发现打包成可评审的修复 PR
OpenWorker 实战指南:用 security fix pr 技能把分诊后的安全发现打包成可评审的修复 PR 导读 :本文围绕 OpenWorker 内置
人工智能AI AgentAI 应用MCP Clients安全DeerFlow Maintainer Orchestrator:基于“评论面”安全模型的 GitHub Issue/PR 分诊与评审 Agent 技能
DeerFlow Maintainer Orchestrator:基于“评论面”安全模型的 GitHub Issue/PR 分诊与评审 Agent 技能 本文基
人工智能大模型AI Agent自主智能体工具调用MCP 服务Agent 沙箱AI 技能后端前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考