Spec Studio

The graph records where anchored source cites an entry address

spec:extraction.entry-citationsUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/extraction/entry-citations.sdp.md

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

A test that checks a pinned declaration names the entry in its own text, often as the test's title, and the graph does not see that link: a reader of the declaration finds the suite's file through its anchor but not the assertion. The first adopter's type test names each comparison by the address of the Design entry it binds (libar-platform/tests/types/pinned.test-d.ts), and a reader of its pages could not find the comparison for one declaration. The extractor already reads every anchored source file for its anchors, so it records where such a file writes an entry address, and a page or a recipe shows the line that checks a declaration.

A citation is where text names an entry, read by the machine from comments and strings. It carries the inferred claim and confers nothing, and it sits in a table beside the location table, as a position does. A citation is inferred location data in the graph. It adds no node or edge, confers no delivery fact, moves no readiness floor, feeds no Protocol validator and records no test verdict.

Intent
problem
A test that checks one pinned declaration names its entry address only in its own text, so no view links the declaration to the line that checks it, and a reader holding the declaration cannot find its assertion.
outcome
Record each entry address an anchored source file cites, with its file and line, as an inferred citation that confers nothing, so a view can show the test line that checks a pinned declaration.
Behavior
rule.anchoredFilesOnly line 30 · specs/extraction/entry-citations.sdp.md:30
The extractor reads citations from each source file it reads for anchors that carries at least one anchor, of either form and any namespace, after the same exclusions; a file that carries no anchor, a carrier and any other file is not read for citations.

spec:extraction.entry-citations.code-comment-cites-declaration · enabled, spec:extraction.entry-citations.test-title-cites-declaration · enabled, spec:extraction.entry-citations.unanchored-file-unread · enabled

rule.citationToken line 31 · specs/extraction/entry-citations.sdp.md:31
A citation is a token the prose-mention scan would read as a mention, found anywhere in such a file's text, in a comment, a string or a template literal, that holds #; a token followed by ${, directly or after the trailing punctuation the mention scan strips, is the prefix of a computed address and records no citation, whether or not the prefix parses as an entry address; a bare Spec id is not a citation.

spec:extraction.entry-citations.test-title-cites-declaration · enabled

rule.citationRow line 32 · specs/extraction/entry-citations.sdp.md:32
Each citation records the address as written, the file's root-relative path and the 1-based line the token starts on; one address written twice on one line is one row.

spec:extraction.entry-citations.test-title-cites-declaration · enabled

rule.citationTable line 33 · specs/extraction/entry-citations.sdp.md:33
The citations ride in a table of their own beside the location table, sorted and deterministic as the graph is, and Primitive and Pack nodes stay free of them.

no example exercises it

rule.inferredClaim line 34 · specs/extraction/entry-citations.sdp.md:34
The table's definition gives every citation the inferred claim, and every reader row of a citation carries it, so no consumer reads a citation as an authored binding.

no example exercises it

rule.confersNothing line 35 · specs/extraction/entry-citations.sdp.md:35
A citation mints no node or edge, confers no delivery fact, moves no readiness floor, feeds no Protocol validator and records no verdict on the citing file; removing every citation changes no node, edge, fact, floor or finding.

no example exercises it

rule.readerRows line 36 · specs/extraction/entry-citations.sdp.md:36
The reader resolves each citation by the rules address resolution applies, and the Spec context carries the citations whose address names that Spec as its entry citations, each with the entry it names, whether it resolves and why not, the citing file and line, the anchors recorded at that file and those of them that are test anchors verifying the Spec.

spec:extraction.entry-citations.test-title-cites-declaration · enabled, spec:extraction.entry-citations.unresolved-citation · enabled

rule.declarationLines line 37 · specs/extraction/entry-citations.sdp.md:37
Those rows let a view show, beside each pinned declaration of a Spec, the anchored lines that cite it, with no join of its own; a row reads as a test line only when a test: anchor at its file verifies the cited Spec, directly or through an example that verifies it, every other row stays a citation with its file and line, and no row says what a test asserts or whether it passed.

