Spec Studio

Source anchors bind code without carrying intent

spec:model.anchorsDomain Model · featureready floor ready

Packs: pack:self-hosting-v1

Design: 1 design entry · 1 pinned declaration · 4 decisions

Findings: no errors, no warnings

specs/model/anchors.sdp.md

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

Intent
outcome
Connect implementation, tests, and oracles to Specs while keeping authored intent centralized in the carrier.
Behavior

0 unkeyed rules.

Verifying examples

A consumer-local lookalike builder mints no anchor and no finding · spec:model.anchors.lookalike-refusal · ready floor ready

Executable Spec

Given a repository whose one source file builds an anchor through {builderSource: "a consumer-local lookalike module"}
When the repository is extracted
Then the extraction mints {anchorCount: 0} anchors
Then the extraction reports {findingCount: 0} findings

Open example

A deep relative import that resolves to the Protocol builders is trusted · spec:model.anchors.physical-identity · ready floor ready

Executable Spec

Given a repository whose one source file builds an anchor through {builderSource: "a relative import resolving to the Protocol builder modules"}
When the repository is extracted
Then the extraction mints {anchorCount: 1} anchors
Then the extraction reports {findingCount: 0} findings

Open example

Example space

Given a repository whose one source file builds an anchor through {builderSource:"a consumer-local lookalike module"|"a relative import resolving to the Protocol builder modules"|"the published Protocol package"}
When the repository is extracted
Then the extraction mints {anchorCount:number} anchors
Then the extraction reports {findingCount:number} findings
Model
anchor line 20 · specs/model/anchors.sdp.md:20
A human-written source binding from one code location into the graph, carrying identity, an optional label, zero or more targets, and optional structure; written in one of two extracted representations, the constant form or the comment form, which feed one closed envelope. It never carries behavior, rationale, readiness, status, acceptance criteria, or delivery facts.
constant form line 21 · specs/model/anchors.sdp.md:21
The top-level const initialized with a trusted builder call; the extractor reifies it statically. The decorator form remains an unextracted representation.
comment form line 22 · specs/model/anchors.sdp.md:22
A top-level /** … */ block in a .ts or .tsx file carrying reserved camelCase tags (@sdpAnchor, @sdpLabel, @sdpSatisfies, @sdpVerifies, @sdpModels, @sdpReferences, @sdpComponent, @sdpUses, @sdpRole, @sdpLayer, @sdpContext); @sdpAnchor <id> opens it, each tag appears at most once, prose precedes the tags, only the reserved tags are read, and comment prose authors nothing. No import is required: trust is by reserved grammar. The same id in both forms is a duplicate id. The law is the comment-form ruling (MD-36).
anchors subpath line 23 · specs/model/anchors.sdp.md:23
The zero-dependency package subpath @libar-dev/software-delivery-protocol/anchors, exporting the id builders and the three anchor builders and nothing else; the extractor trusts it as a Protocol builder module.
code anchor line 24 · specs/model/anchors.sdp.md:24
An implementation-flavored binding in the impl:, api:, or component: namespace. Its optional, plural satisfies derives one anchored satisfies edge per target; its optional references derives one anchored references edge per target. It may also name one component: anchor it belongs to, a non-empty list of distinct code units it uses, and a role; a component: anchor may also name layer and context. The binding grain is the binding-grain ruling (MD-37); the structural attributes are the architectural-annotation ruling (MD-38).
plural targets line 25 · specs/model/anchors.sdp.md:25
satisfies on a code anchor and verifies on a test anchor accept one ref(…) or a fresh array literal of them; verifies is non-empty. Each resolving target confers its fact as a single target does, and implemented stays a whole-Spec fact.
identity-only anchor line 26 · specs/model/anchors.sdp.md:26
A code anchor with no satisfies and no references; it mints a CodeNode for structure and for byFile, derives no realization edge, and confers nothing.
references line 27 · specs/model/anchors.sdp.md:27
The anchored CodeNode-to-Spec edge derived from references?: readonly SpecId[] on a code anchor: this code answers to that design without claiming to realize it. The unit follows the design without realizing any of its promises, or realizes part of a Spec whose remaining promises no unit yet realizes, so a change to the design asks the code to follow. The direction is one way: a design that builds on existing code states that on its own side, by a dependsOn or refines relation to the Spec the code satisfies, never by a reference from the code. It confers no delivery fact, moves no readiness floor, and the drift alarm ignores it; a target also named in satisfies is an error. The reader reports the referencing units on the Spec's context, and blast radius traverses the edge as a binding.
role line 28 · specs/model/anchors.sdp.md:28
An optional one-token value on a code anchor, lowercase kebab and never normalized, naming the architectural pattern the unit plays; a corpus-owned vocabulary whose taxonomy the census renders with counts, checked against no list.
layer line 29 · specs/model/anchors.sdp.md:29
An optional attribute of a component: anchor, one of edge, application, domain, adapter, or infrastructure; a value outside the set, or the attribute on a non-component anchor, is an envelope error.
context line 30 · specs/model/anchors.sdp.md:30
An optional one-token value on a component: anchor, in the token grammar of a role, naming its bounded context; on a non-component anchor it is an envelope error.
declared component line 31 · specs/model/anchors.sdp.md:31
The component: anchor is the component's declaration; there is no separate architecture file, because the anchor sits where the component is realized.
component realization convention line 32 · specs/model/anchors.sdp.md:32
A component: anchor that satisfies a Spec satisfies its seam's most-specific design Spec; that satisfies edge is the component's own realization claim. As guidance, checked by no validator: a component either satisfies its seam's design Spec or binds no Spec its members satisfy, and it never references one. Structural edges confer nothing (the architectural-annotation ruling, MD-38).
structural anchor validity line 33 · specs/model/anchors.sdp.md:33
A memberOf source is an impl: or api: CodeNode and its target is a component: CodeNode; every structural target exists, every edge is unique, each source has at most one component, and structural self-reference is refused. A malformed or non-static structural field, an unknown layer, or layer or context on a non-component anchor refuses the whole anchor at reification; a graph-validly reified edge that later fails referential or structural validation remains visible with its anchor and independent satisfies binding. Multi-node uses cycles remain data and produce no finding.
structural non-conferral line 34 · specs/model/anchors.sdp.md:34
Structural edges, role, layer, and context carry no intent, delivery fact, readiness effect, or binding-to-Spec traversal; no implements field is admitted.
test anchor line 35 · specs/model/anchors.sdp.md:35
A binding in the test: namespace that derives one anchored verifies edge per target from a test to each Spec it verifies.
oracle anchor line 36 · specs/model/anchors.sdp.md:36
A binding in the oracle: namespace that records an oracle's models target without deriving a delivery fact.
executable binding boundary line 37 · specs/model/anchors.sdp.md:37
A resolving specTest anchor can establish verifier realization; a registrar activation or a bindExample call executes a generated contract but is not extracted graph data, so the graph cannot claim from that call alone that the contract is bound.
document-realization binding line 38 · specs/model/anchors.sdp.md:38
When the realizing artifact is authored Markdown that cannot carry an extracted in-code anchor, the executable suite that asserts the shipped document may carry its code anchor. Its label must name the document realization rather than imply the test body is the product, and file-level blast radius remains coverage-unknown for the Markdown artifact.
Protocol builder binding line 39 · specs/model/anchors.sdp.md:39
A builder import from the public Protocol package or its anchors subpath, or a relative import whose importer-relative resolution, including the TypeScript .js-to-.ts convention, canonicalizes to this package's ids, anchors or model/code-anchor module; consumer-local lookalike modules confer no binding authority. On the CommonJS package surface the trusted relative-module set is empty (import.meta.url is rewritten away), so relative bindings mint no anchors there while package imports stay trusted. The comment form needs no builder binding.
untrusted builder line 40 · specs/model/anchors.sdp.md:40
A constant-form builder call whose import is no Protocol builder binding: it mints nothing and reports nothing, because a source file that never bound to the Protocol is not authoring drift to report.
Design
structuralValidator line 44 · specs/model/anchors.sdp.md:44
conformance/structural-anchors, the conformance error for graph structural-anchor violations; referential integrity and generic edge-contract errors keep their own diagnostic ownership.

