user-scope-skills/canary/SKILL.md
Use after deploying code to production or staging for real-time monitoring with baseline comparison and health scoring. Observation only — no code changes during monitoring. Triggers: "/canary", "canary check", "post-deploy watch", "배포 후 모니터링", "카나리", "배포 확인", "deploy monitoring", "health check after deploy", "배포 후 괜찮아?", "배포 상태 확인"
npx skillsauth add onejaejae/skills canaryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Post-deployment real-time monitoring with baseline comparison and health scoring.
OBSERVATION ONLY.
No code changes. No service restarts. No hotfixes. No debugging.
Canary watches. It does not act.
If the deployment is broken, report it and suggest /investigate or /bugfix. Do NOT start fixing.
| Skill | Purpose | Pick when | |-------|---------|-----------| | /canary | Post-deploy monitoring with health scoring | Just deployed, want to verify stability | | /investigate | Root cause debugging | Found a bug, need to understand why | | /bugfix | Quick fix for known issue | Know the root cause, need to fix |
/canary <URL> # Monitor specific URL
/canary --baseline # Capture baseline only (before deploy)
/canary --duration 5m # Monitor for 5 minutes (default: 3m)
/canary --interval 30 # Check every 30 seconds (default: 60s)
Phase 0: Setup (parse args, detect tools)
↓
Phase 1: Baseline (capture or load existing)
↓
Phase 2: Monitoring Loop
↓ repeat at interval until duration expires
↓ each cycle: check → compare → score → flag/alert
↓
Phase 3: Final Report
.dev/canary/ directory if neededTool detection:
chromux available → FULL MODE (screenshots, console, performance)
chromux unavailable → HTTP-ONLY MODE (curl-based, no screenshots)
If --baseline flag or no existing baseline:
FULL MODE (chromux):
# Navigate and capture
chromux goto <URL>
chromux screenshot baseline.png
chromux console # capture console errors
chromux js "JSON.stringify(performance.timing)" # performance metrics
HTTP-ONLY MODE (curl):
curl -s -o /dev/null -w '{"status":%{http_code},"time":%{time_total},"size":%{size_download}}' <URL>
Save baseline to .dev/canary/{timestamp}-baseline.md:
# Canary Baseline
- URL: <url>
- Timestamp: <iso8601>
- Mode: FULL / HTTP-ONLY
- HTTP Status: 200
- Response Time: 0.234s
- Console Errors: 0
- Screenshot: baseline.png (FULL mode only)
If --baseline flag: Stop after capturing. Do not proceed to monitoring.
Repeat every interval seconds until duration expires:
Step 1: Capture current state (same metrics as baseline)
Step 2: Compare against baseline (change-based, NOT absolute)
Step 3: Calculate Health Score (read references/health-score-calc.md)
Step 4: Determine status
Step 5: Apply Transient Tolerance (4-state machine)
FLAG → first detection, record internally, do NOT alert
ALERT → same anomaly in NEXT cycle, report to user (fires ONCE)
ACTIVE → same anomaly persists after ALERT, NO repeated alert (deduplicated)
CLEAR → anomaly disappears, reset state
State transitions:
Alert deduplication rule: Once an anomaly is ALERTed, it transitions to ACTIVE. No repeated alerts for the same anomaly. A new ALERT only fires if a different anomaly appears or severity worsens (e.g., DEGRADED → BROKEN).
No exceptions to transient tolerance:
Step 6: Report cycle result
Cycle 3/5: HEALTHY (95/100) | Status: 200 | Time: 0.245s (+5%) | Flags: 0
Save to .dev/canary/{timestamp}-report.md:
# Canary Monitoring Report
## Summary
- URL: <url>
- Duration: 3m (5 cycles at 60s interval)
- Mode: FULL / HTTP-ONLY
- Final Status: HEALTHY / DEGRADED / BROKEN
- Final Score: XX/100
## Timeline
| Cycle | Time | Status | Score | HTTP | Response Time | Alerts |
|-------|------|--------|-------|------|---------------|--------|
| 1 | 14:30:00 | HEALTHY | 100 | 200 | 0.234s | - |
| 2 | 14:31:00 | HEALTHY | 95 | 200 | 0.312s | - |
| 3 | 14:32:00 | DEGRADED | 70 | 200 | 1.205s | FLAG: perf -20 |
| 4 | 14:33:00 | DEGRADED | 65 | 200 | 1.150s | ALERT: perf degradation confirmed |
| 5 | 14:34:00 | HEALTHY | 90 | 200 | 0.280s | CLEAR: perf recovered |
## Alerts Fired
- [14:33:00] Performance degradation: response time 1.15s (baseline 0.234s, +392%)
## Baseline vs Final
| Metric | Baseline | Final | Change |
|--------|----------|-------|--------|
| HTTP Status | 200 | 200 | - |
| Response Time | 0.234s | 0.280s | +20% |
| Console Errors | 0 | 0 | - |
## Verdict
HEALTHY — Minor transient performance spike in cycles 3-4, recovered by cycle 5.
No action needed.
Present summary to user:
🟢 HEALTHY (90/100) after 5 cycles
- 1 transient perf spike (recovered)
- 0 confirmed alerts
Report: .dev/canary/{timestamp}-report.md
Or if issues found:
🟡 DEGRADED (65/100) after 5 cycles
- 2 confirmed alerts: perf degradation, new console error
- Suggest: /investigate for root cause analysis
Report: .dev/canary/{timestamp}-report.md
/investigate or /bugfix → STOP (report and suggest, don't do)| Excuse | Reality | |--------|---------| | "프로덕션이 죽었으니 바로 고쳐야 합니다" | Canary reports. User decides to fix. Suggest /bugfix. | | "500이면 당연히 바로 알려야죠" | Transient tolerance. 2회 연속 확인 후 알림. | | "baseline 없어도 절대값으로 판단할 수 있잖아요" | 첫 체크를 baseline으로 사용. 비교 기준 없이 판단 금지. | | "빠르게 한 번만 확인하면 됩니다" | 그건 canary가 아니라 ad-hoc check. 최소 1회 baseline + 1회 체크. | | "문제를 발견했으니 바로 조사하겠습니다" | Canary의 scope는 모니터링. 조사는 /investigate로. | | "모니터링 시간이 너무 길어요" | duration 파라미터를 조정. 기본 3분은 최소 기준. |
testing
CLAUDE.md 기반 환경 안전 체크. 작업 시작 전에 프로젝트의 안전 규칙, 컨벤션, 환경 설정을 자동 검증하여 CLEAR/WARNING/BLOCKED 상태를 보고한다. /check가 "변경 후 검증"이라면, /pre-flight는 "작업 전 환경 검증"이다. Use PROACTIVELY before starting work, especially after switching branches, pulling changes, or resuming a session. Also use when explicitly asked: "/pre-flight", "프리플라이트", "환경 체크", "작업 전 점검", "안전 체크", "environment check", "pre-flight check", "시작해도 돼?", "환경 괜찮아?", "safety check", "DB 확인", "설정 확인", "config check".
tools
PR 리뷰 워크플로우와 체크리스트를 제공하는 스킬. "PR 리뷰해줘", "코드 리뷰 해줘", "이 PR 봐줘", "review this PR" 등 PR 리뷰 요청 시 사용. GitHub/GitLab PR URL 또는 로컬 브랜치 diff를 기반으로 체계적이고 일관된 리뷰를 수행. 코드 품질, 안정성/보안, 성능, 테스트, 문서화 관점에서 건설적인 피드백 제공.
documentation
PR review comments를 체계적으로 처리하는 skill. Use when: (1) PR에 동료의 리뷰가 달렸을 때, (2) 여러 리뷰를 한 번에 처리하고 싶을 때, (3) 수정 후 commit 링크가 포함된 reply를 자동으로 추가하고 싶을 때
tools
PR diff를 받아 코드 리뷰 자동 요약을 생성하는 스킬. 핵심 변경점을 3줄로 요약하고, 변경 파일별로 what changed / why it matters / risk level을 정리. Use when: "PR 요약", "diff 요약", "PR 변경점 정리", "코드 변경 요약", "summarize PR", "PR summary", "diff summary", "what changed in this PR", "변경점 요약해줘", "PR 핵심 정리", "리뷰 요약"