<!-- title: 部署之后：监控与CI自愈Skill横评 -->

# 部署之后：canary 监控与 CI 自愈，工作流自动化 Skill 的下半场

## 概述

部署类 Skill（azure-deploy、vercel-deploy 这些“上线按钮”）前几轮已经拆过，本期换一个切口：**部署之后发生了什么**。用 SkillsMP（截至 2026-08-29 收录 2,806,826 个 SKILL.md）以 deploy / monitoring / github actions / vercel 四组关键词做交叉扫描，捞出 8 个工作流自动化新面孔：两个部署后监控 Skill（`canary-watch` 与 gstack 的 `canary`，同一任务两种设计哲学，本文重点对拆）、一个多 Agent CI 自愈机器人控制面（openclaw 的 `clawsweeper`）、Next.js 仓库内置的发布工程双件套（`create-pr` + `backport-pr`），以及 `github-ops`、`deployment-patterns`、`openclaw-ci-limits` 三块胶水。核心发现：生态重心正从“怎么部署”移向“部署之后谁值守”，而答案分成轻量指令型、平台框架型、仓库内置型三条路线。

## 评测对比表

权重：功能完整度 25%、设计质量 25%、实战效果 20%、上手难度 15%（分数越高越易上手）、社区活跃度 15%。

| Skill | 来源仓库 | 功能完整度 | 设计质量 | 实战效果 | 上手难度 | 社区活跃度 | 加权总分 |
|---|---|---|---|---|---|---|---|
| canary-watch | affaan-m/ECC | 4.5 | 5.0 | 4.0 | 5.0 | 3.0 | **4.4** |
| clawsweeper | openclaw/openclaw | 5.0 | 5.0 | 4.0 | 1.0 | 4.0 | **4.1** |
| create-pr | vercel/next.js | 4.0 | 4.0 | 4.0 | 3.5 | 5.0 | **4.1** |
| backport-pr | vercel/next.js | 4.0 | 4.0 | 4.0 | 3.0 | 5.0 | **4.0** |
| canary | garrytan/gstack | 5.0 | 3.5 | 3.5 | 2.0 | 4.0 | **3.7** |
| github-ops | affaan-m/ECC | 4.0 | 3.5 | 3.5 | 4.5 | 3.0 | **3.7** |
| deployment-patterns | affaan-m/ECC | 3.5 | 3.5 | 3.0 | 5.0 | 3.0 | **3.6** |
| openclaw-ci-limits | openclaw/openclaw | 4.0 | 4.0 | 3.0 | 1.0 | 4.0 | **3.4** |

## 双雄对拆：同样盯部署，一个 100 行，一个带整个框架

部署后监控这个赛道本期最有趣：两个叫 canary 的 Skill，几乎同一时间活跃（SkillsMP 索引显示 gstack/canary 更新于 2026-08-19），设计思路却完全相反。

### canary-watch：纯指令流的教科书（ECC）

`affaan-m/ECC` 仓库的 `canary-watch` 全文约百行，零脚本、零外部依赖，却把该有的都给了：

**触发词设计**——description 一句话写满使用时机："monitor and verify a deployed URL after releases — checks HTTP endpoints, SSE streams, static assets, console errors, and performance regressions after deploys, merges, or dependency upgrades"。部署、合入风险 PR、升级依赖三个触发场景全埋进 description，模型匹配时不用猜。

**监控面**——8 项检查清单直接列在正文里：HTTP 状态、控制台错误、网络失败、性能（LCP/CLS/INP 对比基线）、关键内容（h1/nav/footer/CTA 是否消失）、API 健康、静态资源、SSE 流。最后两项（静态资源内容类型、SSE 心跳）是同类工具里少见的细节。

**三种模式**用三条命令讲清：

```
/canary-watch https://myapp.com                        # 快检（默认单轮）
/canary-watch https://myapp.com --interval 5m --duration 2h   # 持续盯 2 小时
/canary-watch --compare https://staging.myapp.com https://myapp.com  # 双环境对比
```

