[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDJB1MAFBY01KC0ZWC2YDA":3,"skill-same:01M6CDJB1MAFBY01KC0ZWC2YDA":139},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6CDJB1MAFBY01KC0ZWC2YDA","setting-up-log-aggregation",null,"Use when setting up log aggregation solutions using ELK, Loki, or Splunk. Trigger with phrases like \"setup log aggregation\", \"deploy ELK stack\", \"configure Loki\", or \"install Splunk\". Generates production-ready configurations for data ingestion, processing, storage, and visualization with proper security and scalability.","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\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"Setting Up Log Aggregation","log","up","aggregation","read","ingestion","ready","use","install","edit","write","docker","grep","stack","configure","Bash","splunk","data ingestion","visualization","storage","2026-11-10 10:12:30",false,"---\ndescription: Use when setting up log aggregation solutions using ELK, Loki, or Splunk. Trigger with phrases like \"setup log aggregation\", \"deploy ELK stack\", \"configure Loki\", or \"install Splunk\". Generates production-ready configurations for data ingestion, processing, storage, and visualization with proper security and scalability.\nallowed-tools:\n- Read\n- Write\n- Edit\n- Grep\n- Glob\n- Bash(docker:*)\n- Bash(kubectl:*)\nname: setting-up-log-aggregation\nlicense: MIT\nversion: 1.0.0\n---\n\n## Prerequisites\n\nBefore using this skill, ensure:\n- Target infrastructure is identified (Kubernetes, Docker, VMs)\n- Storage requirements are calculated based on log volume\n- Network connectivity between log sources and aggregation platform\n- Authentication mechanism is defined (LDAP, OAuth, basic auth)\n- Resource allocation planned (CPU, memory, disk)\n\n## Instructions\n\n1. **Select Platform**: Choose ELK, Loki, Grafana Loki, or Splunk\n2. **Configure Ingestion**: Set up log shippers (Filebeat, Promtail, Fluentd)\n3. **Define Storage**: Configure retention policies and index lifecycle\n4. **Set Up Processing**: Create parsing rules and field extractions\n5. **Deploy Visualization**: Configure Kibana\u002FGrafana dashboards\n6. **Implement Security**: Enable authentication, encryption, and RBAC\n7. **Test Pipeline**: Verify logs flow from sources to visualization\n\n## Output\n\n**ELK Stack (Docker Compose):**\n```yaml\n# {baseDir}\u002Felk\u002Fdocker-compose.yml\nversion: '3.8'\nservices:\n  elasticsearch:\n    image: docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.11.0\n    environment:\n      - discovery.type=single-node\n      - xpack.security.enabled=true\n    volumes:\n      - es-data:\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata\n    ports:\n      - \"9200:9200\"\n\n  logstash:\n    image: docker.elastic.co\u002Flogstash\u002Flogstash:8.11.0\n    volumes:\n      - .\u002Flogstash.conf:\u002Fusr\u002Fshare\u002Flogstash\u002Fpipeline\u002Flogstash.conf\n    depends_on:\n      - elasticsearch\n\n  kibana:\n    image: docker.elastic.co\u002Fkibana\u002Fkibana:8.11.0\n    ports:\n      - \"5601:5601\"\n    depends_on:\n      - elasticsearch\n```\n\n**Loki Configuration:**\n```yaml\n# {baseDir}\u002Floki\u002Floki-config.yaml\nauth_enabled: false\n\nserver:\n  http_listen_port: 3100\n\ningester:\n  lifecycler:\n    ring:\n      kvstore:\n        store: inmemory\n      replication_factor: 1\n  chunk_idle_period: 5m\n  chunk_retain_period: 30s\n\nschema_config:\n  configs:\n    - from: 2024-01-01\n      store: boltdb-shipper\n      object_store: filesystem\n      schema: v11\n      index:\n        prefix: index_\n        period: 24h\n```\n\n## Error Handling\n\n**Out of Memory**\n- Error: \"Elasticsearch heap space exhausted\"\n- Solution: Increase heap size in elasticsearch.yml or add more nodes\n\n**Connection Refused**\n- Error: \"Cannot connect to Elasticsearch\"\n- Solution: Verify network connectivity and firewall rules\n\n**Index Creation Failed**\n- Error: \"Failed to create index\"\n- Solution: Check disk space and index template configuration\n\n**Log Parsing Errors**\n- Error: \"Failed to parse log line\"\n- Solution: Review grok patterns or JSON parsing configuration\n\n## Resources\n\n- ELK Stack guide: https:\u002F\u002Fwww.elastic.co\u002Fguide\u002F\n- Loki documentation: https:\u002F\u002Fgrafana.com\u002Fdocs\u002Floki\u002F\n- Example configurations in {baseDir}\u002Flog-aggregation-examples\u002F\n","## Prerequisites\n\nBefore using this skill, ensure:\n- Target infrastructure is identified (Kubernetes, Docker, VMs)\n- Storage requirements are calculated based on log volume\n- Network connectivity between log sources and aggregation platform\n- Authentication mechanism is defined (LDAP, OAuth, basic auth)\n- Resource allocation planned (CPU, memory, disk)\n\n## Instructions\n\n1. **Select Platform**: Choose ELK, Loki, Grafana Loki, or Splunk\n2. **Configure Ingestion**: Set up log shippers (Filebeat, Promtail, Fluentd)\n3. **Define Storage**: Configure retention policies and index lifecycle\n4. **Set Up Processing**: Create parsing rules and field extractions\n5. **Deploy Visualization**: Configure Kibana\u002FGrafana dashboards\n6. **Implement Security**: Enable authentication, encryption, and RBAC\n7. **Test Pipeline**: Verify logs flow from sources to visualization\n\n## Output\n\n**ELK Stack (Docker Compose):**\n```yaml\n# {baseDir}\u002Felk\u002Fdocker-compose.yml\nversion: '3.8'\nservices:\n  elasticsearch:\n    image: docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.11.0\n    environment:\n      - discovery.type=single-node\n      - xpack.security.enabled=true\n    volumes:\n      - es-data:\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata\n    ports:\n      - \"9200:9200\"\n\n  logstash:\n    image: docker.elastic.co\u002Flogstash\u002Flogstash:8.11.0\n    volumes:\n      - .\u002Flogstash.conf:\u002Fusr\u002Fshare\u002Flogstash\u002Fpipeline\u002Flogstash.conf\n    depends_on:\n      - elasticsearch\n\n  kibana:\n    image: docker.elastic.co\u002Fkibana\u002Fkibana:8.11.0\n    ports:\n      - \"5601:5601\"\n    depends_on:\n      - elasticsearch\n```\n\n**Loki Configuration:**\n```yaml\n# {baseDir}\u002Floki\u002Floki-config.yaml\nauth_enabled: false\n\nserver:\n  http_listen_port: 3100\n\ningester:\n  lifecycler:\n    ring:\n      kvstore:\n        store: inmemory\n      replication_factor: 1\n  chunk_idle_period: 5m\n  chunk_retain_period: 30s\n\nschema_config:\n  configs:\n    - from: 2024-01-01\n      store: boltdb-shipper\n      object_store: filesystem\n      schema: v11\n      index:\n        prefix: index_\n        period: 24h\n```\n\n## Error Handling\n\n**Out of Memory**\n- Error: \"Elasticsearch heap space exhausted\"\n- Solution: Increase heap size in elasticsearch.yml or add more nodes\n\n**Connection Refused**\n- Error: \"Cannot connect to Elasticsearch\"\n- Solution: Verify network connectivity and firewall rules\n\n**Index Creation Failed**\n- Error: \"Failed to create index\"\n- Solution: Check disk space and index template configuration\n\n**Log Parsing Errors**\n- Error: \"Failed to parse log line\"\n- Solution: Review grok patterns or JSON parsing configuration\n\n## Resources\n\n- ELK Stack guide: https:\u002F\u002Fwww.elastic.co\u002Fguide\u002F\n- Loki documentation: https:\u002F\u002Fgrafana.com\u002Fdocs\u002Floki\u002F\n- Example configurations in {baseDir}\u002Flog-aggregation-examples\u002F\n",{"name":5,"license":15,"version":49,"description":7,"allowed-tools":50},"1.0.0",[51,52,53,54,55,56,57],"Read","Write","Edit","Grep","Glob","Bash(docker:*)","Bash(kubectl:*)","main","01d3fafeca1133f841956b8b90b939fee92d71e7","plugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup",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":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill setting-up-log-aggregation",{"tool":73,"command":74},"bunx","bunx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill setting-up-log-aggregation",{"tool":76,"command":77},"pnpm","pnpm dlx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill setting-up-log-aggregation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002FSKILL.md",true,[81,87,91,95,99,103,107,111,117,123,127,131,135],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002Fdashboard_elk.json","ASSET","资产文件",4980,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Fdashboard_elk.json",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"assets\u002Fdashboard_loki.json",6968,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Fdashboard_loki.json",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"assets\u002Fdashboard_splunk.json",4011,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Fdashboard_splunk.json",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"assets\u002Fexample_log_data.json",3235,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Fexample_log_data.json",{"path":100,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":101,"sourceHtmlUrl":102},"assets\u002Floki_config_template.yaml",3753,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Floki_config_template.yaml",{"path":104,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":105,"sourceHtmlUrl":106},"assets\u002FREADME.md",593,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002FREADME.md",{"path":108,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":109,"sourceHtmlUrl":110},"assets\u002Fsplunk_config_template.conf",4508,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fassets\u002Fsplunk_config_template.conf",{"path":112,"resourceType":113,"resourceTypeDesc":114,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002FREADME.md","REFERENCE","参考文档",856,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Freferences\u002FREADME.md",{"path":118,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Fconfigure_logging.py","SCRIPT","脚本",2934,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fscripts\u002Fconfigure_logging.py",{"path":124,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":125,"sourceHtmlUrl":126},"scripts\u002FREADME.md",720,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fscripts\u002FREADME.md",{"path":128,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":129,"sourceHtmlUrl":130},"scripts\u002Fsetup_elk.sh",2721,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fscripts\u002Fsetup_elk.sh",{"path":132,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":133,"sourceHtmlUrl":134},"scripts\u002Fsetup_loki.sh",2635,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fscripts\u002Fsetup_loki.sh",{"path":136,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":137,"sourceHtmlUrl":138},"scripts\u002Fsetup_splunk.sh",2639,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Flog-aggregation-setup\u002Fskills\u002Flog-aggregation-setup\u002Fscripts\u002Fsetup_splunk.sh",[140,158,177,198,211,225],{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":44},"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",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[150,151,152,33,36,28,34,31,153,154,155,156,157,39],"testing visual regression","testing","regression","components","test","screenshots","screenshot","ui",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":44},"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",[164],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},[166,167,168,169,170,154,33,171,172,173,31,174,175,34,28,36,39,176],"unit tests","Generating Unit Tests","generate","create","add test","functions","modules","test coverage","coverage","code","edge",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":189,"publishedAt":44},"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",[183,184],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":185,"categoryName":186,"taxonomyType":187,"taxonomyTypeDesc":188},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[154,190,191,192,193,31,174,33,194,34,28,195,39,196,168,169,197,151,36],"reports","Generating Test Reports","test report","specialized","report","visualizations","metrics","documentation",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":202,"categories":203,"keywords":205,"publishedAt":44},"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",[204],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},[206,207,154,28,31,33,34,193,36,208,39,209,210,151],"orchestrating test execution","execution","parallel","orchestrate","run",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":44},"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",[217],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},[219,154,33,34,28,193,36,39,220,221,222,151,223,224,31],"Managing Test Environments","data","infrastructure","setup","environment","manage",{"skillNo":226,"name":227,"nameZh":6,"description":228,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":232,"publishedAt":44},"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",[231],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},[154,233,234,31,33,34,28,36,39,168,169,222],"Generating Test Doubles","dependency"]