bd formula
Generated from bd help --doc formula
bd 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):
- <resolved-beads-dir>/formulas/ (active project)
- <checkout-root>/.beads/formulas/ (repo-local formulas)
- ~/.beads/formulas/ (user)
- $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 website/docs/workflows/formulas.md # narrative reference
bd formula
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):
- <resolved-beads-dir>/formulas/ (active project - highest priority)
- <checkout-root>/.beads/formulas/ (repo-local formulas)
- ~/.beads/formulas/ (user)
- $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]
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>