Agent skill

Tsh Implementing Terraform Modules

by TheSoftwareHouse in TheSoftwareHouse/copilot-collections

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.

MITAuto-check passedDevOps & Cloud

Install Tsh Implementing Terraform Modules

skills CLI
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-terraform-modules -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TheSoftwareHouse/copilot-collections tsh-implementing-terraform-modules --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/tsh-implementing-terraform-modules .claude/skills/tsh-implementing-terraform-modules && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tsh-implementing-terraform-modules
GitHub stars
284
Token cost
~1.6k tokens
SKILL.md length
350 words
Files
4 (incl. references)
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.

  • Works in 10 steps: Use semantic versioning for modules → Pin provider versions in versions.tf —… → Document all variables with descriptions → …
  • Creating infrastructure modules
  • SKILL.md covers Purpose, When to Use, Module Structure and Standard Module Pattern, plus 6 more sections
  • Calls aws

What it does

Tsh Implementing Terraform Modules is an agent skill from TheSoftwareHouse/copilot-collections. Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/aws-modules.md`, `references/azure-modules.md` and `references/gcp-modules.md`).

It sits in DevOps & Cloud, covering Infrastructure as code. It works with Amazon Web Services, Google Cloud, Microsoft Azure and Terraform. The repository describes itself as: Opinionated AI-enabled workflows for product engineering. The licence is MIT.

When your agent uses it

  • Creating infrastructure modules
  • Standardizing cloud provisioning
  • Implementing reusable IaC components

Example prompts

  • “/tsh-implementing-terraform-modules”

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Use semantic versioning for modules
  2. Pin provider versions in versions.tf — use aws ~> 6.0, azurerm ~> 4.0, google ~> 5.0
  3. Document all variables with descriptions
  4. Provide examples in examples/ directory
  5. Use validation blocks for input validation
  6. Output important attributes for module composition
  7. Use locals for computed values
  8. Implement conditional resources with count/for_each
  9. Test modules with Terratest
  10. Tag all resources consistently

What it can do on your machine

Read from SKILL.md and the folder at commit 2fbe51e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • aws

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use aws, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tsh Implementing Terraform Modules loads about 1.6k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 68 tokens; SKILL.md has 350 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TheSoftwareHouse/copilot-collections at commit 2fbe51e, republished under its MIT licence (© TheSoftwareHouse). 350 words, ~1,619 tokens.

Download SKILL.mdSave it as .claude/skills/tsh-implementing-terraform-modules/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
tsh-implementing-terraform-modules
description
Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.
user-invocable
false

Terraform Module Library

Production-ready Terraform module patterns for AWS, Azure, and GCP infrastructure.

Purpose

Create reusable, well-tested Terraform modules for common cloud infrastructure patterns across multiple cloud providers.

When to Use

  • Build reusable infrastructure components
  • Standardize cloud resource provisioning
  • Implement infrastructure as code best practices
  • Create multi-cloud compatible modules
  • Establish organizational Terraform standards

Module Structure

terraform-modules/
├── aws/
│   ├── vpc/
│   ├── eks/
│   ├── rds/
│   └── s3/
├── azure/
│   ├── vnet/
│   ├── aks/
│   └── storage/
└── gcp/
    ├── vpc/
    ├── gke/
    └── cloud-sql/

Standard Module Pattern

module-name/
├── main.tf          # Main resources
├── variables.tf     # Input variables
├── outputs.tf       # Output values
├── versions.tf      # Provider versions
├── README.md        # Documentation
├── examples/        # Usage examples
│   └── complete/
│       ├── main.tf
│       └── variables.tf
└── tests/           # Terratest files
    └── module_test.go

AWS VPC Module Example

main.tf:

hcl
resource "aws_vpc" "main" {
  cidr_block           = var.cidr_block
  enable_dns_hostnames = var.enable_dns_hostnames
  enable_dns_support   = var.enable_dns_support

  tags = merge(
    {
      Name = var.name
    },
    var.tags
  )
}

resource "aws_subnet" "private" {
  count             = length(var.private_subnet_cidrs)
  vpc_id            = aws_vpc.main.id
  cidr_block        = var.private_subnet_cidrs[count.index]
  availability_zone = var.availability_zones[count.index]

  tags = merge(
    {
      Name = "${var.name}-private-${count.index + 1}"
      Tier = "private"
    },
    var.tags
  )
}

resource "aws_internet_gateway" "main" {
  count  = var.create_internet_gateway ? 1 : 0
  vpc_id = aws_vpc.main.id

  tags = merge(
    {
      Name = "${var.name}-igw"
    },
    var.tags
  )
}

variables.tf:

hcl
variable "name" {
  description = "Name of the VPC"
  type        = string
}

variable "cidr_block" {
  description = "CIDR block for VPC"
  type        = string
  validation {
    condition     = can(cidrnetmask(var.cidr_block))
    error_message = "CIDR block must be valid IPv4 CIDR notation."
  }
}

variable "availability_zones" {
  description = "List of availability zones"
  type        = list(string)
}

variable "private_subnet_cidrs" {
  description = "CIDR blocks for private subnets"
  type        = list(string)
  default     = []
}

variable "enable_dns_hostnames" {
  description = "Enable DNS hostnames in VPC"
  type        = bool
  default     = true
}

variable "enable_dns_support" {
  description = "Enable DNS support in VPC"
  type        = bool
  default     = true
}

variable "create_internet_gateway" {
  description = "Whether to create an Internet Gateway"
  type        = bool
  default     = true
}

variable "tags" {
  description = "Additional tags"
  type        = map(string)
  default     = {}
}

outputs.tf:

hcl
output "vpc_id" {
  description = "ID of the VPC"
  value       = aws_vpc.main.id
}

output "private_subnet_ids" {
  description = "IDs of private subnets"
  value       = aws_subnet.private[*].id
}

output "vpc_cidr_block" {
  description = "CIDR block of VPC"
  value       = aws_vpc.main.cidr_block
}

Best Practices

  1. Use semantic versioning for modules
  2. Pin provider versions in versions.tf — use aws ~> 6.0, azurerm ~> 4.0, google ~> 5.0
  3. Document all variables with descriptions
  4. Provide examples in examples/ directory
  5. Use validation blocks for input validation
  6. Output important attributes for module composition
  7. Use locals for computed values
  8. Implement conditional resources with count/for_each
  9. Test modules with Terratest
  10. Tag all resources consistently

Reference Files

  • references/aws-modules.md - AWS module patterns
  • references/azure-modules.md - Azure module patterns
  • references/gcp-modules.md - GCP module patterns

Testing

Use Terratest (Go) to test Terraform modules. Every module must include:

  • examples/complete/ — a root module that calls the module under test with realistic values and re-exports its outputs
  • tests/module_test.go — Go test file that runs InitAndApply, reads outputs, asserts expected values, and always defers Destroy

Apply the following rules when writing tests:

  • Always call t.Parallel()
  • Always wrap options with terraform.WithDefaultRetryableErrors
  • Always use runtime.Caller(0) to resolve examples/complete/ path relative to the test file — never use hardcoded relative paths
  • Always use single_nat_gateway = true (or equivalent cost-reducing flags) in test examples
  • Provide a plan-only variant of each test (using InitAndPlanAndShowWithStruct) for fast PR validation that requires no AWS credentials
  • Use a dedicated AWS test account — never run against production
  • Set -timeout 30m in CI to avoid hanging runs
Show full SKILL.md (77 more words)Show less

Terraform vs Terragrunt Decision

Use plain Terraform when:

  • Single environment, single region
  • 2–3 environments in the same region (use workspaces or directory layout)
  • Existing project without Terragrunt (don't migrate mid-project)

Use Terragrunt when:

  • 4+ environments or multi-region deployments
  • Monorepo with many independent stacks (need run-all, dependency orchestration)
  • Team needs strict environment parity via inheritance
  • Multi-account AWS (landing zone pattern)
  • Greenfield with expected growth

Terragrunt Golden Path structure:

infrastructure/
├── terragrunt.hcl              # Root config (remote_state, generate provider)
├── _envcommon/                  # Shared module references
│   ├── vpc.hcl
│   ├── eks.hcl
│   └── rds.hcl
├── dev/
│   ├── env.hcl                 # Environment-level vars
│   ├── vpc/terragrunt.hcl
│   └── eks/terragrunt.hcl
├── staging/
│   └── ...
└── prod/
    └── ...
  • tsh-designing-multi-cloud-architecture - For architectural decisions
  • tsh-optimizing-cloud-cost - For cost-effective designs

© TheSoftwareHouse, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in .github/skills/tsh-implementing-terraform-modules of TheSoftwareHouse/copilot-collections.

  • SKILL.md
  • references/aws-modules.md
  • references/azure-modules.md
  • references/gcp-modules.md

Open the folder on GitHubat commit 2fbe51e

Compare with similar skills

Tsh Implementing Terraform Modules next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tsh Implementing Terraform Modules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tsh Implementing Terraform Modules this skillTheSoftwareHouse/copilot-collections284—~1.6kAutomated safety check: PassMIT
Terravision Cloud Diagramspatrickchugh/terravision1.6k—~5.6kAutomated safety check: NotesAGPL-3.0-only
TerrasharkLukasNiessen/terrashark715—~843Automated safety check: PassMIT
Provider Verificationmondoohq/mql411—~3.7kAutomated safety check: PassCustom licence
Terraform Module Librarywshobson/agents40k10 repos~1.3kAutomated safety check: PassMIT
Atmos Migrationcloudposse/atmos1.4k—~5.1kAutomated safety check: WarnApache-2.0

Similar skills

  • Terravision Cloud Diagrams

    patrickchugh/terravision

    Draw cloud architecture diagrams for AWS, Azure or GCP with the official provider icon sets, using TerraVision.

    1.6k GitHub stars~5.6k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Terrashark

    LukasNiessen/terrashark

    Prevent Terraform/OpenTofu hallucinations by diagnosing and fixing failure modes: identity churn, secret exposure, blast-radius mistakes, CI drift, and compliance gate gaps.

    715 GitHub stars~843 tokensUpdated 4 days ago
    DevOps & CloudAuto-check passed
  • Verify mql provider resource/field changes against real cloud infrastructure.

    411 GitHub stars~3.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Build reusable, tested Terraform modules for AWS, Azure, GCP and OCI, with a standard file layout, an AWS VPC example, versioning rules and Terratest checks.

    40k GitHub starsUsed in 10 repos~1.3k tokens
    DevOps & CloudAuto-check passed
  • Atmos Migration

    cloudposse/atmos

    Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…

    1.4k GitHub stars~5.1k tokensUpdated today
    DevOps & CloudAuto-check: warnings
  • Cloud Architect

    davila7/claude-code-templates

    Expert cloud architect specializing in AWS/Azure/GCP multi-cloud infrastructure design, advanced IaC (Terraform/OpenTofu/CDK), FinOps cost optimization, and modern architectural patterns.

    32k GitHub starsUsed in 7 repos~1.9k tokens
    DevOps & CloudAuto-check passed

More from TheSoftwareHouse/copilot-collections

All 31 skills in this repo
  • Tsh Creating Skills

    TheSoftwareHouse/copilot-collections

    Create new skills (SKILL.md) for GitHub Copilot. An agent skill from TheSoftwareHouse/copilot-collections.

    284 GitHub stars~4.1k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Implementing Frontend

    TheSoftwareHouse/copilot-collections

    Frontend component patterns, composition, design token integration, barrel file organization, error handling, and Figma-to-code workflow.

    284 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Optimizing Frontend

    TheSoftwareHouse/copilot-collections

    Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.

    284 GitHub stars~4.1k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Reviewing Frontend

    TheSoftwareHouse/copilot-collections

    Frontend-specific code review criteria, component anti-patterns, hooks quality, rendering correctness, accessibility and performance spot-checks, and module organization issues.

    284 GitHub stars~4.4k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Writing Hooks

    TheSoftwareHouse/copilot-collections

    Custom hook and composable patterns — naming, composition, stable return shapes, lifecycle cleanup, and testing strategies.

    284 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Creating Instructions

    TheSoftwareHouse/copilot-collections

    Creates custom instruction files (.instructions.md) for GitHub Copilot in VS Code.

    284 GitHub stars~2.9k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Tsh Implementing Terraform Modules

What does Tsh Implementing Terraform Modules do?

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Tsh Implementing Terraform Modules is an agent skill from TheSoftwareHouse/copilot-collections. Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.

When should I use Tsh Implementing Terraform Modules?

Tsh Implementing Terraform Modules fits situations like: creating infrastructure modules; standardizing cloud provisioning; implementing reusable IaC components.

How do I install Tsh Implementing Terraform Modules in Claude Code?

Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-terraform-modules -a claude-code`. Or copy the skill folder (.github/skills/tsh-implementing-terraform-modules in TheSoftwareHouse/copilot-collections) into .claude/skills/tsh-implementing-terraform-modules in your project. Claude Code loads it when a task matches its description.