no citation recorded

Verification

Verifier bindings

  • spec:model.anchors.lookalike-refusal · A consumer-local lookalike builder mints no anchor and no finding · declared · example enabled · specs/model/anchors.lookalike-refusal.sdp.md

    External run evidence from test/self-hosting-model.test.ts

    Test anchors: test:protocol.anchors.lookalike-refusal, test:protocol.anchors.physical-identity, test:protocol.stable-ids.malformed-refusal, test:protocol.stable-ids.namespaced-round-trip, test:protocol.stable-ids.unsectioned-address-refused. Specs verified by those bindings: spec:model.anchors, spec:model.anchors.lookalike-refusal, spec:model.anchors.physical-identity, spec:model.stable-ids, spec:model.stable-ids.malformed-refusal, spec:model.stable-ids.namespaced-round-trip, spec:model.stable-ids.unsectioned-address-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 namespaced dotted path with a sub-part survives parsing unchanged (spec:model.stable-ids.namespaced-round-trip)passed3.45 ms
    executes the bound example against a fresh worldAn uppercase namespace is refused with its reason named (spec:model.stable-ids.malformed-refusal)passed0.43 ms
    executes the bound example against a fresh worldA `#` sub-part without its section is refused with its reason named (spec:model.stable-ids.unsectioned-address-refused)passed0.31 ms
    executes the bound example against a fresh worldA consumer-local lookalike builder mints no anchor and no finding (spec:model.anchors.lookalike-refusal)passed20.56 ms
    executes the bound example against a fresh worldA deep relative import that resolves to the Protocol builders is trusted (spec:model.anchors.physical-identity)passed7.87 ms
  • spec:model.anchors.physical-identity · A deep relative import that resolves to the Protocol builders is trusted · declared · example enabled · specs/model/anchors.physical-identity.sdp.md

