terraform-skill — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited terraform-skill (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A best-practices skill for Terraform and OpenTofu, for AI coding agents (Claude Code, Cursor, Copilot, Gemini CLI, OpenCode, Codex, Kiro, and more). It helps the agent test code, structure modules, set up CI/CD, and write production infrastructure code.
AWS, Azure, and GCP are all first-class. AWS stays the default in examples, but the same backend, auth, security, and resource guidance applies to all three - ask for the Azure or GCP equivalent of any pattern and the skill maps it.
Testing frameworks
Module development
State management
CI/CD integration
Security and compliance
Quick reference
Installed through one Claude Code marketplace, antonbabenko/agent-plugins (terraform-skill is listed there as an external plugin). Do not also add antonbabenko/terraform-skill as a marketplace - both use the same marketplace name and will clash.
Works with any Agent Skills-compatible tool:
npx skills add https://github.com/antonbabenko/terraform-skill<!-- prettier-ignore-start -->
<details> <summary>Claude Code</summary>
/plugin marketplace add antonbabenko/agent-plugins
/plugin install terraform-skill@antonbabenko</details>
<details> <summary>Gemini CLI</summary>
gemini extensions install https://github.com/antonbabenko/terraform-skillUpdate with gemini extensions update terraform-skill.
</details>
<details> <summary>Cursor</summary>
git clone https://github.com/antonbabenko/terraform-skill.git ~/.cursor/skills/terraform-skillCursor auto-discovers skills from .agents/skills/ and .cursor/skills/.
</details>
<details> <summary>Copilot</summary>
/plugin install https://github.com/antonbabenko/terraform-skill
# or
git clone https://github.com/antonbabenko/terraform-skill.git ~/.copilot/skills/terraform-skillCopilot auto-discovers skills from .copilot/skills/.
</details>
<details> <summary>OpenCode</summary>
git clone https://github.com/antonbabenko/terraform-skill.git ~/.agents/skills/terraform-skillOpenCode auto-discovers skills from .agents/skills/, .opencode/skills/, and .claude/skills/.
</details>
<details> <summary>Codex (OpenAI)</summary>
git clone https://github.com/antonbabenko/terraform-skill.git ~/.agents/skills/terraform-skillCodex auto-discovers skills from ~/.agents/skills/ and .agents/skills/. Update with cd ~/.agents/skills/terraform-skill && git pull.
For a managed Codex plugin install, use the antonbabenko/agent-plugins marketplace (codex plugin marketplace add antonbabenko/agent-plugins, then install terraform-skill). Do not add antonbabenko/terraform-skill as a separate marketplace - it clashes by name with agent-plugins.
</details>
<details> <summary>Kiro</summary>
git clone https://github.com/antonbabenko/terraform-skill.git ~/.kiro/skills/terraform-skillKiro auto-discovers skills from .kiro/skills/ (workspace) and ~/.kiro/skills/ (global).
</details>
<details> <summary>Antigravity/Antigravity IDE/Antigravity CLI</summary>
git clone https://github.com/antonbabenko/terraform-skill.git
ln -s "$(pwd)/terraform-skill/skills/terraform-skill" ~/.gemini/config/skills/terraform-skillUpdate with git pull.
</details>
<details> <summary>Kiro</summary>
This repo is also a Kiro Power (root POWER.md + optional mcp.json). In Kiro: Powers panel → "Add power from GitHub", then paste:
https://github.com/antonbabenko/terraform-skillKiro activates the power on keyword match (e.g. "terraform", "opentofu", "state", "modules"). Installing it also registers the optional read-only HashiCorp terraform-mcp-server (from mcp.json) under the Powers section of ~/.kiro/settings/mcp.json — the guidance works without it. POWER.md is generated from skills/terraform-skill/SKILL.md; the skill content is shared, not duplicated.
</details>
<details> <summary>Manual (symlink local clone)</summary>
git clone https://github.com/antonbabenko/terraform-skill
mkdir -p ~/.claude/plugins
ln -s "$(pwd)/terraform-skill" ~/.claude/plugins/terraform-skillClaude Code autodiscovers the skill at skills/terraform-skill/SKILL.md on next launch. Edits to the clone are picked up live.
</details>
<!-- prettier-ignore-end -->
After installation, try:
"Create a Terraform module with testing for an S3 bucket"Claude picks up the skill automatically when working with Terraform or OpenTofu code.
Install the code-intelligence plugin alongside this one:
/plugin marketplace add antonbabenko/agent-plugins
/plugin install code-intelligence@antonbabenkoIt holds the general, any-language rules for navigating code (when to use a language server, plain text search, or fuzzy search; how to anchor a lookup to a position; what to do when a tool fails; saying so when one tool is swapped for another). terraform-skill is the Terraform-specific version of those rules. Why install it:
needed instead of repeating them in every language skill.
plain text matching, so renames and refactors do not miss spots or change the wrong ones.
and says up front when it had to use a different one.
terraform-skill works on its own without it. The name code-intelligence is not unique; if a code-intelligence skill is active, check it is the one from antonbabenko/agent-plugins.
Create a module with tests (AWS / Azure / GCP):
"Create a Terraform module for an AWS VPC with native tests"
>
"Build an Azure module: VNet, subnets, and a PostgreSQL Flexible Server, with native tests"
>
"Write a GCP module for a VPC network, subnetwork, and Cloud SQL Postgres, with native tests"
Set up remote state:
"Configure an S3 backend with native use_lockfile locking and encryption for Terraform state">
"Choose and configure a remote state backend for AWS, Azure, or GCP (locking, encryption, versioning)"
Review existing code:
"Review this Terraform configuration following best practices"
Generate CI/CD workflow:
"Create a GitHub Actions workflow for Terraform with cost estimation"
Testing strategy:
"Help me choose between native tests and Terratest for my modules"
State management:
"How should I organize state files for a multi-team environment?"
These assume a recent Terraform/OpenTofu - use_lockfile is 1.10+, write_only is 1.11+.
<details> <summary>AWS: production service (modules + composition, OIDC, native locking)</summary>
"I'm building a new production service on AWS. Design reusable Terraform modules plus a prod/staging composition for a VPC with public/private subnets across 3 AZs, an ECS Fargate service behind an ALB, and an RDS Postgres instance. Include nativeterraform testcoverage, variables with descriptions/types/validation, S3 remote state with encryption, bucket versioning, and nativeuse_lockfilelocking (Terraform 1.10+). Keep secret values out of plan/state - usewrite_only/*_woarguments where the provider supports them (Terraform 1.11+) and Secrets Manager/SSM references for runtime secrets. Add a GitHub Actions workflow that runs fmt/validate/tflint/trivy on PRs, produces a reviewed plan artifact, and applies it via AWS OIDC (no static keys). Keep prod/staging state isolated and follow naming conventions."
</details>
<details> <summary>GCP: port the AWS pattern (cross-cloud mapping, WIF, gcs backend)</summary>
"We're standardizing IaC across clouds. Port our AWS module pattern to GCP: reusable modules plus an environment composition for a VPC network, a regional subnetwork, and a Cloud SQL Postgres instance (google_sql_database_instance). Use thegcsbackend (bucket+prefix) for remote state, and show the state bootstrap bucket separately with object versioning, uniform bucket-level access, public access prevention, and IAM bindings. Use Workload Identity Federation for keyless GitHub Actions auth (no long-lived service-account keys) and native tests. Also show the cross-cloud equivalents (resources + backend) so the team sees the AWS-to-GCP mapping."
</details>
Decision matrices for native tests (Terraform 1.6+) vs Terratest (Go-based), plus multi-environment testing patterns.
Naming conventions (terraform-<PROVIDER>-<NAME>), directory structure, input/output design, version constraints, and documentation standards.
GitHub Actions, GitLab CI, Atlantis, Infracost cost estimation, Trivy/Checkov scanning, and compliance checks.
Static analysis, policy-as-code, secrets management, state file security, backend encryption, and compliance scanning workflows.
Side-by-side DO vs DON'T examples for variable naming, resource naming, module composition, state management, and provider configuration.
This skill started from field-tested Terraform and OpenTofu patterns, then grew through contributions from people who hit missing guidance and added it back.
Sources:
Version-specific guidance:
Decision frameworks: not just "what to do" but "when and why".
The skill works without a language server. To jump to a definition, find references, outline a file, or show hover docs, it can also use terraform-ls, HashiCorp's official Terraform language server.
(rg) plus reading files. Nothing breaks; you get text matches instead of matches by meaning.
terraform (or tofu) binary on PATH, andterraform init run in the workspace, before it can resolve names across modules and providers.
terraform-ls releases page, or turn it on through your editor or agent host. Use whatever version your host supports.
/plugin marketplace add boostvolt/claude-code-lsps then /plugin install terraform-ls@claude-code-lsps.
How the skill uses it:
rg plus reading files for exact text, known names, .tfvars, comments, and non-HCL files.
then ask about that position).
find every reference, then edit each by hand. To rename a resource or module address: use a moved block, not a text replace.
See CLAUDE.md for skill development guidelines, content structure, how to propose improvements, and the validation approach.
Report bugs or request features via GitHub Issues.
Apache 2.0
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.