Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

terraform-engineer — Claude Code skill: IaC on AWS, Azure, GCP

Skill for writing and managing infrastructure with Terraform. Designs reusable modules, configures remote state, validates code, and safely applies changes across AWS, Azure, and GCP.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-code
Open on GitHub

What terraform-engineer does

terraform-engineer is a specialized skill for infrastructure as code on AWS, Azure, and GCP. It analyses requirements, designs composable modules with clear interfaces, and configures remote backends with locking and encryption. At each step it validates code via terraform fmt, terraform validate, and tflint, runs terraform plan, extracts a summary highlighting creates, updates, and deletes—then asks for explicit approval before terraform apply. It refuses to apply if destructive changes are present without user confirmation.

The skill handles error recovery: if terraform refresh detects state drift, it realigns via terraform state rm or terraform import; if credentials fail, it checks environment variables and provider configuration. It enforces semantic versioning, requires pinned provider versions, forbids hardcoded secrets and local state in production. Outputs ready-made module structure (main.tf, variables.tf, outputs.tf) with backend and provider configuration examples.

What it helps with

  • Design reusable Terraform modules with input validation and clear outputs
  • Set up remote state with locking for multi-user teams
  • Resolve state drift and conflicts through import and removal
  • Validate configuration and review plans before applying infrastructure changes
  • Manage multi-cloud infrastructure with consistent structure

Example prompts for the agent

  • Create an S3 module with bucket name validation and resource tags
  • Configure a remote backend on S3 with DynamoDB locking for production
  • Migrate state from local to remote backend and resolve conflicts

How to install terraform-engineer

1Skills CLI (Vercel)

npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-code

2Manually: put the files in place

~/.claude/skills/terraform-engineer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/terraform-engineer/

From the same set61

The whole set →
laravel-specialist https://github.com/Jeffallan Configures the agent for Laravel 10+ and PHP 8.2+ development. It guides Eloquent modeling, Horizon queues, API resources, and Pest testing. Claude Code CX Codex Cursor +1 23,300installs golang-pro https://github.com/Jeffallan A Go skill for concurrent code, microservices, performance profiling, and idiomatic interfaces. Use it for goroutines, gRPC, benchmarks, and table-driven tests. Claude Code CX Codex Cursor +1 18,900installs php-pro https://github.com/Jeffallan Enforces PHP 8.3+ standards across Laravel and Symfony projects with strict typing, PHPStan level 9 checks, and automated Pest tests. Claude Code CX Codex Cursor +1 15,500installs flutter-expert https://github.com/Jeffallan Skill for building cross-platform apps with Flutter 3+ and Dart. Covers widgets, state management via Riverpod or Bloc, GoRouter navigation, and performance optimization. Claude Code CX Codex Cursor +1 14,300installs typescript-pro https://github.com/Jeffallan Implements advanced TypeScript type systems, branded types, and tRPC configurations. Use it when building type-first APIs or complex discriminated unions. Claude Code CX Codex Cursor +1 14,200installs kubernetes-specialist https://github.com/Jeffallan This skill helps create and validate Kubernetes manifests, set workload security, and troubleshoot failing pods. Use it for deployment and cluster operations. Claude Code CX Codex Cursor +1 14,100installs devops-engineer https://github.com/Jeffallan This skill creates Dockerfiles, CI/CD configs, Kubernetes manifests, and IaC templates. Use it for deployments, platform work, and incident response. Claude Code CX Codex Cursor +1 11,200installs wordpress-pro https://github.com/Jeffallan This skill builds WordPress themes, plugins, Gutenberg blocks, and WooCommerce features. Use it for REST API work, hooks, security checks, and performance tuning. Claude Code CX Codex Cursor +1 9,700installs

Similar

cli-batches cheaper-inference Submit and monitor batch inference jobs from the CLI using OmniRoute. Upload input files, inspect batch status, and retrieve results for CI/CD pipelines. Claude Code CX Codex Cursor +1 951installs omni-proxies cheaper-inference Configures HTTP, HTTPS and SOCKS proxies for upstream provider requests, with per-provider or global rules, connectivity checks and rotation. Claude Code CX Codex Cursor +1 947installs omni-tunnels cheaper-inference Creates secure tunnels (ngrok, Cloudflare Tunnel, or custom) to expose OmniRoute to the internet or connect remote agents and CI pipelines. Claude Code CX Codex Cursor +1 944installs sandbox-npm-install official github This skill installs npm dependencies on Docker's local ext4 filesystem and symlinks node_modules back into the workspace. Use it with virtiofs mounts. GitHub Copilot 1,700installs gke-workload-scaling-troubleshooting official google Diagnoses GKE HorizontalPodAutoscaler failures and prepares GitOps fixes. Use it when metrics report or workloads fail to scale up or down. Claude Code Gemini CLI CX Codex 1,400installs bigquery-troubleshooting official google This skill investigates broken, slow, or costly BigQuery jobs. Use it to isolate bottlenecks, trace symptoms to causes, and choose remediation steps. Claude Code Gemini CLI CX Codex 1,400installs wizard Matt Pocock This skill creates an interactive bash wizard for manual setup steps, CI secrets, third-party dashboards, and one-off migrations. Claude Code 553,369installs hyperframes-cli heygen-com Controls HyperFrames video workflows from the CLI: audits layouts and contrast, edits timeline clips, captures snapshots, and renders locally or in cloud runtimes. Claude Code CX Codex Cursor +1 1,200,000installs

