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

PresetUse case
minimalSmoke tests, first exploration
implementerWrite + recovery + evidence
reviewerRead-only review + search_grep
triageLightweight classification
ci-sweeperReadonly + path/command allowlists
mcp-workerMCP stdio tool loop
with-outerloopImplementer + evidence hook enabled
foundry init --from implementer

Evolution

  1. foundry run → trace
  2. foundry evolve report → L1 findings
  3. foundry evolve proposal → L2 YAML (human reviews before apply)