terraform-module-library

Create standardized Terraform modules with version pinning and input validation.

218|33|Updated Jan 7, 2026
One-click install
npx skills add https://github.com/first-fluke/fullstack-starter --skill terraform-module-library-first-fluke
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: terraform-module-library
Source: https://github.com/first-fluke/fullstack-starter/tree/main/.agents/skills/terraform-module-library
Command: npx skills add https://github.com/first-fluke/fullstack-starter --skill terraform-module-library-first-fluke

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides standardized patterns and best practices for creating, using, and maintaining Terraform modules, helping teams build reusable infrastructure components and reduce duplication.

Core Features & Use Cases

  • Standard module structure: main.tf, variables.tf, outputs.tf, versions.tf, and README with clear documentation.
  • Provider-agnostic patterns: guidance for AWS, GCP, and Azure module design with consistent naming and interfaces.
  • Validation & documentation: enforce input validation, outputs, and example configurations for safe, discoverable modules.
  • Use Case: Imagine you are creating a networking module that provisions VPCs across clouds with reusable components and clear usage examples.

Quick Start

Create a new Terraform module named "network" following the standard module layout (main.tf, variables.tf, outputs.tf, versions.tf, README.md, and an examples/ complete/ config). Start with a simple VPC setup and document inputs and outputs.

Frequently Asked Questions about terraform-module-library

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

FAQPage Schema
How do I structure a reusable Terraform module?

To create a reusable Terraform module, use a standard layout with main.tf, variables.tf, outputs.tf, versions.tf, and a README.md containing examples. This structure enforces clear interfaces, input validation, and documentation, making your infrastructure components safe and easy to reuse.

What are the best practices for Terraform module inputs and outputs?

Terraform module best practices involve enforcing variable typing and validation, defining clear module interfaces, and providing comprehensive example configurations. Standardizing these inputs and outputs ensures your modules are safe, predictable, and discoverable across different infrastructure deployments.

Does this Terraform module guidance work for AWS, GCP, and Azure?

Yes, this guidance applies to creating and standardizing reusable Terraform modules across AWS, Google Cloud Platform, and Azure. It provides provider-agnostic patterns with consistent naming and interfaces for common infrastructure components like VPCs and managed services across these cloud providers.

Why do I need to pin provider and Terraform versions in modules?

Pinning provider and Terraform versions in modules prevents unexpected breaking changes from upstream updates. Enforcing version pinning within the versions.tf file is a core best practice to ensure your reusable infrastructure components remain stable and behave predictably across deployments.

Can I refactor existing Terraform configurations into reusable modules?

Yes, you can refactor existing Terraform code into reusable modules by applying standardized patterns for structure, provider version pinning, and variable validation. This process reduces configuration duplication and transforms static infrastructure code into maintainable, reusable components with clear usage examples.