[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CWKCDJ9MRZ6VG4YQ0AFAP1":3,"skill-same:01M6CWKCDJ9MRZ6VG4YQ0AFAP1":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":31,"commitSha":32,"skillDirectory":5,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M6CWKCDJ9MRZ6VG4YQ0AFAP1","canary",null,"Canary deployment patterns","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fcanary\u002FSKILL.md",[],[5,18,19,20,21,22,23],"deployment","devops","opencode","engineer","patterns","canary deployment","2026-11-10 10:12:30",false,"---\nname: canary\ndescription: Canary deployment patterns\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: devops-engineer, platform-engineer\n  category: devops\n---\n\n## What I do\n\n- Implement gradual traffic shifting strategies\n- Create automated canary deployments with metric analysis\n- Design rollback automation based on health checks\n- Build observability dashboards for canary analysis\n- Integrate canary releases with CI\u002FCD pipelines\n- Configure intelligent traffic routing based on user segments\n\n## When to use me\n\n- When introducing new features to production\n- When validating infrastructure changes\n- When testing performance under real load\n- When deploying to multiple regions progressively\n- When working with A\u002FB testing alongside deployments\n- When reducing blast radius of potential issues\n\n## Key Concepts\n\n### Flagger Canary CRD\n\n```yaml\napiVersion: flagger.app\u002Fv1alpha3\nkind: Canary\nmetadata:\n  name: myapp\nspec:\n  targetRef:\n    apiVersion: apps\u002Fv1\n    kind: Deployment\n    name: myapp\n  service:\n    port: 80\n  canaryAnalysis:\n    interval: 1m\n    threshold: 10\n    maxWeight: 50\n    stepWeight: 10\n    metrics:\n      - name: request-success-rate\n        threshold: 99\n        interval: 1m\n      - name: request-duration\n        threshold: 500\n        interval: 1m\n```\n\n### Deployment Strategy\n\n- Start with small percentage (1-5%)\n- Increase gradually if metrics stay healthy\n- Stop and rollback if errors spike\n- Analyze at each stage before proceeding\n- Full rollout typically takes 30-60 minutes\n\n### Analysis Criteria\n\n- Error rate within acceptable threshold\n- Response time not degraded\n- No memory leaks or resource exhaustion\n- Business metrics not negatively impacted\n- No adverse effects on dependent services\n","## What I do\n\n- Implement gradual traffic shifting strategies\n- Create automated canary deployments with metric analysis\n- Design rollback automation based on health checks\n- Build observability dashboards for canary analysis\n- Integrate canary releases with CI\u002FCD pipelines\n- Configure intelligent traffic routing based on user segments\n\n## When to use me\n\n- When introducing new features to production\n- When validating infrastructure changes\n- When testing performance under real load\n- When deploying to multiple regions progressively\n- When working with A\u002FB testing alongside deployments\n- When reducing blast radius of potential issues\n\n## Key Concepts\n\n### Flagger Canary CRD\n\n```yaml\napiVersion: flagger.app\u002Fv1alpha3\nkind: Canary\nmetadata:\n  name: myapp\nspec:\n  targetRef:\n    apiVersion: apps\u002Fv1\n    kind: Deployment\n    name: myapp\n  service:\n    port: 80\n  canaryAnalysis:\n    interval: 1m\n    threshold: 10\n    maxWeight: 50\n    stepWeight: 10\n    metrics:\n      - name: request-success-rate\n        threshold: 99\n        interval: 1m\n      - name: request-duration\n        threshold: 500\n        interval: 1m\n```\n\n### Deployment Strategy\n\n- Start with small percentage (1-5%)\n- Increase gradually if metrics stay healthy\n- Stop and rollback if errors spike\n- Analyze at each stage before proceeding\n- Full rollout typically takes 30-60 minutes\n\n### Analysis Criteria\n\n- Error rate within acceptable threshold\n- Response time not degraded\n- No memory leaks or resource exhaustion\n- Business metrics not negatively impacted\n- No adverse effects on dependent services\n",{"name":5,"license":14,"metadata":29,"description":7,"compatibility":20},{"audience":30,"category":19},"devops-engineer, platform-engineer","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill canary",{"tool":43,"command":44},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill canary",{"tool":46,"command":47},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill canary","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fcanary\u002FSKILL.md",true,[],[52,63,73,82,92,101],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":24},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[54,59,60,61,20,62],"platform","cross-platform","mobile","development",{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":24},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[65,70,20,71,72],"data wrangling","science","data",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":24},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[75,80,20,81],"system","scripting",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":24},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[89,90,20,91,72],"wide column","databases","model",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":24},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[99,90,20,100],"wide column stores","database",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":24},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[103,108,109,110,20,111,112],"websocket","real-time","time","best practices","implementation"]