Example space

  • builderSource · "a consumer-local lookalike module" | "a relative import resolving to the Protocol builder modules" | "the published Protocol package" · declared by a repository whose one source file builds an anchor through {builderSource}

Bound points

ExamplebuilderSource
spec:model.anchors.lookalike-refusal"a consumer-local lookalike module"
spec:model.anchors.physical-identity"a relative import resolving to the Protocol builder modules"

Oracle binding: none

Coverage

builderSource
Declared valueExamples
"a consumer-local lookalike module"spec:model.anchors.lookalike-refusal
"a relative import resolving to the Protocol builder modules"spec:model.anchors.physical-identity
"the published Protocol package"no example

Unbound

  • builderSource: None
Design view

Requirement drawing

Requirement drawing for spec:model.anchors
The diagram as text
  • spec:model.anchors: Source anchors bind code without carrying intent · declared Spec
  • spec:decisions.anchor-binding-grain: Bindings are optional, plural, and may reference a design · declared Spec
  • spec:decisions.anchor-comment-form: The comment form is a second anchor representation · declared Spec
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized · declared Spec
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness · declared Spec
  • spec:model.anchors.lookalike-refusal: A consumer-local lookalike builder mints no anchor and no finding · declared Spec
  • spec:model.anchors.physical-identity: A deep relative import that resolves to the Protocol builders is trusted · declared Spec
  • spec:model.structural-patterns: Architecturally significant units are annotated where they are realized · declared Spec
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen · declared Spec
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec · declared Spec
  • impl:protocol.anchor-extraction: anchor reification seam: the constant form and the comment form · anchored code · src/extract/anchors.ts:121
  • impl:protocol.anchor-model: binding-only anchor model builders · anchored code · src/model/anchors.ts:108
  • impl:protocol.anchors-subpath: zero-dependency subpath exporting the id and anchor builders only · anchored code · src/anchors.ts:8
  • impl:protocol.census-page: renders the derived census and runtime taxonomy projection · anchored code · src/projections/census.ts:21
  • impl:protocol.derive-graph: derives the graph from reified carriers and bindings · anchored code · src/extract/derive.ts:241
  • impl:protocol.protocol-bindings: Protocol builder-import trust (protocolBindingScopeFor / collectProtocolBindings) · anchored code · src/extract/protocol-bindings.ts:93
  • impl:protocol.schema-version: versioned graph nodes, claims, edges and located evidence · anchored code · src/graph/schema.ts:9
  • impl:protocol.structural-anchors: checks structural anchor validity and disjoint realization and reference targets · anchored code · src/validate/validators.ts:595
  • impl:protocol.structural-self-binding: realizes the declared significant-unit set and its structural self-binding · anchored code · test/self-hosting-oracle/structural-edges.ts:76
  • test:protocol.anchors.lookalike-refusal: the lookalike point verifies that a consumer-local builder mints nothing · anchored test binding · binding present · test/self-hosting-model.test.ts:292
  • test:protocol.anchors.physical-identity: the physical-identity point verifies the resolved relative builder import · anchored test binding · binding present · test/self-hosting-model.test.ts:314
  • test:protocol.structural-self-binding: checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored test binding · binding present · test/self-hosting-graph.test.ts:88
  • spec:decisions.anchor-binding-grain refines spec:decisions.shipped-projections-frozen · declared — carves out the Design Review's Referenced by list and the census References table
  • spec:decisions.anchor-binding-grain refines spec:model.anchors · declared
  • spec:decisions.anchor-comment-form refines spec:model.anchors · declared
  • spec:decisions.architectural-annotation refines spec:decisions.shipped-projections-frozen · declared — carves out the census Roles, Layers and Contexts tables and the role, layer and context on the Design Review's code unit rows
  • spec:decisions.architectural-annotation refines spec:model.anchors · declared
  • spec:decisions.binding-not-liveness refines spec:model.anchors · declared
  • spec:model.anchors refines spec:model.core-model · declared
  • spec:model.anchors.lookalike-refusal refines spec:model.anchors · declared
  • spec:model.anchors.lookalike-refusal verifies spec:model.anchors · declared
  • spec:model.anchors.physical-identity refines spec:model.anchors · declared
  • spec:model.anchors.physical-identity verifies spec:model.anchors · declared
  • spec:model.structural-patterns refines spec:model.anchors · declared
  • impl:protocol.anchor-extraction satisfies spec:model.anchors · anchored
  • impl:protocol.anchor-extraction satisfies spec:model.structural-patterns · anchored
  • impl:protocol.anchor-extraction references spec:decisions.anchor-comment-form · anchored
  • impl:protocol.anchor-model satisfies spec:model.anchors · anchored
  • impl:protocol.anchor-model references spec:decisions.architectural-annotation · anchored
  • impl:protocol.anchors-subpath satisfies spec:model.anchors · anchored
  • impl:protocol.anchors-subpath references spec:decisions.anchor-comment-form · anchored
  • impl:protocol.census-page satisfies spec:model.structural-patterns · anchored
  • impl:protocol.census-page references spec:decisions.architectural-annotation · anchored
  • impl:protocol.derive-graph references spec:decisions.anchor-binding-grain · anchored
  • impl:protocol.protocol-bindings satisfies spec:model.anchors · anchored
  • impl:protocol.schema-version references spec:decisions.anchor-binding-grain · anchored
  • impl:protocol.structural-anchors satisfies spec:model.anchors · anchored
  • impl:protocol.structural-anchors references spec:decisions.architectural-annotation · anchored
  • impl:protocol.structural-anchors references spec:decisions.anchor-binding-grain · anchored
  • impl:protocol.structural-self-binding satisfies spec:model.structural-patterns · anchored
  • test:protocol.anchors.lookalike-refusal verifies spec:model.anchors.lookalike-refusal · anchored
  • test:protocol.anchors.physical-identity verifies spec:model.anchors.physical-identity · anchored
  • test:protocol.structural-self-binding verifies spec:model.structural-patterns · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because references, folds require exact labels unavailable in requirement syntax.