Questions about terraform-engineer

How do I install terraform-engineer in Claude Code?

Run npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-code, then verify the SKILL.md file is available at ~/.claude/skills/terraform-engineer/SKILL.md.

What does terraform-engineer do?

It handles the full cycle: analyses infrastructure, designs modules, configures state and providers, validates code, creates a plan, and requests approval before apply. It catches and resolves errors like state drift, auth issues, and dependency problems.

Which cloud platforms are supported?

AWS, Azure, and GCP. The skill configures each provider and can work with them simultaneously in a single project.

Source text

SKILL.md · MIT
---
name: terraform-engineer
description: Use when implementing infrastructure as code with Terraform across AWS, Azure, or GCP. Invoke for module development (create reusable modules, manage module versioning), state management (migrate backends, import existing resources, resolve state conflicts), provider configuration, multi-environment workflows, and infrastructure testing.
license: MIT
metadata:
  author: https://github.com/Jeffallan
  company: https://synergetic.solutions
  version: "1.1.0"
  domain: infrastructure
  triggers: Terraform, infrastructure as code, IaC, terraform module, terraform state, AWS provider, Azure provider, GCP provider, terraform plan, terraform apply
  role: specialist
  scope: implementation
  output-format: code
  related-skills: cloud-architect, devops-engineer, kubernetes-specialist
---

# Terraform Engineer

Senior Terraform engineer specializing in infrastructure as code across AWS, Azure, and GCP with expertise in modular design, state management, and production-grade patterns.

## Core Workflow

1. **Analyze infrastructure** — Review requirements, existing code, cloud platforms
2. **Design modules** — Create composable, validated modules with clear interfaces
3. **Implement state** — Configure remote backends with locking and encryption
4. **Secure infrastructure** — Apply security policies, least privilege, encryption
5. **Validate** — Run `terraform fmt` and `terraform validate`, then `tflint`; if any errors are reported, fix them and re-run until all checks pass cleanly before proceeding
6. **Plan and review** — Run `terraform plan -out=tfplan` and extract a summarized plan highlighting creates, updates, deletes, and especially any destructive actions (recreations or deletions); if the plan fails, see error recovery below
7. **Approve and apply** — Present the plan summary to the user and ask for explicit approval. Only execute `terraform apply tfplan` after receiving confirmation. Refuse to apply the plan if approval is withheld, or if destructive changes are present and the user has not explicitly accepted them

### Error Recovery

**Validation failures (step 5):** Fix reported errors → re-run `terraform validate` → repeat until clean. For `tflint` warnings, address rule violations before proceeding.

**Plan failures (step 6):**
- *State drift* — Run `terraform refresh` to reconcile state with real resources, or use `terraform state rm` / `terraform import` to realign specific resources, then re-plan.
- *Provider auth errors* — Verify credentials, environment variables, and provider configuration blocks; re-run `terraform init` if provider plugins are stale, then re-plan.
- *Dependency / ordering errors* — Add explicit `depends_on` references or restructure module outputs to resolve unknown values, then re-plan.

After any fix, return to step 5 to re-validate before re-running the plan.

## Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |
|-------|-----------|-----------|
| Modules | `references/module-patterns.md` | Creating modules, inputs/outputs, versioning |
| State | `references/state-management.md` | Remote backends, locking, workspaces, migrations |
| Providers | `references/providers.md` | AWS/Azure/GCP configuration, authentication |
| Testing | `references/testing.md` | terraform plan, terratest, policy as code |
| Best Practices | `references/best-practices.md` | DRY patterns, naming, security, cost tracking |

## Constraints

### MUST DO
- Use semantic versioning and pin provider versions
- Enable remote state with locking and encryption
- Validate inputs with validation blocks
- Use consistent naming conventions and tag all resources
- Document module interfaces
- Run `terraform fmt` and `terraform validate`

### MUST NOT DO
- Store secrets in plain text or hardcode environment-specific values
- Use local state for production or skip state locking
- Mix provider versions without constraints
- Create circular module dependencies or skip input validation
- Commit `.terraform` directories

## Code Examples

### Minimal Module Structure

**`main.tf`**
```hcl
resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
  tags   = var.tags
}
```

**`variables.tf`**
```hcl
variable "bucket_name" {
  description = "Name of the S3 bucket"
  type        = string

  validation {
    condition     = length(var.bucket_name) > 3
    error_message = "bucket_name must be longer than 3 characters."
  }
}

variable "tags" {
  description = "Tags to apply to all resources"
  type        = map(string)
  default     = {}
}
```

**`outputs.tf`**
```hcl
output "bucket_id" {
  description = "ID of the created S3 bucket"
  value       = aws_s3_bucket.this.id
}
```

### Remote Backend Configuration (S3 + DynamoDB)

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

### Provider Version Pinning

```hcl
terraform {
  required_version = ">= 1.5.0"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 3.0"
    }
  }
}
```

## Output Format

When implementing Terraform solutions, provide: module structure (`main.tf`, `variables.tf`, `outputs.tf`), backend and provider configuration, example usage with tfvars, and a brief explanation of design decisions.

Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)

[Documentation](https://jeffallan.github.io/claude-skills/skills/infrastructure/terraform-engineer/)

© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor