[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EGW446MBVGTRRN9M0EW2AD":3,"skill-same:01M6EGW446MBVGTRRN9M0EW2AD":58},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6EGW446MBVGTRRN9M0EW2AD","canary-watch",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faffaan-m\u002Feverything-claude-code\u002Fcanary-watch\u002FSKILL.md",[],[18,19,20],"canary","watch","canary watch","2026-11-10 10:12:30",false,"# Canary Watch — Post-Deploy Monitoring\n\n## When to Use\n\n- After deploying to production or staging\n- After merging a risky PR\n- When you want to verify a fix actually fixed it\n- Continuous monitoring during a launch window\n- After dependency upgrades\n\n## How It Works\n\nMonitors a deployed URL for regressions. Runs in a loop until stopped or until the watch window expires.\n\n### What It Watches\n\n```\n1. HTTP Status — is the page returning 200?\n2. Console Errors — new errors that weren't there before?\n3. Network Failures — failed API calls, 5xx responses?\n4. Performance — LCP\u002FCLS\u002FINP regression vs baseline?\n5. Content — did key elements disappear? (h1, nav, footer, CTA)\n6. API Health — are critical endpoints responding within SLA?\n```\n\n### Watch Modes\n\n**Quick check** (default): single pass, report results\n```\n\u002Fcanary-watch https:\u002F\u002Fmyapp.com\n```\n\n**Sustained watch**: check every N minutes for M hours\n```\n\u002Fcanary-watch https:\u002F\u002Fmyapp.com --interval 5m --duration 2h\n```\n\n**Diff mode**: compare staging vs production\n```\n\u002Fcanary-watch --compare https:\u002F\u002Fstaging.myapp.com https:\u002F\u002Fmyapp.com\n```\n\n### Alert Thresholds\n\n```yaml\ncritical:  # immediate alert\n  - HTTP status != 200\n  - Console error count > 5 (new errors only)\n  - LCP > 4s\n  - API endpoint returns 5xx\n\nwarning:   # flag in report\n  - LCP increased > 500ms from baseline\n  - CLS > 0.1\n  - New console warnings\n  - Response time > 2x baseline\n\ninfo:      # log only\n  - Minor performance variance\n  - New network requests (third-party scripts added?)\n```\n\n### Notifications\n\nWhen a critical threshold is crossed:\n- Desktop notification (macOS\u002FLinux)\n- Optional: Slack\u002FDiscord webhook\n- Log to `~\u002F.claude\u002Fcanary-watch.log`\n\n## Output\n\n```markdown\n## Canary Report — myapp.com — 2026-03-23 03:15 PST\n\n### Status: HEALTHY ✓\n\n| Check | Result | Baseline | Delta |\n|-------|--------|----------|-------|\n| HTTP | 200 ✓ | 200 | — |\n| Console errors | 0 ✓ | 0 | — |\n| LCP | 1.8s ✓ | 1.6s | +200ms |\n| CLS | 0.01 ✓ | 0.01 | — |\n| API \u002Fhealth | 145ms ✓ | 120ms | +25ms |\n\n### No regressions detected. Deploy is clean.\n```\n\n## Integration\n\nPair with:\n- `\u002Fbrowser-qa` for pre-deploy verification\n- Hooks: add as a PostToolUse hook on `git push` to auto-check after deploys\n- CI: run in GitHub Actions after deploy step\n\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faffaan-m\u002Feverything-claude-code\u002Fcanary-watch",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill canary-watch",{"tool":40,"command":41},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill canary-watch",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill canary-watch","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faffaan-m\u002Feverything-claude-code\u002Fcanary-watch\u002FSKILL.md",true,[48,54],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"references\u002Fcontext-budget.md","REFERENCE","参考文档",4927,"https:\u002F\u002Fgithub.com\u002Fbrunosps\u002Fwinbox-gui\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdw-memory\u002Freferences\u002Fcontext-budget.md",{"path":55,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":56,"sourceHtmlUrl":57},"references\u002Finstincts.md",2059,"https:\u002F\u002Fgithub.com\u002Fbrunosps\u002Fwinbox-gui\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdw-memory\u002Freferences\u002Finstincts.md",[59,73,83,92,98,105],{"skillNo":60,"name":61,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":69,"publishedAt":21},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[64],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[70,71,72],"model","model hierarchy","model hierarchy skill",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":79,"publishedAt":21},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[78],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},[80,81,82],"MCP","zoom","zoom mcp",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":21},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[89,90,91,81],"sdk","zoom apps sdk","apps",{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":21},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[94],{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":104,"publishedAt":21},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[103],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},[100],{"skillNo":106,"name":107,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":21},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[107]]