**阈值分级**是一段可直接照抄的 YAML：critical（HTTP 非 200、新控制台错误 >5、LCP >4s、API 5xx）立即告警；warning（LCP 涨超 500ms、CLS >0.1、响应时间 2 倍基线）进报告；info 只记日志。把“什么时候该喊人”写成数值，是这类 Skill 和一句“帮我看看网站挂没挂”的本质区别。

**短板**也明显：没有配套脚本，持续监控循环全靠 Agent 自觉执行；活跃度存疑——它是个人大杂烩仓库 ECC 的一部分，独立社区反馈未见。

### gstack 的 canary：平台型重型方案

Garry Tan（YC 总裁）维护的 gstack 框架里，`canary` 是另一个极端。SKILL.md 开头就是几十行 **Preamble bash**：更新检查、会话追踪、遥测计数、学习记录加载、路由检测，每次触发都要跑一遍。正文才是监控本体，但本体做得确实扎实：

- **截图证据链**：用内置 browse daemon 周期性截图，"Screenshots are evidence. Every alert includes a screenshot path. No exceptions."（每条告警必须附截图路径，无一例外）
- **基线哲学**：`--baseline` 在部署前先拍快照，之后"Alert on changes, not absolutes"（告警看变化不看绝对值）——基线里本来就有 3 个控制台错误就没问题，新增 1 个才告警；"Don't cry wolf"规则要求异常连续 2 轮以上才报，避免抖动误报
- **分级处置**：CRITICAL/HIGH 告警会通过 AskUserQuestion 给出四个选项——立即调查 / 继续观察 / 回滚 / 判定误报
- **收尾**：健康则提议更新基线，报告落盘 `.gstack/canary-reports/{date}-canary.md` + `.json`

问题在框架包袱：首次运行要过 telemetry 询问、proactive 询问，还会提议把 "Skill routing" 规则追加进项目 CLAUDE.md 并**自动 git commit**；安装依赖 bun（脚本里连 bun 安装脚本都做了 SHA 校验，BUN_VERSION 1.3.10 硬编码）。对个人开发者这套是“全托管”，对团队仓库则是强侵入。设计质量分因此从功能侧的 5 分被拉到 3.5。

### 选型结论

只想在部署后多一道保险：canary-watch，复制即用，十分钟见效。想要截图级证据、基线管理、结构化报告，且不介意把整个 gstack 框架请进 `~/.claude/skills/`：canary。两家在“告警该基于基线变化而非绝对值”上达成了一致——这大概是本周生态里最值得抄的一条监控设计共识。

## clawsweeper：让 AI 机器人合 PR 之前，先读这份治理范本

openclaw 仓库内置的 `clawsweeper`（索引更新 2026-08-07）不是给你装的，它是 openclaw 自己仓库的“值守机器人控制面”——但它的 SKILL.md 是目前多 Agent 自动修复写得最完整的风险控制范本，值得整段抄进你自己的设计：

- **门控默认关闭**：`CLAWSWEEPER_ALLOW_EXECUTE` / `ALLOW_FIX_PR` / `ALLOW_MERGE` / `ALLOW_AUTOMERGE` 四个 GitHub 变量就是四道闸门，"Open execution windows intentionally and close them after the run"——执行窗口要有意打开、用完关闭
- **写操作归确定性脚本**：评论、标签、推分支、开 PR、合并全部由脚本经短寿命 GitHub App token 执行，"Codex workers do not get mutation credentials"——干活的模型拿不到写凭证
- **修复有上限**：`CLAWSWEEPER_MAX_REPAIRS_PER_PR=10`、`MAX_REPAIRS_PER_HEAD=1`，防止修复循环打转
- **automerge 五重条件**：机器评审必须通过当前 HEAD、checks 全绿、GitHub 判定可合并、无人审标签、非 draft、门全开，缺一即只打 `merge-ready` 标签而不合并
- **replacement PR 协议**：遇到不可编辑的陈旧 PR，开新 PR 替代并保留原作者 Co-authored-by 署名，替代 PR 开出后才关原 PR
- **安全边界独立**：CVE、泄漏密钥、SSRF、提权类发现一律路由到中央安全流程，禁止进自动修复通道

