← ClaudeAtlas

terraform-devlisted

Use when the user asks to implement, refactor, validate, review, or troubleshoot Terraform/OpenTofu code, modules, providers, variables, state, plans, imports, security, or infrastructure changes.
iamtatsuki05/dotfiles · ★ 0 · DevOps & Infrastructure · score 56
Install: claude install-skill iamtatsuki05/dotfiles
# Terraform開発スキル Terraformコードの実装、検証、リファクタリング、モジュール設計を効率的に行うためのガイド。 ## 実装前の必須確認 **プロジェクト構成ファイルを必ず確認する。** Terraformバージョン、プロバイダ、バックエンド設定を把握する。 確認項目: - `versions.tf` / `terraform.tf`: required_version, required_providers - `backend.tf`: S3/GCS/Azure Blob等のバックエンド設定 - `.terraform-version`: tfenvで使用するバージョン - `terragrunt.hcl`: Terragrunt使用時の設定 - `.tflint.hcl`: TFLint設定 - workspace / backend / state の場所、対象環境、production 影響 - `terraform plan` を安全に実行できる認証・変数・backend 初期化状態 `apply`、`destroy`、`import`、state 操作、production workspace への変更、リソース削除を含む plan は、対象環境・影響・戻し方を示してユーザー承認を取る。原則としてこの skill では plan までを標準にし、apply は明示依頼がある場合だけ行う。 ### プロジェクト構造例 ``` infrastructure/ ├── environments/ │ ├── dev/ │ │ ├── main.tf │ │ ├── variables.tf │ │ ├── outputs.tf │ │ └── terraform.tfvars │ ├── staging/ │ └── production/ ├── modules/ │ ├── vpc/ │ │ ├── main.tf │ │ ├── variables.tf │ │ └── outputs.tf │ ├── ecs/ │ └── rds/ └── shared/ └── backend.tf ``` ## コーディング規約 ### 基本スタイル ```hcl # ローカル変数で共通値を定義 locals { common_tags = { Environment = var.environment Project = var.project_name ManagedBy = "terraform" } } # リソース定義 resource "aws_vpc" "main" { cidr_block = var.vpc_cidr enable_dns_hostnames = true enable_dns_support = true tags = merge(local.common_tags, { Name = "${var.project_name}-vpc" }) } # データソース参照 data "aws_availability_zones" "available" { state = "available" } # 条件付きリソース作成 resource "aws_eip" "nat" {