spec:extraction.entry-citations.code-comment-cites-declaration · enabled, spec:extraction.entry-citations.test-title-cites-declaration · enabled

rule.citationRecipe line 38 · specs/extraction/entry-citations.sdp.md:38
Entry citations, recipe 51, lists for a Pack, a list of Specs or the corpus each pinned declaration and every other cited entry with the lines that cite it, and every citation that does not resolve, and answers each citation that does not resolve, and only those, as a finding, so a corpus may name the shipped file as a rules file.

spec:extraction.entry-citations.unresolved-citation · enabled

rule.unresolvedReports line 39 · specs/extraction/entry-citations.sdp.md:39
An unresolved citation stays in the table and reports only through the reader's rows and the recipe's answer, never as a Protocol finding: whether it fails a gate is the corpus's choice of rules file.

spec:extraction.entry-citations.unresolved-citation · enabled

0 unkeyed rules.

Verifying examples

A code file's comment cites a declaration without reading as a test line · spec:extraction.entry-citations.code-comment-cites-declaration · ready floor ready

Executable Spec

Given a probe corpus whose Spec pins the declaration {declaration: "spec:probe.one#design.typeOne"}
Given a source file that {anchored: "carries a code anchor referencing the Spec"} and names the address {address: "spec:probe.one#design.typeOne"} on line {line: 9}
When the graph is derived
Then the Spec context lists {citations: 1} entry citations
Then the citation {recorded: "resolves"}
Then the citing line reads as a test line: {testLine: false}

Open example

A test title in an anchored file cites a pinned declaration · spec:extraction.entry-citations.test-title-cites-declaration · ready floor ready

Executable Spec

Given a probe corpus whose Spec pins the declaration {declaration: "spec:probe.one#design.typeOne"}
Given a source file that {anchored: "carries a test anchor verifying the Spec"} and names the address {address: "spec:probe.one#design.typeOne"} on line {line: 9}
When the graph is derived
Then the Spec context lists {citations: 1} entry citations
Then the citation {recorded: "resolves"}
Then the citing line reads as a test line: {testLine: true}
Then the shipped entry-citations file named as a rules file exits {exitCode: 0}

Open example

A file that carries no anchor is not read for citations · spec:extraction.entry-citations.unanchored-file-unread · ready floor ready

Executable Spec

Given a probe corpus whose Spec pins the declaration {declaration: "spec:probe.one#design.typeOne"}
Given a source file that {anchored: "carries no anchor"} and names the address {address: "spec:probe.one#design.typeOne"} on line {line: 9}
When the graph is derived
Then the Spec context lists {citations: 0} entry citations
Then the citation {recorded: "is not recorded"}

Open example

A citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding · spec:extraction.entry-citations.unresolved-citation · ready floor ready

Executable Spec

Given a probe corpus whose Spec pins the declaration {declaration: "spec:probe.one#design.typeOne"}
Given a source file that {anchored: "carries a test anchor verifying the Spec"} and names the address {address: "spec:probe.one#design.typeTwo"} on line {line: 9}
When the graph is derived
Then the Spec context lists {citations: 1} entry citations
Then the citation {recorded: "does not resolve"}
Then the shipped entry-citations file named as a rules file exits {exitCode: 1}

Open example

Example space

Given a probe corpus whose Spec pins the declaration {declaration:string}
Given a source file that {anchored:"carries a test anchor verifying the Spec"|"carries a code anchor referencing the Spec"|"carries no anchor"} and names the address {address:string} on line {line:number}
When the graph is derived
Then the Spec context lists {citations:number} entry citations
Then the citation {recorded:"resolves"|"does not resolve"|"is not recorded"}
Then the citing line reads as a test line: {testLine:boolean}
Then the shipped entry-citations file named as a rules file exits {exitCode:number}
Design
citationTable line 42 · specs/extraction/entry-citations.sdp.md:42
citations?: readonly { address: string; file: string; line: number }[] on the graph schema beside locations, rows sorted by file, then line, then address, in code-unit order; an absent table reads as empty, and the field is additive, so the schema version's minor part rises.

