Composing primitives
August 13, 2026 · View on GitHub
Author a primitive
Create primitives/<category>/<name>.yaml:
id: control/my-budget
layer: execution
description: Custom token budget for my team
defaults:
maxTokens: 50000
Project overrides go in .foundry/primitives/.
Reference in a stack
layers:
execution:
- primitive: control/my-budget
config:
maxTokens: 25000
Validate
foundry validate
foundry primitives list
Lock file
Each foundry run refreshes .foundry/stack.lock with primitive digests for reproducibility.
Presets
| Preset | Use case |
|---|---|
minimal | Smoke tests, first exploration |
implementer | Write + recovery + evidence |
reviewer | Read-only review + search_grep |
triage | Lightweight classification |
ci-sweeper | Readonly + path/command allowlists |
mcp-worker | MCP stdio tool loop |
with-outerloop | Implementer + evidence hook enabled |
foundry init --from implementer
Evolution
foundry run→ tracefoundry evolve report→ L1 findingsfoundry evolve proposal→ L2 YAML (human reviews before apply)