mcpField
T
terraform-skill

terraform-skill

github.com/sickn33Cloud & DevOps48.8k229 installsUpdated today
Repository

About terraform-skill

A skill for Claude that provides Terraform and OpenTofu infrastructure-as-code guidance, covering testing, modules, CI/CD, and production practices. It is intended for authoring or reviewing configurations, planning multi-environment deployments, and testing infrastructure code.

Key features

  1. 01Guide Terraform and OpenTofu configuration
  2. 02Compare count and for_each patterns
  3. 03Cover testing, modules, and CI/CD
  4. 04Address state and secret security

Use cases

  1. 01Create infrastructure configurations or modules
  2. 02Set up testing for IaC projects
  3. 03Plan multi-environment deployments
  4. 04Review or refactor Terraform configurations

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill terraform-skill

After installing, type/terraform-skillin Claude Code to confirm it loaded.

Bundled filesreferences/detailed-guide.md

Details

From the project README

Terraform Skill for Claude

Comprehensive Terraform and OpenTofu guidance covering testing, modules, CI/CD, and production patterns. Based on terraform-best-practices.com and enterprise experience.

Detailed Guide

Read the detailed guide before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.

When to Use This Skill

Activate this skill when:

  • Creating new Terraform or OpenTofu configurations or modules
  • Setting up testing infrastructure for IaC code
  • Deciding between testing approaches (validate, plan, frameworks)
  • Structuring multi-environment deployments
  • Implementing CI/CD for infrastructure-as-code
  • Reviewing or refactoring existing Terraform/OpenTofu projects
  • Choosing between module patterns or state management approaches

Don't use this skill for:

  • Basic Terraform/OpenTofu syntax questions (Claude knows this)
  • Provider-specific API reference (link to docs instead)
  • Cloud platform questions unrelated to Terraform/OpenTofu

Count vs For_Each: When to Use Each

Quick Decision Guide
ScenarioUseWhy
Boolean condition (create or don't)count = condition ? 1 : 0Simple on/off toggle
Simple numeric replicationcount = 3Fixed number of identical resources
Items may be reordered/removedfor_each = toset(list)Stable resource addresses
Reference by keyfor_each = mapNamed access to resources
Multiple named resourcesfor_eachBetter maintainability
Common Patterns

Boolean conditions:

# ✅ GOOD - Boolean condition
resource "aws_nat_gateway" "this" {
  count = var.create_nat_gateway ? 1 : 0
  # ...
}

Stable addressing with for_each:

# ✅ GOOD - Removing "us-east-1b" only affects that subnet
resource "aws_subnet" "private" {
  for_each = toset(var.availability_zones)

  availability_zone = each.key
  # ...
}

# ❌ BAD - Removing middle AZ recreates all subsequent subnets
resource "aws_subnet" "private" {
  count = length(var.availability_zones)

  availability_zone = var.availability_zones[count.index]
  # ...
}

For migration guides and detailed examples, see: Code Patterns: Count vs For_Each

Security & Compliance

Use sensitive inputs through an approved secret channel where needed; sensitive = true redacts normal display but does not encrypt state or plan files. Secure backend access, locking, encryption and plan artifacts. Do not read Secrets Manager data into Terraform and assume the value cannot enter state. Use supported ephemeral/write-only arguments only where the selected Terraform/provider version implements them.

Essential Security Checks
# Static security scanning
trivy config .
checkov -d .
Common Issues to Avoid

❌ Don't:

  • Hardcode secrets or assume sensitive variables keep values out of state
  • Use default VPC
  • Skip encryption
  • Open security groups to 0.0.0.0/0

✅ Do:

  • Use AWS Secrets Manager / Parameter Store
  • Create dedicated VPCs
  • Enable encryption at rest
  • Use least-privilege security groups

For detailed security guidance, see:

  • Security & Compliance Guide - Trivy/Checkov integration, secrets management, state file security, compliance testing

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Comments

Markdown supported