Decisions

  • Bindings are optional, plural, and may reference a design

    On a code anchor, satisfies is optional and plural; on a test anchor, verifies is plural and non-empty. The constant form accepts one ref(…) or a fresh array literal of them. Each resolving target confers its fact, and implemented stays a whole-Spec fact. An anchored edge references runs from a CodeNode to a Spec, from references?: readonly SpecId[] on a code anchor; it may target any Spec, decisions included, confers no delivery fact, moves no readiness floor, and the drift alarm ignores it. It says this code answers to that design without claiming to realize it: the unit follows the design without realizing any of its promises, or realizes part of a Spec whose remaining promises no unit yet realizes, so a change to the design asks the code to follow. A design that builds on existing code states that by a typed relation to the Spec the code satisfies, never by a reference from the code. A target named in both satisfies and references is an error. An identity-only code anchor, with no satisfies and no references, is lawful: it mints a CodeNode for structure and for byFile, and nothing else.

  • The comment form is a second anchor representation

    An anchor has two extracted representations that feed one closed envelope, the constant form as ruled and a comment form. The comment form is a top-level /** … */ block in a .ts or .tsx file carrying reserved camelCase, TSDoc-compatible tags; @sdpAnchor <id> opens it, and the id's namespace selects the flavor exactly as the constant builders do. Comment prose still authors nothing: only the reserved tags are read, and a comment that does not open with /** is never read. Trust is by reserved grammar, not by builder import, so no import is required. The same id in two forms is a duplicate id. The package also ships a zero-dependency subpath @libar-dev/software-delivery-protocol/anchors exporting the id builders and the three anchor builders and nothing else, for runtimes that may import but must not load node:* modules or ts-morph; the extractor trusts that specifier as a Protocol builder module.

  • Architectural significance is annotated where it is realized

    Architectural significance is annotated on the anchor of the unit that realizes it. A code anchor may carry role, the architectural pattern the unit plays; a component: anchor may additionally carry layer, one of edge, application, domain, adapter, or infrastructure, and context, its bounded context. The component: anchor is anchored architecture: it is the declared component, and there is no separate architecture file, because the anchor sits where the component is realized. It is not the original design's declared Component that could exist before code; an unrealized component lives in Specs and never as an invented CodeNode. A role is a free, corpus-owned vocabulary whose taxonomy the census renders with counts from the graph; service, decider, projection, read-model, codec, contract, barrel, and utility are the lineage set, not a closed list. layer is a closed set, and a value outside it is an envelope error; layer or context on a non-component anchor is an envelope error. All three attributes are optional, and omission is lawful.

  • Bindings state existence, not liveness

    Delivery facts record bindings and enabled verifier existence; coverage gaps and human readiness practice remain explicit without becoming graph facts.

