SKILL: Terraform Patterns
SkillCloud & infraApply Terraform module structure, state management, and variable patterns for infrastructure as code. Use when writing Terraform.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the SKILL: Terraform Patterns skill
What this skill tells your AI
The instructions your AI receives, as published by kinncj/heimdall in .claude/skills/terraform-patterns/SKILL.md and read by ahel’s review.
Module Structure
infra/terraform/
├── modules/
│ ├── networking/
│ ├── database/
│ └── compute/
└── environments/
├── dev/
│ ├── main.tf
│ ├── variables.tf
│ └── terraform.tfvars
├── staging/
└── prod/
Module Pattern
# modules/database/main.tf
resource "aws_db_instance" "main" {
# finops: ~$180/mo (db.t3.medium, 100GB gp3, single AZ)
identifier = "${var.environment}-${var.name}-db"
engine = "postgres"
engine_version = "16"
instance_class = var.instance_class
allocated_storage = var.storage_gb
storage_type = "gp3"
storage_encrypted = true
username = var.username
password = var.password
vpc_security_group_ids = [aws_security_group.db.id]
db_subnet_group_name = aws_db_subnet_group.main.name
backup_retention_period = var.environment == "prod" ? 7 : 1
deletion_protection = var.environment == "prod"
tags = merge(var.tags, {
Environment = var.environment
ManagedBy = "terraform"
})
}
Workflow
# Initialize (first time or after provider changes)
terraform init
# Format check (CI)
terraform fmt -check -recursive
# Validate syntax
terraform validate
# Plan (always before apply)
terraform plan -out=plan.tfplan -var-file=environments/dev/terraform.tfvars
# Apply (requires explicit instruction)
terraform apply plan.tfplan
# State inspection
terraform show
terraform state list
Rules
- ALWAYS run
terraform validatebefore reporting complete. - ALWAYS run
terraform planto show what will change. - NEVER run
terraform applywithout explicit instruction. - ALWAYS annotate resources with
# finops:cost estimate. - Use workspaces or separate state files per environment.
- Enable state locking (S3 + DynamoDB or Terraform Cloud).
- Tag all resources with environment, managed-by, and cost-center.
Signals
- GitHub stars
- 70
- Forks
- 5
- Last commit
- Sep 2026
Others that do the same job
Advanced
- Item type
- skill
- Key
terraform-patterns-kinncj- Source
- github.com/kinncj/heimdall
More in Cloud & infra
find-skills
Skill · vercel-labs
More in Cloud & infravercel-react-best-practices
Skill · vercel-labs
More in Cloud & infraturborepo
Skill · vercel
More in Cloud & inframicrosoft-foundry
Skill · microsoft
More in Cloud & infraazure-diagnostics
Skill · microsoft
More in Cloud & infrauncloud
Skill · affaan-m
More in Cloud & infra
Skill · vercel-labs
More in Cloud & infravercel-react-best-practices
Skill · vercel-labs
More in Cloud & infraturborepo
Skill · vercel
More in Cloud & inframicrosoft-foundry
Skill · microsoft
More in Cloud & infraazure-diagnostics
Skill · microsoft
More in Cloud & infrauncloud
Skill · affaan-m
More in Cloud & infra