Spec Studio

A script holding a graph runs a shipped recipe through the exported evaluator

spec:consumers.agent-surface.evaluation-sink.exported-evaluatorExample / 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.exported-evaluator.sdp.md

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

Intent
outcome
Execute a recipe call with a parameter through evaluateBody over a graph the script derived once, and compare its answer with the recipe's shipped file evaluated over the same graph.
assumptions
  • The world writes the probe corpus of the recipe-call example and derives its graph once with the package's extract. It awaits evaluateBody with the body return recipes(26, { severity: "warning" }); and that graph, then awaits evaluateBody with the text of dist/recipes/26-dependency-cycles.js, the same graph and the parameters { severity: "warning" }, and compares the two answers. Neither call derives the graph.
Behavior

Examples

Given a probe corpus in which two Specs depend on each other through dependsOn
Given a body that calls {call: "recipe 26 with the severity warning"}
When the body runs {entrance: "through the exported evaluator over a graph derived once"}
Then the call {outcome: "resolves"}
Then the answer equals the shipped recipe file's own answer over the same graph and parameters: {sameAnswer: true}
Verification

Verifier bindings

  • test:protocol.consumers.agent-surface.evaluation-sink.exported-evaluator · anchored · test anchor binding present · test/reach-examples.test.ts:416

    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 391 · Branch: cursor/media-plan-and-articles-09b1 · Commit: 076cd4f1f85640d8236e5cca1bffffa68ab79a33 · Start: 2026-10-31T15:32:20.471Z · Stop: 2026-10-31T15:34:02.073Z

    NameSuiteResultDuration
    gives every watch example the heavy-test timeoutnot recordedpassed2.15 ms
    leaves non-watch corpus-rule points and incomplete points unspecifiednot recordedpassed0.41 ms
    leaves address points outside the oracle's bound probes unspecifiednot recordedpassed0.19 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)passed32.45 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)passed6.78 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)passed6.15 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.3 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.51 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.87 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)passed12.46 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)passed32.96 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)passed106.96 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.agent-surface.evaluation-sink.exported-evaluator
The diagram as text
  • spec:consumers.agent-surface.evaluation-sink.exported-evaluator: A script holding a graph runs a shipped recipe through the exported evaluator · 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.exported-evaluator: test:protocol.consumers.agent-surface.evaluation-sink.exported-evaluator · anchored test binding · binding present · test/reach-examples.test.ts:416
  • spec:consumers.agent-surface.evaluation-sink.exported-evaluator refines spec:consumers.agent-surface.evaluation-sink · declared
  • spec:consumers.agent-surface.evaluation-sink.exported-evaluator verifies spec:consumers.agent-surface.evaluation-sink · declared
  • test:protocol.consumers.agent-surface.evaluation-sink.exported-evaluator verifies spec:consumers.agent-surface.evaluation-sink.exported-evaluator · 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.exported-evaluator
  • 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.exported-evaluator: A script holding a graph runs a shipped recipe through the exported evaluator
  • spec:consumers.agent-surface.evaluation-sink.exported-evaluator refines spec:consumers.agent-surface.evaluation-sink · declared
  • spec:consumers.agent-surface.evaluation-sink.exported-evaluator 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
declaredNoneexportedEvaluator, oneEvaluator, recipeCall

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.consumers.agent-surface.evaluation-sink.exported-evaluator · anchored · test/reach-examples.test.ts:416 · 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.