no citation recorded

citationAddress line 43 · specs/extraction/entry-citations.sdp.md:43
address is the token as the prose-mention scan cuts it, its trailing punctuation removed; the sections it may name are the package's exported ENTRY_ADDRESS_SECTIONS, so an address section the grammar gains is read with no change here.

no citation recorded

readerCitation line 44 · specs/extraction/entry-citations.sdp.md:44
entryCitations: readonly { address: string; entry: string | null; resolves: boolean; reason: "malformed" | "section" | "entry" | null; file: string; line: number; anchors: readonly string[]; testAnchors: readonly string[]; claim: "inferred" }[] on the Spec context, for every row whose address's Spec part, the text before its #, is this Spec's id, where entry is the location-table entry the address names, such as design.<key> or rule[<i>], or null when it does not resolve, reason is address resolution's reason for a miss, anchors lists the ids of the anchors recorded at file in code-unit order, and testAnchors lists those of them that are test: anchors verifying this Spec, directly or through an example that verifies it; rows sort by address, then file, then line.

no citation recorded

citationsRecipe line 45 · specs/extraction/entry-citations.sdp.md:45
recipe 51, entry citations, takes at most one scope, params.pack or params.specs, the whole corpus with neither, and params.severity, "error" by default or "warning"; both scopes, an id that does not resolve or another severity returns { diagnostics: [{ parameter, problem }] } and no findings.
citationsAnswer line 46 · specs/extraction/entry-citations.sdp.md:46
{ scope, totals: { citations, citedEntries, declarations, citedDeclarations, unresolved }, entries, unresolved, findings }, where scope is { corpus: true }, { pack } or { specs }, and the totals count within the scope: the citations whose Spec part names a Spec in it, the entry rows that some citation names, the pinned declarations, those an anchored line cites, and the unresolved rows.

no citation recorded

entryRow line 47 · specs/extraction/entry-citations.sdp.md:47
{ address, spec, pinned, line, citedBy: [{ file, line, anchors, testAnchors }] }, one per pinned declaration in scope and per other entry in scope that a citation names, sorted by address; line is the entry's own recorded line or null, citedBy sorts by file, then line, and an uncited pinned declaration has an empty citedBy.

no citation recorded

unresolvedRow line 48 · specs/extraction/entry-citations.sdp.md:48
{ address, reason, file, line }, one per citation that does not resolve whose Spec part names a Spec in scope, or every such citation with no scope, reason being address resolution's, spec for an absent Spec; rows sort by file, then line, then address.

no citation recorded

citationFinding line 49 · specs/extraction/entry-citations.sdp.md:49
{ validatorId: "unresolved-citation", subjectId, severity, message, file, line } for each unresolved row, in that order, where subjectId is the address, file and line the citing site, and message reads <address> cited at <file>:<line> does not resolve: <why>, <why> as address resolution's finding words it.

no citation recorded

Verification

