Spec Studio

A keyed term is reified and its address resolves

spec:model.term-addresses.keyed-term-resolvesExample / 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/model/term-addresses.keyed-term-resolves.sdp.md

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

Intent
outcome
Execute the term marker and the term address on one keyed term beside an unkeyed one, and show that address resolution and entry search find the term at the line the location table records.
Behavior

Examples

Given a {carrier: "Markdown"} Spec carrier {specId: "spec:probe.subject"} whose Model terms read {terms: "- **step key** — [#stepKey] the key a step carries in its marker; - **slot** — one typed placeholder in a step"}
Given a second Spec that names {address: "spec:probe.subject#term.stepKey"} in its narrative and declares dependsOn on the first
When the extractor reifies both carriers and the graph is validated
Then the first carrier is reified: {reified: true}
Then the first extraction finding's message contains {extractMessage: ""}
Then the graph holds the term keys {keys: "stepKey"}
Then the report holds {mentionErrors: 0} prose-mention errors
Then address resolution resolves the address to the marker-free definition at its recorded term location: {resolved: true}
Then entry search for the addressed term's words finds it at that same address and line: {found: true}
Verification

Verifier bindings

  • test:protocol.term-addresses.keyed-term-resolves · anchored · test anchor binding present · test/self-hosting-term-addresses.test.ts:16

    External run evidence from test/self-hosting-term-addresses.test.ts

    Test anchors: test:protocol.term-addresses.keyed-term-resolves, test:protocol.term-addresses.malformed-term-marker-refused, test:protocol.term-addresses.repeated-term-key-refused, test:protocol.term-addresses.typescript-term-imports-keyed, test:protocol.term-addresses.unknown-term-key-refused. Specs verified by those bindings: spec:model.term-addresses, spec:model.term-addresses.keyed-term-resolves, spec:model.term-addresses.malformed-term-marker-refused, spec:model.term-addresses.repeated-term-key-refused, spec:model.term-addresses.typescript-term-imports-keyed, spec:model.term-addresses.unknown-term-key-refused.

    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
    executes the bound example against a fresh worldA keyed term is reified and its address resolves (spec:model.term-addresses.keyed-term-resolves)passed30.53 ms
    executes the bound example against a fresh worldA term marker whose key is off the grammar refuses its carrier (spec:model.term-addresses.malformed-term-marker-refused)passed8.46 ms
    executes the bound example against a fresh worldA term key repeated in one Spec refuses its carrier (spec:model.term-addresses.repeated-term-key-refused)passed5.37 ms
    executes the bound example against a fresh worldA keyed TypeScript term keeps its address through import to Markdown (spec:model.term-addresses.typescript-term-imports-keyed)passed38.98 ms
    executes the bound example against a fresh worldAn address that names a term key no term carries is an error (spec:model.term-addresses.unknown-term-key-refused)passed4.33 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:model.term-addresses.keyed-term-resolves
The diagram as text
  • spec:model.term-addresses.keyed-term-resolves: A keyed term is reified and its address resolves · declared Spec
  • spec:model.term-addresses: A Model term may carry a key that addresses it · declared Spec
  • test:protocol.term-addresses.keyed-term-resolves: test:protocol.term-addresses.keyed-term-resolves · anchored test binding · binding present · test/self-hosting-term-addresses.test.ts:16
  • spec:model.term-addresses.keyed-term-resolves refines spec:model.term-addresses · declared
  • spec:model.term-addresses.keyed-term-resolves verifies spec:model.term-addresses · declared
  • test:protocol.term-addresses.keyed-term-resolves verifies spec:model.term-addresses.keyed-term-resolves · 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:model.term-addresses.keyed-term-resolves
  • E2: verifies · declared
The diagram as text
  • spec:model.term-addresses: A Model term may carry a key that addresses it
  • spec:model.term-addresses.keyed-term-resolves: A keyed term is reified and its address resolves
  • spec:model.term-addresses.keyed-term-resolves refines spec:model.term-addresses · declared
  • spec:model.term-addresses.keyed-term-resolves verifies spec:model.term-addresses · 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 · outgoingA Model term may carry a key that addresses it
spec:model.term-addresses · resolves
declaredNoneNone
verifies · outgoingA Model term may carry a key that addresses it
spec:model.term-addresses · resolves
declaredNonetermMarker, termAddress, termLocations, termReaders

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.term-addresses.keyed-term-resolves · anchored · test/self-hosting-term-addresses.test.ts:16 · 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.