一句 "Keep the broom small: one cluster, one branch, one PR"（扫帚要小：一次只扫一个簇、一个分支、一个 PR）可以作为所有自治机器人 Skill 的座右铭。短板不言自明：离开 openclaw 仓库它毫无用处，上手难度只能给 1 分。

## 发布工程双件套：Next.js 把 CI 流程写成了 Skill

vercel/next.js 仓库的 `.agents/skills/` 下有两个发布工程 Skill（据 SkillsMP 索引，均更新于 2026-07-10）：

**create-pr**——不只是“开个 PR”：覆盖分支/提交/推送全流程规范、`.github/pull_request_template.md` 模板填充、`codex/` 分支命名约定，甚至写了“从 `gh pr create` 失败或模板问题中恢复”的排障路径。边界场景处理是它和通用 git Skill 的差距所在。

**backport-pr**——把“从 canary 回移到旧版本分支（如 next-16-2）”这个发布工程师的日常固化成五步：找合并 commit → 从目标 release 分支建回移分支 → 从 canary cherry-pick → 验证 → 以 release 分支为 base 开 PR。触发词里 "backport / cherry-pick / backport PR" 三个同义词全占。

这对 Skill 的意义超出其本身：大厂开始把**只在自家仓库成立的流程知识**写成 Skill 随仓库分发，贡献者 clone 下来就继承整套发布纪律。代价是出了 next.js 仓库基本无效。

## 三块胶水与一个趋势

**github-ops**（ECC）：gh CLI 伞状 Skill，Issue 分诊、PR 管理、CI 操作、发布、安全监控一锅端。覆盖面广是优点也是触发风险——什么都能匹配往往意味着什么都匹配不精，设计上不如单一职责的 canary-watch 锋利。

**deployment-patterns**（ECC）：知识库型，蓝绿/金丝雀/滚动部署、健康检查、回滚清单。有趣的是它在 SkillsMP 上有 zh-CN/ja-JP/tr/es 多语言版本并存——同一 Skill 的翻译件各自被索引，是“技能多语言分发”这个新现象的活样本。

**openclaw-ci-limits**（openclaw）：治理自家 CI 容量的技能——runner 预算、fanout 上限、main-push 单飞、分片尺寸、`max-parallel`、CodeQL runner 摆位。它的 description 值得单独一说：直接把 `.github/workflows/*`、`docs/ci.md`、`CI flake`、`specificBuildId` 这些**文件路径和行话**塞进触发词。触发词设计正在从“描述场景”进化到“文件级路由”。

**趋势观察：仓库内置 Skill 浪潮**。本期扫描中，`microsoft/PowerToys` 的 `ui-tests-pipeline-ci`（更新 2026-08-22）开头就写明 "Microsoft FTE-only workflow"——Skill 成了承载组织内部权限边界的载体；`microsoft/vscode` 的 `otel` 管自家的 OpenTelemetry 埋点规范；连清单仓库 `vinta/awesome-python` 都养了个 `review-prs`（从 diff 粗筛、把准入判断委托给 audit-the-list、再合并或关闭）。加上 anthropics/skills 官方仓库本轮已列出 academy-guide、discernment-nudge 等 20 个技能，Skill 正在从个人效率工具变成仓库基础设施。

## 部署之后的全链路覆盖

```mermaid
flowchart TD
    A["PR 合入 main"] --> B["create-pr<br/>分支/提交/PR 规范化"]
    B --> C["部署（厂商 deploy Skill）"]
    C --> D["部署后 10 分钟黄金窗口"]
    D --> E["canary-watch 快检<br/>或 gstack /canary 持续监控"]
    E -->|"HEALTHY"| F["更新 baseline，发布完成"]
    E -->|"CRITICAL / HIGH"| G["告警：调查 / 继续 / 回滚"]
    G --> H["clawsweeper fix ci<br/>生成自愈修复 PR"]
    H --> I["exact-head 评审 + 四道门控"]
    I -->|"全过"| J["automerge 合入"]
    I -->|"未过"| K["human-review 标签，升级人工"]
    C --> L["旧版本需要回移"]
    L --> M["backport-pr<br/>cherry-pick 到 release 分支"]
    M --> B
```

