Spec Studio

Editing a parameter file starts a cycle that reads the new parameters

spec:validation.corpus-rules.params-edit-starts-a-cycleExample / Scenario · storyready floor ready

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

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

Findings: no errors, no warnings

specs/validation/corpus-rules.params-edit-starts-a-cycle.sdp.md

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

Intent
outcome
Execute the watched-parameters rule on a parameter file, outside the probe root, that gains a key after the first cycle.
assumptions
  • The world writes the probe corpus of the error example, a parameter file outside the probe root holding { "one": 1 }, a first rules file whose body returns one warning finding for each key of its params, named by --rules and followed by --params @PATH naming that file, and the second rules file of the copy example. It starts the watcher as the rules-edit example does and, after the first cycle, writes { "one": 1, "two": 2 } to the parameter file, then reads the second cycle's corpus summary line and stops the watcher.
Behavior

Examples

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "reads a parameter file that gains a key after the first cycle under --watch"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the second cycle's corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 2 warnings · 0 of 2 files failed (the corpus's own rules)"}
Verification

Verifier bindings

  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle · anchored · test anchor binding present · test/reach-examples.test.ts:454

    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:validation.corpus-rules.params-edit-starts-a-cycle
The diagram as text
  • spec:validation.corpus-rules.params-edit-starts-a-cycle: Editing a parameter file starts a cycle that reads the new parameters · declared Spec
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path · declared Spec
  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle: test:protocol.validation.corpus-rules.params-edit-starts-a-cycle · anchored test binding · binding present · test/reach-examples.test.ts:454
  • spec:validation.corpus-rules.params-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules · declared
  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules.params-edit-starts-a-cycle · 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:validation.corpus-rules.params-edit-starts-a-cycle
  • E2: verifies · declared
The diagram as text
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:validation.corpus-rules.params-edit-starts-a-cycle: Editing a parameter file starts a cycle that reads the new parameters
  • spec:validation.corpus-rules.params-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules · 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 · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredNoneNone
verifies · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredNonewatchedParams

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle · anchored · test/reach-examples.test.ts:454 · 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.