BUILD
Workflow recipes
Workflow recipes are pre-configured deliberation sessions: persona selection, round count, gate thresholds, and output format are already set. Use them as production-ready templates for common advisory tasks, or as a reference scaffold when you need something they do not cover.
ADVISORY
Adapt a recipe if the domain matches but the panel composition does not. Start from scratch only if the deliberation structure itself needs to change — different round logic, non-standard gate specs, or an output format the recipe cannot produce.
Available recipes
| Recipe | Use case | Personas |
|---|---|---|
code-review |
Multi-persona adversarial review of a code artifact or pull request | Winston, Amelia, Quinn |
requirements-analysis |
Structured decomposition of a brief or spec into testable acceptance criteria | John, Winston, Amelia |
security-audit |
Threat-surface analysis and control-gap identification against a defined scope | Winston, Quinn, custom security persona |
ux-critique |
Structured critique of a screen, flow, or component hierarchy against UX heuristics | Sally, Caravaggio, Quinn |
Using a recipe
Load a recipe by name, create a Studio session from it, and pass the artifact or question you want deliberated. The recipe's persona panel and gate configuration load automatically.
from verdaca.recipes import load_recipe
recipe = load_recipe("code-review")
session = Studio.from_recipe(recipe)
result = session.run(
input="path/to/pull_request_diff.patch",
)
Adapting a recipe
Replace any persona in a loaded recipe with a custom one before creating the session. The replacement must satisfy the same port-category contracts as the persona it replaces.
recipe = load_recipe("code-review")
# Override a persona in the recipe
recipe.replace_persona("reviewer", my_custom_reviewer)
session = Studio.from_recipe(recipe)
CAUTION
When replacing a persona in a recipe, confirm that your replacement's output format matches the slot it fills — a mismatch in output schema will cause the synthesis step to fail at runtime, not at recipe load time.
Creating a recipe
Define a recipe from named personas, a round count, and a gate specification. Save it to a path and load it like any other recipe in future sessions.
from verdaca.recipes import Recipe
my_recipe = Recipe(
name="m-and-a-diligence",
personas=["sally", "winston"],
rounds=4,
gate="consensus-threshold-0.75",
)
my_recipe.save("./recipes/m-and-a-diligence.yaml")
Next steps
- Output review — evaluate recipe output quality
- Build your own agent — create custom personas for recipes