Runtime
  • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol

    Uses

    None.

  • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol

    Uses

  • impl:protocol.anchor-extraction · anchor reification seam: the constant form and the comment form · src/extract/anchors.ts:121

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    None.

  • impl:protocol.anchor-model · binding-only anchor model builders · src/model/anchors.ts:108

    Component: component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol

    Uses

    None.

  • impl:protocol.anchors-subpath · zero-dependency subpath exporting the id and anchor builders only · src/anchors.ts:8

    Component: component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol

    Uses

    None.

  • impl:protocol.protocol-bindings · Protocol builder-import trust (protocolBindingScopeFor / collectProtocolBindings) · src/extract/protocol-bindings.ts:93

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

    None.

  • impl:protocol.structural-anchors · checks structural anchor validity and disjoint realization and reference targets · src/validate/validators.ts:595

    Component: component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol

    Uses

    None.

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.anchors
The diagram as text
  • spec:decisions.anchor-binding-grain: Bindings are optional, plural, and may reference a design
  • spec:decisions.anchor-comment-form: The comment form is a second anchor representation
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness
  • spec:extraction.derive-graph: Carrier reification derives the one graph
  • spec:extraction.entry-citations: The graph records where anchored source cites an entry address
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:model.anchors.lookalike-refusal: A consumer-local lookalike builder mints no anchor and no finding
  • spec:model.anchors.physical-identity: A deep relative import that resolves to the Protocol builders is trusted
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:model.structural-patterns: Architecturally significant units are annotated where they are realized
  • spec:validation.architecture-constraints: Declared architecture rules are checked against anchored structure
  • spec:validation.oracle-target-eligibility: Oracle eligibility follows example-space ownership
  • spec:model.anchors decidedBy spec:decisions.anchor-binding-grain · declared
  • spec:model.anchors decidedBy spec:decisions.anchor-comment-form · declared
  • spec:model.anchors decidedBy spec:decisions.architectural-annotation · declared
  • spec:model.anchors decidedBy spec:decisions.binding-not-liveness · declared
  • spec:model.anchors refines spec:model.core-model · declared
  • spec:extraction.derive-graph dependsOn spec:model.anchors · declared — the anchors Spec owns binding eligibility and structural endpoint restrictions
  • spec:extraction.entry-citations dependsOn spec:model.anchors · declared — only a source file that carries an anchor is read for citations
  • spec:model.planned-architecture dependsOn spec:model.anchors · declared — a planned component is realized by a component anchor that satisfies its design
  • spec:validation.architecture-constraints dependsOn spec:model.anchors · declared
  • spec:validation.oracle-target-eligibility dependsOn spec:model.anchors · declared
  • spec:decisions.anchor-binding-grain refines spec:model.anchors · declared
  • spec:decisions.anchor-comment-form refines spec:model.anchors · declared
  • spec:decisions.architectural-annotation refines spec:model.anchors · declared
  • spec:decisions.binding-not-liveness refines spec:model.anchors · declared
  • spec:model.anchors.lookalike-refusal refines spec:model.anchors · declared
  • spec:model.anchors.physical-identity refines spec:model.anchors · declared
  • spec:model.structural-patterns refines spec:model.anchors · declared
  • spec:model.anchors.lookalike-refusal verifies spec:model.anchors · declared
  • spec:model.anchors.physical-identity verifies spec:model.anchors · 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

Distance 1

Distance 2

Distance 3

Distance 4

Distance 5

Distance 6

Distance 7

Distance 8

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingBindings are optional, plural, and may reference a design
spec:decisions.anchor-binding-grain · resolves
declaredNoneNone
decidedBy · outgoingThe comment form is a second anchor representation
spec:decisions.anchor-comment-form · resolves
declaredNoneNone
decidedBy · outgoingArchitectural significance is annotated where it is realized
spec:decisions.architectural-annotation · resolves
declaredNoneNone
decidedBy · outgoingBindings state existence, not liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
refines · outgoingThe Protocol models delivery with one enrichable Spec
spec:model.core-model · resolves
declaredNoneNone
dependsOn · incomingCarrier reification derives the one graph
spec:extraction.derive-graph · resolves
declaredthe anchors Spec owns binding eligibility and structural endpoint restrictionsNone
dependsOn · incomingThe graph records where anchored source cites an entry address
spec:extraction.entry-citations · resolves
declaredonly a source file that carries an anchor is read for citationsNone
dependsOn · incomingComponents are designed ahead of their code
spec:model.planned-architecture · resolves
declareda planned component is realized by a component anchor that satisfies its designNone
dependsOn · incomingDeclared architecture rules are checked against anchored structure
spec:validation.architecture-constraints · resolves
declaredNoneNone
dependsOn · incomingOracle eligibility follows example-space ownership
spec:validation.oracle-target-eligibility · resolves
declaredNoneNone
refines · incomingBindings are optional, plural, and may reference a design
spec:decisions.anchor-binding-grain · resolves
declaredNoneNone
refines · incomingThe comment form is a second anchor representation
spec:decisions.anchor-comment-form · resolves
declaredNoneNone
refines · incomingArchitectural significance is annotated where it is realized
spec:decisions.architectural-annotation · resolves
declaredNoneNone
refines · incomingBindings state existence, not liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
refines · incomingA consumer-local lookalike builder mints no anchor and no finding
spec:model.anchors.lookalike-refusal · resolves
declaredNoneNone
refines · incomingA deep relative import that resolves to the Protocol builders is trusted
spec:model.anchors.physical-identity · resolves
declaredNoneNone
refines · incomingArchitecturally significant units are annotated where they are realized
spec:model.structural-patterns · resolves
declaredNoneNone
verifies · incomingA consumer-local lookalike builder mints no anchor and no finding
spec:model.anchors.lookalike-refusal · resolves
declaredNoneNone
verifies · incomingA deep relative import that resolves to the Protocol builders is trusted
spec:model.anchors.physical-identity · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.anchor-extraction · anchor reification seam: the constant form and the comment form · src/extract/anchors.ts:121 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.anchor-model · binding-only anchor model builders · src/model/anchors.ts:108 · role contract · component component:protocol.model · layer domain · context protocol
  • impl:protocol.anchors-subpath · zero-dependency subpath exporting the id and anchor builders only · src/anchors.ts:8 · role contract · component component:protocol.model · layer domain · context protocol
  • impl:protocol.protocol-bindings · Protocol builder-import trust (protocolBindingScopeFor / collectProtocolBindings) · src/extract/protocol-bindings.ts:93 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.structural-anchors · checks structural anchor validity and disjoint realization and reference targets · src/validate/validators.ts:595 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

  • spec:model.anchors.lookalike-refusal · A consumer-local lookalike builder mints no anchor and no finding · declared · specs/model/anchors.lookalike-refusal.sdp.md · example enabled
  • spec:model.anchors.physical-identity · A deep relative import that resolves to the Protocol builders is trusted · declared · specs/model/anchors.physical-identity.sdp.md · example enabled

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.