Skip to main content
Generated from bd help --doc formula. Manage workflow formulas - the source layer for molecule templates. Formulas are TOML/JSON files that define workflows with composition rules. Define formulas, cook them into protos, then pour or wisp them into work. Search paths (in order):
  1. <resolved-beads-dir>/formulas/ (active project)
  2. <checkout-root>/.beads/formulas/ (repo-local formulas)
  3. ~/.beads/formulas/ (user)
  4. $GT_ROOT/.beads/formulas/ (shared workspace root, if GT_ROOT set)
Commands: list List available formulas from all search paths show Show formula details, steps, and composition rules schema Show the formula schema index (alias: primitives) Discovering primitives: bd formula schema # list every declared formula struct bd formula schema loop # show LoopSpec fields, types, and tags bd formula primitives gate # alias; same handler as ‘schema’ examples/formulas/primitives/ # curated, smoke-tested wired fixtures docs/workflows/formulas.md # narrative reference
bd formula [command]

bd formula convert

Convert formula files from JSON to TOML format. TOML format provides better ergonomics:
  • Multi-line strings without \n escaping
  • Human-readable diffs
  • Comments allowed
The convert command reads a .formula.json file and outputs .formula.toml. The original JSON file is preserved (use —delete to remove it). Examples: bd formula convert shiny # Convert shiny.formula.json to .toml bd formula convert ./my.formula.json # Convert specific file bd formula convert —all # Convert all JSON formulas bd formula convert shiny —delete # Convert and remove JSON file bd formula convert shiny —stdout # Print TOML to stdout
bd formula convert <formula-name|path> [--all] [flags]
Flags:
      --all      Convert all JSON formulas
      --delete   Delete JSON file after conversion
      --stdout   Print TOML to stdout instead of file

bd formula list

List all formulas from search paths. Search paths (in order of priority):
  1. <resolved-beads-dir>/formulas/ (active project - highest priority)
  2. <checkout-root>/.beads/formulas/ (repo-local formulas)
  3. ~/.beads/formulas/ (user)
  4. $GT_ROOT/.beads/formulas/ (shared workspace root, if GT_ROOT set)
Formulas in earlier paths shadow those with the same name in later paths. To list the declared formula schema structs an agent can write inside a .formula.toml, use ‘bd formula schema’ (alias: ‘bd formula primitives’). Examples: bd formula list bd formula list —json bd formula list —type workflow bd formula list —type convoy
bd formula list [flags]
Flags:
      --type string   Filter by type (workflow, expansion, aspect, convoy)

bd formula schema

Show the formula schema index: every exported struct declared in a .formula.toml/.formula.json, with field names, types, and tags. The index is generated from internal/formula/types.go via go:generate; the struct definitions are the source of truth, so this list cannot drift. It is structural reference, not proof that every declared runtime behavior is wired. Examples: bd formula schema # list every declared schema struct bd formula schema loop # show LoopSpec fields bd formula primitives gate # alias; shows Gate fields bd formula schema —json # machine-readable index Curated smoke-tested fixtures for wired primitives live in examples/formulas/primitives/ (with a smoke harness that proves they work).
bd formula schema [primitive] [flags]
Aliases: primitives

bd formula show

Show detailed information about a formula. Displays:
  • Formula metadata (name, type, description)
  • Variables with defaults and constraints
  • Steps with dependencies
  • Composition rules (extends, aspects, expansions)
  • Bond points for external composition
To inspect the structure of an individual primitive (e.g. LoopSpec, Gate) rather than a user-authored formula, use ‘bd formula schema <primitive>’. Examples: bd formula show shiny bd formula show rule-of-five bd formula show security-audit —json
bd formula show <formula-name> [flags]