[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDHKRY2T3ZDAPVWQDXDE63":3,"skill-same:01M6CDHKRY2T3ZDAPVWQDXDE63":114},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6CDHKRY2T3ZDAPVWQDXDE63","generating-infrastructure-as-code",null,"Use when generating infrastructure as code configurations. Trigger with phrases like \"create Terraform config\", \"generate CloudFormation template\", \"write Pulumi code\", or \"IaC for AWS\u002FGCP\u002FAzure\". Produces production-ready code for Terraform, CloudFormation, Pulumi, ARM templates, and CDK across multiple cloud providers.","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\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"Generating Infrastructure as Code","infrastructure","code","infrastructure as code","Bash","ready","iac","use","edit","write","read","grep","template","gcloud","templates","gcp","generate","create","azure","config","2026-11-10 10:12:30",false,"---\ndescription: Use when generating infrastructure as code configurations. Trigger with phrases like \"create Terraform config\", \"generate CloudFormation template\", \"write Pulumi code\", or \"IaC for AWS\u002FGCP\u002FAzure\". Produces production-ready code for Terraform, CloudFormation, Pulumi, ARM templates, and CDK across multiple cloud providers.\nallowed-tools:\n- Read\n- Write\n- Edit\n- Grep\n- Glob\n- Bash(terraform:*)\n- Bash(aws:*)\n- Bash(gcloud:*)\n- Bash(az:*)\nname: generating-infrastructure-as-code\nlicense: MIT\nversion: 1.0.0\n---\n\n## Prerequisites\n\nBefore using this skill, ensure:\n- Target cloud provider CLI is installed (aws-cli, gcloud, az)\n- IaC tool is installed (Terraform, Pulumi, AWS CDK)\n- Cloud credentials are configured locally\n- Understanding of target infrastructure architecture\n- Version control system for IaC storage\n\n## Instructions\n\n1. **Identify Platform**: Determine IaC tool (Terraform, CloudFormation, Pulumi, ARM, CDK)\n2. **Define Resources**: Specify cloud resources needed (compute, network, storage, database)\n3. **Establish Structure**: Create modular file structure for maintainability\n4. **Generate Code**: Write IaC configurations with proper syntax and formatting\n5. **Add Variables**: Define input variables for environment-specific values\n6. **Configure Outputs**: Specify outputs for resource references and integrations\n7. **Implement State**: Set up remote state storage for team collaboration\n8. **Document Usage**: Add README with deployment instructions and prerequisites\n\n## Output\n\nGenerates infrastructure as code files:\n\n**Terraform Example:**\n```hcl\n# {baseDir}\u002Fterraform\u002Fmain.tf\nterraform {\n  required_version = \">= 1.0\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 5.0\"\n    }\n  }\n}\n\nresource \"aws_vpc\" \"main\" {\n  cidr_block = var.vpc_cidr\n  enable_dns_hostnames = true\n\n  tags = {\n    Name = \"${var.project}-vpc\"\n    Environment = var.environment\n  }\n}\n```\n\n**CloudFormation Example:**\n```yaml\n# {baseDir}\u002Fcloudformation\u002Ftemplate.yaml\nAWSTemplateFormatVersion: '2010-09-09'\nDescription: Production VPC infrastructure\n\nParameters:\n  VpcCidr:\n    Type: String\n    Default: 10.0.0.0\u002F16\n\nResources:\n  VPC:\n    Type: AWS::EC2::VPC\n    Properties:\n      CidrBlock: !Ref VpcCidr\n      EnableDnsHostnames: true\n```\n\n**Pulumi Example:**\n```typescript\n\u002F\u002F {baseDir}\u002Fpulumi\u002Findex.ts\nimport * as aws from \"@pulumi\u002Faws\";\n\nconst vpc = new aws.ec2.Vpc(\"main\", {\n    cidrBlock: \"10.0.0.0\u002F16\",\n    enableDnsHostnames: true,\n    tags: {\n        Name: \"production-vpc\"\n    }\n});\n\nexport const vpcId = vpc.id;\n```\n\n## Error Handling\n\nCommon issues and solutions:\n\n**Syntax Errors**\n- Error: \"Invalid resource syntax in configuration\"\n- Solution: Validate syntax with `terraform validate` or respective tool linter\n\n**Provider Authentication**\n- Error: \"Unable to authenticate with cloud provider\"\n- Solution: Configure credentials via environment variables or CLI login\n\n**Resource Conflicts**\n- Error: \"Resource already exists\"\n- Solution: Import existing resources or use data sources instead of creating new ones\n\n**State Lock Issues**\n- Error: \"Error acquiring state lock\"\n- Solution: Ensure no other process is running, or force unlock if safe\n\n**Dependency Errors**\n- Error: \"Resource depends on resource that does not exist\"\n- Solution: Check resource references and ensure proper dependency ordering\n\n## Resources\n\n- Terraform documentation: https:\u002F\u002Fwww.terraform.io\u002Fdocs\u002F\n- AWS CloudFormation guide: https:\u002F\u002Fdocs.aws.amazon.com\u002Fcloudformation\u002F\n- Pulumi documentation: https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002F\n- Azure ARM templates: https:\u002F\u002Fdocs.microsoft.com\u002Fazure\u002Fazure-resource-manager\u002F\n- IaC best practices guide in {baseDir}\u002Fdocs\u002Fiac-standards.md","## Prerequisites\n\nBefore using this skill, ensure:\n- Target cloud provider CLI is installed (aws-cli, gcloud, az)\n- IaC tool is installed (Terraform, Pulumi, AWS CDK)\n- Cloud credentials are configured locally\n- Understanding of target infrastructure architecture\n- Version control system for IaC storage\n\n## Instructions\n\n1. **Identify Platform**: Determine IaC tool (Terraform, CloudFormation, Pulumi, ARM, CDK)\n2. **Define Resources**: Specify cloud resources needed (compute, network, storage, database)\n3. **Establish Structure**: Create modular file structure for maintainability\n4. **Generate Code**: Write IaC configurations with proper syntax and formatting\n5. **Add Variables**: Define input variables for environment-specific values\n6. **Configure Outputs**: Specify outputs for resource references and integrations\n7. **Implement State**: Set up remote state storage for team collaboration\n8. **Document Usage**: Add README with deployment instructions and prerequisites\n\n## Output\n\nGenerates infrastructure as code files:\n\n**Terraform Example:**\n```hcl\n# {baseDir}\u002Fterraform\u002Fmain.tf\nterraform {\n  required_version = \">= 1.0\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 5.0\"\n    }\n  }\n}\n\nresource \"aws_vpc\" \"main\" {\n  cidr_block = var.vpc_cidr\n  enable_dns_hostnames = true\n\n  tags = {\n    Name = \"${var.project}-vpc\"\n    Environment = var.environment\n  }\n}\n```\n\n**CloudFormation Example:**\n```yaml\n# {baseDir}\u002Fcloudformation\u002Ftemplate.yaml\nAWSTemplateFormatVersion: '2010-09-09'\nDescription: Production VPC infrastructure\n\nParameters:\n  VpcCidr:\n    Type: String\n    Default: 10.0.0.0\u002F16\n\nResources:\n  VPC:\n    Type: AWS::EC2::VPC\n    Properties:\n      CidrBlock: !Ref VpcCidr\n      EnableDnsHostnames: true\n```\n\n**Pulumi Example:**\n```typescript\n\u002F\u002F {baseDir}\u002Fpulumi\u002Findex.ts\nimport * as aws from \"@pulumi\u002Faws\";\n\nconst vpc = new aws.ec2.Vpc(\"main\", {\n    cidrBlock: \"10.0.0.0\u002F16\",\n    enableDnsHostnames: true,\n    tags: {\n        Name: \"production-vpc\"\n    }\n});\n\nexport const vpcId = vpc.id;\n```\n\n## Error Handling\n\nCommon issues and solutions:\n\n**Syntax Errors**\n- Error: \"Invalid resource syntax in configuration\"\n- Solution: Validate syntax with `terraform validate` or respective tool linter\n\n**Provider Authentication**\n- Error: \"Unable to authenticate with cloud provider\"\n- Solution: Configure credentials via environment variables or CLI login\n\n**Resource Conflicts**\n- Error: \"Resource already exists\"\n- Solution: Import existing resources or use data sources instead of creating new ones\n\n**State Lock Issues**\n- Error: \"Error acquiring state lock\"\n- Solution: Ensure no other process is running, or force unlock if safe\n\n**Dependency Errors**\n- Error: \"Resource depends on resource that does not exist\"\n- Solution: Check resource references and ensure proper dependency ordering\n\n## Resources\n\n- Terraform documentation: https:\u002F\u002Fwww.terraform.io\u002Fdocs\u002F\n- AWS CloudFormation guide: https:\u002F\u002Fdocs.aws.amazon.com\u002Fcloudformation\u002F\n- Pulumi documentation: https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002F\n- Azure ARM templates: https:\u002F\u002Fdocs.microsoft.com\u002Fazure\u002Fazure-resource-manager\u002F\n- IaC best practices guide in {baseDir}\u002Fdocs\u002Fiac-standards.md",{"name":5,"license":15,"version":54,"description":7,"allowed-tools":55},"1.0.0",[56,57,58,59,60,61,62,63,64],"Read","Write","Edit","Grep","Glob","Bash(terraform:*)","Bash(aws:*)","Bash(gcloud:*)","Bash(az:*)","main","01d3fafeca1133f841956b8b90b939fee92d71e7","plugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator",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":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill generating-infrastructure-as-code",{"tool":80,"command":81},"bunx","bunx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill generating-infrastructure-as-code",{"tool":83,"command":84},"pnpm","pnpm dlx skills add BbgnsurfTech\u002Fclaude-skills-collection --skill generating-infrastructure-as-code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002FSKILL.md",true,[88,94,98,104,110],{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"assets\u002Fiac_config_schema.json","ASSET","资产文件",6213,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002Fassets\u002Fiac_config_schema.json",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"assets\u002FREADME.md",501,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002Fassets\u002FREADME.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002FREADME.md","REFERENCE","参考文档",792,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002Freferences\u002FREADME.md",{"path":105,"resourceType":106,"resourceTypeDesc":107,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Fiac_generate.py","SCRIPT","脚本",3836,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002Fscripts\u002Fiac_generate.py",{"path":111,"resourceType":106,"resourceTypeDesc":107,"sizeBytes":112,"sourceHtmlUrl":113},"scripts\u002FREADME.md",488,"https:\u002F\u002Fgithub.com\u002FBbgnsurfTech\u002Fclaude-skills-collection\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude-code-plugins-plus\u002Fplugins\u002Fdevops\u002Finfrastructure-as-code-generator\u002Fskills\u002Finfrastructure-as-code-generator\u002Fscripts\u002FREADME.md",[115,133,149,168,181,194],{"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":124,"publishedAt":49},"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",[121],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[125,126,127,37,40,39,38,36,128,129,130,131,132,33],"testing visual regression","testing","regression","components","test","screenshots","screenshot","ui",{"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":140,"publishedAt":49},"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",[139],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[141,142,45,46,143,129,37,144,145,146,36,147,31,38,39,40,33,148],"unit tests","Generating Unit Tests","add test","functions","modules","test coverage","coverage","edge",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":159,"publishedAt":49},"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",[155,156],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":157,"categoryName":158,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000034","行政与办公人员",[129,160,161,162,163,36,147,37,164,38,39,165,33,166,45,46,167,126,40],"reports","Generating Test Reports","test report","specialized","report","visualizations","metrics","documentation",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":49},"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",[174],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[176,177,129,39,36,37,38,163,40,178,33,179,180,126],"orchestrating test execution","execution","parallel","orchestrate","run",{"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":49},"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",[187],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[189,129,37,38,39,163,40,33,190,30,191,126,192,193,36],"Managing Test Environments","data","setup","environment","manage",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":201,"publishedAt":49},"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",[200],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[129,202,203,36,37,38,39,40,33,45,46,191],"Generating Test Doubles","dependency"]