[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G3SPVGFXGF7MEWBGTS4XKD":3,"skill-same:01M6G3SPVGFXGF7MEWBGTS4XKD":71},{"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":49,"commitSha":50,"skillDirectory":51,"forksCount":14,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6G3SPVGFXGF7MEWBGTS4XKD","terraform-aws-modules",null,"Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure.","reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdevops\u002Fterraform-aws-modules\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],"terraform","terraform aws","aws","terraform aws modules","modules","aws infrastructure","terraform module","sonnet","module","creation","community","reusable","infrastructure","use","management","state","best practices","state management","2026-11-10 10:12:30",false,"---\nname: terraform-aws-modules\ndescription: \"Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure.\"\nmetadata:\n  model: sonnet\nrisk: unknown\nsource: community\n---\nYou are an expert in Terraform for AWS specializing in reusable module design, state management, and production-grade HCL patterns.\n\n## Use this skill when\n\n- Creating reusable Terraform modules for AWS resources\n- Reviewing Terraform code for best practices and security\n- Designing remote state and workspace strategies\n- Migrating from CloudFormation or manual setup to Terraform\n\n## Do not use this skill when\n\n- The user needs AWS CDK or CloudFormation, not Terraform\n- The infrastructure is on a non-AWS provider\n\n## Instructions\n\n1. Structure modules with clear `variables.tf`, `outputs.tf`, `main.tf`, and `versions.tf`.\n2. Pin provider and module versions to avoid breaking changes.\n3. Use remote state (S3 + DynamoDB locking) for team environments.\n4. Apply `terraform fmt` and `terraform validate` before commits.\n5. Use `for_each` over `count` for resources that need stable identity.\n6. Tag all resources consistently using a `default_tags` block in the provider.\n\n## Examples\n\n### Example 1: Reusable VPC Module\n\n```hcl\n# modules\u002Fvpc\u002Fvariables.tf\nvariable \"name\" { type = string }\nvariable \"cidr\" { type = string, default = \"10.0.0.0\u002F16\" }\nvariable \"azs\" { type = list(string) }\n\n# modules\u002Fvpc\u002Fmain.tf\nresource \"aws_vpc\" \"this\" {\n  cidr_block           = var.cidr\n  enable_dns_support   = true\n  enable_dns_hostnames = true\n  tags = { Name = var.name }\n}\n\n# modules\u002Fvpc\u002Foutputs.tf\noutput \"vpc_id\" { value = aws_vpc.this.id }\n```\n\n### Example 2: Remote State Backend\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket         = \"my-tf-state\"\n    key            = \"prod\u002Fterraform.tfstate\"\n    region         = \"us-east-1\"\n    dynamodb_table = \"tf-lock\"\n    encrypt        = true\n  }\n}\n```\n\n## Best Practices\n\n- ✅ **Do:** Pin provider versions in `versions.tf`\n- ✅ **Do:** Use `terraform plan` output in PR reviews\n- ✅ **Do:** Store state in S3 with DynamoDB locking and encryption\n- ❌ **Don't:** Use `count` when resource identity matters — use `for_each`\n- ❌ **Don't:** Commit `.tfstate` files to version control\n\n## Troubleshooting\n\n**Problem:** State lock not released after a failed apply\n**Solution:** Run `terraform force-unlock \u003CLOCK_ID>` after confirming no other operations are running.\n","You are an expert in Terraform for AWS specializing in reusable module design, state management, and production-grade HCL patterns.\n\n## Use this skill when\n\n- Creating reusable Terraform modules for AWS resources\n- Reviewing Terraform code for best practices and security\n- Designing remote state and workspace strategies\n- Migrating from CloudFormation or manual setup to Terraform\n\n## Do not use this skill when\n\n- The user needs AWS CDK or CloudFormation, not Terraform\n- The infrastructure is on a non-AWS provider\n\n## Instructions\n\n1. Structure modules with clear `variables.tf`, `outputs.tf`, `main.tf`, and `versions.tf`.\n2. Pin provider and module versions to avoid breaking changes.\n3. Use remote state (S3 + DynamoDB locking) for team environments.\n4. Apply `terraform fmt` and `terraform validate` before commits.\n5. Use `for_each` over `count` for resources that need stable identity.\n6. Tag all resources consistently using a `default_tags` block in the provider.\n\n## Examples\n\n### Example 1: Reusable VPC Module\n\n```hcl\n# modules\u002Fvpc\u002Fvariables.tf\nvariable \"name\" { type = string }\nvariable \"cidr\" { type = string, default = \"10.0.0.0\u002F16\" }\nvariable \"azs\" { type = list(string) }\n\n# modules\u002Fvpc\u002Fmain.tf\nresource \"aws_vpc\" \"this\" {\n  cidr_block           = var.cidr\n  enable_dns_support   = true\n  enable_dns_hostnames = true\n  tags = { Name = var.name }\n}\n\n# modules\u002Fvpc\u002Foutputs.tf\noutput \"vpc_id\" { value = aws_vpc.this.id }\n```\n\n### Example 2: Remote State Backend\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket         = \"my-tf-state\"\n    key            = \"prod\u002Fterraform.tfstate\"\n    region         = \"us-east-1\"\n    dynamodb_table = \"tf-lock\"\n    encrypt        = true\n  }\n}\n```\n\n## Best Practices\n\n- ✅ **Do:** Pin provider versions in `versions.tf`\n- ✅ **Do:** Use `terraform plan` output in PR reviews\n- ✅ **Do:** Store state in S3 with DynamoDB locking and encryption\n- ❌ **Don't:** Use `count` when resource identity matters — use `for_each`\n- ❌ **Don't:** Commit `.tfstate` files to version control\n\n## Troubleshooting\n\n**Problem:** State lock not released after a failed apply\n**Solution:** Run `terraform force-unlock \u003CLOCK_ID>` after confirming no other operations are running.\n",{"name":5,"risk":47,"source":34,"metadata":48,"description":7},"unknown",{"model":31},"master","dff58085da947e81e8418c922055644bf0082b1b","skills\u002Fdevops\u002Fterraform-aws-modules","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add reikiplanet\u002Fdaoskills --skill terraform-aws-modules",{"tool":63,"command":64},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill terraform-aws-modules",{"tool":66,"command":67},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill terraform-aws-modules","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdevops\u002Fterraform-aws-modules\u002FSKILL.md",true,[],[72,98,110,124,144,167],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":42},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[79,80,81,82,83,84,34,85,86,87,88,89,90,91,92,93,94,95,96,97],"games","web games","web","grep","principles","selection","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":42},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[105,106,96,107,108,34,86,87,88,82,109,83],"ar","vr ar","interaction","requirements","performance",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":42},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[112,117,118,119,120,121,34,37,88,122,123,82],"project scaffolding","From Scratch","tech","project","scaffolding","projects","applications",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":42},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[131,132,133,134,135,34,136,137,138,139,37,140,141,142,143],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":42},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[151,152,153,154,155,156,157,158,34,88,82,159,83,160,161,162,163,164,165,166],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"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":173,"publishedAt":42},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[174,175,176,177,178,179,180,181,164,37,182,183,184,34,185,186,187,161,188,189],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]