outcomeExhaustive symbol reach waits for a language-neutral identity
spec:consumers.impact-graph.symbol-reachNext rung scoped: nothing blocks; it waits only for the author's statement.
Packs: pack:self-hosting-v1
Design: no design entries · no pinned declarations · 1 decision
Findings: no errors, no warnings
specs/consumers/impact-graph.symbol-reach.sdp.md
1 open question and 1 blocking question; implementation binding none, verifier binding none, and expected-outcome oracle none.
Intent
- Answer find-all-usages and symbol-level impact exhaustively once a symbol identity exists that no single compiler owns.
Open questions
- blocking ·
question.symbolIdentityline 18 · specs/consumers/impact-graph.symbol-reach.sdp.md:18· Which language-neutral identity and extraction boundary can support exhaustive symbol reach without freezing a single compiler's representation into the Protocol?Decider: ownerTrigger: a reader needs symbol-level reach that file-level imports and curated anchors cannot give
Behavior
ruleline 23 ·specs/consumers/impact-graph.symbol-reach.sdp.md:23- Symbol reach is inferred structure, kept apart from the curated graph under
spec:consumers.impact-graph#rule.inferredApart, and a symbol is never an anchor id or a relation target.
1 unkeyed rule.
Verification
Verifier bindings
No verifier binding recorded.
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
- Satisfying or referencing units: no recorded binding.
- Test or oracle bindings: no recorded binding.
Arrows: refines (declared).
The diagram as text
- spec:consumers.impact-graph.symbol-reach: Exhaustive symbol reach waits for a language-neutral identity · declared Spec · no satisfying binding
- spec:consumers.impact-graph: Mechanical code structure stays inferred and apart from curated intent · declared Spec
- spec:consumers.impact-graph.symbol-reach refines spec:consumers.impact-graph · declared
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
- Planning truths live in ruled graph homes
Each planning-truth type lives in its ruled home. Work-item dependency truth rides
dependsOnedges, with independence as absence of the edge and scheduling phrases never authored. Decision gates live ondecision-kind Specs, linked bydecidedBy. Do-not-reopen rows split by what they carry: a tradeoff refusal becomes adecision-kind Spec, which a later decision thatsupersedesit replaces whole and a later decision thatrefinesit narrows for one case, either under the ADR three-part test; a row that restates a behavior guarantee already homed on a carrying Spec stays on that Spec and changes by ordinary Spec revision; a hold stays a blocking open question on its own Spec and is never minted as a decision. A lawful non-decision stays in the plan record as evidence. A deferral carries its re-entry trigger in thetriggerfield of its own blocking open question, and declaresdependsOnseparately when a true precondition exists. Exclusive ownership is one Spec identity per deliverable with consumers depending on it. Selection-pressure heuristics are advisory only, carried as behavior rules on the graph-first planning Spec or in recipes. Session law splits separately, across behavior rules on the graph-first planning Spec, the delivery-session on-ramp's handoff rule, and the plan file. The briefs index shape is retired as a carrier of law.
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
The diagram as text
- spec:consumers.impact-graph: Mechanical code structure stays inferred and apart from curated intent
- spec:consumers.impact-graph.symbol-reach: Exhaustive symbol reach waits for a language-neutral identity
- spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes
- spec:consumers.impact-graph.symbol-reach decidedBy spec:decisions.planning-truths-placement · declared — that decision homes a deferral as a blocking open question on its own Spec, as symbol identity is here
- spec:consumers.impact-graph.symbol-reach refines spec:consumers.impact-graph · 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
- refines · spec:consumers.impact-graph · stated ready, floor ready
- decidedBy · spec:decisions.planning-truths-placement · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| decidedBy · outgoing | Planning truths live in ruled graph homesspec:decisions.planning-truths-placement · resolves | declared | that decision homes a deferral as a blocking open question on its own Spec, as symbol identity is here | None |
| refines · outgoing | Mechanical code structure stays inferred and apart from curated intentspec:consumers.impact-graph · resolves | declared | None | None |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: none
Expected-outcome oracle: none
Runtime observation: not tracked.
Run results: not recorded in the graph.
Findings
None.
Composing (0)
Composing needs the script.