Skills · Claude Code · Agent Skills
state はインフラの記憶、plan は契約 — 交渉の余地なし。
OpenTofu と Terraform を同格に扱う HCL の IaC:state の暗号化、バージョン固定、API としてのモジュール、そして保存した plan を CI だけがレビュー後に適用する。
schematize-terraform · v0.3.0bash
$ schematize install terraform譲れない基準
「速くするため」に無効化しない。完全な一覧はスキルに。
リポジトリごとに 1 ツール
OpenTofu と Terraform は同格でデフォルトはなく、リポジトリごとにどちらかを選び、混在させない。
環境ごとにルートを分ける
hml と prd の分離に workspace は使わない。backend・認証情報・コードを共有してしまう。
リモートで lock 付き・暗号化された state
環境とスタックごとに 1 つでバージョン管理。平文の state は禁止で、*.tfstate や *.tfplan は git に入れない。
バージョンと lock の固定
required_version と required_providers に version を指定し、全プラットフォームのハッシュ入り .terraform.lock.hcl をコミットする。
モジュールは API
変数に type・description・validation、出力は最小限、シークレットは sensitive、子モジュール内に provider は置かない。
シークレットは HCL に書かない
.tf・.tfvars・default には置かない。state に入らない方式(ephemeral、実行時に読むシークレット管理)を優先する。
plan を保存、人がレビュー、適用は CI
適用するのはその plan のみ。prd は保護された environment 上の CI だけで、ローカル apply はしない。
コマンド
.claude/commands/ にインストール。いつでも /tf-help を実行。
/tf-ccContext compact:コンテキストとチェックリストをアーカイブに書き出し、/compact を実行。/tf-claude常時オンの IaC 用 CLAUDE.md をルートに作成またはマージ(他スキルのブロックは上書きしない)。/tf-driftdrift(plan -detailed-exitcode)を検出・分類し、PR での解消を提案。/tf-handoffコンパクトせずにコンテキストの handoff を作成 — セッション終了やタスク切り替え。/tf-helpすべてのコマンドを一覧表示。/tf-importimport・moved・removed ブロックで既存リソースを取り込む。state mv を手で打たない。/tf-load規範の全文を強制ロード:ツール、構成、state、バージョンとモジュール、シークレット、フロー、品質、provider。/tf-module標準の契約でモジュールを作成:validation 付き変数、出力、provider なしの versions.tf、テスト。/tf-planplan の手順:保存した plan を生成し、正しい順序で読み、人のレビューを準備する。適用はしない。/tf-reviewIaC リポジトリをレビュー:ゲートと(あれば)fmt/validate/tflint を実行し、機械が読めない部分を読む。AI エージェント向け
人手を介さずにインストール。メタデータは llms.txt。
- 実行: git clone https://github.com/schematizeme/skill-terraform.git && ./skill-terraform/install.sh
- またはダウンロード: https://github.com/schematizeme/skill-terraform/releases/latest/download/skill-terraform.zip を .claude/skills/ に展開
- assets/CLAUDE.md をリポジトリのルートにコピー(常時オンのルール)。
- /tf-help で確認。
ディスカッション
読み込み中…