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.