terraform-style-guide
Generate and maintain Terraform code following HashiCorp's official style conventions.
- Enforces two-space indentation, lowercase underscore naming, and standard file organization across
terraform.tf,providers.tf,main.tf,variables.tf,outputs.tf, andlocals.tf - Requires type and description on all variables and outputs, with validation rules and sensitive flag support for credentials
- Prioritizes
for_eachovercountfor dynamic resources, applies security hardening (encryption, private networking, least privilege), and prevents hardcoded secrets - Includes version pinning strategies, provider aliasing for multi-region deployments, and validation checklist for code review
Terraform Style Guide
Generate and maintain Terraform code following HashiCorp's official style conventions and best practices.
Reference: HashiCorp Terraform Style Guide
Code Generation Strategy
When generating Terraform code:
- Start with provider configuration and version constraints
- Create data sources before dependent resources
- Build resources in dependency order
- Add outputs for key resource attributes
- Use variables for all configurable values
File Organization
| File | Purpose |
More from hashicorp/agent-skills
terraform-test
Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource configurations, or troubleshooting Terraform test syntax and execution.
2.8Krefactor-module
Transform monolithic Terraform configurations into reusable, maintainable modules following HashiCorp's module design principles and community best practices.
2.2Kterraform-stacks
Comprehensive guide for working with HashiCorp Terraform Stacks. Use when creating, modifying, or validating Terraform Stack configurations (.tfcomponent.hcl, .tfdeploy.hcl files), working with stack components and deployments from local modules, public registry, or private registry sources, managing multi-region or multi-environment infrastructure, or troubleshooting Terraform Stacks syntax and structure.
2.1Kprovider-resources
Implement Terraform Provider resources and data sources using the Plugin Framework. Use when developing CRUD operations, schema design, state management, and acceptance testing for provider resources.
1.4Kterraform-search-import
Discover existing cloud resources using Terraform Search queries and bulk import them into Terraform management. Use when bringing unmanaged infrastructure under Terraform control, auditing cloud resources, or migrating to IaC.
1.4Knew-terraform-provider
Use this when scaffolding a new Terraform provider.
1.3K