# 发布后可视化监控 (canary)

> 部署后用浏览器定时访问线上页面，截图并对比控制台错误、加载时间和失效链接，与基线比较后输出健康报告。

- 分类: [监控与运维](https://www.myskills.tools/zh/categories/monitoring-ops/)
- 来源: 社区 · Garry Tan
- 代码仓库: https://github.com/garrytan/gstack/tree/main/canary (commit 3e4240a · v1.0.0)
- SKILL.md: https://github.com/garrytan/gstack/blob/main/canary/SKILL.md
- 安装命令: `npx skills add garrytan/gstack --skill canary`
- 许可证: MIT
- 兼容工具: Claude Code, Codex, Cursor, Copilot
- 权限: read-repo ✓, write-files ✓, shell ✓, network ✓
- 状态: 扫描通过
- 规则扫描无法覆盖所有风险，安装前请阅读此技能的 SKILL.md，确认权限后再使用。
- ⚠ 优先使用 Aside 驱动用户真实浏览器及其登录会话；回退方案首次需运行 ./setup 构建浏览器，可能安装 bun。

## 核心规则

只对相对基线的变化告警，且问题须在连续两次及以上检查中持续出现。

## 执行阶段

1. **准备与基线** — 创建 .gstack/canary-reports/ 目录；使用 --baseline 时在部署前采集各页面截图、控制台错误、加载时间和文本快照。
2. **确定监控页面** — 从导航中自动发现同源链接，取前 5 个加首页，请用户确认；无基线时先做一次起始快照。
3. **循环监控** — 在设定时长内每 60 秒检查各页面并与基线比较，严重或高级别问题连续两次出现时立即询问用户如何处理。
4. **健康报告** — 给出“健康、降级、故障”结论，将 Markdown 和 JSON 报告存入 .gstack/canary-reports/，部署健康时可更新基线。

## 权限说明（据 SKILL.md 整理）

| 能力 | 是否需要 | 说明 |
|---|---|---|
| 文件写入 | 部分需要 | 只写入 .gstack/canary-reports/ 下的截图、基线和报告，以及 gstack 状态目录中的历史记录；除非用户要求，否则不改代码。 |
| 命令执行 | 部分需要 | 运行 aside repl 或 gstack 自带的无头浏览器、gstack 辅助脚本以及复制截图等命令。 |
| 网络外发 | 部分需要 | 仅访问用户指定的站点及同源链接；在非本地站点执行提交等修改操作前须先征得同意。 |

## SKILL.md 头部信息（YAML）

```yaml
---
name: canary
preamble-tier: 2
version: 1.0.0
description: Post-deploy canary monitoring. (gstack)
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob
  - AskUserQuestion
triggers:
  - monitor after deploy
  - canary check
  - watch for errors post-deploy
---
```

首页: https://www.myskills.tools/zh/ · URL: https://www.myskills.tools/zh/skills/canary/
