Agent Skills by ALSEL
Anthropic ClaudeDevOps・インフラ⭐ リポ 0品質スコア 50/100

terraform-skill

Terraform/OpenTofuのモジュール作成・レビュー・デバッグ、テスト、CI、スキャン、またはstate操作を行う際に使用します。バージョン対応のガードにより、identity churnやシークレット漏洩、影響範囲、CIドリフト、state破損といった障害モードを診断します。

description の原文を見る

Use when writing, reviewing, or debugging Terraform/OpenTofu modules, tests, CI, scans, or state ops — diagnoses failure mode (identity churn, secrets, blast radius, CI drift, state corruption) with version-aware guards.

SKILL.md 本文

Terraform Skill for Claude

診断第一のアプローチで Terraform と OpenTofu をサポートします。コアファイルはワークフローであり、詳細な情報は必要に応じてロードされるリファレンスに含まれます。

レスポンス契約

すべての Terraform/OpenTofu レスポンスには以下を含める必要があります。

  1. 前提条件とバージョン下限 — ランタイム (terraform または tofu)、正確なバージョン、プロバイダー、ステート バックエンド、実行パス (ローカル/CI/クラウド/Atlantis)、環境の重要度。ユーザーが提供しなかった場合は、ステートの前提条件を明示的に述べます。
  2. 対処するリスク カテゴリ — identity churn、secret exposure、blast radius、CI drift、コンプライアンス ギャップ、state corruption、プロバイダー アップグレード リスク、テストの盲点のいずれか 1 つ以上。
  3. 選択した改善策とトレードオフ — 何を選択したか、何をトレードオフしたか、理由は何か。
  4. 検証計画 — ランタイムとリスク レベルに合わせた正確なコマンド (fmt -checkvalidateplan -out、policy check)。
  5. ロールバック ノート — 破壊的またはステート変更操作の場合、元に戻す方法と保持すべき証拠。

レビュー済みのプラン成果物と承認なしに、本番環境への直接適用を推奨することはありません。

ワークフロー

  1. 実行コンテキストをキャプチャ — ランタイム + バージョン、プロバイダー、バックエンド、実行パス、環境の重要度。
  2. 以下のルーティング テーブルを使用して失敗モードを診断。意図が複数のカテゴリに分かれている場合は、両方のリファレンスをロードします。
  3. 一致するリファレンス ファイルのみをロード — タスクが必要としない詳細情報は事前ロードしません。
  4. リスク制御を伴う修正案を提案 — これがモードにどのように対処するか、何がまだ問題になるか、ガードレール (テスト/承認/ロールバック)。
  5. 成果物を生成 — HCL、マイグレーション ブロック (movedimport)、CI 変更、ポリシー ルール。
  6. 最終化前に検証 — リスク レベルに合わせた検証コマンドを実行します。
  7. 最後にレスポンス契約を発行

生成前に診断

失敗カテゴリ症状主要なリファレンス
Identity churnリファクタリング後のリソース アドレス シフト、count インデックス churn、moved ブロック不足Code Patterns: count vs for_eachCode Patterns: moved blocksCode Patterns: LLM mistakes
Secret exposureデフォルト、ステート、ログ、CI 成果物内の秘密情報Security & ComplianceCode Patterns: write-onlyState Management
Blast radius過度に大きなスタック、本番環境と非本番環境の共有ステート、不安全なアプライState ManagementModule Patterns
CI driftローカル プラン ≠ CI プラン、レビュー済み成果物なしのアプライ、ピン留めされていないバージョンCI/CD WorkflowsCode Patterns: versions
Compliance gapsポリシー ステージの不足、承認モデルなし、証拠保持なしSecurity & ComplianceCI/CD Workflows
Testing blind spotsプランのみの計算値検証、セット タイプのインデックス、モック/実検証の混同Testing Frameworks
State corruption / recoveryロック スタック、バックエンド マイグレーション、ドリフト調整State Management
Provider upgrade risk破壊的変更を含むプロバイダー バージョン アップ、ピン留めされていないモジュールCode Patterns: versionsModule Patterns
Provider lifecycleステート内にリソースがある状態でプロバイダーを削除、孤立したリソース、removed ブロック使用法State Management: Provider Removal

