[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CFRRMTA55MD3PJR9PFSJ4Y":3,"skill-same:01M6CFRRMTA55MD3PJR9PFSJ4Y":188},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6CFRRMTA55MD3PJR9PFSJ4Y","devops",null,"Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI\u002FCD, GitOps, security audit.","hoanghd218\u002Fdocons","hoanghd218","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F49197448?v=4","01M6CEG06HBF8MQKQX19CR32ME","Hoang218","01M6CFGYFPDRM365Q0JTRNVJJ8",0,"MIT","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"ci","workers","use","helm","serverless","security audit","kubectl","gke","gcp","containers","cloud","audit","cloudflare","run","deploy","security","kubernetes","docker","2026-11-10 10:12:30",false,"---\nname: devops\ndescription: Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI\u002FCD, GitOps, security audit.\nlicense: MIT\nversion: 2.0.0\n---\n\n# DevOps Skill\n\nDeploy and manage cloud infrastructure across Cloudflare, Docker, Google Cloud, and Kubernetes.\n\n## When to Use\n\n- Deploy serverless apps to Cloudflare Workers\u002FPages\n- Containerize apps with Docker, Docker Compose\n- Manage GCP with gcloud CLI (Cloud Run, GKE, Cloud SQL)\n- Kubernetes cluster management (kubectl, Helm)\n- GitOps workflows (Argo CD, Flux)\n- CI\u002FCD pipelines, multi-region deployments\n- Security audits, RBAC, network policies\n\n## Platform Selection\n\n| Need | Choose |\n|------|--------|\n| Sub-50ms latency globally | Cloudflare Workers |\n| Large file storage (zero egress) | Cloudflare R2 |\n| SQL database (global reads) | Cloudflare D1 |\n| Containerized workloads | Docker + Cloud Run\u002FGKE |\n| Enterprise Kubernetes | GKE |\n| Managed relational DB | Cloud SQL |\n| Static site + API | Cloudflare Pages |\n| Container orchestration | Kubernetes |\n| Package management for K8s | Helm |\n\n## Quick Start\n\n```bash\n# Cloudflare Worker\nwrangler init my-worker && cd my-worker && wrangler deploy\n\n# Docker\ndocker build -t myapp . && docker run -p 3000:3000 myapp\n\n# GCP Cloud Run\ngcloud run deploy my-service --image gcr.io\u002Fproject\u002Fimage --region us-central1\n\n# Kubernetes\nkubectl apply -f manifests\u002F && kubectl get pods\n```\n\n## Reference Navigation\n\n### Cloudflare Platform\n- `cloudflare-platform.md` - Edge computing overview\n- `cloudflare-workers-basics.md` - Handler types, patterns\n- `cloudflare-workers-advanced.md` - Performance, optimization\n- `cloudflare-workers-apis.md` - Runtime APIs, bindings\n- `cloudflare-r2-storage.md` - Object storage, S3 compatibility\n- `cloudflare-d1-kv.md` - D1 SQLite, KV store\n- `browser-rendering.md` - Puppeteer automation\n\n### Docker\n- `docker-basics.md` - Dockerfile, images, containers\n- `docker-compose.md` - Multi-container apps\n\n### Google Cloud\n- `gcloud-platform.md` - gcloud CLI, authentication\n- `gcloud-services.md` - Compute Engine, GKE, Cloud Run\n\n### Kubernetes\n- `kubernetes-basics.md` - Core concepts, architecture, workloads\n- `kubernetes-kubectl.md` - Essential commands, debugging workflow\n- `kubernetes-helm.md` \u002F `kubernetes-helm-advanced.md` - Helm charts, templates\n- `kubernetes-security.md` \u002F `kubernetes-security-advanced.md` - RBAC, secrets\n- `kubernetes-workflows.md` \u002F `kubernetes-workflows-advanced.md` - GitOps, CI\u002FCD\n- `kubernetes-troubleshooting.md` \u002F `kubernetes-troubleshooting-advanced.md` - Debug\n\n### Scripts\n- `scripts\u002Fcloudflare-deploy.py` - Automate Worker deployments\n- `scripts\u002Fdocker-optimize.py` - Analyze Dockerfiles\n\n## Best Practices\n\n**Security:** Non-root containers, RBAC, secrets in env vars, image scanning\n**Performance:** Multi-stage builds, edge caching, resource limits\n**Cost:** R2 for large egress, caching, right-size resources\n**Development:** Docker Compose local dev, wrangler dev, version control IaC\n\n## Resources\n\n- Cloudflare: https:\u002F\u002Fdevelopers.cloudflare.com\n- Docker: https:\u002F\u002Fdocs.docker.com\n- GCP: https:\u002F\u002Fcloud.google.com\u002Fdocs\n- Kubernetes: https:\u002F\u002Fkubernetes.io\u002Fdocs\n- Helm: https:\u002F\u002Fhelm.sh\u002Fdocs\n","# DevOps Skill\n\nDeploy and manage cloud infrastructure across Cloudflare, Docker, Google Cloud, and Kubernetes.\n\n## When to Use\n\n- Deploy serverless apps to Cloudflare Workers\u002FPages\n- Containerize apps with Docker, Docker Compose\n- Manage GCP with gcloud CLI (Cloud Run, GKE, Cloud SQL)\n- Kubernetes cluster management (kubectl, Helm)\n- GitOps workflows (Argo CD, Flux)\n- CI\u002FCD pipelines, multi-region deployments\n- Security audits, RBAC, network policies\n\n## Platform Selection\n\n| Need | Choose |\n|------|--------|\n| Sub-50ms latency globally | Cloudflare Workers |\n| Large file storage (zero egress) | Cloudflare R2 |\n| SQL database (global reads) | Cloudflare D1 |\n| Containerized workloads | Docker + Cloud Run\u002FGKE |\n| Enterprise Kubernetes | GKE |\n| Managed relational DB | Cloud SQL |\n| Static site + API | Cloudflare Pages |\n| Container orchestration | Kubernetes |\n| Package management for K8s | Helm |\n\n## Quick Start\n\n```bash\n# Cloudflare Worker\nwrangler init my-worker && cd my-worker && wrangler deploy\n\n# Docker\ndocker build -t myapp . && docker run -p 3000:3000 myapp\n\n# GCP Cloud Run\ngcloud run deploy my-service --image gcr.io\u002Fproject\u002Fimage --region us-central1\n\n# Kubernetes\nkubectl apply -f manifests\u002F && kubectl get pods\n```\n\n## Reference Navigation\n\n### Cloudflare Platform\n- `cloudflare-platform.md` - Edge computing overview\n- `cloudflare-workers-basics.md` - Handler types, patterns\n- `cloudflare-workers-advanced.md` - Performance, optimization\n- `cloudflare-workers-apis.md` - Runtime APIs, bindings\n- `cloudflare-r2-storage.md` - Object storage, S3 compatibility\n- `cloudflare-d1-kv.md` - D1 SQLite, KV store\n- `browser-rendering.md` - Puppeteer automation\n\n### Docker\n- `docker-basics.md` - Dockerfile, images, containers\n- `docker-compose.md` - Multi-container apps\n\n### Google Cloud\n- `gcloud-platform.md` - gcloud CLI, authentication\n- `gcloud-services.md` - Compute Engine, GKE, Cloud Run\n\n### Kubernetes\n- `kubernetes-basics.md` - Core concepts, architecture, workloads\n- `kubernetes-kubectl.md` - Essential commands, debugging workflow\n- `kubernetes-helm.md` \u002F `kubernetes-helm-advanced.md` - Helm charts, templates\n- `kubernetes-security.md` \u002F `kubernetes-security-advanced.md` - RBAC, secrets\n- `kubernetes-workflows.md` \u002F `kubernetes-workflows-advanced.md` - GitOps, CI\u002FCD\n- `kubernetes-troubleshooting.md` \u002F `kubernetes-troubleshooting-advanced.md` - Debug\n\n### Scripts\n- `scripts\u002Fcloudflare-deploy.py` - Automate Worker deployments\n- `scripts\u002Fdocker-optimize.py` - Analyze Dockerfiles\n\n## Best Practices\n\n**Security:** Non-root containers, RBAC, secrets in env vars, image scanning\n**Performance:** Multi-stage builds, edge caching, resource limits\n**Cost:** R2 for large egress, caching, right-size resources\n**Development:** Docker Compose local dev, wrangler dev, version control IaC\n\n## Resources\n\n- Cloudflare: https:\u002F\u002Fdevelopers.cloudflare.com\n- Docker: https:\u002F\u002Fdocs.docker.com\n- GCP: https:\u002F\u002Fcloud.google.com\u002Fdocs\n- Kubernetes: https:\u002F\u002Fkubernetes.io\u002Fdocs\n- Helm: https:\u002F\u002Fhelm.sh\u002Fdocs\n",{"name":5,"license":15,"version":47,"description":7},"2.0.0","main","863082984c7c65197a5d20dc7c6e1fda6045b372","landingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops",1,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons","https:\u002F\u002Fdocons.vercel.app","https:\u002F\u002Fgithub.com\u002Fhoanghd218","2026-08-25 23:11:43",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add hoanghd218\u002Fdocons --skill devops",{"tool":62,"command":63},"bunx","bunx skills add hoanghd218\u002Fdocons --skill devops",{"tool":65,"command":66},"pnpm","pnpm dlx skills add hoanghd218\u002Fdocons --skill devops","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002FSKILL.md",true,[70,76,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,168,172,176,180,184],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},".env.example","OTHER","其他",2609,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002F.env.example",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fbrowser-rendering.md","REFERENCE","参考文档",6932,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fbrowser-rendering.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fcloudflare-d1-kv.md",2549,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-d1-kv.md",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fcloudflare-platform.md",7292,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-platform.md",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fcloudflare-r2-storage.md",6274,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-r2-storage.md",{"path":95,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fcloudflare-workers-advanced.md",7286,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-workers-advanced.md",{"path":99,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fcloudflare-workers-apis.md",6947,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-workers-apis.md",{"path":103,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fcloudflare-workers-basics.md",8789,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fcloudflare-workers-basics.md",{"path":107,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fdocker-basics.md",5818,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fdocker-basics.md",{"path":111,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fdocker-compose.md",4827,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fdocker-compose.md",{"path":115,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fgcloud-platform.md",7015,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fgcloud-platform.md",{"path":119,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fgcloud-services.md",5925,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fgcloud-services.md",{"path":123,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fkubernetes-basics.md",1739,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-basics.md",{"path":127,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":128,"sourceHtmlUrl":129},"references\u002Fkubernetes-helm-advanced.md",1743,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-helm-advanced.md",{"path":131,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":132,"sourceHtmlUrl":133},"references\u002Fkubernetes-helm.md",1862,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-helm.md",{"path":135,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":136,"sourceHtmlUrl":137},"references\u002Fkubernetes-kubectl.md",1741,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-kubectl.md",{"path":139,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":140,"sourceHtmlUrl":141},"references\u002Fkubernetes-security-advanced.md",1817,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-security-advanced.md",{"path":143,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":144,"sourceHtmlUrl":145},"references\u002Fkubernetes-security.md",1755,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-security.md",{"path":147,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":148,"sourceHtmlUrl":149},"references\u002Fkubernetes-troubleshooting-advanced.md",1448,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-troubleshooting-advanced.md",{"path":151,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":152,"sourceHtmlUrl":153},"references\u002Fkubernetes-troubleshooting.md",1424,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-troubleshooting.md",{"path":155,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":156,"sourceHtmlUrl":157},"references\u002Fkubernetes-workflows-advanced.md",1334,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-workflows-advanced.md",{"path":159,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":160,"sourceHtmlUrl":161},"references\u002Fkubernetes-workflows.md",1617,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Freferences\u002Fkubernetes-workflows.md",{"path":163,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":166,"sourceHtmlUrl":167},"scripts\u002Fcloudflare_deploy.py","SCRIPT","脚本",7647,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Fcloudflare_deploy.py",{"path":169,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":170,"sourceHtmlUrl":171},"scripts\u002Fdocker_optimize.py",11733,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Fdocker_optimize.py",{"path":173,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":174,"sourceHtmlUrl":175},"scripts\u002Frequirements.txt",471,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Frequirements.txt",{"path":177,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":178,"sourceHtmlUrl":179},"scripts\u002Ftests\u002Frequirements.txt",52,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Ftests\u002Frequirements.txt",{"path":181,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":182,"sourceHtmlUrl":183},"scripts\u002Ftests\u002Ftest_cloudflare_deploy.py",9261,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Ftests\u002Ftest_cloudflare_deploy.py",{"path":185,"resourceType":164,"resourceTypeDesc":165,"sizeBytes":186,"sourceHtmlUrl":187},"scripts\u002Ftests\u002Ftest_docker_optimize.py",12969,"https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fdevops\u002Fscripts\u002Ftests\u002Ftest_docker_optimize.py",[189,216,233,259,285,298],{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":193,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":199,"publishedAt":42},"01M6CFWQKBPK223JYTA0T4WKGF","web-testing","Web testing with Playwright, Vitest, k6. E2E\u002Funit\u002Fintegration\u002Fload\u002Fsecurity\u002Fvisual\u002Fa11y testing. Use for test automation, flakiness, Core Web Vitals, mobile gestures, cross-browser.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fweb-testing\u002FSKILL.md",[196],{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[200,201,202,39,203,204,205,206,207,208,209,210,211,212,213,214,26,215],"web testing","web","testing","gestures","automation","playwright","test","test automation","core","browser","integration","core web vitals","k6","e2e","vitest","mobile",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":222,"publishedAt":42},"01M6CFWKWR6J11YJRE9EX702JY","web-frameworks","Build with Next.js (App Router, RSC, SSR, ISR), Turborepo monorepos. Use for React apps, server rendering, build optimization, caching strategies, shared dependencies.","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fweb-frameworks\u002FSKILL.md",[],[223,201,224,225,226,26,227,228,229,230,231,232],"web frameworks","Optimization","build","router","js","Next.js","turborepo","server","ssr","react",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":247,"publishedAt":42},"01M6CFW31HEVJTMWZNXXH6RJZW","ui-styling","Style UIs with shadcn\u002Fui components (Radix UI + Tailwind CSS). Use for accessible components, themes, dark mode, responsive layouts, design systems, color customization.","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fui-styling\u002FSKILL.md",[239,242],{"categoryNo":240,"categoryName":241,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":243,"categoryName":244,"taxonomyType":245,"taxonomyTypeDesc":246},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[248,249,250,26,251,252,253,254,255,256,257,258],"ui styling","styling","ui","radix ui","customization","Tailwind","shadcn","design systems","components","css","design",{"skillNo":260,"name":261,"nameZh":6,"description":262,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":263,"categories":264,"keywords":268,"publishedAt":42},"01M6CFVY2N18A5J9YW3X14GDHZ","threejs","Build 3D web apps with Three.js (WebGL\u002FWebGPU). 556 searchable examples, 60 API classes, 20 use cases. Actions: create 3D scene, load model, add animation, implement physics, build VR\u002FXR. Topics: GLTF loader, PBR materials, particle effects, shadows, post-processing, compute shaders, TSL. Integrations: WebGPU, physics engines, spatial audio.","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fthreejs\u002FSKILL.md",[265],{"categoryNo":266,"categoryName":267,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[261,269,270,271,272,273,274,275,201,276,277,278,279,225,280,26,281,282,283,284],"webgl","api","actions","examples","shaders","create","webgpu","implement","Animation","pbr","gltf","Spatial","integrations","model","Audio","3D",{"skillNo":286,"name":287,"nameZh":6,"description":288,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":289,"categories":290,"keywords":291,"publishedAt":42},"01M6CFVFW9NS3M49KX9K9GKFF7","sequential-thinking","Apply step-by-step analysis for complex problems with revision capability. Use for multi-step reasoning, hypothesis verification, adaptive planning, problem decomposition, course correction.","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fsequential-thinking\u002FSKILL.md",[],[292,293,26,294,295,296,297],"sequential thinking","planning","analysis","hypothesis","verification","reasoning",{"skillNo":299,"name":300,"nameZh":6,"description":301,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":302,"categories":303,"keywords":307,"publishedAt":42},"01M6CFVA3RNA0DGFNFDM0NZPW5","research","Research technical solutions, analyze architectures, gather requirements thoroughly. Use for technology evaluation, best practices research, solution design, scalability\u002Fsecurity\u002Fmaintainability analysis.","https:\u002F\u002Fgithub.com\u002Fhoanghd218\u002Fdocons\u002Fblob\u002Fmain\u002Flandingpage-app-render\u002F.opencode\u002Fskills\u002Fresearch\u002FSKILL.md",[304],{"categoryNo":305,"categoryName":306,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[300,308,309,294,310,39,311,258,26],"best practices","Evaluation","analyze","technical"]