terraform-module-author

Creates reusable Terraform modules with typed variables, validation, and documentation.

3|2|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/JayRHa/AgentSkills --skill terraform-module-author
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: terraform-module-author
Source: https://github.com/JayRHa/AgentSkills/tree/main/terraform-module-author
Command: npx skills add https://github.com/JayRHa/AgentSkills --skill terraform-module-author

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Author reusable, production-grade Terraform modules with typed variables, well-documented outputs, version pinning, state hygiene, and built-in validation.

Core Features & Use Cases

  • Typed variables with validation and descriptive documentation.
  • Standard module layout: main.tf, variables.tf, outputs.tf, versions.tf, and README to expose the API surface.
  • Safe, reusable modules that can be shared across teams and published to a module registry, with guidance on root vs child module boundaries.
  • Guidance on module conventions, state hygiene, and avoiding provider/backend blocks in child modules.

Quick Start

Ask me to scaffold a reusable Terraform module with typed inputs, documented outputs, and version pinning.

Frequently Asked Questions about terraform-module-author

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

FAQPage Schema
How do I structure a reusable Terraform module with typed variables and validation?

Terraform module conventions dictate separating root and child modules, pinning provider versions in versions.tf, and omitting provider or backend blocks in child modules to maintain state hygiene and ensure safe reuse across teams.

What's the best way to document Terraform module outputs for a module registry?

Terraform module validation works by applying type constraints and custom validation rules directly to input variables. This mechanism ensures only valid configurations are passed into the infrastructure-as-code module before execution begins.

Can I share Terraform modules across teams without provider block conflicts?

You can share Terraform modules across teams by omitting provider and backend blocks from child modules. This state hygiene practice ensures modules remain compatible with different provider versions and backend configurations defined at the root level.

When do I need to pin provider versions in a Terraform module?

You need to pin provider versions in a Terraform module when preparing it for production-grade reuse. Version pinning in versions.tf prevents unexpected behavior from upstream provider updates and stabilizes the infrastructure-as-code baseline.