Skip to content
//0x
0x1c//工具设计

从文档到实战:把一次手动发布做成可复用的 Agent Skill

起因:同一个流程,每次都靠记忆

我们的一个后端服务项目,版本发布是一套多阶段流程:基线校验、推送分支、等待 CI、改 CHANGELOG、合并主干、打 tag、部署、冒烟。这套流程分散在文档、脚本注释和个人经验里,每次发布都由 AI Agent 执行——而 Agent 经常给出错误的顺序。

错误的典型是:在内容还没冻结时就改 CHANGELOG 标题、改完标题又重复跑一遍 CI、把空段落插到错误位置。这些错误不造成代码损失,但每次都暴露「流程只存在于人脑,没有固化下来」的问题。

解决方案不是再写一份文档,而是把它做成 Agent 能自动加载的 skill。

第一步:先有权威 SOP,再有 skill

我们把发布流程写成一份完整的 SOP(标准操作流程),包含每个阶段的命令、检查点、判定标准。原则很简单:

权威说明只保留一处,其他位置都是引用。

之前发布流程的信息散落在三处(项目说明文档、发布脚本注释、运维手册),内容还不一致。收敛后:

这样改一处,全链路生效,不会出现「文档改了三处漏两处」。

第二步:让发布流程承认自己的边界

写 SOP 时我们明确了一个关键定位:

发布是纯流程化执行,不包含代码逻辑/内容确认。

代码的完整性和正确性在开发与产品决策阶段已经确认。发布只做流程性检查:preflight 通过、CI 绿、工作区干净、tag 唯一、主干同步。发布流程里不应该出现「审阅代码」这种步骤——那相当于产品已经决定上线了,你还说要再评审一遍功能,逻辑上是错位的。

这个定位决定了 SOP 的骨架:每个阶段都是「命令 + 检查点」,不含任何代码质量判断。

第三步:手动演练,用真实发布验证 skill

skill 写好不等于能用。我们决定下一次发布走手动流程,同时把每一步记录下来,作为 skill 的实践依据——这相当于用真实环境给 skill 做端到端测试。

演练过程中踩到了六个真实的坑,每个都回填进了 skill:

坑 1:dry-run 跑太早,必死

发布预览命令(release --dry-run)在改 CHANGELOG 标题前跑,会在「缺少版本段落」检查处直接退出——因为段落还没建,根本走不到后续校验。这个命令的正确时机是改题之后、合并主干之后,此时段落存在、主干已同步,才能完整校验。

教训:先读透工具的前置检查顺序,再决定调用时机。

坑 2:改题后重复跑 CI

改 CHANGELOG 标题是纯文本提交,代码没变。但流程初版要求改完标题再 push 到开发分支等 CI——这是纯浪费(配额有限,CI 每次跑都是成本)。

正确路径:纯文本提交直接随合并主干时一起走,主干的 CI(含镜像构建)就是发布验证。

坑 3:空段落插错位置

改 CHANGELOG 时要在文件顶部新建空「未发布」段,供下一版本累积。第一版把它插到了版本段后面,用户一眼看出结构错误——正确的参照是上一个版本的改题提交。

教训:文档有历史结构惯例时,先看历史提交怎么做的,别凭想当然。

坑 4:CI 输出误判

gh run watch 输出的 X Process completed with exit code 1(lint job)和某个 artifact 下载失败提示,看起来像 CI 挂了。实际那些是 warn 级别的 annotations(Node 版本弃用提醒、辅助步骤失败),不是 job 失败。权威判定要用 gh run view --json conclusion。

教训:不要目视终端输出判断 CI 状态,用结构化 API 查询。

坑 5:共享终端被污染

发布全程在 tmux 共享终端执行以便审计。但共享终端是通用会话,可能被其他 Agent 并发使用,历史不干净。后来改为发布专属会话,阶段 0 创建、前置销毁重建、每次从零开始、发布后销毁——保证审计历史干净。

坑 6:外部依赖中断

发布进行到一半,CI 因为平台免费额度耗尽而失败(非代码问题)。此时 tag 已推送,重新执行发布会死于「tag 已存在」检查。恢复路径是:补跑该 tag 的 CI + 手动补建 Release 页(先确认不存在避免重复创建)。

教训:外部基础设施中断不是代码问题,不要改代码;要设计恢复路径。

第四步:基线校验作为强制前置门

用户补充了一个重要规则:任何发布步骤之前,先验证自上个版本以来的所有提交——

任何一项不符,立刻报告并终止发版。这相当于发布前的「体检」,确保要发布的内容是可审计、可追溯、可回滚的。

设计:执行模式与安全护栏

发布是高风险的,skill 设计了明确的执行模式:

结尾

一次发布演练,把分散的记忆固化成了一套可复用的流程资产。核心收获是:

  1. 权威内容只留一处,其他全部引用
  2. 发布是流程执行,不含代码评审
  3. Skill 必须经过真实演练验证,踩坑后回填
  4. 基线校验前置,不合规就终止
  5. 高风险操作要有执行模式和安全护栏

这套方法论不只适用于发布——任何「多阶段 + 高风险 + 需要 Agent 重复执行」的流程,都值得这样做。


Share this post on:

Previous Post
从 Token 注入到自管理执行器:设计一个跨 Agent 的 Todoist Skill
Next Post
一个需求从聊天到上线:AI Agent 驱动 Calendly 预约功能的全过程