module-writing

Guide creation of Facets.cloud Terraform modules using Raptor CLI.

1|Updated Aug 20, 2025
One-click install
npx skills add https://github.com/Facets-cloud/facets-modules-redesign --skill module-writing
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: module-writing
Source: https://github.com/Facets-cloud/facets-modules-redesign/tree/main/.claude/skills/module-writing
Command: npx skills add https://github.com/Facets-cloud/facets-modules-redesign --skill module-writing

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a comprehensive guide to creating and managing Infrastructure as Code (IaC) modules using Facets.cloud and Terraform, enabling efficient and standardized infrastructure provisioning.

Core Features & Use Cases

  • Module Development Workflow: Covers the entire lifecycle from facets.yaml structure to Terraform file conventions, output types, provider configuration, and deep merge patterns.
  • Developer Guidance: Empowers platform and infra engineers to build reusable, interoperable modules.
  • Use Case: A platform engineer needs to create a new reusable module for managing PostgreSQL databases on AWS using Facets. This Skill will guide them through defining the module's contract, inputs, outputs, and Terraform implementation.

Quick Start

Learn how to create a new Facets module by following the detailed guide on module structure and the facets.yaml file.

Frequently Asked Questions about module-writing

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

FAQPage Schema
How do I create reusable Terraform modules for Facets infrastructure?

To create reusable Terraform modules for Facets infrastructure, you define the module contract using facets.yaml, configure Terraform providers, and implement deep merge patterns for composable infrastructure components.

What is the facets.yaml structure used for in IaC module development?

The facets.yaml structure defines the contract for Infrastructure as Code modules in Facets.cloud, specifying inputs, outputs, and provider configurations to ensure standardized and interoperable infrastructure provisioning.

How does resource reference syntax work when building Facets modules?

Resource reference syntax in Facets modules enables intent interoperability by allowing Terraform outputs from one module to dynamically reference and consume infrastructure resources provisioned by another.

What is the best way to manage Terraform file conventions and output types in Facets?

Managing Terraform file conventions and output types in Facets requires following specific structural guidelines for your modules, utilizing deep merge patterns to ensure configurations are composable and reusable across your infrastructure.

Can I use Raptor CLI to manage the entire Facets module development workflow?

Yes, Raptor CLI manages the complete Facets module development workflow, guiding you through initialization, facets.yaml configuration, Terraform implementation, and validation of your Infrastructure as Code components.

When do I need to use deep merge patterns in Facets Terraform modules?

You need deep merge patterns in Facets Terraform modules when combining multiple infrastructure configurations or intent layers, ensuring that overlapping resource attributes are resolved correctly without overriding critical provider settings.