How do I install Tsh Implementing Terraform Modules in Codex?

Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-terraform-modules -a codex`. Or copy the skill folder (.github/skills/tsh-implementing-terraform-modules in TheSoftwareHouse/copilot-collections) into .agents/skills/tsh-implementing-terraform-modules in your project. Codex loads it when a task matches its description.

Can I use Tsh Implementing Terraform Modules in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-implementing-terraform-modules -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tsh-implementing-terraform-modules, .gemini/skills/tsh-implementing-terraform-modules, .github/skills/tsh-implementing-terraform-modules and .opencode/skills/tsh-implementing-terraform-modules in your project.

What does Tsh Implementing Terraform Modules need to run?

Going by SKILL.md and its folder, Tsh Implementing Terraform Modules needs the command-line tools its instructions call (aws).

Does Tsh Implementing Terraform Modules access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tsh Implementing Terraform Modules safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tsh Implementing Terraform Modules use?

Tsh Implementing Terraform Modules is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tsh Implementing Terraform Modules use?

About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.

What are the alternatives to Tsh Implementing Terraform Modules?

Skills that share tags, products or a category with Tsh Implementing Terraform Modules: Terravision Cloud Diagrams (patrickchugh/terravision, 1.6k stars), Terrashark (LukasNiessen/terrashark, 715 stars), Provider Verification (mondoohq/mql, 411 stars) and Terraform Module Library (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tsh Implementing Terraform Modules?

TheSoftwareHouse (a GitHub organization) maintains it in TheSoftwareHouse/copilot-collections, which has 284 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 5, 2026.

Source: TheSoftwareHouse/copilot-collections on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.