skills/formae-plugin-add-resource/SKILL.md
Use when the user wants to add support for a new resource type to an existing formae plugin
npx skillsauth add platform-engineering-labs/formae-mcp formae-plugin-add-resourceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Add support for a new resource type to an existing formae resource plugin, following the plugin SDK tutorial and using TDD.
After ANY code changes to the plugin, you MUST run make install before running tests. Integration tests and conformance tests run against the INSTALLED plugin binary, not the source code. Skipping this step means you're testing stale code.
Ask the user where their plugin lives. Check that the directory exists and contains a valid plugin project (look for formae-plugin.pkl, Makefile, and the plugin Go source). Run /init so you have full context on the codebase.
Ask the user which resource type they want to add. Then research the provider's API for that resource thoroughly:
Look at how Terraform or Pulumi model the equivalent resource for schema design reference.
Present your research findings and a proposed resource schema to the user for approval before proceeding.
Fetch the plugin SDK tutorial from https://docs.formae.io/en/latest/plugin-sdk/tutorial/ and follow steps 2–10, adapting each lesson to the new resource type. Study the existing resource implementations in the plugin for patterns and conventions to follow.
Reference prior art plugins for real-world patterns:
https://github.com/platform-engineering-labs/formae-plugin-awshttps://github.com/platform-engineering-labs/formae-plugin-azurehttps://github.com/platform-engineering-labs/formae-plugin-gcphttps://github.com/platform-engineering-labs/formae-plugin-ocihttps://github.com/platform-engineering-labs/formae-plugin-ovhSteps to follow:
@ResourceType, @CreateOnly, @ReadOnly)OperationErrorCode patterns from the SDKMANDATORY: TDD for steps 3–7. Each tutorial lesson includes integration tests (e.g., TestCreate, TestRead, TestReadNotFound, TestUpdate, TestDelete, TestDeleteNotFound, TestList). For EVERY CRUD operation you MUST follow this exact loop:
https://docs.formae.io/en/latest/plugin-sdk/tutorial/05-create/)make install && go test -tags=integration ./... — confirm the test passes.NEVER write implementation code before its corresponding test. NEVER skip writing tests.
Run make install && make conformance-test.
Fix any failures and re-run. All CRUD and discovery tests must pass before continuing.
Ask the user if they want to do a manual end-to-end test. If yes:
formae apply --mode reconcile --simulate to verify the planformae apply --mode reconcile to create real resourcesformae inventory to verify resources are managedformae destroy to clean upUpdate the plugin's README.md:
Before reporting completion, verify each item:
make install && make conformance-test)make install before running tests — tests run against the installed binarypkl eval to evaluate forma files — ALWAYS use formae eval --output-consumer machinedevelopment
Use when the user wants to set, remove, or inspect a TTL or auto-reconcile policy on a stack — e.g. 'expire X in 20 minutes', 'reject out-of-band changes on Y', 'auto-reconcile production every 5 minutes', 'remove the TTL on dev', 'what policies are on lifeline?'
devops
Use when the user asks about their cloud targets, configured regions, provider accounts, or which cloud accounts are set up
devops
Use when the user asks about running commands, deployment progress, recent operations, command history, or what failed
devops
Use when the user asks about their infrastructure stacks, how infrastructure is organized, or needs a stack overview with resource counts