Skip to content

Pipeline Recipes

See Pipelines concept for an overview. This guide covers configuration details.

Create .annihilation/pipelines.toml in your project root:

# Default pipeline — used when no label/type matches
[default]
stages = [
{ agents = ["orchestrator"], fan_out = false },
{ agents = ["coder"], fan_out = false },
{ agents = ["security", "tester"], fan_out = true },
]
# Match by bead labels
[api]
match_labels = ["api", "endpoint", "rest"]
stages = [
{ agents = ["coder"], fan_out = false },
{ agents = ["security", "tester"], fan_out = true },
]
# Match by bead type
[docs]
match_types = ["docs"]
stages = [
{ agents = ["docs"], fan_out = false },
]
FieldTypeDescription
agentsstring[]Psychonaut template names to run in this stage
fan_outbooleantrue = parallel, false = sequential
  • Put your most specific pipelines first — first match wins
  • The [default] pipeline is always the fallback
  • Psychonaut names must match registered templates
  • Fan-out stages are great for independent checks (security + tests)
  • Sequential stages are for dependent work (orchestrate → code → review)