Skip to main content

Recipe Runner Protocol

The runner connects Recipe Protocol v1 to a project's real runtime.

Contract

PieceResponsibility
RecipeParameters, executable workflow, optional proof targets and teardown
Action manifestStrict action schemas, examples, result cases, capabilities
AdapterRuntime implementation for one declared action
LibraryNamed and adapter-specific recipes
RunnerValidation, static resolution, trust preflight, execution
Artifact packageExact recipes, provenance, trace, verdict, and proof

Projects own namespaced actions and recipe libraries. Farmslot owns the graph, trust, trace, and artifact contracts. Action manifests use https://farmslot.io/schemas/action-manifest-v1.schema.json for editor validation. Actions may declare adapters when support differs by adapter; validation rejects other active adapters before execution and names the supported alternatives. adapter_schemas may further narrow parameters for one declared adapter, and planning applies that refinement before execution.

Discovery

farmslot-recipe run --list --adapter <adapter> --json
farmslot-recipe run <recipe> --describe --adapter <adapter> --json

List output stays compact and exact recipe detail expands only when requested. Action discovery belongs to the project runner because manifests and adapters are project-owned.

Execution

Before side effects, the runner validates the root, resolves the complete static call graph, applies and validates parameters, checks manifests and capabilities, and binds trust approval to the exact plan.

Adapters return case, output, artifacts, and observations. Recipes own routing and status. Declared teardown runs after main success or failure.

Evidence

Every run retains:

recipe.json
recipe-resolution.json
resolved-recipes/<sha256>.recipe.json
summary.json
trace.json
artifact-manifest.json

Package validation revalidates every recipe, digest, call edge, and artifact. Missing evidence never becomes a passing claim.

Failed trace entries carry one explicit cause_class: subject, harness, environment, or unknown. Successful entries omit it. summary.json retains all four cause counts, and package validation requires them to reconcile with the trace.

Suite evidence

Multi-run coverage uses standalone Recipe Suite Scope v1 and Recipe Suite Result v1 documents. A scope freezes a non-empty set of opaque case IDs before execution. Its result must resolve every ID exactly once with either a retained run-summary verdict or an explicit non-execution reason.

Suite validation checks the canonical scope digest, summary digests and statuses, exact totals, safe paths, ordering dependencies, and completeness. oversight keeps an omission machine-readable but makes the suite invalid. The harness finalizer aggregates completed runs; it does not schedule or retry them.

Command Center replay options

Command Center renders the same live trace and artifact package as the CLI. It is not a second executor. Optional video capture is capability-bound, stored under the artifact root, and indexed in the manifest.

For onboarding, see Headless Recipe integration or Expo / React Native project integration.