[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDHE2D77D466X2WQ0EZC9V":3,"skill-same:01M6CDHE2D77D466X2WQ0EZC9V":94},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6CDHE2D77D466X2WQ0EZC9V","building-gitops-workflows",null,"Use when constructing GitOps workflows using ArgoCD or Flux. Trigger with phrases like \"create GitOps workflow\", \"setup ArgoCD\", \"configure Flux\", or \"automate Kubernetes deployments\". Generates production-ready configurations, implements best practices, and ensures security-first approach for continuous deployment.","BbgnsurfTech\u002Fclaude-skills-collection","BbgnsurfTech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F59598605?v=4","01M6C5ZT4G3G4QPQB64QDVW438","Bbgnsurf Technologies","01M6C5ZT8JN4VWSZZH3DD8J4EG",29,"MIT","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"Building GitOps Workflows","workflows","configure","deployments","ready","use","edit","write","read","grep","argocd","kubernetes","Bash","gitops workflow","first","best practices","git","create","deployment","workflow","2026-11-10 10:12:30",false,"---\ndescription: Use when constructing GitOps workflows using ArgoCD or Flux. Trigger with phrases like \"create GitOps workflow\", \"setup ArgoCD\", \"configure Flux\", or \"automate Kubernetes deployments\". Generates production-ready configurations, implements best practices, and ensures security-first approach for continuous deployment.\nallowed-tools:\n- Read\n- Write\n- Edit\n- Grep\n- Glob\n- Bash(kubectl:*)\n- Bash(git:*)\nname: building-gitops-workflows\nlicense: MIT\nversion: 1.0.0\n---\n\n## Prerequisites\n\nBefore using this skill, ensure:\n- Kubernetes cluster is accessible and kubectl is configured\n- Git repository is available for GitOps source\n- ArgoCD or Flux is installed on the cluster (or ready to install)\n- Appropriate RBAC permissions for GitOps operator\n- Network connectivity between cluster and Git repository\n\n## Instructions\n\n1. **Select GitOps Tool**: Determine whether to use ArgoCD or Flux based on requirements\n2. **Define Application Structure**: Establish repository layout with environment separation (dev\u002Fstaging\u002Fprod)\n3. **Generate Manifests**: Create Application\u002FKustomization files pointing to Git sources\n4. **Configure Sync Policy**: Set automated or manual sync with self-heal and prune options\n5. **Implement RBAC**: Define service accounts and role bindings for GitOps operator\n6. **Set Up Monitoring**: Configure notifications and health checks for deployments\n7. **Validate Configuration**: Test sync behavior and verify reconciliation loops\n\n## Output\n\nGenerates GitOps workflow configurations including:\n\n**ArgoCD Application Manifest:**\n```yaml\napiVersion: argoproj.io\u002Fv1alpha1\nkind: Application\nmetadata:\n  name: app-name\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https:\u002F\u002Fgithub.com\u002Forg\u002Frepo\n    path: manifests\u002Fprod\n    targetRevision: main\n  destination:\n    server: https:\u002F\u002Fkubernetes.default.svc\n    namespace: production\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n```\n\n**Flux Kustomization:**\n```yaml\napiVersion: kustomize.toolkit.fluxcd.io\u002Fv1\nkind: Kustomization\nmetadata:\n  name: app-name\n  namespace: flux-system\nspec:\n  interval: 5m\n  path: .\u002Fmanifests\u002Fprod\n  prune: true\n  sourceRef:\n    kind: GitRepository\n    name: app-repo\n```\n\n## Error Handling\n\nCommon issues and solutions:\n\n**Sync Failures**\n- Error: \"ComparisonError: Failed to load target state\"\n- Solution: Verify Git repository URL, credentials, and target path exist\n\n**RBAC Permissions**\n- Error: \"User cannot create resource in API group\"\n- Solution: Grant GitOps service account appropriate cluster roles\n\n**Out of Sync State**\n- Warning: \"Application is OutOfSync\"\n- Solution: Enable automated sync or manually sync via UI\u002FCLI\n\n**Git Authentication**\n- Error: \"Authentication failed for repository\"\n- Solution: Configure SSH keys or access tokens in {baseDir}\u002F.git\u002Fconfig\n\n**Resource Conflicts**\n- Error: \"Resource already exists and is not managed by GitOps\"\n- Solution: Import existing resources or remove conflicting manual deployments\n\n## Resources\n\n- ArgoCD documentation: https:\u002F\u002Fargo-cd.readthedocs.io\u002F\n- Flux documentation: https:\u002F\u002Ffluxcd.io\u002Fdocs\u002F\n- GitOps principles and patterns guide\n- Kubernetes manifest best practices\n- Repository structure templates in {baseDir}\u002Fgitops-examples\u002F","## Prerequisites\n\nBefore using this skill, ensure:\n- Kubernetes cluster is accessible and kubectl is configured\n- Git repository is available for GitOps source\n- ArgoCD or Flux is installed on the cluster (or ready to install)\n- Appropriate RBAC permissions for GitOps operator\n- Network connectivity between cluster and Git repository\n\n## Instructions\n\n1. **Select GitOps Tool**: Determine whether to use ArgoCD or Flux based on requirements\n2. **Define Application Structure**: Establish repository layout with environment separation (dev\u002Fstaging\u002Fprod)\n3. **Generate Manifests**: Create Application\u002FKustomization files pointing to Git sources\n4. **Configure Sync Policy**: Set automated or manual sync with self-heal and prune options\n5. **Implement RBAC**: Define service accounts and role bindings for GitOps operator\n6. **Set Up Monitoring**: Configure notifications and health checks for deployments\n7. **Validate Configuration**: Test sync behavior and verify reconciliation loops\n\n## Output\n\nGenerates GitOps workflow configurations including:\n\n**ArgoCD Application Manifest:**\n```yaml\napiVersion: argoproj.io\u002Fv1alpha1\nkind: Application\nmetadata:\n  name: app-name\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https:\u002F\u002Fgithub.com\u002Forg\u002Frepo\n    path: manifests\u002Fprod\n    targetRevision: main\n  destination:\n    server: https:\u002F\u002Fkubernetes.default.svc\n    namespace: production\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n```\n\n**Flux Kustomization:**\n```yaml\napiVersion: kustomize.toolkit.fluxcd.io\u002Fv1\nkind: Kustomization\nmetadata:\n  name: app-name\n  namespace: flux-system\nspec:\n  interval: 5m\n  path: .\u002Fmanifests\u002Fprod\n  prune: true\n  sourceRef:\n    kind: GitRepository\n    name: app-repo\n```\n\n## Error Handling\n\nCommon issues and solutions:\n\n**Sync Failures**\n- Error: \"ComparisonError: Failed to load target state\"\n- Solution: Verify Git repository URL, credentials, and target path exist\n\n**RBAC Permissions**\n- Error: \"User cannot create resource in API group\"\n- Solution: Grant GitOps service account appropriate cluster roles\n\n**Out of Sync State**\n- Warning: \"Application is OutOfSync\"\n- Solution: Enable automated sync or manually sync via UI\u002FCLI\n\n**Git Authentication**\n- Error: \"Authentication failed for repository\"\n- Solution: Configure SSH keys or access tokens in {baseDir}\u002F.git\u002Fconfig\n\n**Resource Conflicts**\n- Error: \"Resource already exists and is not managed by GitOps\"\n- Solution: Import existing resources or remove conflicting manual deployments\n\n## Resources\n\n- ArgoCD documentation: https:\u002F\u002Fargo-cd.readthedocs.io\u002F\n- Flux documentation: https:\u002F\u002Ffluxcd.io\u002Fdocs\u002F\n- GitOps principles and patterns guide\n- Kubernetes manifest best practices\n- Repository structure templates in {baseDir}\u002Fgitops-examples\u002F",{"name":5,"license":15,"version":44,"description":7,"allowed-tools":45},"1.0.0",[46,47,48,49,50,51,52],"Read","Write","Edit","Grep","Glob","Bash(kubectl:*)","Bash(git:*)","main","01d3fafeca1133f841956b8b90b939fee92d71e7","plugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder",9,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech","www.bbgnsurf.com","An ICT solutions provider and software development company","2025-12-18 20:19:58",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill building-gitops-workflows",{"tool":68,"command":69},"bunx","bunx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill building-gitops-workflows",{"tool":71,"command":72},"pnpm","pnpm dlx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill building-gitops-workflows","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder\u002FSKILL.md",true,[76,82,88],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"assets\u002FREADME.md","ASSET","资产文件",373,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder\u002Fassets\u002FREADME.md",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002FREADME.md","REFERENCE","参考文档",466,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder\u002Freferences\u002FREADME.md",{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002FREADME.md","SCRIPT","脚本",328,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Fgitops-workflow-builder\u002Fskills\u002Fgitops-workflow-builder\u002Fscripts\u002FREADME.md",[95,115,133,154,167,181],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":39},"01M6CDVX5RHG36WP2Z7X8WAYYA","testing-visual-regression","Detect visual changes in UI components using screenshot comparison.\nUse when detecting unintended UI changes or pixel differences.\nTrigger with phrases like \"test visual changes\", \"compare screenshots\", or \"detect UI regressions\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Fvisual-regression-tester\u002Fskills\u002Fvisual-regression-tester\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[107,108,109,25,28,27,26,24,110,111,112,113,114,31],"testing visual regression","testing","regression","components","test","screenshots","screenshot","ui",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":39},"01M6CDVT4S54EMAPZ231KSP2XQ","generating-unit-tests","Automatically generate comprehensive unit tests from source code covering happy paths, edge cases, and error conditions.\nUse when creating test coverage for functions, classes, or modules.\nTrigger with phrases like \"generate unit tests\", \"create tests for\", or \"add test coverage\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Funit-test-generator\u002Fskills\u002Funit-test-generator\u002FSKILL.md",[121],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[123,124,125,36,126,111,25,127,128,129,24,130,131,26,27,28,31,132],"unit tests","Generating Unit Tests","generate","add test","functions","modules","test coverage","coverage","code","edge",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":145,"publishedAt":39},"01M6CDVPQKGQ450Q50ZC84FPMR","generating-test-reports","Generate comprehensive test reports with metrics, coverage, and visualizations.\nUse when performing specialized testing.\nTrigger with phrases like \"generate test report\", \"create test documentation\", or \"show test metrics\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Ftest-report-generator\u002Fskills\u002Ftest-report-generator\u002FSKILL.md",[139,140],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},{"categoryNo":141,"categoryName":142,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[111,146,147,148,149,24,130,25,150,26,27,151,31,152,125,36,153,108,28],"reports","Generating Test Reports","test report","specialized","report","visualizations","metrics","documentation",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":161,"publishedAt":39},"01M6CDVK97VFZ53CEYEGQ4QFZ6","orchestrating-test-execution","Coordinate parallel test execution across multiple environments and frameworks.\nUse when performing specialized testing.\nTrigger with phrases like \"orchestrate tests\", \"run parallel tests\", or \"coordinate test execution\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Ftest-orchestrator\u002Fskills\u002Ftest-orchestrator\u002FSKILL.md",[160],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[162,163,111,27,24,25,26,149,28,164,31,165,166,108],"orchestrating test execution","execution","parallel","orchestrate","run",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":39},"01M6CDVFTCBQ65TGB1YJCZB90G","managing-test-environments","Provision and manage isolated test environments with configuration and data.\nUse when performing specialized testing.\nTrigger with phrases like \"manage test environment\", \"provision test env\", or \"setup test infrastructure\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Ftest-environment-manager\u002Fskills\u002Ftest-environment-manager\u002FSKILL.md",[173],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[175,111,25,26,27,149,28,31,176,177,178,108,179,180,24],"Managing Test Environments","data","infrastructure","setup","environment","manage",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":39},"01M6CDVD0NPFXVEQGT9CMF02H0","generating-test-doubles","Generate mocks, stubs, spies, and fakes for dependency isolation.\nUse when creating mocks, stubs, or test isolation fixtures.\nTrigger with phrases like \"generate mocks\", \"create test doubles\", or \"setup stubs\".","https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Ftesting\u002Ftest-doubles-generator\u002Fskills\u002Ftest-doubles-generator\u002FSKILL.md",[187],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[111,189,190,24,25,26,27,28,31,125,36,178],"Generating Test Doubles","dependency"]