Spec Studio

A call to a recipe the catalog does not hold fails the body

spec:consumers.agent-surface.evaluation-sink.unknown-recipeExample / Scenario · storyready floor ready

Packs: pack:adopter-speed-v1, pack:self-hosting-v1

Design: no design entries · no pinned declarations · no decisions

Findings: no errors, no warnings

specs/consumers/agent-surface.evaluation-sink.unknown-recipe.sdp.md

No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.

Intent
outcome
Execute a call to a recipe number the catalog does not list through sdp q and read the rejection.
assumptions
  • The world writes the probe corpus of the recipe-call example and runs sdp q on its root with the body return recipes(99);. It reads the exit code and the one stderr line, and takes the rejection as that line's text after sdp q: .
Behavior

Examples

Given a probe corpus in which two Specs depend on each other through dependsOn
Given a body that calls {call: "a recipe number the catalog does not hold"}
When the body runs {entrance: "through sdp q"}
Then the call {outcome: "rejects"}
Then the rejection reads {rejection: "recipes: the catalog holds no recipe 99"}
Verification

Verifier bindings

  • test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe · anchored · test anchor binding present · test/reach-examples.test.ts:410

    External run evidence from test/reach-examples.test.ts

    Test anchors: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run, test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run, test:protocol.consumers.agent-surface.evaluation-sink.exported-evaluator, test:protocol.consumers.agent-surface.evaluation-sink.recipe-call, test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe, test:protocol.validation.corpus-rules.params-edit-starts-a-cycle, test:protocol.validation.corpus-rules.rules-edit-starts-a-cycle, test:protocol.validation.corpus-rules.unreadable-params-fail-one-file. Specs verified by those bindings: spec:consumers.agent-surface.address-and-cycle-recipes, spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run, spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run, spec:consumers.agent-surface.evaluation-sink, spec:consumers.agent-surface.evaluation-sink.exported-evaluator, spec:consumers.agent-surface.evaluation-sink.recipe-call, spec:consumers.agent-surface.evaluation-sink.unknown-recipe, spec:validation.corpus-rules, spec:validation.corpus-rules.params-edit-starts-a-cycle, spec:validation.corpus-rules.rules-edit-starts-a-cycle, spec:validation.corpus-rules.unreadable-params-fail-one-file.

    Run 1: external run evidence from vitest 4.1.10

    Build: CI 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z

    NameSuiteResultDuration
    gives every watch example the heavy-test timeoutnot recordedpassed2.43 ms
    leaves non-watch corpus-rule points and incomplete points unspecifiednot recordedpassed0.36 ms
    leaves address points outside the oracle's bound probes unspecifiednot recordedpassed0.17 ms
    executes the bound example against a fresh worldA body calls a shipped recipe and returns its answer unchanged (spec:consumers.agent-surface.evaluation-sink.recipe-call)passed21.85 ms
    executes the bound example against a fresh worldA call to a recipe the catalog does not hold fails the body (spec:consumers.agent-surface.evaluation-sink.unknown-recipe)passed3.48 ms
    executes the bound example against a fresh worldA script holding a graph runs a shipped recipe through the exported evaluator (spec:consumers.agent-surface.evaluation-sink.exported-evaluator)passed3.89 ms
    executes the bound example against a fresh worldA dependency chain with no cycle yields no finding (spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing)passed3.1 ms
    executes the bound example against a fresh worldThe shipped dependency-cycles file fails a rules run on a cycle (spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run)passed5.52 ms
    executes the bound example against a fresh worldThe shipped address-resolution file fails a rules run on an address that names no entry (spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run)passed3.86 ms
    executes the bound example against a fresh worldRewriting a rules file under node_modules starts a cycle that runs the new body (spec:validation.corpus-rules.rules-edit-starts-a-cycle)passed16.19 ms
    executes the bound example against a fresh worldEditing a parameter file starts a cycle that reads the new parameters (spec:validation.corpus-rules.params-edit-starts-a-cycle)passed46.21 ms
    executes the bound example against a fresh worldA parameter file that stops being JSON fails only its own rules file, and the watcher runs on (spec:validation.corpus-rules.unreadable-params-fail-one-file)passed103.81 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.agent-surface.evaluation-sink.unknown-recipe
The diagram as text
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe: A call to a recipe the catalog does not hold fails the body · declared Spec
  • spec:consumers.agent-surface.evaluation-sink: The evaluation sink runs one body and prints its return · declared Spec
  • test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe: test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe · anchored test binding · binding present · test/reach-examples.test.ts:410
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe refines spec:consumers.agent-surface.evaluation-sink · declared
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe verifies spec:consumers.agent-surface.evaluation-sink · declared
  • test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe verifies spec:consumers.agent-surface.evaluation-sink.unknown-recipe · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.

Decisions

No decision record named.

Runtime

No implementation neighborhood recorded.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:consumers.agent-surface.evaluation-sink.unknown-recipe
  • E2: verifies · declared
The diagram as text
  • spec:consumers.agent-surface.evaluation-sink: The evaluation sink runs one body and prints its return
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe: A call to a recipe the catalog does not hold fails the body
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe refines spec:consumers.agent-surface.evaluation-sink · declared
  • spec:consumers.agent-surface.evaluation-sink.unknown-recipe verifies spec:consumers.agent-surface.evaluation-sink · declared
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.

Rests on

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingThe evaluation sink runs one body and prints its return
spec:consumers.agent-surface.evaluation-sink · resolves
declaredNoneNone
verifies · outgoingThe evaluation sink runs one body and prints its return
spec:consumers.agent-surface.evaluation-sink · resolves
declaredNonecallRefusals

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.consumers.agent-surface.evaluation-sink.unknown-recipe · anchored · test/reach-examples.test.ts:410 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.