Verifier bindings

  • spec:extraction.entry-citations.code-comment-cites-declaration · A code file's comment cites a declaration without reading as a test line · declared · example enabled · specs/extraction/entry-citations.code-comment-cites-declaration.sdp.md

    External run evidence from test/entry-citations.test.ts

    Test anchors: test:protocol.entry-citations.code-comment-cites-declaration, test:protocol.entry-citations.test-title-cites-declaration, test:protocol.entry-citations.unanchored-file-unread, test:protocol.entry-citations.unresolved-citation. Specs verified by those bindings: spec:extraction.entry-citations, spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation.

    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 test title in an anchored file cites a pinned declaration (spec:extraction.entry-citations.test-title-cites-declaration)passed541.08 ms
    executes the bound example against a fresh worldA code file's comment cites a declaration without reading as a test line (spec:extraction.entry-citations.code-comment-cites-declaration)passed465.27 ms
    executes the bound example against a fresh worldA file that carries no anchor is not read for citations (spec:extraction.entry-citations.unanchored-file-unread)passed445.6 ms
    executes the bound example against a fresh worldA citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding (spec:extraction.entry-citations.unresolved-citation)passed457.36 ms
    scans comments, strings and templates, deduplicates a line and keeps code-unit orderentry citation extraction and readerpassed28.19 ms
    records no citation for a token continued by interpolation, even when its prefix parsesentry citation extraction and readerpassed463.69 ms
    keeps a literal malformed token beside an interpolated token on the same lineentry citation extraction and readerpassed0.39 ms
    keeps a malformed literal before a separate template interpolationentry citation extraction and readerpassed4.86 ms
    records no citation for a prefix with trailing punctuation before interpolationentry citation extraction and readerpassed0.32 ms
    does not report a computed order key as an unresolved citation in recipe 51entry citation extraction and readerpassed473.68 ms
    recipe 51 locates a citation of the second keyed questionentry citation extraction and readerpassed8.14 ms
    ends citation tokens at source escapes before checking for an addressentry citation extraction and readerpassed4.29 ms
    sorts in-memory citations by address on a shared source lineentry citation extraction and readerpassed3.29 ms
    sorts reader citations by address before file and lineentry citation extraction and readerpassed3.62 ms
    rejects a crashed rules file even when its exit code matches the exampleentry citation extraction and readerpassed455.33 ms
    counts Unicode source line separators as TypeScript doesentry citation extraction and readerpassed3.74 ms
    reads a file carrying only an identity anchor, and ignores carriers and unanchored sourcesentry citation extraction and readerpassed2.42 ms
    includes only tests in the citing file that verify directly or through an exampleentry citation extraction and readerpassed5.56 ms
    reads a newly shared term address through termKeys even without location rowsentry citation extraction and readerpassed3.06 ms
    does not treat future address sections as Model termsentry citation extraction and readerpassed2.6 ms
    resolves UI, rules, flows and questions without depending on entry locationsentry citation extraction and readerpassed3.18 ms
  • spec:extraction.entry-citations.test-title-cites-declaration · A test title in an anchored file cites a pinned declaration · declared · example enabled · specs/extraction/entry-citations.test-title-cites-declaration.sdp.md
  • spec:extraction.entry-citations.unanchored-file-unread · A file that carries no anchor is not read for citations · declared · example enabled · specs/extraction/entry-citations.unanchored-file-unread.sdp.md
  • spec:extraction.entry-citations.unresolved-citation · A citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding · declared · example enabled · specs/extraction/entry-citations.unresolved-citation.sdp.md

Example space

  • declaration · string · declared by a probe corpus whose Spec pins the declaration {declaration}
  • anchored · "carries a test anchor verifying the Spec" | "carries a code anchor referencing the Spec" | "carries no anchor" · declared by a source file that {anchored} and names the address {address} on line {line}
  • address · string · declared by a source file that {anchored} and names the address {address} on line {line}
  • line · number · declared by a source file that {anchored} and names the address {address} on line {line}

Bound points

Exampledeclarationanchoredaddressline
spec:extraction.entry-citations.code-comment-cites-declaration"spec:probe.one#design.typeOne""carries a code anchor referencing the Spec""spec:probe.one#design.typeOne"9
spec:extraction.entry-citations.test-title-cites-declaration"spec:probe.one#design.typeOne""carries a test anchor verifying the Spec""spec:probe.one#design.typeOne"9
spec:extraction.entry-citations.unanchored-file-unread"spec:probe.one#design.typeOne""carries no anchor""spec:probe.one#design.typeOne"9
spec:extraction.entry-citations.unresolved-citation"spec:probe.one#design.typeOne""carries a test anchor verifying the Spec""spec:probe.one#design.typeTwo"9

Oracle binding: present · oracle:protocol.entry-citations · test/entry-citations.test.ts:36

Coverage

declaration: "spec:probe.one#design.typeOne" · spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation · not enumerable

address: "spec:probe.one#design.typeOne" · spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread; "spec:probe.one#design.typeTwo" · spec:extraction.entry-citations.unresolved-citation · not enumerable

line: 9 · spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation · not enumerable

Unbound

  • declaration: None
  • anchored: None
  • address: None
  • line: None
Design view

Requirement drawing

Requirement drawing for spec:extraction.entry-citations
The diagram as text
  • spec:extraction.entry-citations: The graph records where anchored source cites an entry address · declared Spec
  • spec:extraction.entry-citations.code-comment-cites-declaration: A code file's comment cites a declaration without reading as a test line · declared Spec
  • spec:extraction.entry-citations.test-title-cites-declaration: A test title in an anchored file cites a pinned declaration · declared Spec
  • spec:extraction.entry-citations.unanchored-file-unread: A file that carries no anchor is not read for citations · declared Spec
  • spec:extraction.entry-citations.unresolved-citation: A citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding · declared Spec
  • spec:extraction.derive-graph: Carrier reification derives the one graph · declared Spec
  • impl:protocol.entry-address-resolution: resolves entry addresses for prose validation and citation readers · anchored code · src/graph/entry-address.ts:6
  • impl:protocol.entry-citation-reader: resolves citations and joins file anchors with direct and example-based test verification · anchored code · src/reader/entry-citations.ts:19
  • impl:protocol.entry-citation-recipe: asserts realization of Entry citations in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:7008
  • impl:protocol.entry-citation-scan: records prose-mention tokens with addresses in anchored source files · anchored code · src/extract/entry-citations.ts:6
  • oracle:protocol.entry-citations: oracle:protocol.entry-citations · anchored oracle binding · test/entry-citations.test.ts:36
  • test:protocol.entry-citations.code-comment-cites-declaration: test:protocol.entry-citations.code-comment-cites-declaration · anchored test binding · binding present · test/entry-citations.test.ts:196
  • test:protocol.entry-citations.test-title-cites-declaration: test:protocol.entry-citations.test-title-cites-declaration · anchored test binding · binding present · test/entry-citations.test.ts:191
  • test:protocol.entry-citations.unanchored-file-unread: test:protocol.entry-citations.unanchored-file-unread · anchored test binding · binding present · test/entry-citations.test.ts:201
  • test:protocol.entry-citations.unresolved-citation: test:protocol.entry-citations.unresolved-citation · anchored test binding · binding present · test/entry-citations.test.ts:206
  • spec:extraction.entry-citations refines spec:extraction.derive-graph · declared
  • spec:extraction.entry-citations.code-comment-cites-declaration refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.code-comment-cites-declaration verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.test-title-cites-declaration refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.test-title-cites-declaration verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unanchored-file-unread refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unanchored-file-unread verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unresolved-citation refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unresolved-citation verifies spec:extraction.entry-citations · declared
  • impl:protocol.entry-address-resolution satisfies spec:extraction.entry-citations · anchored
  • impl:protocol.entry-citation-reader satisfies spec:extraction.entry-citations · anchored
  • impl:protocol.entry-citation-recipe satisfies spec:extraction.entry-citations · anchored
  • impl:protocol.entry-citation-scan satisfies spec:extraction.entry-citations · anchored
  • oracle:protocol.entry-citations models spec:extraction.entry-citations · anchored
  • test:protocol.entry-citations.code-comment-cites-declaration verifies spec:extraction.entry-citations.code-comment-cites-declaration · anchored
  • test:protocol.entry-citations.test-title-cites-declaration verifies spec:extraction.entry-citations.test-title-cites-declaration · anchored
  • test:protocol.entry-citations.unanchored-file-unread verifies spec:extraction.entry-citations.unanchored-file-unread · anchored
  • test:protocol.entry-citations.unresolved-citation verifies spec:extraction.entry-citations.unresolved-citation · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

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.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol

    Uses

  • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · 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
  • impl:protocol.entry-address-resolution · resolves entry addresses for prose validation and citation readers · src/graph/entry-address.ts:6

    Component: component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol

    Uses

    None.

  • impl:protocol.entry-citation-reader · resolves citations and joins file anchors with direct and example-based test verification · src/reader/entry-citations.ts:19

    Component: component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol

    Uses

    None.

  • impl:protocol.entry-citation-recipe · asserts realization of Entry citations in docs/agent-surface/recipes.md · test/recipes.test.ts:7008

    Uses

    None.

  • impl:protocol.entry-citation-scan · records prose-mention tokens with addresses in anchored source files · src/extract/entry-citations.ts:6

    Component: component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · 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:extraction.entry-citations
  • E6: verifies · declared (4 unit edges)
