Back to skills
SkillHub ClubRun DevOpsDevOpsBackend

terraform-expert

Provides Terraform code patterns for AWS infrastructure including VPC, ECS, and RDS modules. Shows project structure, state management with S3 backend, and common patterns like for_each loops. Includes practical examples but lacks interactive guidance.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
5
Hot score
82
Updated
March 19, 2026
Overall rating
A7.7
Composite score
5.0
Best-practice grade
B80.4

Install command

npx @skill-hub/cli install timequity-plugins-terraform-expert
terraforminfrastructure-as-codeawscloud-infrastructure

Repository

timequity/plugins

Skill path: craft-coder/infra/terraform-expert

Provides Terraform code patterns for AWS infrastructure including VPC, ECS, and RDS modules. Shows project structure, state management with S3 backend, and common patterns like for_each loops. Includes practical examples but lacks interactive guidance.

Open repository

Best for

Primary workflow: Run DevOps.

Technical facets: DevOps, Backend.

Target audience: DevOps engineers and infrastructure developers working with Terraform on AWS.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: timequity.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install terraform-expert into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/timequity/plugins before adding terraform-expert to shared team environments
  • Use terraform-expert for devops workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: terraform-expert
description: Infrastructure as Code with Terraform - modules, state management, and best practices.
---

# Terraform Expert

## Project Structure

```
terraform/
├── modules/
│   ├── vpc/
│   ├── ecs/
│   └── rds/
├── environments/
│   ├── dev/
│   ├── staging/
│   └── prod/
├── main.tf
├── variables.tf
├── outputs.tf
└── versions.tf
```

## Module Pattern

```hcl
# modules/vpc/main.tf
resource "aws_vpc" "main" {
  cidr_block           = var.cidr_block
  enable_dns_hostnames = true

  tags = merge(var.tags, {
    Name = "${var.name}-vpc"
  })
}

# modules/vpc/variables.tf
variable "name" {
  type        = string
  description = "Name prefix for resources"
}

variable "cidr_block" {
  type        = string
  default     = "10.0.0.0/16"
}

# modules/vpc/outputs.tf
output "vpc_id" {
  value = aws_vpc.main.id
}
```

## State Management

```hcl
# backend.tf
terraform {
  backend "s3" {
    bucket         = "terraform-state-bucket"
    key            = "env/prod/terraform.tfstate"
    region         = "us-east-1"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}
```

## Best Practices

- **One module per concern** - VPC, compute, database separate
- **Lock versions** - Provider and module versions
- **Use workspaces** - Or separate state files per env
- **Validate before apply** - `terraform plan` always
- **Format code** - `terraform fmt -recursive`

## Common Patterns

### For Each

```hcl
variable "subnets" {
  type = map(object({
    cidr = string
    az   = string
  }))
}

resource "aws_subnet" "main" {
  for_each          = var.subnets
  vpc_id            = aws_vpc.main.id
  cidr_block        = each.value.cidr
  availability_zone = each.value.az

  tags = { Name = each.key }
}
```

### Data Sources

```hcl
data "aws_ami" "amazon_linux" {
  most_recent = true
  owners      = ["amazon"]

  filter {
    name   = "name"
    values = ["amzn2-ami-hvm-*-x86_64-gp2"]
  }
}
```
terraform-expert | SkillHub