Canary Watch

affaan-m/ECC/skills/canary-watch

by affaan-mef648e01899ba3e8dc6371642deaaf64b4477775No license275K starsListed Oct 9, 2026Updated Oct 9, 2026Repository updated 4 days ago

Use this skill to 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. Smoke / canary / post-deploy verification.

Instructions onlyDevOps & Cloud
AI-generated overview

Monitors a deployed URL after releases, checking HTTP status, console errors, performance, assets and SSE streams for regressions.

What it does
Canary Watch performs post-deploy verification of a deployed URL, running a single pass or a sustained loop over a set window. It checks HTTP status, new console errors, network and API failures, performance metrics such as LCP and CLS against a baseline, key page content, static asset responses, and SSE stream connectivity. It applies critical, warning and info thresholds and produces a markdown canary report with status, baseline comparisons and deltas, optionally notifying via desktop or Slack/Discord webhook and logging to a local file.
When to use it
Use it after deploying to production or staging, after merging a risky pull request, after dependency upgrades, or during a launch window. It is also suited to confirming that a fix actually resolved the issue and to comparing staging against production.
Requirements
Instructions only; no scripts are shipped. It expects a deployed URL to monitor and, for regression comparisons, baseline values. Optional Slack or Discord webhook for notifications, desktop notification support, and write access to a local log path. Network access to the monitored site is required.

Canary Watch — Post-Deploy Monitoring

When to Use

  • After deploying to production or staging
  • After merging a risky PR
  • When you want to verify a fix actually fixed it
  • Continuous monitoring during a launch window
  • After dependency upgrades

How It Works

Monitors a deployed URL for regressions. Runs in a loop until stopped or until the watch window expires.

What It Watches

1. HTTP Status — is the page returning 200?2. Console Errors — new errors that weren't there before?3. Network Failures — failed API calls, 5xx responses?4. Performance — LCP/CLS/INP regression vs baseline?5. Content — did key elements disappear? (h1, nav, footer, CTA)6. API Health — are critical endpoints responding within SLA?7. Static Assets — are JS, CSS, image, and font requests returning 2xx/3xx with expected content types?8. SSE Streams — do event-stream endpoints connect and receive an initial event or heartbeat?

Watch Modes

Quick check (default): single pass, report results

/canary-watch https://myapp.com

Sustained watch: check every N minutes for M hours

/canary-watch https://myapp.com --interval 5m --duration 2h

Diff mode: compare staging vs production

/canary-watch --compare https://staging.myapp.com https://myapp.com

Alert Thresholds

yaml
critical:  # immediate alert  - HTTP status != 200  - Console error count > 5 (new errors only)  - LCP > 4s  - API endpoint returns 5xx  - Static asset returns 4xx/5xx  - SSE endpoint cannot connect or drops before first heartbeat
warning:   # flag in report  - LCP increased > 500ms from baseline  - CLS > 0.1  - New console warnings  - Response time > 2x baseline  - Static asset content type changed unexpectedly  - SSE heartbeat latency > 2x baseline
info:      # log only  - Minor performance variance  - New network requests (third-party scripts added?)

Notifications

When a critical threshold is crossed:

  • Desktop notification (macOS/Linux)
  • Optional: Slack/Discord webhook
  • Log to ~/.claude/canary-watch.log

Output

markdown
## Canary Report — myapp.com — 2026-03-23 03:15 PST
### Status: HEALTHY ✓
| Check | Result | Baseline | Delta ||-------|--------|----------|-------|| HTTP | 200 ✓ | 200 | — || Console errors | 0 ✓ | 0 | — || LCP | 1.8s ✓ | 1.6s | +200ms || CLS | 0.01 ✓ | 0.01 | — || API /health | 145ms ✓ | 120ms | +25ms || Static assets | 42/42 ✓ | 42/42 | — || SSE /events | connected ✓ | connected | +80ms heartbeat |
### No regressions detected. Deploy is clean.

Integration

Pair with:

  • /browser-qa for pre-deploy verification
  • Hooks: add as a PostToolUse hook on git push to auto-check after deploys
  • CI: run in GitHub Actions after deploy step

Source and attribution

Source:affaan-m/ECCinskills/canary-watchat commitef648e0

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal