这是 Skills 生态定期观察的第 5 轮,主题是工作流自动化:部署、CI、监控、多 Agent 协作。本期样本来自本机实际安装的技能目录,四个 SKILL.md 全文精读:gh-fix-ci(修 CI 红灯)、gh-address-comments(处理 PR 评审意见)、long-running-agent(跨会话长任务框架)、github-actions-skill(问答式部署向导)。需要说明:本期网络检索通道受限,各技能的上游仓库归属、Star 数、作者信息均未核实,评分只基于技能文本本身的工程质量;社区活跃度一栏只能标「未核实」,不编数字。
核心发现一句话:工作流件正在分化成四个工种——装机工、抢修工、传话工、夜班工。修 CI 的那件工程化程度最高,值得单独拆到逐段。
| 维度(权重) | gh-fix-ci | gh-address-comments | long-running-agent | github-actions-skill |
|---|---|---|---|---|
| 功能完整度 25% | 4.5 | 3.0 | 4.0 | 3.5 |
| 设计质量 25% | 5.0 | 3.5 | 4.5 | 4.0 |
| 实战效果 20% | 4.0 | 3.5 | 3.5 | 4.0 |
| 上手难度 15%(分高=易上手) | 4.0 | 4.5 | 3.5 | 5.0 |
| 社区活跃度 15% | 未核实 | 未核实 | 未核实 | 未核实 |
| 加权总分(按 85% 折算) | 4.4 | 3.5 | 3.9 | 4.0 |
flowchart TD
A["写好代码"] --> B["装部署线<br/>github-actions-skill"]
B --> C["push 触发 CI"]
C -->|红灯| D["gh-fix-ci<br/>取日志定病灶"]
D --> E["出修复计划<br/>人批准才动手"]
E --> C
C -->|绿灯| F["gh-address-comments<br/>编号拉全评审意见"]
F --> G["人挑哪几条要改"]
G --> C
G -->|评审干净| H["long-running-agent<br/>夜间长跑"]
H --> I["feature_list.json<br/>只许勾不许改题"]
这条线读下来你会发现:四件没有一件重叠,也没有一件说自己是「自动化平台」。工作流自动化的 Skills 生态目前是游击队打法——每件只占一个哨位,靠 Claude 在中间当传令兵。
文件:~/.claude/skills/gh-fix-ci/SKILL.md。总分第一,原因不在功能多,而在每一段都在防一个真实的坑。逐段看:
Overview 段:一句话定义行为闭环——「locate failing checks → fetch logs → summarize snippet → propose plan → implement after explicit approval」。注意最后三个词:先出计划、明确批准后才实施。这一句把整个技能的安全边界提前钉死了,后面所有步骤都是它的展开。
握手段:开头有一条容易被忽略的小字——如果环境里有 create-plan 这类计划型技能,就借用它;没有就内联起草。这是技能之间的互操作协议:件不假设自己独占运行环境,也不硬依赖邻居,降级路径写死。这种「有则借力、无则自保」的写法,是可组合技能的标准姿势。
Quick start 与 Inputs 段:三个输入全部有默认值——repo 默认当前目录,pr 缺省自动找当前分支的 PR。零参数可跑,这是对「装机即用」的尊重。--json 输出则暴露了作者的野心:让结果可以被上游程序消费,而不只是给人看。
Workflow 第 3 步是全文最见功力的地方。首选跑捆绑脚本 inspect_pr_checks.py,脚本挂了给手动兜底命令;兜底命令里甚至写了「如果 gh pr checks --json 的字段被拒绝,就用 gh 报告的可用字段重跑」——这是在防 gh CLI 版本漂移。依赖外部 CLI 的技能迟早死于上游改字段,作者把棺材钉提前拧了。同一步里还有一层兜底:run 还在跑、拉不到日志时,直接改打 /actions/jobs/<job_id>/logs 接口。一个步骤三层退路。
第 4 步是边界声明:「detailsUrl 不是 GitHub Actions 的检查,一律标 external 只贴链接,Buildkite 等其他提供商不要碰」。技能最常见死法是幻觉式扩张——明明只懂 Actions,偏要去猜 CircleCI 的日志格式。这句禁止令把能力圈画成了硬边界。
第 5 步要求「缺日志要明说」,第 8 步以「重跑测试加 gh pr checks 复检」收口,形成确认闭环。首尾一扣,行为闭环完整。
Bundled Resources 段藏了个彩蛋:inspect_pr_checks.py 在仍有失败时以非零码退出。这意味着这个脚本可以脱离 Claude 单独跑在 cron 里——技能的脚本层天然是「CI 的 CI」,可编程接口白送。
短板也有:8 步流程对新手偏重;plan 批准环节依赖使用场景里有「人」在,纯无人值守场景会卡在门口——虽然从设计意图看,这个门口本来就是故意的。
同一目录下还有 ~/.claude/skills/gh-address-comments/SKILL.md,和 gh-fix-ci 明显同门:同样以 gh auth 前置,同样捆绑一个 Python 脚本(fetch_comments.py),同样走「脚本取数 → 人拍板 → 再动手」的路线。但正文只有三步加两行备注,全文比 gh-fix-ci 短一个量级。
亮点恰恰是「把选票还给人」:第二步要求把所有评审线程编号 + 给出每条的修复成本摘要,然后问用户修哪几条。评审意见不是圣旨,有的对有的错,这个技能把「听哪条」的决定权结构性地留在了流程里,而不是靠模型自觉。
短板是工程化断崖:没有字段漂移兜底,没有边界声明(非 GitHub 的评论系统怎么办?没说),错误处理只有一句「遇到限流就让用户重新 gh auth login」。它是一份合格的最小可行件教学样本——同一个需求,三步能跑,八步才稳,中间差的不是功能,是对失败的想象力。
文件:~/.claude/skills/long-running-agent/SKILL.md。这个件不碰任何外部系统,纯粹是提示词工程,却是四件里最有思想的。
开篇的诊断很准:长任务的敌人不是难,是失忆。每个新会话从零开始,于是 Agent 有三种死法——一口气梭哈撑爆上下文(one-shot)、看到局部进展就宣布完工(premature completion)、留一地烂摊子给下个会话(undocumented states)。
药方是双 Agent 制加三个文件。Initializer Agent 只在首个会话出场:写 init.sh(环境怎么起)、feature_list.json(验收清单)、claude-progress.txt(交接日志),然后首次 commit。Coding Agent 在之后每个会话执行七步启动序列:pwd → 读进度 → 读清单 → 看 git log → 跑 init.sh → 跑基础测试确认没烂 → 挑一个失败项开工。
最妙的一处设计:feature list 坚持用 JSON 格式,「防止不当编辑」。Markdown 清单 Agent 会顺手改写验收标准给自己放水,JSON 加上一条硬规则——「只许改 passes 字段,永远不许动测试描述」——用数据格式约束了模型行为。配合「端到端验证通过后才许把 passes 翻成 true」和一张「常见失败模式对照表」,这个件实际上是在给 LLM 立规矩。
短板:全靠自觉。passes 翻转没有强制证据链,progress 文件写多写少全凭模型心情;跨窗口跑一整夜,漂移风险真实存在。它是给 Claude 的「纪律手册」,不是「镣铐」。
flowchart TD
S1["会话1<br/>Initializer"] --> J1["写 init.sh"]
S1 --> J2["生成 feature_list.json"]
S1 --> J3["建 claude-progress.txt"]
S1 --> J4["首次 commit"]
S1 --> S2["后续会话<br/>Coding Agent"]
S2 --> Q1["读进度与清单"]
Q1 --> Q2["跑基础测试确认没烂"]
Q2 --> Q3["只做一个 feature"]
Q3 --> Q4["端到端验证才许勾"]
Q4 --> Q5["commit 加更新进度"]
Q5 -->|窗口用尽| S2
文件:~/.claude/skills/github-actions-skill/SKILL.md。四件里唯一的中文件,上手难度得分最高:四阶段问答向导,把「GitHub Actions 连 VPS 部署」这条配置流水线全包了。
交互纪律是亮点:每次只问一个问题,必填四项问完才碰可选项,可选项全给默认值(端口默认 22、分支默认 main);收集完用表格让用户确认,然后一口气产出四件套——ed25519 密钥生成命令、ssh-copy-id 上服命令、GitHub Secrets 清单表、按用户选择生成的 deploy.yml(命令部署用 appleboy/[email protected],rsync 同步走原生 step)。第三方 action 的版本号钉死了,这是好习惯。
两个短板。一是安全浅:生成的方案把整颗部署私钥塞进仓库 Secrets,没有提 deploy key 细粒度授权、环境保护规则或人工审批门;host key 校验只靠 ssh-keyscan(信任首次使用模式),安全向的读者会皱眉。二是名不副实:它叫 github-actions-skill,领地却只有「SSH 部署向导」——名字宽、身体窄。Skills 靠名字和描述做触发,名字起太宽会抢走本不属于它的活,这是起名课的一个反面教材。
四个件都是标准目录结构(SKILL.md + 可选 scripts/assets),放进用户级技能目录即可全局生效:
# 以 gh-fix-ci 为例,其余同理
mkdir -p ~/.claude/skills/gh-fix-ci/scripts
# 将该技能的 SKILL.md 放入 ~/.claude/skills/gh-fix-ci/
# 将 inspect_pr_checks.py 放入 ~/.claude/skills/gh-fix-ci/scripts/
# gh 系两件需要一次性登录授权
gh auth login # 勾选 repo 与 workflow scopes
gh auth status # 验证
触发方式即自然语言,无需记忆命令:
「这个 PR 为什么红?帮我修一下」 → gh-fix-ci
「把 PR 上的评审意见过一遍」 → gh-address-comments
「这个重构要跨好几个会话,按长任务框架来」 → long-running-agent
「帮我把 GitHub Actions 连到我的 VPS」 → github-actions-skill
本期方向里的「监控」位缺席:本机样本中没有独立监控件(sentry 此前已单独拆过,不重复),红灯之后的抢修有人管,红灯之前的盯梢没人装——这是工作流赛道目前最明显的空位。另外提醒两点:其一,gh-fix-ci 里那段字段漂移兜底反向证明了一件事——依赖外部 CLI 的技能,寿命被上游版本牵着走,选型时优先挑有脚本兜底层的;其二,github-actions-skill 产出的流程含整颗部署私钥,公开仓库使用前务必补环境保护规则,此技能原文未做此提醒。
~/.claude/skills/gh-fix-ci/SKILL.md(含 scripts/inspect_pr_checks.py 说明段)— 本期深拆对象,全文精读~/.claude/skills/gh-address-comments/SKILL.md — 同门最小件对照样本~/.claude/skills/long-running-agent/SKILL.md — 双 Agent 长任务框架原文~/.claude/skills/github-actions-skill/SKILL.md — 中文部署向导原文[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