The diagram as text
  • spec:consumers.spec-studio.cited-line-text: A pinned declaration shows the words of each test line that cites it
  • spec:consumers.spec-studio.registers: The corpus's registers are pages a reviewer opens from a link
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:extraction.claim-taxonomy: Graph claims retain their epistemic source
  • spec:extraction.derive-graph: Carrier reification derives the one graph
  • spec:extraction.determinism: Committed source derives byte-identical output
  • spec:extraction.entry-citations: The graph records where anchored source cites an entry address
  • spec:extraction.entry-citations.code-comment-cites-declaration: A code file's comment cites a declaration without reading as a test line
  • spec:extraction.entry-citations.test-title-cites-declaration: A test title in an anchored file cites a pinned declaration
  • spec:extraction.entry-citations.unanchored-file-unread: A file that carries no anchor is not read for citations
  • spec:extraction.entry-citations.unresolved-citation: A citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:validation.prose-mentions: Every Spec id written in prose resolves
  • spec:extraction.entry-citations constrainedBy spec:extraction.determinism · declared
  • spec:extraction.entry-citations dependsOn spec:extraction.claim-taxonomy · declared — every citation carries the inferred claim
  • spec:extraction.entry-citations dependsOn spec:extraction.entry-locations · declared — the citation table is the location table's sibling, and a resolving citation names an entry it locates
  • spec:extraction.entry-citations dependsOn spec:model.anchors · declared — only a source file that carries an anchor is read for citations
  • spec:extraction.entry-citations dependsOn spec:validation.prose-mentions · declared — a citation is a token the prose-mention scan would read, and resolves by the same address rules
  • spec:extraction.entry-citations refines spec:extraction.derive-graph · declared
  • spec:consumers.spec-studio.cited-line-text dependsOn spec:extraction.entry-citations · declared — the words belong to a citation the graph already records by file and line
  • spec:consumers.spec-studio.registers dependsOn spec:extraction.entry-citations · declared — each declaration shows the source lines that cite its address
  • spec:consumers.spec-studio.spec-page dependsOn spec:extraction.entry-citations · declared — the design section shows the source lines that cite each entry
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:extraction.entry-citations · declared — a pinned declaration counts as cited when an anchored line cites it
  • spec:extraction.entry-citations.code-comment-cites-declaration refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.test-title-cites-declaration refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unanchored-file-unread refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unresolved-citation refines spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.code-comment-cites-declaration verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.test-title-cites-declaration verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unanchored-file-unread verifies spec:extraction.entry-citations · declared
  • spec:extraction.entry-citations.unresolved-citation verifies spec:extraction.entry-citations · 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

Relations

