canary

运维部署 社区 v1.0.0
解读按原文结构重写,命令、链接、术语均保留;右侧可核对作者原始 SKILL.md

设计思路

canary 是给 Web 部署做「金丝雀视觉巡检」的:发布上线后,它会在后台周期性截屏、对比基线、抓控制台报错,不健康就告警,让你不用盯着浏览器手动 F5。设计原则写得很实在:对相对变化告警,不对绝对值告警——2×baseline 才算回归,1.5× 还在正常波动;仅在连续 ≥2 次 check 都异常时才报,避开偶发抖动。

工作流(七阶段)

  1. Setup:跑前置健康检查,确认 $B daemon 在线。
  2. Baseline:第一次跑用 --baseline 建立基线截图;没有基线时只能当健康检查用。
  3. Monitor:每隔 N 秒抓页面截图 + 控制台 + 网络。
  4. Alert:发现异常则按 critical/high/medium 级别报,每条带截图路径作为证据——「截图就是证据,没有例外」。
  5. Decide:异常时让用户在 4 个选项里选——停止巡检 / 继续观察 / 立即回滚 / 标记为误报。
  6. Health Report:跑完打一份 CANARY REPORT,包含每页状态、报警数、平均加载耗时;写到 .gstack/canary-reports/{date}-canary.md + .json,并 append 一条 JSONL 让 review dashboard 消费。
  7. Baseline Update:如果一切健康,问一下要不要把当前截图升为新基线。

适合谁

  • 部署后想自动监控的小团队(没有 Datadog 这类基础设施)
  • 视觉回归敏感的前端项目
  • 做功能开关 rollout 时想观察 1~5 分钟的工程师

不适合

  • 后端无 UI 的服务——这工具看不到东西
  • 需要长期监控(24×7)——这是巡检不是监控系统

配套

browse(驱动 Chromium)、land-and-deploy(部署完触发巡检)、gstack-openclaw-retro(消费 dashboard 数据)连成 ship → canary → review 的链路。read-only——除非你明确让它修,它只观察不改代码。

流狐档案 作者与许可取自来源;运行、权限和网络为流狐检测或估算
流狐分类
运维部署
作者声明 Agent
未找到明确声明;不据此推断已兼容或已测试
静态检查
92 / 100 · 启发式扫描,不代表运行安全
作者 / 版本 / 许可
@garrytan · v1.0.0 · 未声明 license
流狐 Token 估算
较高消耗
流狐接入估算
需简单配置
是否需要外部 API Key
未发现要求
检测到的系统要求
macOS · Linux · Windows
底层运行要求
Bun
检测到的文件与系统行为
  • 只读
  • 允许写入 / 修改
  • Shell 执行
  • 读取环境变量
检测到的网络行为
允许外网请求
安装命令数
无(仅作为资料)

档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

输出预览 canary.preview
# Writing Style (skip entirely if EXPLAINLEVEL: terse appears in the preamble echo OR the user's current message explicitly requests terse / no-explanations output)

- Gloss curated jargon on first use per skill invocation, even if the user pasted the term.
- Frame questions in outcome terms: what pain is avoided, what capability unlocks, what user experience changes.
- Use short sentences, concrete nouns, active voice.
- Close decisions with user impact: what the user sees, waits for, loses, or gains.
- User-turn override wins: if the current message asks for terse / no explanations / just the answer, skip this section.
- Terse mode (EXPLAIN_LEVEL: terse): no glosses, no outcome-framing layer, shorter responses.

讨论

基于 GitHub Discussions。登录 GitHub 即可参与讨论、点赞、订阅更新。