## 安装 / 使用命令

```bash
# canary-watch（复制即用）
git clone --depth 1 https://github.com/affaan-m/ECC /tmp/ecc
cp -r /tmp/ecc/skills/canary-watch ~/.claude/skills/
# 用法：/canary-watch https://myapp.com --interval 5m --duration 2h

# github-ops、deployment-patterns（同源，同样复制安装）
cp -r /tmp/ecc/skills/github-ops ~/.claude/skills/
cp -r /tmp/ecc/skills/deployment-patterns ~/.claude/skills/

# gstack canary（整套框架，含一次性构建）
git clone --depth 1 https://github.com/garrytan/gstack ~/.claude/skills/gstack
~/.claude/skills/gstack/setup
# 用法：先 /canary <url> --baseline 拍基线，部署后 /canary <url> 监控 10 分钟

# 仓库内置型（无法独立安装，clone 研究）
git clone --depth 1 https://github.com/openclaw/openclaw /tmp/openclaw
less /tmp/openclaw/.agents/skills/clawsweeper/SKILL.md     # 多Agent治理范本
less /tmp/openclaw/.agents/skills/openclaw-ci-limits/SKILL.md

git clone --depth 1 https://github.com/vercel/next.js /tmp/nextjs
less /tmp/nextjs/.agents/skills/backport-pr/SKILL.md       # 仅在 next.js 仓库内生效
less /tmp/nextjs/.agents/skills/create-pr/SKILL.md
```

## 推荐排行榜

- **综合（可安装）**：canary-watch > github-ops > deployment-patterns
- **设计范本（值得抄写法）**：clawsweeper（多Agent治理）> canary-watch（阈值分级）> openclaw-ci-limits（文件级触发词）
- **开箱即用**：canary-watch、deployment-patterns（零依赖复制安装）
- **大厂内参**：backport-pr / create-pr（发布工程）、PowerToys ui-tests-pipeline-ci（FTE 权限边界）
- **不推荐盲目上**：gstack canary——能力最强但侵入性最高，适合已接受 gstack 全家桶的团队

一句话收束：部署 Skill 解决“上线”，本期这批 Skill 解决“上线之后”——监控盯变化、自愈有门控、回移有流程，工作流自动化的下半场比拼的不是谁动作多，而是谁敢让 Agent 碰生产环境时门槛设得对。

## 参考来源

1. [SkillsMP — Agent Skills Marketplace](https://skillsmp.com) — 收录 2,806,826 个 SKILL.md（2026-08-29 首页数据），deploy/monitoring/vercel 关键词检索入口
2. [canary-watch SKILL.md 原文](https://raw.githubusercontent.com/affaan-m/ECC/main/skills/canary-watch/SKILL.md) — affaan-m/ECC 仓库，本文逐段拆解底稿
3. [gstack canary SKILL.md 原文](https://raw.githubusercontent.com/garrytan/gstack/main/canary/SKILL.md) — garrytan/gstack，Preamble 机制与监控七阶段
4. [clawsweeper SKILL.md 原文](https://raw.githubusercontent.com/openclaw/openclaw/main/.agents/skills/clawsweeper/SKILL.md) — openclaw/openclaw，门控与 token 边界设计
5. [SkillsMP monitoring 检索结果](https://skillsmp.com/search?q=monitoring) — canary/openclaw-ci-limits/ui-tests-pipeline-ci 等条目及更新日期
6. [anthropics/skills 官方仓库](https://github.com/anthropics/skills) — 官方 20 个技能目录清单

> [!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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
