terraform-engineer

jeffallan/claude-skills · updated Apr 8, 2026

$npx skills add https://github.com/jeffallan/claude-skills --skill terraform-engineer
0 commentsdiscussion
summary

Infrastructure as code implementation across AWS, Azure, and GCP with modular design and state management.

  • Covers module development, state backend configuration with locking and encryption, provider setup, and multi-environment workflows
  • Enforces validation, semantic versioning, and security constraints; includes error recovery patterns for state drift, auth failures, and dependency issues
  • Provides structured workflows: analyze requirements, design composable modules, configure remo
skill.md

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 apply — Run terraform plan -out=tfplan, review output carefully, then terraform apply tfplan; if the plan fails, see error recovery below

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

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
  tags   = var.tags
}

variables.tf

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

output "bucket_id" {
  description = "ID of the created S3 bucket"
  value       = aws_s3_bucket.this.id
}

Remote Backend Configuration (S3 + DynamoDB)

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

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.

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.647 reviews
  • Anaya Robinson· Dec 28, 2024

    terraform-engineer reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • James Abbas· Dec 20, 2024

    I recommend terraform-engineer for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Hassan Farah· Dec 16, 2024

    Useful defaults in terraform-engineer — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Zara Liu· Dec 4, 2024

    Registry listing for terraform-engineer matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Zara Farah· Nov 23, 2024

    Useful defaults in terraform-engineer — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Evelyn Mensah· Nov 19, 2024

    I recommend terraform-engineer for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Arjun Ramirez· Nov 11, 2024

    terraform-engineer reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Aisha Thomas· Nov 7, 2024

    Registry listing for terraform-engineer matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Dev Patel· Oct 26, 2024

    terraform-engineer reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Zara Srinivasan· Oct 14, 2024

    I recommend terraform-engineer for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 47

1 / 5