Help us improve
Share bugs, ideas, or general feedback.
From terraform-plugin
Manages Terraform IaC with HCL configuration, state management, modular design, plan-apply workflows for cloud and on-prem resource provisioning.
npx claudepluginhub laurigates/claude-plugins --plugin terraform-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/terraform-plugin:infrastructure-terraformsonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert knowledge for Infrastructure as Code using Terraform with focus on declarative HCL, state management, and resilient infrastructure.
Provides a structured workflow for Terraform infrastructure as code, covering resource provisioning, module creation, state management, multi-environment deployments, and CI/CD integration.
Guides writing and organizing Terraform HCL configurations for cloud resource provisioning, including providers, resources, variables, outputs, data sources, locals, commands, and file structure best practices.
Guides advanced Terraform/OpenTofu IaC with module design, state management, remote backends, workspaces, policy-as-code, GitOps, and multi-cloud automation.
Share bugs, ideas, or general feedback.
Expert knowledge for Infrastructure as Code using Terraform with focus on declarative HCL, state management, and resilient infrastructure.
Terraform & IaC
terraform plan and review carefully before changesterraform destroy# Core workflow
terraform init # Initialize working directory
terraform plan # Generate execution plan
terraform apply # Apply changes
terraform destroy # Destroy infrastructure
# State management
terraform state list # List all resources
terraform state show <resource> # Show specific resource
terraform state pull > backup.tfstate # Backup state
# Validation and formatting
terraform validate # Validate configuration
terraform fmt -recursive # Format all files recursively
terraform fmt path/to/dir # Format specific directory
terraform graph | dot -Tsvg > graph.svg # Dependency graph
# Working with directories (use -chdir to stay in repo root)
terraform -chdir=gcp fmt # Format files in gcp/ directory
terraform -chdir=gcp validate # Validate gcp/ configuration
terraform -chdir=gcp plan # Plan from specific directory
terraform -chdir=modules/vpc init # Init module directory
# Debugging
export TF_LOG=DEBUG # Enable debug logging
terraform plan -out=tfplan # Save plan for review
terraform show tfplan # View saved plan
Module Structure
module "vpc" {
source = "./modules/vpc"
version = "1.0.0"
vpc_cidr = var.vpc_cidr
environment = var.environment
}
output "vpc_id" {
value = module.vpc.vpc_id
}
Variable Configuration
variable "environment" {
description = "Environment name"
type = string
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Environment must be dev, staging, or prod."
}
}
Remote State Backend
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-locks"
}
}
Provider Configuration
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
required_version = ">= 1.5"
}
State Debugging
# State inspection
terraform state list
terraform state show aws_instance.web
# State recovery
terraform refresh
terraform plan -refresh-only
terraform import aws_instance.existing i-1234567890
Error Resolution
# Provider errors
terraform init -upgrade
terraform init -reconfigure
# Resource conflicts
terraform taint aws_instance.broken
terraform apply -target=aws_instance.web
| Context | Command |
|---|---|
| Format directory | terraform -chdir=path/to/dir fmt |
| Check format (CI) | terraform fmt -check -recursive |
| Validate config | terraform -chdir=path/to/dir validate |
| Compact plan | terraform plan -compact-warnings |
| JSON plan output | terraform plan -out=plan.tfplan && terraform show -json plan.tfplan |
| List resources | terraform state list |
| Flag | Description |
|---|---|
-chdir=DIR | Change to DIR before running command |
-recursive | Process directories recursively |
-check | Check formatting without changes (CI) |
-compact-warnings | Show warnings in compact form |
-json | Output in JSON format |
-out=FILE | Save plan to file |
-target=RESOURCE | Target specific resource |
-refresh-only | Only refresh state, no changes |
For detailed debugging patterns, advanced module design, CI/CD integration, and troubleshooting strategies, see REFERENCE.md.