Install any skill in seconds. Free to start, no credit card required.
Get Started Free →- After deploying to production or staging
.claude/skills/loulanyue-canary-watch-post-deploy-monitoring/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -44% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -13% | 0% |
Monitors a deployed URL for regressions. Runs in a loop until stopped or until the watch window expires.
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?Quick check (default): single pass, report results
/canary-watch https://myapp.comSustained watch: check every N minutes for M hours
/canary-watch https://myapp.com --interval 5m --duration 2hDiff mode: compare staging vs production
/canary-watch --compare https://staging.myapp.com https://myapp.comyamlcritical: # immediate alert - HTTP status != 200 - Console error count > 5 (new errors only) - LCP > 4s - API endpoint returns 5xx warning: # flag in report - LCP increased > 500ms from baseline - CLS > 0.1 - New console warnings - Response time > 2x baseline info: # log only - Minor performance variance - New network requests (third-party scripts added?)
When a critical threshold is crossed:
~/.claude/canary-watch.logmarkdown## 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 | ### No regressions detected. Deploy is clean.
Pair with:
/browser-qa for pre-deploy verificationgit push to auto-check after deploys| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 11,721 | 8,619 | -26% | 1 | 1 | 0% | 2,096 | 2,147 | +2% | 0 | 0 | — |
case-02 | fail→fail | 10,743 | 12,807 | +19% | 1 | 1 | 0% | 1,900 | 2,946 | +55% | 0 | 0 | — |
case-03 | fail→pass | 16,793 | 11,781 | -30% | 1 | 1 | 0% | 2,746 | 2,750 | +0% | 0 | 0 | — |
case-04 | fail→pass | 9,439 | 2,969 | -69% | 1 | 1 | 0% | 1,766 | 1,165 | -34% | 0 | 0 | — |
case-05 | fail→pass | 12,983 | 2,723 | -79% | 1 | 1 | 0% | 2,060 | 1,157 | -44% | 0 | 0 | — |
case-06 | pass→pass | 8,523 | 2,596 | -70% | 1 | 1 | 0% | 1,423 | 1,157 | -19% | 0 | 0 | — |
case-07 | fail→pass | 8,692 | 2,855 | -67% | 1 | 1 | 0% | 1,327 | 1,154 | -13% | 0 | 0 | — |
case-08 | pass→pass | 5,231 | 2,544 | -51% | 1 | 1 | 0% | 849 | 1,100 | +30% | 0 | 0 | — |
case-09 | pass→pass | 7,581 | 2,073 | -73% | 1 | 1 | 0% | 1,252 | 946 | -24% | 0 | 0 | — |
case-10 | pass→pass | 7,446 | 2,874 | -61% | 1 | 1 | 0% | 1,204 | 1,210 | +0% | 0 | 0 | — |
case-11 | pass→pass | 5,871 | 1,916 | -67% | 1 | 1 | 0% | 936 | 1,026 | +10% | 0 | 0 | — |
case-12 | pass→pass | 9,620 | 2,894 | -70% | 1 | 1 | 0% | 1,503 | 1,178 | -22% | 0 | 0 | — |
case-13 | pass→pass | 6,430 | 4,121 | -36% | 1 | 1 | 0% | 954 | 1,143 | +20% | 0 | 0 | — |
case-14 | fail→pass | 26,579 | 1,659 | -94% | 1 | 1 | 0% | 1,875 | 901 | -52% | 0 | 0 | — |
case-15 | pass→pass | 13,712 | 1,891 | -86% | 1 | 1 | 0% | 2,081 | 996 | -52% | 0 | 0 | — |
case-16 | fail→pass | 9,684 | 1,967 | -80% | 1 | 1 | 0% | 1,572 | 900 | -43% | 0 | 0 | — |
case-17 | fail→pass | 10,743 | 3,740 | -65% | 1 | 1 | 0% | 1,785 | 1,309 | -27% | 0 | 0 | — |
case-18 | pass→pass | 8,555 | 7,775 | -9% | 1 | 1 | 0% | 1,397 | 1,999 | +43% | 0 | 0 | — |
case-19 | fail→pass | 14,677 | 7,558 | -49% | 1 | 1 | 0% | 2,278 | 1,778 | -22% | 0 | 0 | — |
case-20 | pass→pass | 10,358 | 8,996 | -13% | 1 | 1 | 0% | 1,882 | 2,310 | +23% | 0 | 0 | — |
case-21 | pass→pass | 10,244 | 7,160 | -30% | 1 | 1 | 0% | 1,912 | 1,981 | +4% | 0 | 0 | — |
case-22 | pass→pass | 7,741 | 7,146 | -8% | 1 | 1 | 0% | 1,516 | 2,152 | +42% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.