craft-module

Automate design, validation, and publishing of Facets IaC modules.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/Facets-cloud/facets-getting-started --skill craft-module
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: craft-module
Source: https://github.com/Facets-cloud/facets-getting-started/tree/main/ai-setup/gemini/skills/craft-module
Command: npx skills add https://github.com/Facets-cloud/facets-getting-started --skill craft-module

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This module helps teams design, scaffold, and publish reusable Facets IaC modules by providing a clear structure, frontmatter-driven metadata, and a repeatable pattern for Terraform code and facets.yaml.

Core Features & Use Cases

  • Module design: Define module boundaries, capabilities, and inputs in a standardized facets.yaml.
  • Code scaffolding: Generate Terraform code structure (main.tf, variables.tf, outputs.tf, versions.tf) with clear constraints (no providers in main.tf, locals-only outputs, and Terraform version in versions.tf).
  • Validation & publishing: Validate with raptor dry-run before publishing and publish to the Facets catalog.

Quick Start

Use the craft-module skill to bootstrap a new module from plain-English requirements and publish a ready-to-use module.

Frequently Asked Questions about craft-module

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

FAQPage Schema
How do I build reusable Terraform infrastructure-as-code modules for AWS?

To build reusable Terraform infrastructure-as-code modules, you can scaffold standardized file structures and define module boundaries using a facets.yaml metadata file to enforce consistent design constraints across AWS environments.

What is the best way to validate Terraform module configurations before publishing?

The best way to validate Terraform module configurations before publishing is to run a raptor dry-run check, which ensures your module boundaries and facets.yaml metadata meet design constraints without deploying changes.

Can I define provider blocks in main.tf when scaffolding Terraform modules?

No, you cannot define provider blocks in main.tf. Scaffolding enforces design constraints by prohibiting provider blocks in main.tf, restricting outputs to locals only, and isolating Terraform versions in versions.tf.

How do I standardize infrastructure-as-code module boundaries for my development team?

You can standardize infrastructure-as-code module boundaries by defining capabilities and inputs in a standardized facets.yaml file, which applies consistent design constraints and validation rules across all team modules.

Does the module scaffolding process support generating variables and outputs files automatically?

Yes, the module scaffolding process automatically generates the Terraform code structure including main.tf, variables.tf, outputs.tf, and versions.tf, applying specific constraints like locals-only outputs to ensure standardized infrastructure-as-code delivery.