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