Spec Studio

A dependency chain with no cycle yields no finding

spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothingExample / 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.address-and-cycle-recipes.chain-reports-nothing.sdp.md

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

Intent
outcome
Execute the cycle findings through sdp q over a chain, which reports no set and carries no finding.
assumptions
  • The world writes the probe corpus of the unresolved-address example and runs sdp q --json on its root with the text of dist/recipes/26-dependency-cycles.js as the body and no --params, which the addresses none names. It reads the exit code, the answer's findings and the answer's keys, which are totals, cycles and findings.
Behavior

Examples

Given a probe corpus in which {corpus: "one Spec depends on another"}
Given the caller passes the addresses {addresses: "none"}
When the shipped {recipe: "dependency cycles"} file runs {invocation: "through sdp q"}
Then the command exits {exitCode: 0}
Then the answer carries {findings: 0} findings with the rule ids {ruleIds: ""}
Verification

Verifier bindings

  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing · anchored · test anchor binding present · test/reach-examples.test.ts:422

    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.address-and-cycle-recipes.chain-reports-nothing
The diagram as text
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing: A dependency chain with no cycle yields no finding · declared Spec
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes · declared Spec
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing · anchored test binding · binding present · test/reach-examples.test.ts:422
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing refines spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing verifies spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing verifies spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing · 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.address-and-cycle-recipes.chain-reports-nothing
  • E2: verifies · declared
The diagram as text
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing: A dependency chain with no cycle yields no finding
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing refines spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing verifies spec:consumers.agent-surface.address-and-cycle-recipes · 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 · outgoingAddress resolution and dependency cycles stay executable graph recipes
spec:consumers.agent-surface.address-and-cycle-recipes · resolves
declaredNoneNone
verifies · outgoingAddress resolution and dependency cycles stay executable graph recipes
spec:consumers.agent-surface.address-and-cycle-recipes · resolves
declaredNonecycleFindings, answersUnchanged

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing · anchored · test/reach-examples.test.ts:422 · 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.