このスキルを使用する時期

以下の場合にアクティベート: Terraform/OpenTofu 構成またはモジュールの作成またはレビュー、テストのセットアップまたはデバッグ、マルチ環境デプロイメントの構造化、IaC CI/CD の実装、モジュール パターンまたはステート 構成の選択、リモート ステート バックエンドの構成またはマイグレーション。

使用しないケース: Claude がすでに知っている基本的な HCL 構文の質問、プロバイダー API リファレンス (ドキュメントへのリンク)、Terraform/OpenTofu に関連しないクラウド プラットフォームの質問。

コア原則

モジュール階層

タイプ使用する時期スコープ
リソース モジュール接続されたリソースの単一の論理グループVPC + サブネット、SG + ルール
インフラストラクチャ モジュール目的のためのリソース モジュールのコレクション1 つのリージョン/アカウント内の複数のリソース モジュール
Composition完全なインフラストラクチャ複数のリージョン/アカウントにまたがる

フロー: リソース → リソース モジュール → インフラストラクチャ モジュール → Composition。

ディレクトリ レイアウト

environments/   # prod/ staging/ dev/  — 環境ごとの構成
modules/        # networking/ compute/ data/ — 再利用可能なモジュール
examples/       # minimal/ complete/ — ドキュメント + 統合フィクスチャ

環境モジュールを分離します。examples/ をドキュメントとテスト フィクスチャの両方として使用します。モジュールは小さく、単一責任に保ちます。

アーキテクチャ原則、命名規則、変数/出力契約については、Module Patterns を参照してください。

命名規則 (概要)

  • 説明的なリソース名 (aws_instance.main ではなく aws_instance.web_server)
  • 本当のシングルトン リソースのみに this を予約
  • 変数にコンテキストをプレフィックス (cidr ではなく vpc_cidr_block)
  • 標準ファイル: main.tfvariables.tfoutputs.tfversions.tf

例については、Module Patterns: Variable NamingCode Patterns: Block Ordering を参照してください。

ブロック順序 (概要)

リソース ブロック: count/for_each 最初 → 引数 → tagsdepends_onlifecycle。 変数ブロック: descriptiontypedefaultvalidationnullablesensitive

完全なルールと例については、Code Patterns: Block Ordering & Structure を参照してください。

テスト戦略

決定マトリックス: どのテスト アプローチを使用するか?

状況アプローチツールコスト
簡単な構文チェック静的分析validatefmt無料
コミット前の検証静的 + lintvalidatetflinttrivycheckov無料
Terraform 1.6+、単純なロジックネイティブ テスト フレームワークterraform test無料~低
Pre-1.6 または Go スキル統合テストTerratest低~中
セキュリティ/コンプライアンス重視ポリシー コードOPA、Sentinel無料
コスト意識が高いワークフローモック プロバイダー (1.7+)ネイティブ テスト + モック無料
マルチクラウド、複雑完全な統合Terratest + 実インフラ中~高

ネイティブ テスト ルール (1.6+)

テスト コードを書く前に、Terraform MCP を使用してリソース スキーマを検証し、アサーションが実際の属性をターゲットにしていることを確認します。

  • command = plan — 高速、入力から導き出された値のみ
  • command = apply計算値 (ARN、生成名) および セット タイプのネストされたブロック に必要
  • セット タイプ ブロックは [0] でインデックスできません — for 式を使用するか、command = apply を使用して具体化します
  • 一般的なセット タイプ: S3 暗号化ルール、ライフサイクル遷移、IAM ポリシー ステートメント

静的分析パイプライン、ネイティブ テスト パターン、Terratest 統合、モック プロバイダー、および完全な LLM 誤りチェックリストについては、Testing Frameworks を参照してください。

Count vs For_Each — クイック ルール

シナリオ使用理由
ブール条件 (作成 / しない)count = condition ? 1 : 0オプションのシングルトン トグル
アイテムが並べ替えられるか削除される可能性があるfor_each = toset(list)安定したリソース アドレス
キーで参照for_each = map名前付きアクセス
複数の名前付きリソースfor_eachより良い ID の安定性

