| name | formae-destroy |
| description | Use when the user wants to destroy, delete, or tear down infrastructure resources, stacks, or environments |
Destroy Infrastructure
Use the destroy_forma MCP tool to remove infrastructure resources.
Destroy Modes
Destruction can be specified two ways (mutually exclusive):
- By file: Destroys all resources declared in a forma file
- By query: Destroys resources matching a query
Workflow
- Clarify what the user wants to destroy
- Always simulate first: call
destroy_forma with simulate: true
- Present what will be destroyed — clearly and completely
- Ask for explicit confirmation — destruction is irreversible
- If confirmed: call
destroy_forma with simulate: false
- Poll
get_command_status to monitor progress:
- Wait 5 seconds between polls (
sleep 5). Do NOT poll in a tight loop.
- Only report state transitions — do NOT print anything unless a resource changed status since the last poll (e.g., in_progress → completed, in_progress → failed). Silently poll until something changes.
- When reporting, summarize what changed (e.g., "3 resources deleted, VPC now destroying") rather than dumping the full JSON.
- Report results
Common Patterns
| User wants to... | Approach |
|---|
| Tear down a stack | query: "stack:staging" |
| Remove specific resources | query: "type:AWS::S3::Bucket label:temp-data" |
| Destroy what's in a file | file_path: "/path/to/forma.pkl" |
Important
- NEVER use
pkl eval to evaluate forma files — ALWAYS use formae eval --output-consumer machine. Forma files use formae-specific extensions that only the formae CLI can resolve, and --output-consumer machine ensures parseable output instead of human-formatted text.
- NEVER skip the simulation step
- NEVER destroy without explicit user confirmation
- Destruction is irreversible
- For large destroy operations, consider destroying one stack at a time