{"id":"e9b9bed6-f665-4fca-ba0e-f30d4dafc49b","shortId":"zhyZmu","kind":"skill","title":"terraform-aws-modules","tagline":"Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure.","description":"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/vpc/variables.tf\nvariable \"name\" { type = string }\nvariable \"cidr\" { type = string, default = \"10.0.0.0/16\" }\nvariable \"azs\" { type = list(string) }\n\n# modules/vpc/main.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/vpc/outputs.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/terraform.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 <LOCK_ID>` after confirming no other operations are running.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["terraform","aws","modules","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-terraform-aws-modules","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/terraform-aws-modules","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34460 github stars · SKILL.md body (2,523 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:52:00.009Z","embedding":null,"createdAt":"2026-04-18T21:46:05.908Z","updatedAt":"2026-04-22T06:52:00.009Z","lastSeenAt":"2026-04-22T06:52:00.009Z","tsv":"'/16':187 '1':105,171,238 '10.0.0.0':186 '2':115,219 '3':125 '4':135 '5':144 '6':156 'appli':136,300 'ask':347 'avoid':122 'aw':3,9,24,33,56,89,102,195 'aws_vpc.this.id':217 'az':189 'backend':222,225 'best':16,62,246 'block':165,199 'boundari':355 'break':123 'bucket':227 'build':20 'cdk':90 'chang':124 'cidr':182,198 'clarif':349 'clear':109,322 'cloudform':74,92 'code':60 'commit':143,285 'confirm':308 'consist':160 'control':290 'count':149,275 'creat':51 'creation':7 'criteria':358 'default':163,185 'describ':326 'design':38,66 'dns':202,206 'dynamodb':130,239,268 'east':237 'enabl':201,205 'encrypt':244,271 'environ':134,338 'environment-specif':337 'exampl':169,170,218 'expert':29,343 'fail':299 'file':287 'fmt':138 'forc':305 'force-unlock':304 'grade':44 'hcl':15,45,175,223 'hostnam':207 'id':215 'ident':155,278 'infrastructur':25,96 'input':352 'instruct':104 'key':232 'limit':314 'list':191 'lock':131,243,269,294 'main.tf':112 'manag':13,40 'manual':76 'match':323 'matter':279 'migrat':72 'miss':360 'modul':4,6,11,37,54,107,119,174 'modules/vpc/main.tf':193 'modules/vpc/outputs.tf':212 'modules/vpc/variables.tf':176 'my-tf-stat':228 'name':178,210 'need':88,153 'non':101 'non-aw':100 'oper':311 'output':213,258,332 'outputs.tf':111 'pattern':46 'permiss':353 'pin':116,249 'plan':257 'pr':260 'practic':17,63,247 'problem':292 'prod/terraform.tfstate':233 'product':43 'production-grad':42 'provid':103,117,168,250 'region':234 'releas':296 'remot':67,127,220 'requir':351 'resourc':57,151,159,194,277 'reusabl':10,36,52,172 'review':22,58,261,344 'run':302,313 's3':129,226,266 'safeti':354 'scope':325 'secur':65 'setup':77 'skill':49,84,317 'skill-terraform-aws-modules' 'solut':301 'source-sickn33' 'special':34 'specif':339 'stabl':154 'state':12,39,68,128,221,231,264,293 'stop':345 'store':263 'strategi':71 'string':180,184,192 'structur':106 'substitut':335 'success':357 'support':203 'tabl':240 'tag':157,164,209 'task':321 'team':133 'terraform':2,5,23,31,53,59,79,94,137,140,224,256,303 'terraform-aws-modul':1 'test':341 'tf':230,242 'tf-lock':241 'tfstate':286 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':330 'troubleshoot':291 'true':204,208,245 'type':179,183,190 'unlock':306 'us':236 'us-east':235 'use':18,47,82,126,145,161,255,274,280,315 'user':87 'valid':141,340 'valu':216 'var.cidr':200 'var.name':211 'variabl':177,181,188 'variables.tf':110 'version':120,251,289 'versions.tf':114,253 'vpc':173,196,214 'workspac':70","prices":[{"id":"e1d26639-bcfe-48b6-89d3-5332aef0b9b2","listingId":"e9b9bed6-f665-4fca-ba0e-f30d4dafc49b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:46:05.908Z"}],"sources":[{"listingId":"e9b9bed6-f665-4fca-ba0e-f30d4dafc49b","source":"github","sourceId":"sickn33/antigravity-awesome-skills/terraform-aws-modules","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/terraform-aws-modules","isPrimary":false,"firstSeenAt":"2026-04-18T21:46:05.908Z","lastSeenAt":"2026-04-22T06:52:00.009Z"}],"details":{"listingId":"e9b9bed6-f665-4fca-ba0e-f30d4dafc49b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"terraform-aws-modules","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34460,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"059c0b7336d74edb71735830c9d53ed29e5e1074","skill_md_path":"skills/terraform-aws-modules/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/terraform-aws-modules"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"terraform-aws-modules","description":"Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/terraform-aws-modules"},"updatedAt":"2026-04-22T06:52:00.009Z"}}