決してリスト インデックスを長寿命の ID として使用しないでください — 中間要素を削除するとその後のすべてのアドレスが並べ替えられます。決定マトリックス、安全なマイグレーション プレイブック、moved ブロック パターン、および既知のプラン時失敗ケースについては、Code Patterns: count vs for_each を参照してください。

依存関係管理用のローカル

条件付きリソースの属性をその親に優先する場合、ローカルで try() を使用するのは特殊化された高価値パターンです — 明示的な depends_on なしで正しい削除順序を強制します。一般的な使用: VPC + セカンダリ CIDR 関連付け + サブネット。

完全なパターンと実行例については、Code Patterns: Locals for Dependency Management を参照してください。

モジュール開発

標準レイアウト:

my-module/
├── README.md       # 使用ドキュメント
├── main.tf         # プライマリ リソース
├── variables.tf    # 説明付きの型指定された入力
├── outputs.tf      # 出力値
├── versions.tf     # required_version + required_providers
├── examples/
│   ├── minimal/
│   └── complete/
└── tests/
    └── module_test.tftest.hcl   # または Terratest 用 Go

変数契約: 常に description、常に明示的な type、複雑な制約には validation を使用、秘密には sensitive = true を使用、型なしの map(any) ではなく optional() と型指定のデフォルト (1.3+) を優先します。

出力契約: 常に description、機密出力をマーク、安定したサブセットを公開 (プロバイダー オブジェクト全体ではなく)。

モジュール リリース チェックリストと LLM 誤りチェックリストを含む完全な契約パターンについては、Module Patterns を参照してください。

CI/CD

パイプライン ステージ: validatetestplanapply (環境保護付き)。

コスト制御: PR 検証ではモック プロバイダーを使用、本番環境またはスケジュール済みでのみ実クラウド統合、テスト リソースにタグ付け、自動クリーンアップ。

ドリフト防止: ランタイムとプロバイダーをピン留め、.terraform.lock.hcl をコミット、プラン ステージからレビュー済みプラン成果物を適用 (適用ジョブ内で plan を再実行しない)、すべての apply パスでポリシー/セキュリティ ステージを実行。

GitHub Actions、GitLab CI、Atlantis テンプレートと LLM 誤りチェックリストについては、CI/CD Workflows を参照してください。

セキュリティとコンプライアンス

重要なチェック:

trivy config .
checkov -d .

しないこと: 変数またはファイルに秘密情報を保存する、デフォルト VPC を使用する、暗号化をスキップする、セキュリティ グループを 0.0.0.0/0 に開く、aws_security_group でインライン ingress/egress ブロックを使用する。

すること: AWS Secrets Manager / Parameter Store から秘密情報をソースする、または 1.11+ で write_only 引数を使用する、専用 VPC を作成する、保存時の暗号化と TLS を強制する、最小権限 SG を使用する、別の aws_vpc_security_group_{ingress,egress}_rule リソースを使用する (AWS プロバイダー v5+)。

変数を sensitive = true としてマークすると、表示のみが隠されます — 値はステート内に存在します。1.11+ では write_only / *_wo を使用するか、Terraform から完全に秘密の材料を除外して、ランタイム ルックアップを使用します。

trivy/checkov パイプライン、ステート ファイル強化、コンプライアンス マッピング、および LLM 誤りチェックリストについては、Security & Compliance を参照してください。

ステート管理

チームまたは本番環境ではローカル ステートを使用しないでください。 リモート バックエンドは自動ロック、暗号化、バージョン管理、監査ログ、および安全なコラボレーションを提供します。

最小実行可能なバックエンド (AWS S3、1.10+)

terraform {
  backend "s3" {
    bucket        = "my-terraform-state"
    key           = "prod/vpc/terraform.tfstate"
    region        = "us-east-1"
    encrypt       = true
    use_lockfile  = true   # ネイティブ S3 ロック、1.10+
  }
}

Terraform < 1.10 では、use_lockfile の代わりに dynamodb_table = "terraform-state-lock" を使用します。Azure Storage、GCS、および Terraform Cloud はすべて組み込みのロックを提供しています — 構文については「ステート管理」リファレンスを参照してください。

ステート構成

パターン使用する時期パス例
環境ごと環境ごとに異なるチームprod/terraform.tfstatestaging/...
コンポーネントごと独立したライフサイクルprod/vpc/prod/eks/prod/rds/
ハイブリッド (推奨)両方の利点prod/networking/prod/compute/staging/networking/