Relation and directionOther endClaimReasonExercised keys
constrainedBy · outgoingCommitted source derives byte-identical output
spec:extraction.determinism · resolves
declaredNoneNone
dependsOn · outgoingGraph claims retain their epistemic source
spec:extraction.claim-taxonomy · resolves
declaredevery citation carries the inferred claimNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredthe citation table is the location table's sibling, and a resolving citation names an entry it locatesNone
dependsOn · outgoingSource anchors bind code without carrying intent
spec:model.anchors · resolves
declaredonly a source file that carries an anchor is read for citationsNone
dependsOn · outgoingEvery Spec id written in prose resolves
spec:validation.prose-mentions · resolves
declareda citation is a token the prose-mention scan would read, and resolves by the same address rulesNone
refines · outgoingCarrier reification derives the one graph
spec:extraction.derive-graph · resolves
declaredNoneNone
dependsOn · incomingA pinned declaration shows the words of each test line that cites it
spec:consumers.spec-studio.cited-line-text · resolves
declaredthe words belong to a citation the graph already records by file and lineNone
dependsOn · incomingThe corpus's registers are pages a reviewer opens from a link
spec:consumers.spec-studio.registers · resolves
declaredeach declaration shows the source lines that cite its addressNone
dependsOn · incomingA Spec page shows one Spec in collapsible panels, in a fixed order
spec:consumers.spec-studio.spec-page · resolves
declaredthe design section shows the source lines that cite each entryNone
dependsOn · incomingCapability adoption counts where each capability is used and where it could apply
spec:consumers.upgrade-kit.capability-adoption · resolves
declareda pinned declaration counts as cited when an anchored line cites itNone
refines · incomingA code file's comment cites a declaration without reading as a test line
spec:extraction.entry-citations.code-comment-cites-declaration · resolves
declaredNoneNone
refines · incomingA test title in an anchored file cites a pinned declaration
spec:extraction.entry-citations.test-title-cites-declaration · resolves
declaredNoneNone
refines · incomingA file that carries no anchor is not read for citations
spec:extraction.entry-citations.unanchored-file-unread · resolves
declaredNoneNone
refines · incomingA citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding
spec:extraction.entry-citations.unresolved-citation · resolves
declaredNoneNone
verifies · incomingA code file's comment cites a declaration without reading as a test line
spec:extraction.entry-citations.code-comment-cites-declaration · resolves
declaredNoneanchoredFilesOnly, declarationLines
verifies · incomingA test title in an anchored file cites a pinned declaration
spec:extraction.entry-citations.test-title-cites-declaration · resolves
declaredNoneanchoredFilesOnly, citationToken, citationRow, readerRows, declarationLines
verifies · incomingA file that carries no anchor is not read for citations
spec:extraction.entry-citations.unanchored-file-unread · resolves
declaredNoneanchoredFilesOnly
verifies · incomingA citation of an entry its Spec lacks reports through the recipe, never as a Protocol finding
spec:extraction.entry-citations.unresolved-citation · resolves
declaredNonereaderRows, citationRecipe, unresolvedReports

Bindings

Implementation binding: present

  • impl:protocol.entry-address-resolution · resolves entry addresses for prose validation and citation readers · src/graph/entry-address.ts:6 · role reader · component component:protocol.graph · layer domain · context protocol
  • impl:protocol.entry-citation-reader · resolves citations and joins file anchors with direct and example-based test verification · src/reader/entry-citations.ts:19 · role reader · component component:protocol.reader · layer application · context protocol
  • impl:protocol.entry-citation-recipe · asserts realization of Entry citations in docs/agent-surface/recipes.md · test/recipes.test.ts:7008
  • impl:protocol.entry-citation-scan · records prose-mention tokens with addresses in anchored source files · src/extract/entry-citations.ts:6 · role extractor · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

Expected-outcome oracle: present

  • oracle:protocol.entry-citations · test/entry-citations.test.ts:36

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.