Build through Praxis (AI Agent)
Build a Facets module by describing it to your AI coding agent. Signing in installs the module skills, and the agent scaffolds, validates, adds actions, and publishes for you.
The fastest way to build a module is to describe it to the AI coding agent you already use. Signing in installs the Facets module skills, so the agent knows the module contract, the validation steps, and the publish flow with no extra setup.
Prerequisite: the Praxis CLI installed and logged in.
Build a module
Work in your own terminal. In a module directory, describe the module you want, for example:
Build a Facets module for a secure S3 bucket with a configurable lifecycle policy.The agent asks any clarifying questions it needs first, which inputs developers should set, which outputs to expose, the cloud and flavor, before it writes anything. Then it:
- Scaffolds
facets.yamland the Terraform against the module contract, or forks an existing module from the Facets registry as a starting point. - Asks whether to add module actions once the basic Terraform module is ready, so day-two operations (a restart, a snapshot) can ship with the module. It proposes a set for you to accept, extend, or decline.
- Runs
raptor module validateand previews the form. - Uploads at the PREVIEW stage, deploys that preview to a test environment so you can review the deployment logs, then publishes once you are happy with it.
You review each step; the agent drives raptor, so nothing is cloned or browsed by hand. For the same loop by hand, see Manually using Raptor.
Prefer MCP?
If your AI host connects over MCP rather than reading skills from disk, build modules with the Facets Module Generation MCP server (Model Context Protocol). It offers guided prompts and validation, a structure aligned with the module registry, and support for custom logic and metadata. Try it at facets-module-mcp.
Modules
What a Facets module is, why it is shaped as an API, and the anatomy of a facets.yaml: types, spec, inputs, and outputs.
Manually using Raptor
Build a Facets module by hand with the Praxis CLI: define the facets.yaml contract, write the Terraform against the standard variables, then validate, upload, and publish.