ステートを分割する時期: 異なるチーム、異なる更新ケーデンス、または >500 リソース。結合する時期: 密接に結合されたリソース、<100 リソース、同じライフサイクル。

ロック、マイグレーション、マルチチーム分離、災害復旧、および LLM 誤りチェックリストについては、State Management を参照してください。

バージョン管理

コンポーネント戦略
Terraform ランタイムマイナーをピン留めrequired_version = "~> 1.9"
プロバイダーメジャーをピン留めversion = "~> 5.0"
モジュール (本番)正確にピン留めversion = "5.1.2"
モジュール (開発)パッチを許可version = "~> 5.1"

意図的に .terraform.lock.hcl をコミットします。プロバイダー/ランタイム アップグレードを機能変更とは別の PR に保ちます。制約構文とアップグレード ワークフローについては、Code Patterns: Version Management を参照してください。

モダン Terraform 機能 (1.0+)

機能最小バージョン一般的な使用
try()0.13+安全なフォールバック、element(concat()) を置き換え
nullable = false1.1+null がデフォルトを静かに上書きするのを防ぐ
moved ブロック1.1+破棄/再作成なしでリファクタリング
optional() と デフォルト1.3+型指定のオブジェクト属性
import ブロック1.5+宣言型インポート、VCS でレビュー可能
check ブロック1.5+ランタイム アサーション
ネイティブ terraform test1.6+組み込みテスト フレームワーク
モック プロバイダー1.7+コスト ゼロのユニット テスト
removed ブロック1.7+宣言型リソース削除
プロバイダー定義関数1.8+プロバイダー固有の変換 (プロバイダーが関数を宣言する必要があります)
クロス変数検証1.9+validation ブロック内の他の var.* の参照
write_only 引数1.11+秘密がステートに保存されることはありません
S3 ネイティブ ロック ファイル1.10+DynamoDB なしのステート ロック

機能を発行する前にランタイム下限を確認します。機能ごとの一般的な LLM エラー パターンを含む完全なテーブルについては、Code Patterns: Feature Guard Table を参照してください。

ランタイム固有のガイダンス

  • Terraform 1.0-1.5 / OpenTofu 1.0-1.5: 統合には Terratest、静的分析 + プラン検証のみ (ネイティブ テストなし)。
  • 1.6+: ネイティブ terraform test / tofu test が利用可能 — 簡単なユニット テストをマイグレート、複雑な統合には Terratest を保持。
  • 1.7+: モック プロバイダーはテスト コストを削減 — ユニット テストではモック、最終統合では実行。
  • 1.10+: S3 ネイティブ ロック ファイル (use_lockfile) は新しい構成の正しいデフォルト — DynamoDB ロックは不要になりました。
  • 1.11+: write_only 引数により、秘密情報をステートから外します。
  • Terraform vs OpenTofu: 両方がサポートされています。ライセンス、ガバナンス、機能デルタについては、Quick Reference: Terraform vs OpenTofu を参照してください。

リファレンス ファイル

段階的な開示 — ここでは必須事項、必要に応じて詳細:

  • Testing Frameworks — 静的分析、ネイティブ テスト、Terratest、モック プロバイダー
  • Module Patterns — 構造、変数/出力契約、terraform_remote_state ルール、リリース チェックリスト
  • CI/CD Workflows — GitHub Actions、GitLab CI、Atlantis、コスト制御
  • Security & Compliance — trivy/checkov、秘密処理、コンプライアンス マッピング
  • State Management — バックエンド、ロック、マイグレーション、マルチチーム、復旧
  • Code Patterns — ブロック順序、count/for_each 詳細、モダン機能、バージョン管理、ローカル
  • Quick Reference — コマンド チート シート、フローチャート、トラブルシューティング

ライセンス

Apache License 2.0。完全な条項については LICENSE を参照してください。

Copyright © 2026 Anton Babenko

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
antonbabenko
リポジトリ
antonbabenko/terraform-skill
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/antonbabenko/terraform-skill / ライセンス: Apache-2.0

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: antonbabenko · antonbabenko/terraform-skill · ライセンス: Apache-2.0