terraform-engineer

Implements Terraform infrastructure as code across AWS, Azure, and GCP with modules, state, and testing.

9|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/Yassimba/loom --skill terraform-engineer-yassimba
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: terraform-engineer
Source: https://github.com/Yassimba/loom/tree/main/skills/terraform-engineer
Command: npx skills add https://github.com/Yassimba/loom --skill terraform-engineer-yassimba

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Writing and maintaining Terraform infrastructure across multiple cloud providers involves many decisions about module design, state management, provider configuration, and security. This Skill provides structured guidance and reference material so infrastructure code follows consistent, secure, and testable patterns. ## Core Features & Use Cases - Module Development: Create composable, validated Terraform modules with clear input/output contracts, semantic versioning, and for_each-based resource patterns. - State Management: Configure remote backends (S3 with DynamoDB locking, Azure Blob, GCS), workspaces, state migration, and encryption. - Multi-Cloud Provider Setup: Configure AWS, Azure, and GCP providers with authentication methods, aliases for multi-account setups, and version pinning. - Testing & Policy: Apply terraform test, Terratest, OPA/Conftest policy checks, TFLint, and pre-commit hooks in CI/CD pipelines. - Use Case: You need to provision a production VPC on AWS with remote state. The Skill guides you through backend configuration with locking, a validated VPC module, tagged resources, and a plan review workflow. ## Quick Start Use the terraform-engineer skill to create a versioned AWS VPC module with remote S3 state and input validation.

Frequently Asked Questions about terraform-engineer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a reusable Terraform module?

Structure the module with main.tf, variables.tf, outputs.tf, and versions.tf files. Validate all inputs with validation blocks, use for_each instead of count for multiple resources, document every variable and output, and pin provider versions with constraints like ~> 5.0.

How do I configure remote Terraform state with locking?

Use an S3 backend with a DynamoDB table for locking on AWS, Azure Blob Storage, or Google Cloud Storage, all of which support state locking. Enable encryption and versioning on the state bucket, and never commit state files to git.

Does Terraform support multiple AWS accounts or regions?

Yes, use provider aliases to configure multiple AWS provider instances with different regions or assume_role blocks for different accounts. Reference the aliased provider on each resource with the provider argument, such as provider = aws.secondary.

How do I test Terraform code before applying it?

Run terraform fmt, validate, and plan for basic checks, then use terraform test (1.6+) for unit and integration tests. For deeper verification use Terratest in Go, and enforce policies with OPA or Conftest against the JSON plan output.

Why should I use for_each instead of count in Terraform?

for_each uses map or set keys as stable identifiers, so removing one element does not shift and recreate other resources. count relies on list indices, which causes unintended resource replacement when items are inserted or removed from the middle.

How do I manage secrets in Terraform without hardcoding them?

Mark variables as sensitive and provide values at runtime rather than as defaults, or read secrets from a secrets manager such as AWS Secrets Manager via data sources. Never hardcode credentials in .tf files or commit them to version control.