Roadmaps, capability maps and design slices

pack:roadmaps-and-slices-v1specs/roadmaps-and-slices.pack.sdp.md

Exported from the Spec Studio

pack:roadmaps-and-slices-v1

Where the design stands

  • 49 members in authored reading order; no unresolved members.
  • 1 member held below their stated next rung: Roadmap views read releases, baselines and phases from git and the graph (1 unmet clause).
  • No members waiting only for their author's statement.
  • 174 design entries and 43 pinned declarations.
  • 2 open questions and 1 blocking question.
  • 22 members with an implementation binding.
  • 3 members with a design reference.
  • 43 outside Specs the Pack rests on; 10 outside Specs rest on the Pack; no outside Specs verify it; no outside Specs supersede it.

Maturity map

Rows: stated readiness, idea to ready. Columns: floor reached, none to ready. Each mark counts one member; above 100 members a cell is solid. Floor none is distinct from idea.

Outlined diagonal: matches. Right of diagonal: floor above statement. Left of diagonal: statement above floor.

Maturity map for Roadmaps, capability maps and design slicesFloor reached →Stated readiness ↓noneideascopeddefinedreadyideascopeddefinedreadystated scoped, floor scoped: 1 member1stated ready, floor ready: 48 members48
Maturity map as text
Counts by stated readiness and floor reached. To the right the floor exceeds the statement; to the left the statement exceeds the floor.
Stated rung / floor reachedfloor nonefloor ideafloor scopedfloor definedfloor ready
stated idea—————
stated scoped——1——
stated defined—————
stated ready————48
stated scoped, floor scoped · 1 member
stated ready, floor ready · 48 members
Mermaid source

Preferred syntax: block. Fixed categorical cells; membership appears in comments.

Framing

How a corpus reads where it stands and what comes next, drawn from the graph. First the architecture the views stand on: a review of which engine units are significant enough to anchor, and the meaning of each role they carry. Then the capability map, epics with their features and stories, and the Protocol's own capabilities stated as epics. Then the diagrams the graph has data for, and the design slice, a Pack read as one design with the architecture it touches. Last the roadmap: the decision that lets the graph hold an advisory priority, the roadmap reading and its page and memo, and the decision that lets the roadmap replace the Protocol's numbered plans.

Members

1. The engine's accepted set covers its significant abstractions and only thosebehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:protocol.significant-units-review

Design

1 design entry · no pinned declarations

Decisions

  • spec:decisions.anchor-binding-grain · stated ready
  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.structural-self-binding · realizes the declared significant-unit set and its structural self-binding · test/self-hosting-oracle/structural-edges.ts:76

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

2. The engine's architectural roles each name one patternmodel · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding none

spec:protocol.role-vocabulary

Design

5 design entries · no pinned declarations

Decisions

  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.role-vocabulary · asserts realization of the role vocabulary in the engine anchors' pinned roles · test/self-hosting-graph.test.ts:143

Design reference: none

Verifier binding: none

3. The architecture page lists each component's significant units by rolebehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.lenses.architecture.unit-register

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-unit-register · renders component source bindings and role-grouped recorded units · src/projections/studio/pages/architecture-register.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

4. The capability map reads every epic and its refinement descendantsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.capability-map

Design

10 design entries · 4 pinned declarations

Decisions

Open questions

None.

Implementation binding: present

  • impl:protocol.capability-map-recipe · asserts realization of The capability map in docs/agent-surface/recipes.md · test/recipes.test.ts:7602 · role projection

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

5. Capability epics keep kind independent of altitudedecision · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding none

spec:decisions.epics-of-any-kind

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: present

  • impl:protocol.capability-map-recipe · asserts realization of The capability map in docs/agent-surface/recipes.md · test/recipes.test.ts:7602 · role projection

Verifier binding: none

6. The Protocol organizes its own features in capability epicsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:protocol.capability-epics

Design

5 design entries · no pinned declarations

Decisions

Open questions

None.

Implementation binding: present

  • impl:protocol.capability-epics · asserts realization of the capability epics in the shipped corpus's refinement · test/recipes.test.ts:8173

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

7. Bound examples execute their authored stepsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding none

spec:extraction.executable-examples

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.delivery-facts · computes delivery facts from resolving binding edges · src/graph/delivery-facts.ts:65 · role decider · component component:protocol.graph · layer domain · context protocol
  • impl:protocol.example-runner · plans and executes a bound example against the caller's world · src/runner/index.ts:108 · role service · component component:protocol.runner · layer application · context protocol
  • impl:protocol.example-runner-adapter · registers one test per example and owns the fresh world lifecycle · src/adapters/vitest.ts:32 · role adapter · component component:protocol.adapters · layer adapter · context protocol
  • impl:protocol.example-testing-helpers · adapter-lifecycle and oracle-comparison helpers for bound examples · src/testing/index.ts:50 · role adapter · component component:protocol.testing · layer adapter · context protocol
  • impl:protocol.executable-contracts · derives step and example-space contracts from the graph · src/codegen/contracts.ts:647 · role projection · component component:protocol.codegen · layer application · context protocol
  • impl:protocol.runnable-modules · derives and publishes runnable registrar modules from the graph · src/codegen/contracts.ts:658 · role projection · component component:protocol.codegen · layer application · context protocol

Design reference: none

Verifier binding: none

8. The capability map page makes refinement readable by epicbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.capability-map-page

Design

6 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-capabilities-page · renders epic evidence, refinement and unreached Specs from the capability map · src/projections/studio/pages/capabilities-page.ts:78 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-filter · filters build-rendered rows through their recorded attributes · src/studio-elements/filter.ts:25 · role interaction · component component:protocol.studio-elements · layer edge · context protocol
  • impl:protocol.studio-frame · renders Studio navigation, page rails and composing controls · src/projections/studio/pages/frame.ts:6 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-index-page · renders Pack disclosures and filterable Spec rows · src/projections/studio/pages/index-page.ts:8 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

9. The Studio chooses diagram kinds from graph valuesbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds

Design

37 design entries · 1 pinned declaration

Decisions

  • spec:decisions.studio-diagram-renderer · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-architecture-lens · renders recipe component rows and planned designs as architecture and member diagrams · src/projections/studio/pages/architecture-page.ts:50 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

10. A diagram preserves readable labels before zoomcontract · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.legibility

Design

6 design entries · 3 pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-diagram-element · adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · src/studio-elements/diagram.ts:23 · role interaction · component component:protocol.studio-elements · layer edge · context protocol
  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

11. Edges route around boxes with deterministic orthogonal pathscontract · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.edge-routing

Design

6 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-diagram-routing · port, channel and overflow-rail edge routes around boxes and labels · src/projections/studio/diagrams/routing.ts:38 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

12. A diagram offers Mermaid source as copyable textbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.mermaid-source

Design

6 design entries · no pinned declarations

Decisions

  • spec:decisions.shipped-projections-frozen · stated ready
  • spec:decisions.studio-diagram-renderer · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

13. A dependency drawing shows the declared footing of a Spec setbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.dependency

Design

6 design entries · 2 pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

14. A refinement drawing follows the capability mapbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.capability-tree

Design

5 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

15. A Spec set draws the architecture it touchesbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.scoped-architecture

Design

5 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

16. The maturity map is drawn as a grid of countsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.maturity-picture

Design

6 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

17. A requirement drawing separates intent from realization and verificationbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.diagram-kinds.requirement-trace

Design

8 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-requirement-view · selects Spec refiners, verifying examples and their recorded bindings · src/projections/studio/pages/requirement-view.ts:8 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

2 verifiers, 2 enabled · no verifying examples, 0 enabled

18. A slice reads a Pack as one design, with the architecture it touches and what each member needs nextbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.design-slice

Design

18 design entries · 15 pinned declarations

Decisions

  • spec:decisions.anchor-binding-grain · stated ready
  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.design-slice-recipe · realizes the design slice in the shipped recipe catalog · test/self-hosting-design-slice.test.ts:148 · role projection

Design reference: present

  • impl:protocol.studio-slice-answer · full design slice answer consumed by the page and drawings · src/projections/studio/slice-answer.ts:1 · role contract · component component:protocol.projections · layer edge · context protocol

Verifier binding: present

15 verifiers, 15 enabled · 14 verifying examples, 14 enabled

19. Outside components stop at the touched components' neighborsexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.outside-components

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

20. Members rest on a chainexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.chain

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

22. A cycle shares a depthexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.dependency-cycle

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

23. An example folds without lending its readinessexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.folded-example

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

24. An example with its own dependency stays unfoldedexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.independent-example

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

25. An unanchored component design stays visibleexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.component-absent

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

26. An anchor alone does not realize a component designexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.component-unrelated

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

27. A realized component matches its declared valuesexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.component-matching

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

28. A realized component keeps its differing layer and uses apartexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.component-differing

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

29. An unreadable declared layer stays visibleexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.component-unreadable

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

30. A prerequisite reaches its satisfying componentexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.outside-satisfied

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

31. An unbound prerequisite invents no componentexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.outside-unbound

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

32. An outside prerequisite names the member it holdsexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.design-slice.outside-holding

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

33. A slice page shows a Pack's design as one wholebehavior · ready floor ready · 1 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.slice-page

Design

12 design entries · no pinned declarations

Open questions

  • non-blocking · question.exportCarriesSlice · line 38 · specs/consumers/spec-studio.slice-page.sdp.md:38 · Does a Pack export also carry the Pack's slice page?Decider: delegatedProvisional: no; the export keeps the Pack page and its members, and the slice page stays one link away in the page set

Implementation binding: present

  • impl:protocol.studio-slice-page · design slice summaries, member needs, architecture comparisons and boundary tables · src/projections/studio/pages/slice-page.ts:25 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

34. A roadmap states advisory priority in the graphdecision · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding none

spec:decisions.roadmap-priority

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: present

  • impl:protocol.pack-aggregate · Pack aggregate and model references · src/model/pack.ts:23 · role contract · component component:protocol.model · layer domain · context protocol
  • impl:protocol.pack-member-order · keeps manifest member order on the Pack node · src/extract/derive.ts:153 · role extractor · component component:protocol.extract · layer application · context protocol

Verifier binding: none

35. A roadmap orders the next bodies of work, and the graph says what each still needsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.roadmap

Design

13 design entries · 10 pinned declarations

Decisions

Open questions

None.

Implementation binding: present

  • impl:protocol.roadmap-recipe · realizes the roadmap in the shipped recipe catalog · test/roadmap.test.ts:20 · role projection

Design reference: none

Verifier binding: present

10 verifiers, 10 enabled · 9 verifying examples, 9 enabled

36. Built work stays on the roadmapexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.built-work

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

37. A ready unbound part needs buildingexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.buildable-part

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

38. A complete part waits for a statementexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.statement-part

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

39. An unfinished part needs designexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.design-part

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

40. A binding below ready remains driftexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.drifting-part

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

41. A descendant without evidence names its holding clauseexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.missing-evidence

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

42. A descendant question holds the entry for designexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.blocking-part

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

43. A descendant names its outside parentexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.outside-parent

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

44. Waiting statements keep dependency order against roadmap placesexample · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.roadmap.statement-order

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

45. The roadmap page shows the upcoming work in priority order, split by what it needsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.spec-studio.roadmap-page

Design

5 design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

46. A roadmap renders as the forward section of a pull request descriptionbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.roadmap.memo

Design

11 design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.roadmap-memo-recipe · realizes the roadmap memo in the shipped recipe catalog · test/roadmap.test.ts:27 · role projection
  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

2 verifiers, 2 enabled · no verifying examples, 0 enabled

47. Plan and review files stop carrying the delivery record once the roadmap and the pull request dodecision · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding none

spec:decisions.roadmap-over-plans

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: none

Verifier binding: none

48. The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requestsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:protocol.roadmap-replaces-plans

Design

3 design entries · 2 pinned declarations

Decisions

Open questions

None.

Implementation binding: present

  • impl:protocol.roadmap-practice · realizes the roadmap handbook and its current-record gate · test/check-self-hosting-gates.test.ts:52 · role validator

Design reference: none

Verifier binding: present

1 verifier, 1 enabled · no verifying examples, 0 enabled

49. Roadmap views read releases, baselines and phases from git and the graphmodel · scoped floor scoped · next rung defined: waits on 1 unmet clause · 1 open, 1 blocking questions · implementation binding none · verifier binding none

spec:consumers.projections-model.roadmap-views

Next rung defined waits on 1 unmet clause:

  • no-blocking-open-questions · Spec has no blocking open question in intent.openQuestions.

Design

No design entries · no pinned declarations

Open questions

  • blocking · question.releaseReader · line 22 · specs/consumers/projections-model.roadmap-views.sdp.md:22 · Does a reader need release or baseline views that the roadmap, the recipes and git tags do not serve?Decider: ownerProvisional: Keep release and baseline views deferred; the trigger opens this question and does not authorize either view's build.Trigger: the first published release

Implementation binding: none

Design reference: none

Verifier binding: none

Boundary

Rests on (43)
SpecStated rungImplementation bindingJoined members
spec:consumers.agent-surface.design-recipes
spec:consumers.agent-surface.design-recipes
readypresentdependsOn: spec:consumers.design-slice
spec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes
readypresentdependsOn: spec:consumers.roadmap.memo
spec:consumers.binding-language-views
spec:consumers.binding-language-views
readypresentdependsOn: spec:consumers.spec-studio.capability-map-page, spec:consumers.spec-studio.slice-page
spec:consumers.context-bundle
spec:consumers.context-bundle
readypresentdependsOn: spec:consumers.design-slice
spec:consumers.derived-readiness-banner
spec:consumers.derived-readiness-banner
readypresentdependsOn: spec:consumers.spec-studio.slice-page
spec:consumers.graph-first-planning
spec:consumers.graph-first-planning
readypresentrefines: spec:consumers.roadmap
spec:consumers.intent-composition.proposal
spec:consumers.intent-composition.proposal
readypresentdependsOn: spec:protocol.roadmap-replaces-plans
spec:consumers.intent-composition.proposal.memo
spec:consumers.intent-composition.proposal.memo
readypresentdependsOn: spec:consumers.roadmap.memo, spec:protocol.roadmap-replaces-plans
spec:consumers.pack-design
spec:consumers.pack-design
readypresentrefines: spec:consumers.design-slice
spec:consumers.projections-model
spec:consumers.projections-model
readypresentrefines: spec:consumers.capability-map, spec:consumers.projections-model.roadmap-views
spec:consumers.readiness-planner
spec:consumers.readiness-planner
readypresentdependsOn: spec:consumers.design-slice, spec:consumers.roadmap
spec:consumers.review-perspectives
spec:consumers.review-perspectives
readypresentdependsOn: spec:consumers.design-slice
spec:consumers.spec-studio
spec:consumers.spec-studio
readypresentrefines: spec:consumers.spec-studio.slice-page, spec:consumers.spec-studio.roadmap-page
spec:consumers.spec-studio.data
spec:consumers.spec-studio.data
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.requirement-trace, spec:consumers.spec-studio.roadmap-page
spec:consumers.spec-studio.data.recipe-answers
spec:consumers.spec-studio.data.recipe-answers
readypresentdependsOn: spec:consumers.spec-studio.slice-page
spec:consumers.spec-studio.diagrams
spec:consumers.spec-studio.diagrams
readypresentrefines: spec:consumers.spec-studio.diagram-kinds, spec:consumers.spec-studio.diagram-kinds.legibility, spec:consumers.spec-studio.diagram-kinds.edge-routing
dependsOn: spec:consumers.spec-studio.slice-page
spec:consumers.spec-studio.index-page
spec:consumers.spec-studio.index-page
readypresentdependsOn: spec:consumers.spec-studio.capability-map-page
spec:consumers.spec-studio.lenses
spec:consumers.spec-studio.lenses
readypresentrefines: spec:consumers.spec-studio.capability-map-page
spec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture
readypresentrefines: spec:consumers.spec-studio.lenses.architecture.unit-register
dependsOn: spec:consumers.spec-studio.diagram-kinds.scoped-architecture
spec:consumers.spec-studio.pack-page
spec:consumers.spec-studio.pack-page
readypresentdependsOn: spec:consumers.spec-studio.slice-page
spec:consumers.spec-studio.page-elements
spec:consumers.spec-studio.page-elements
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.mermaid-source
spec:consumers.spec-studio.publisher
spec:consumers.spec-studio.publisher
readypresentdependsOn: spec:consumers.spec-studio.roadmap-page
spec:consumers.spec-studio.responsive
spec:consumers.spec-studio.responsive
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.legibility
spec:consumers.spec-studio.shell
spec:consumers.spec-studio.shell
readypresentdependsOn: spec:consumers.spec-studio.roadmap-page
spec:decisions.anchor-binding-grain
spec:decisions.anchor-binding-grain
readynonedecidedBy: spec:protocol.significant-units-review, spec:consumers.design-slice
spec:decisions.architectural-annotation
spec:decisions.architectural-annotation
readynonedecidedBy: spec:protocol.significant-units-review, spec:protocol.role-vocabulary, spec:consumers.design-slice
spec:decisions.one-primitive
spec:decisions.one-primitive
readynonedependsOn: spec:decisions.epics-of-any-kind
spec:decisions.pack-markdown-carrier
spec:decisions.pack-markdown-carrier
readynonerefines: spec:decisions.roadmap-priority
spec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement
readynonerefines: spec:decisions.roadmap-priority, spec:decisions.roadmap-over-plans
spec:decisions.shipped-projections-frozen
spec:decisions.shipped-projections-frozen
readynonedecidedBy: spec:consumers.spec-studio.diagram-kinds.mermaid-source
spec:decisions.studio-diagram-renderer
spec:decisions.studio-diagram-renderer
readynonedecidedBy: spec:consumers.spec-studio.diagram-kinds, spec:consumers.spec-studio.diagram-kinds.mermaid-source
spec:extraction.delivery-facts
spec:extraction.delivery-facts
readypresentdependsOn: spec:consumers.capability-map
spec:extraction.derive-graph
spec:extraction.derive-graph
readypresentdependsOn: spec:extraction.executable-examples
spec:model.open-question-fields
spec:model.open-question-fields
readypresentdependsOn: spec:consumers.design-slice, spec:consumers.spec-studio.slice-page, spec:consumers.roadmap
spec:model.planned-architecture
spec:model.planned-architecture
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.scoped-architecture, spec:consumers.design-slice
spec:model.rule-keys
spec:model.rule-keys
readypresentdependsOn: spec:consumers.design-slice
spec:model.structural-patterns
spec:model.structural-patterns
readypresentdependsOn: spec:protocol.significant-units-review
spec:observation.run-evidence
spec:observation.run-evidence
readypresentdependsOn: spec:protocol.roadmap-replaces-plans
spec:protocol.self-hosting
spec:protocol.self-hosting
readypresentrefines: spec:protocol.capability-epics, spec:protocol.roadmap-replaces-plans
spec:protocol.structural-self-binding
spec:protocol.structural-self-binding
readypresentrefines: spec:protocol.significant-units-review, spec:protocol.role-vocabulary
spec:validation.next-rung-floor
spec:validation.next-rung-floor
readypresentdependsOn: spec:consumers.roadmap
spec:validation.readiness-floor
spec:validation.readiness-floor
readypresentdependsOn: spec:consumers.capability-map, spec:protocol.capability-epics
spec:validation.typed-dependency-floor
spec:validation.typed-dependency-floor
readypresentdependsOn: spec:consumers.roadmap
Rested on by (10)
SpecStated rungImplementation bindingJoined members
spec:carrier.markdown-pack-authoring
spec:carrier.markdown-pack-authoring
readypresentdecidedBy: spec:decisions.roadmap-priority
spec:consumers.design-diff
spec:consumers.design-diff
readypresentdecidedBy: spec:decisions.roadmap-priority
spec:consumers.spec-studio.pack-page.maturity-map
spec:consumers.spec-studio.pack-page.maturity-map
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.maturity-picture
spec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page
readypresentdependsOn: spec:consumers.spec-studio.diagram-kinds.requirement-trace
spec:consumers.upgrade-kit
spec:consumers.upgrade-kit
readypresentdependsOn: spec:consumers.capability-map, spec:consumers.roadmap
spec:extraction.example-runner
spec:extraction.example-runner
readypresentrefines: spec:extraction.executable-examples
spec:extraction.executable-contracts
spec:extraction.executable-contracts
readypresentrefines: spec:extraction.executable-examples
spec:extraction.pack-member-order
spec:extraction.pack-member-order
readypresentdecidedBy: spec:decisions.roadmap-priority
spec:model.pack-aggregate
spec:model.pack-aggregate
readypresentdecidedBy: spec:decisions.roadmap-priority
spec:protocol.delivery-record-cleanup
spec:protocol.delivery-record-cleanup
ideanonerefines: spec:protocol.roadmap-replaces-plans
decidedBy: spec:decisions.roadmap-over-plans
Verified by (0)

None.

Superseded by (0)

None.

Members with no verifier binding

The graph records bindings and never runs, so no page shows a run result. Decision records are left out: a decision never needs a verifier binding.

Findings

None.

1. The engine's accepted set covers its significant abstractions and only those

spec:protocol.significant-units-review

The engine's accepted set covers its significant abstractions and only those

spec:protocol.significant-units-reviewUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 1 design entry · no pinned declarations · 2 decisions

Findings: no errors, no warnings

specs/protocol/significant-units-review.sdp.md

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

A designer needs to find the contracts, decisions and stages a change must preserve. The accepted set records those units on the code that owns them. Exporting a helper, appearing in an import ranking or giving a file an impact answer does not by itself earn an identity.

Intent
outcome
Keep the accepted set focused on the engine's significant contracts, decisions and stages, with meaningful roles and architectural uses, and exclude units anchored only for coverage.
Behavior
rule.significantAbstractions line 27 · specs/protocol/significant-units-review.sdp.md:27
Apply the structural-patterns criterion to the public contract or cross-component responsibility a unit owns. Ports, shared data shapes, pipeline stages, decision tables, catalogs, layout policies and adapters qualify when changing them requires a designer or builder to understand that responsibility; being exported alone is insufficient.

no example exercises it

rule.curatedBoundary line 28 · specs/protocol/significant-units-review.sdp.md:28
Leave forwarding barrels, empty element registrations, mechanical wrappers, formatting helpers and generated files unanchored unless they own an independent contract or architectural responsibility. A coverage target, test expectation, file count or desired impact answer never establishes significance.

no example exercises it

rule.dependencyEvidence line 29 · specs/protocol/significant-units-review.sdp.md:29
Declare a component uses for a value or type import the importing file itself makes from another component's file. An import made only to author anchors, and a pair the imports adapter reports only through a re-export the importer does not use, confer no edge. Before calling a declared edge stale, inspect input omissions and every file the comparison leaves unassigned. Import evidence proposes an edit and never authors an edge.

no example exercises it

rule.rosterOracle line 30 · specs/protocol/significant-units-review.sdp.md:30
The self-hosting suite pins the reviewed component identities, unit ownership, roles, uses and deliberate membership exceptions independently of extraction. It compares the graph with those declarations and rejects unrostered membership. It never derives its expected roster from paths, exports, imports or the graph under test.

no example exercises it

rule.acceptedChanges line 31 · specs/protocol/significant-units-review.sdp.md:31
The accepted set is the annotation review's change table as the owner accepted it: its additions, merges, drop, role changes and component uses, each realization claim it names kept.

no example exercises it

rule.decoderBoundary line 32 · specs/protocol/significant-units-review.sdp.md:32
The example-space decoder joins the reader component, leaving notation a leaf codec, only when the architecture crossings recipe and the self-binding tests show that the move adds no layer crossing; otherwise it stays in notation, its real imports are declared, and the uses cycle they form stays lawful data.

no example exercises it

Cited at

  • test/recipes.test.ts:5827
rule.roleMeaning line 33 · specs/protocol/significant-units-review.sdp.md:33
Read role meanings from the engine's role-vocabulary Model when reviewing its anchors. The vocabulary guides authors and reviewers; the Protocol never validates membership in it.

no example exercises it

0 unkeyed rules.

Design
rosterSource line 37 · specs/protocol/significant-units-review.sdp.md:37
The self-hosting oracle holds the accepted roster: each row names an accepted unit's anchor, its component and its file, and its expectations for components, membership, uses, exceptions, coarse-grain coverage and roles sit beside it. A symbol suffix is a review locator, never extracted symbol identity.
Verification · reviewed
criteria
  • Compare the independently reviewed accepted roster with the source responsibilities it names, including dependencies that an imports comparison cannot assign to components.
  • Check that every proposed merge or drop preserves the whole-Spec realization set it claims to preserve and that every architectural uses pair has supporting value or type imports beyond anchor authoring.
  • Compare the extracted graph with the independently reviewed oracle roster after anchor changes; exercise a missing accepted member and an extra unrostered membership to show that the roster comparison detects both.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.structural-self-binding · checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored · test anchor binding present · test/self-hosting-graph.test.ts:88
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:protocol.significant-units-review
Requirement drawing for spec:protocol.significant-units-reviewsatisfies · anchoredrefines · declaredverifies · anchoredIntended Specsspec:protocol.significant-units-reviewThe engine's accepted setcovers its significantabstractions and only those…significant-units-reviewdeclared SpecSatisfying or referencingunitsimpl:protocol.structural-self-bindingrealizes the declaredsignificant-unit set andits structural self-bindingimpl:protocol.structural-self-bindinganchored codeTest or oracle bindingstest:protocol.structural-self-bindingchecks the acceptedmembership and helpercoverage, authored uses,and pinned anchor roles,layers and contextstest:protocol.structural-self-bindinganchored test binding ·binding presentOutside the selected setspec:protocol.structural-self-bindingThe engine's structuralself-binding covers itsarchitecturally significantunitsspec:protocol.structural-self-bindingdeclared Spec
The diagram as text
  • spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those · declared Spec
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units · declared Spec
  • 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.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:protocol.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
  • impl:protocol.structural-self-binding satisfies spec:protocol.significant-units-review · anchored
  • test:protocol.structural-self-binding verifies spec:protocol.significant-units-review · 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

  • spec:decisions.anchor-binding-grain

    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.

  • spec:decisions.architectural-annotation

    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.

Runtime
  • impl:protocol.structural-self-binding · realizes the declared significant-unit set and its structural self-binding · test/self-hosting-oracle/structural-edges.ts:76

    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:protocol.significant-units-review
Relations of spec:protocol.significant-units-reviewdecidedBy · declareddecidedBy · declareddependsOn · declareddependsOn · declaredrefines · declaredOutgoing refinesspec:protocol.structural-self-bindingThe engine's structuralself-binding covers itsarchitecturally significantunits…protocol.structural-self-bindingOutgoing dependsOnspec:model.structural-patternsArchitecturally significantunits are annotated wherethey are realized…model.structural-patternsspec:protocol.role-vocabularyThe engine's architecturalroles each name one pattern…protocol.role-vocabularyOutgoing decidedByspec:decisions.anchor-binding-grainBindings are optional,plural, and may reference adesign…decisions.anchor-binding-grainspec:decisions.architectural-annotationArchitectural significanceis annotated where it isrealized…decisions.architectural-annotationSubjectspec:protocol.significant-units-reviewThe engine's accepted setcovers its significantabstractions and only those…protocol.significant-units-review
The diagram as text
  • spec:decisions.anchor-binding-grain: Bindings are optional, plural, and may reference a design
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.structural-patterns: Architecturally significant units are annotated where they are realized
  • spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern
  • spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units
  • spec:protocol.significant-units-review decidedBy spec:decisions.anchor-binding-grain · declared
  • spec:protocol.significant-units-review decidedBy spec:decisions.architectural-annotation · declared
  • spec:protocol.significant-units-review dependsOn spec:model.structural-patterns · declared
  • spec:protocol.significant-units-review dependsOn spec:protocol.role-vocabulary · declared
  • spec:protocol.significant-units-review refines spec:protocol.structural-self-binding · declared — states what the independently reviewed accepted set must contain and exclude
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:protocol.structural-self-binding · stated ready, floor ready
  • dependsOn · spec:model.structural-patterns · stated ready, floor ready
  • dependsOn · spec:protocol.role-vocabulary · stated ready, floor ready
  • decidedBy · spec:decisions.anchor-binding-grain · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.anchor-binding-grain
spec:decisions.anchor-binding-grain · resolves
declaredNoneNone
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declaredNoneNone
dependsOn · outgoingspec:model.structural-patterns
spec:model.structural-patterns · resolves
declaredNoneNone
dependsOn · outgoingThe engine's architectural roles each name one pattern
spec:protocol.role-vocabulary · resolves
declaredNoneNone
refines · outgoingspec:protocol.structural-self-binding
spec:protocol.structural-self-binding · resolves
declaredstates what the independently reviewed accepted set must contain and excludeNone

Bindings

Implementation binding: present

  • impl:protocol.structural-self-binding · realizes the declared significant-unit set and its structural self-binding · test/self-hosting-oracle/structural-edges.ts:76

Design reference: none

Verifier binding: present

  • test:protocol.structural-self-binding · checks the accepted membership and helper coverage, authored uses, and pinned anchor roles, layers and contexts · anchored · test/self-hosting-graph.test.ts:88 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

2. The engine's architectural roles each name one pattern

spec:protocol.role-vocabulary

The engine's architectural roles each name one pattern

spec:protocol.role-vocabularyDomain Model · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 5 design entries · no pinned declarations · 1 decision

Findings: no errors, 1 warning

specs/protocol/role-vocabulary.sdp.md

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

Authors choose a role by the architectural responsibility a unit owns. The same responsibility uses the same word across the engine. These definitions are this corpus's design vocabulary, not a Protocol enum or a registry a validator checks. An adopter may use other roles for its own architecture.

Intent
outcome
Define each architectural role the engine's anchors use, so the accepted set of significant units reads as a curated register of the engine's patterns and abstractions.
Model
adapter · term.adapter line 22 · specs/protocol/role-vocabulary.sdp.md:22
Connects an external tool or runtime to an engine contract, such as a test runner or a TypeScript import reader.
codec · term.codec line 23 · specs/protocol/role-vocabulary.sdp.md:23
Parses, normalizes or encodes a representation while preserving the meaning owned by its contract, such as ids, carrier text, parameter input or source links.
contract · term.contract line 24 · specs/protocol/role-vocabulary.sdp.md:24
Owns a shared interface, data shape, closed vocabulary or public boundary that independently developed callers and providers must agree on.
decider · term.decider line 25 · specs/protocol/role-vocabulary.sdp.md:25
Computes a semantic answer from explicit inputs without reading or writing external state, such as delivery facts or example eligibility.
extractor · term.extractor line 26 · specs/protocol/role-vocabulary.sdp.md:26
Reads authored carriers or source bindings, or composes their reified results, into the graph and its located evidence.
interaction · term.interaction line 27 · specs/protocol/role-vocabulary.sdp.md:27
Adds browser controls and feedback to build-rendered content without owning its graph joins or layout. This is a corpus role for optional element behavior.
projection · term.projection line 28 · specs/protocol/role-vocabulary.sdp.md:28
Derives read-only presentation or generated contract content from the graph, the reader or an explicitly supplied answer. A page fragment and a complete page use the same role when both own presentation.
publisher · term.publisher line 29 · specs/protocol/role-vocabulary.sdp.md:29
Writes or synchronizes an owned artifact set, including its path checks, replacement, recovery and clean comparison.
index · term.index line 30 · specs/protocol/role-vocabulary.sdp.md:30
Builds a disposable lookup structure over the graph for the units that query it; it holds no authored state and is never a second read model.
reader · term.reader line 31 · specs/protocol/role-vocabulary.sdp.md:31
Answers queries over graph content, resolving or joining recorded identities and bindings without reading source files.
service · term.service line 32 · specs/protocol/role-vocabulary.sdp.md:32
Coordinates a use case or pipeline across collaborators, including execution and failure handling, while each collaborator owns its own contract.
validator · term.validator line 33 · specs/protocol/role-vocabulary.sdp.md:33
Evaluates a stated contract and reports its failures, including readiness clauses, import fidelity and corpus-selected checks. A role does not determine a Protocol validator family.
Design
roleChoice line 37 · specs/protocol/role-vocabulary.sdp.md:37
Use the dominant responsibility of the anchored unit. A catalog of shared shapes is a contract, a table computing a semantic answer is a decider, and a failure-producing check is a validator. File size, caller count and naming style never select a role.
componentRole line 38 · specs/protocol/role-vocabulary.sdp.md:38
A component anchor's role names the dominant architectural responsibility its members serve together, read from their reviewed responsibilities rather than a count of role tokens. Omit the role when no responsibility dominates.
presentationWord line 39 · specs/protocol/role-vocabulary.sdp.md:39
Use projection for pure page, fragment and text-equivalent rendering. Use publisher for filesystem publication, codec for representation encoding and interaction for optional DOM behavior; a unit that presents uses projection, never renderer.
helperWord line 40 · specs/protocol/role-vocabulary.sdp.md:40
Choose a specific responsibility after reading the code. Graph indexes use index, concept queries use reader, parameter and path encoders use codec, browser controls use interaction and test-runtime integration uses adapter.
freeVocabulary line 41 · specs/protocol/role-vocabulary.sdp.md:41
These Model terms explain the engine's role values. Token grammar remains the only Protocol check on role, omission remains lawful, and this Model is not an adopter-wide allowlist; the self-hosting suite pins each accepted engine unit's role.
Verification · reviewed
criteria
  • Compare the graph's role taxonomy with these meanings and review every renamed unit against its implementation; keep an unfamiliar adopter role visible without reporting a Protocol finding.
  • Check that pure presentation uses projection across the Markdown and Studio implementations, and that publication and optional browser interaction retain their distinct responsibilities.
mode
reviewed
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:protocol.role-vocabulary
Requirement drawing for spec:protocol.role-vocabularysatisfies · anchoredrefines · declaredIntended Specsspec:protocol.role-vocabularyThe engine's architecturalroles each name one patternspec:protocol.role-vocabularydeclared SpecSatisfying or referencingunitsimpl:protocol.role-vocabularyasserts realization of therole vocabulary in theengine anchors' pinned rolesimpl:protocol.role-vocabularyanchored codeOutside the selected setspec:protocol.structural-self-bindingThe engine's structuralself-binding covers itsarchitecturally significantunits…structural-self-bindingdeclared Spec
The diagram as text
  • spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern · declared Spec
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units · declared Spec
  • impl:protocol.role-vocabulary: asserts realization of the role vocabulary in the engine anchors' pinned roles · anchored code · test/self-hosting-graph.test.ts:143
  • spec:protocol.role-vocabulary refines spec:protocol.structural-self-binding · declared — names what each role value the engine's significant units carry means
  • impl:protocol.role-vocabulary satisfies spec:protocol.role-vocabulary · 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

  • spec:decisions.architectural-annotation

    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.

Runtime
  • impl:protocol.role-vocabulary · asserts realization of the role vocabulary in the engine anchors' pinned roles · test/self-hosting-graph.test.ts:143

    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:protocol.role-vocabulary
Relations of spec:protocol.role-vocabularydecidedBy · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:protocol.structural-self-bindingThe engine's structuralself-binding covers itsarchitecturally significantunits…protocol.structural-self-bindingOutgoing decidedByspec:decisions.architectural-annotationArchitectural significanceis annotated where it isrealized…decisions.architectural-annotationSubjectspec:protocol.role-vocabularyThe engine's architecturalroles each name one pattern…protocol.role-vocabularyIncoming dependsOnspec:protocol.significant-units-reviewThe engine's accepted setcovers its significantabstractions and only those…protocol.significant-units-review
The diagram as text
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:protocol.role-vocabulary: The engine's architectural roles each name one pattern
  • spec:protocol.significant-units-review: The engine's accepted set covers its significant abstractions and only those
  • spec:protocol.structural-self-binding: The engine's structural self-binding covers its architecturally significant units
  • spec:protocol.role-vocabulary decidedBy spec:decisions.architectural-annotation · declared
  • spec:protocol.role-vocabulary refines spec:protocol.structural-self-binding · declared — names what each role value the engine's significant units carry means
  • spec:protocol.significant-units-review dependsOn spec:protocol.role-vocabulary · 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:protocol.structural-self-binding · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

Distance 1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declaredNoneNone
refines · outgoingspec:protocol.structural-self-binding
spec:protocol.structural-self-binding · resolves
declarednames what each role value the engine's significant units carry meansNone
dependsOn · incomingThe engine's accepted set covers its significant abstractions and only those
spec:protocol.significant-units-review · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.role-vocabulary · asserts realization of the role vocabulary in the engine anchors' pinned roles · test/self-hosting-graph.test.ts:143

Design reference: none

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

  • warning · honesty/gaps · spec:protocol.role-vocabulary · Spec "spec:protocol.role-vocabulary" states readiness "ready" with no resolving verifier — a gap, informative only (ready never requires delivery facts). · specs/protocol/role-vocabulary.sdp.md

3. The architecture page lists each component's significant units by role

spec:consumers.spec-studio.lenses.architecture.unit-register

The architecture page lists each component's significant units by role

spec:consumers.spec-studio.lenses.architecture.unit-registerUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1, pack:spec-studio-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md

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

A contributor about to change the engine needs the curated register of its significant units: the ports, contracts, pipeline stages and catalogs each component owns, and the designs each unit realizes or answers to. The graph already records them on the anchors. This panel reads them there, grouped by component and role, and shows what no anchor states rather than guessing it.

Intent
outcome
Let a contributor find recorded units and their design bindings through their component and role, with omitted structure visible.
Behavior
rule.recordedOnly line 19 · specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md:19
The architecture page groups recorded members by role within each recorded component, and shows a component's own source binding apart from its members. A row shows the recorded id, label, file and line and its satisfies and references targets separately. The page reads graph bindings only, never an annotation review or oracle source file.

no example exercises it

rule.omissions line 20 · specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md:20
Keep a not-stated role group and a no-component section. A binding confers no review approval or execution verdict, and the page shows no inferred accepted badge.

no example exercises it

rule.roleTokens line 21 · specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md:21
Show each recorded role token without interpreting it through a Protocol-corpus Spec id. An adopter's unfamiliar roles remain visible and produce no finding.

no example exercises it

rule.stableOrder line 22 · specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md:22
Sort components by id, role groups by token and members by id in code-unit order, with not-stated roles last and the no-component section after the components.

no example exercises it

rule.staticAccess line 23 · specs/consumers/spec-studio.lenses.architecture.unit-register.sdp.md:23
Every row is available without script through native disclosures. The component index links to the existing component section ids, and narrow screens retain readable source paths and separate realization and reference lists.

no example exercises it

0 unkeyed rules.

Verification · reviewed
criteria
  • Render the self-hosted corpus and an adopter with unfamiliar roles, omitted roles and omitted membership. Check ordering, component source rows, target separation, keyboard disclosures and narrow-screen overflow, with no inferred approval badge.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present · test/studio-panels.test.ts:35
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.lenses.architecture.unit-register
Requirement drawing for spec:consumers.spec-studio.lenses.architecture.unit-registersatisfies · anchoredrefines · declaredverifies · anchoredIntended Specsspec:consumers.spec-studio.lenses.architecture.unit-registerThe architecture page listseach component'ssignificant units by role…consumers.spec-studio.lenses.architecture.unit-registerdeclared SpecSatisfying or referencingunitsimpl:protocol.studio-unit-registerrenders component sourcebindings and role-groupedrecorded units…protocol.studio-unit-registeranchored codeTest or oracle bindingstest:protocol.studio-architecture-maturity-requirementtest:protocol.studio-architecture-maturity-requirement…protocol.studio-architecture-maturity-requirementanchored test binding ·binding presentOutside the selected setspec:consumers.spec-studio.lenses.architectureThe architecture lens drawscomponents by context andlayer, the planned besidethe built…consumers.spec-studio.lenses.architecturedeclared Spec
The diagram as text
  • spec:consumers.spec-studio.lenses.architecture.unit-register: The architecture page lists each component's significant units by role · declared Spec
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built · declared Spec
  • impl:protocol.studio-unit-register: renders component source bindings and role-grouped recorded units · anchored code · src/projections/studio/pages/architecture-register.ts:7
  • test:protocol.studio-architecture-maturity-requirement: test:protocol.studio-architecture-maturity-requirement · anchored test binding · binding present · test/studio-panels.test.ts:35
  • spec:consumers.spec-studio.lenses.architecture.unit-register refines spec:consumers.spec-studio.lenses.architecture · declared
  • impl:protocol.studio-unit-register satisfies spec:consumers.spec-studio.lenses.architecture.unit-register · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.lenses.architecture.unit-register · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-unit-register · renders component source bindings and role-grouped recorded units · src/projections/studio/pages/architecture-register.ts:7

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.lenses.architecture.unit-register

Arrows: refines (declared).

Relations of spec:consumers.spec-studio.lenses.architecture.unit-registerOutgoing refinesspec:consumers.spec-studio.lenses.architectureThe architecture lens drawscomponents by context andlayer, the planned besidethe built…architectureSubjectspec:consumers.spec-studio.lenses.architecture.unit-registerThe architecture page listseach component'ssignificant units by role…architecture.unit-register
The diagram as text
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
  • spec:consumers.spec-studio.lenses.architecture.unit-register: The architecture page lists each component's significant units by role
  • spec:consumers.spec-studio.lenses.architecture.unit-register refines spec:consumers.spec-studio.lenses.architecture · 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.spec-studio.lenses.architecture · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingspec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-unit-register · renders component source bindings and role-grouped recorded units · src/projections/studio/pages/architecture-register.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-architecture-maturity-requirement · anchored · test/studio-panels.test.ts:35 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

4. The capability map reads every epic and its refinement descendants

spec:consumers.capability-map

The capability map reads every epic and its refinement descendants

spec:consumers.capability-mapUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 10 design entries · 4 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/capability-map.sdp.md

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

The map answers what a corpus intends to do before a reader chooses a Pack. Refinement can skip an altitude, repeat an altitude, or give a Spec several parents. The map keeps that structure. An epic's descendants are a set of Specs, not a measure of completion.

Intent
actor
A person or agent choosing which capability's design to read.
problem
An altitude filter gives a flat list and Pack membership does not explain refinement.
outcome
Read every epic with its refinement descendants, its design maturity and direct binding evidence, and expose every Spec no epic reaches.
Behavior
rule.graphOnly line 29 · specs/consumers/capability-map.sdp.md:29
The map follows only declared refines edges between resolving Specs, from parent to child for reading. It reads every kind at every altitude, preserves intermediate Specs, and derives no parent from a title, path, Pack, dependency or binding.

no example exercises it

rule.epics line 30 · specs/consumers/capability-map.sdp.md:30
Every Spec at epic altitude is an entry, whatever its kind. An epic may itself refine another epic; both remain selectable, and a parent's descendant set includes the nested epic and its descendants.

no example exercises it

rule.nodeEvidence line 31 · specs/consumers/capability-map.sdp.md:31
Each Spec carries its own stated readiness, structural floor reached, delivery facts, and open questions with their blocking flags. A missing floor reads none. No value propagates from a child to its parent.

no example exercises it

rule.multipleParents line 32 · specs/consumers/capability-map.sdp.md:32
Every refining parent remains in the answer; a Spec appears once in nodes with all its parents, and a page decides where it expands.

no example exercises it

rule.rollup line 33 · specs/consumers/capability-map.sdp.md:33
An epic's rollup counts distinct descendants, excluding the epic itself, by stated rung, floor reached, kind and altitude; it counts those with implementation bindings and those with verifier bindings separately. Open and blocking question totals count the questions on those distinct descendants. Rollups for overlapping epics are never added to form a corpus total.

no example exercises it

rule.examplesAndDecisions line 34 · specs/consumers/capability-map.sdp.md:34
Examples and decisions participate in reach, counts and edges like every other kind. The page may fold them into labelled disclosures, but exposes their rows and any descendants they parent. A verifier count means a binding exists, never that a test passed; the map states no percent complete, inherited fact or work order.

no example exercises it

rule.unreached line 35 · specs/consumers/capability-map.sdp.md:35
A Spec is unreached when no epic reaches it, counting an epic as reaching itself. The answer lists every unreached id, including examples and decisions, and groups the unreached subgraph by its roots. A branch that is also reached remains outside that subgraph, with its cross-edge retained in the full answer.

no example exercises it

rule.damagedGraph line 36 · specs/consumers/capability-map.sdp.md:36
Unresolved or non-Spec refinement endpoints are reported in damage and excluded from traversal. Cyclic refinement is reported as sorted groups whose members all reach one another, including self-links. Traversal visits each id once per root. The map displays the damage without inventing ancestry or withholding the rest.

no example exercises it

rule.scope line 37 · specs/consumers/capability-map.sdp.md:37
With an epic selected, the answer contains that epic and its distinct descendants. Node parent and epic memberships still name their full-corpus memberships so narrowing never claims exclusive ownership. Without an epic the answer includes every Spec, including an empty corpus or a corpus with no epics.

no example exercises it

0 unkeyed rules.

Design
mapRecipe line 41 · specs/consumers/capability-map.sdp.md:41
recipe 52 takes optional params.epic, a resolving epic Spec id, and params.detail, a boolean. Omitted epic means the whole corpus. An unknown parameter returns { unknownParams, accepts: ["epic", "detail"] }; a wrong type, absent id or non-epic returns { diagnostics: [{ parameter, problem }] } without a map, naming epic or detail as appropriate. There is no sample epic and no filtering by kind.
mapAnswer line 42 · specs/consumers/capability-map.sdp.md:42
the full answer is { input: { epic }, totals, nodes, edges, epics, unreached: { ids, roots }, cycles, damage }; epic is the selected id or null. The selected node set defines all totals; unselected nodes are never counted. Full-corpus memberships on a selected node are context, not extra selected nodes.
mapDetail line 43 · specs/consumers/capability-map.sdp.md:43
recipe 52 reads params.detail, absent or false for the summary and true for the full answer; the summary keeps input, totals, epics as { id, title, parentEpicIds, rollup }, unreached.ids, cycles and damage, and adds leftOut, one line for each omitted field. detail: true adds nodes, edges, each epic's descendantIds and unreached.roots, and omits leftOut.
nodeRow line 44 · specs/consumers/capability-map.sdp.md:44
{ id, title, specKind, altitude, statedReadiness, floorReached, deliveryFacts, questions, parents, children, epicIds }; parents and children are all resolving direct refinement neighbors in the corpus, and epicIds lists all epics that reach this node, including itself when epic. Questions preserve authored order as { index, address, question, blocking }, with a keyed question's entry address or null.

no citation recorded

edgeRow line 45 · specs/consumers/capability-map.sdp.md:45
{ from, to, claim: "declared", reason }, child to parent, for each resolving refinement whose ends are selected. An absent reason is null. Other relation types never enter this list.

no citation recorded

epicRow line 46 · specs/consumers/capability-map.sdp.md:46
{ id, title, parentEpicIds, descendantIds, rollup } for every selected epic, with its distinct descendants in the selected set. parentEpicIds lists resolving direct refinement parents at epic altitude in the full corpus, in id order. Selection by one epic includes every descendant of a nested epic, so its rollup stays complete.

no citation recorded

countShape line 47 · specs/consumers/capability-map.sdp.md:47
totals and each rollup carry { specs, byStatedReadiness, byFloorReached, byKind, byAltitude, withImplementationBinding, withVerifierBinding, openQuestions, blockingQuestions }; every descriptor value has a key including zero, floor counts add none, and totals additionally carry { epics, reached, unreached }. Reached and unreached partition selected nodes, using their full-corpus epic membership. The epic's own evidence stays on its node row, outside its rollup.
unreachedRoots line 48 · specs/consumers/capability-map.sdp.md:48
a root is an unreached Spec with no unreached parent; a group of unreached Specs that refine one another in a cycle, with no unreached parent outside the group, uses its smallest id as its root. Reach may overlap between roots; unreached.ids stays unique and complete. In an epic selection both lists are empty.
graphDamage line 49 · specs/consumers/capability-map.sdp.md:49
damage lists { code: "unresolved-refinement", from, to } for a missing or non-Spec endpoint touching the selected scope, or every such edge in whole-corpus scope. Cycles are separate { members } rows for cyclic groups in the selected graph, members sorted by id; they are graph damage, not parameter failures or a new validator.

no citation recorded

stableOrder line 50 · specs/consumers/capability-map.sdp.md:50
ids, nodes, epic rows, descendant ids, memberships and unreached roots use code-unit id order; edges and damage sort by from then to; cycles sort by first member. Question order stays authored. The answer has no clock, recorded work order or mutable state.
Verification · reviewed
criteria
  • A diamond retains both parent edges, lists the shared child once in nodes, and counts it once in that epic's descendants.
  • A corpus with no epics still exposes every Spec; a cyclic unreached component has a root and finite traversal.
  • An epic with a bound example and a ratified decision counts both descendants while retaining its own empty delivery facts.
  • Summary and full answers have identical totals, epic rollups, cycles and damage; the summary names every omitted field.
  • An epic selection includes its whole reachable set and no unrelated roots; invalid parameters return diagnostics without a plausible empty map.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.capability-map · anchored · test anchor binding present · test/recipes.test.ts:7610
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.capability-map
Requirement drawing for spec:consumers.capability-mapsatisfies · anchoredsatisfies · anchoredreferences · anchoredrefines · declaredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.capability-mapThe capability map readsevery epic and itsrefinement descendants…consumers.capability-mapdeclared Specspec:consumers.spec-studio.capability-map-pageThe capability map pagemakes refinement readableby epic…consumers.spec-studio.capability-map-pagedeclared Specspec:decisions.epics-of-any-kindCapability epics keep kindindependent of altitude…decisions.epics-of-any-kinddeclared SpecSatisfying or referencingunits4 satisfying units · anchored, folded4 satisfying units ·anchoredimpl:protocol.capability-map-recipeasserts realization of Thecapability map indocs/agent-surface/recipes.md…protocol.capability-map-recipeanchored codeTest or oracle bindingstest:protocol.capability-maptest:protocol.capability-map…protocol.capability-mapanchored test binding ·binding presenttest:protocol.studio-capabilitiestest:protocol.studio-capabilities…protocol.studio-capabilitiesanchored test binding ·binding presentOutside the selected setspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modeldeclared Specspec:consumers.spec-studio.lensesFive lenses read the graphas Packs, capabilities,architecture, tests andevidence…consumers.spec-studio.lensesdeclared Spec
The diagram as text
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants · declared Spec
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic · declared Spec
  • spec:decisions.epics-of-any-kind: Capability epics keep kind independent of altitude · declared Spec
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence · declared Spec
  • impl:protocol.capability-map-recipe: asserts realization of The capability map in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:7602
  • impl:protocol.studio-capabilities-page: renders epic evidence, refinement and unreached Specs from the capability map · anchored code · src/projections/studio/pages/capabilities-page.ts:78
  • impl:protocol.studio-filter: filters build-rendered rows through their recorded attributes · anchored code · src/studio-elements/filter.ts:25
  • impl:protocol.studio-frame: renders Studio navigation, page rails and composing controls · anchored code · src/projections/studio/pages/frame.ts:6
  • impl:protocol.studio-index-page: renders Pack disclosures and filterable Spec rows · anchored code · src/projections/studio/pages/index-page.ts:8
  • test:protocol.capability-map: test:protocol.capability-map · anchored test binding · binding present · test/recipes.test.ts:7610
  • test:protocol.studio-capabilities: test:protocol.studio-capabilities · anchored test binding · binding present · test/studio-capabilities.test.ts:89
  • spec:consumers.capability-map refines spec:consumers.projections-model · declared — the capability map projects authored refinement without introducing a grouping
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.capability-map · declared — the page is the capability map's reading for a person
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.spec-studio.lenses · declared — the Capabilities page is a lens that reads refinement
  • spec:decisions.epics-of-any-kind refines spec:consumers.capability-map · declared — settles which Specs the capability map reads as epics
  • impl:protocol.capability-map-recipe satisfies spec:consumers.capability-map · anchored
  • impl:protocol.capability-map-recipe references spec:decisions.epics-of-any-kind · anchored
  • impl:protocol.studio-capabilities-page satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-filter satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-frame satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-index-page satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • test:protocol.capability-map verifies spec:consumers.capability-map · anchored
  • test:protocol.studio-capabilities verifies spec:consumers.spec-studio.capability-map-page · 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

  • Capability epics keep kind independent of altitude

    Any Spec stated at epic altitude is an epic, whatever its kind, and keeps its kind: the capability map reads every epic and its refinement descendants, and the glossary row broadens from high-altitude behavior Specs to epic Specs of every kind.

Runtime
  • impl:protocol.capability-map-recipe · asserts realization of The capability map in docs/agent-surface/recipes.md · test/recipes.test.ts:7602

    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:consumers.capability-map
Relations of spec:consumers.capability-maprefines · declareddecidedBy · declareddependsOn · declareddependsOn · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modelOutgoing dependsOnspec:extraction.delivery-factsResolving bindings conferdirect delivery facts…extraction.delivery-factsspec:validation.readiness-floorStated readiness must clearits floor…validation.readiness-floorSubjectspec:consumers.capability-mapThe capability map readsevery epic and itsrefinement descendants…consumers.capability-mapIncoming refinesspec:consumers.spec-studio.capability-map-pageThe capability map pagemakes refinement readableby epic…consumers.spec-studio.capability-map-pagespec:decisions.epics-of-any-kindCapability epics keep kindindependent of altitude…decisions.epics-of-any-kindIncoming dependsOnspec:consumers.spec-studio.diagram-kinds.capability-treeA refinement drawingfollows the capability map…consumers.spec-studio.diagram-kinds.capability-treespec:consumers.upgrade-kitThe upgrade kit shows acorpus what it could adopt…consumers.upgrade-kitspec:protocol.capability-epicsThe Protocol organizes itsown features in capabilityepics…protocol.capability-epics
The diagram as text
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map
  • spec:consumers.upgrade-kit: The upgrade kit shows a corpus what it could adopt
  • spec:decisions.epics-of-any-kind: Capability epics keep kind independent of altitude
  • spec:extraction.delivery-facts: Resolving bindings confer direct delivery facts
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics
  • spec:validation.readiness-floor: Stated readiness must clear its floor
  • spec:consumers.capability-map decidedBy spec:decisions.epics-of-any-kind · declared
  • spec:consumers.capability-map dependsOn spec:extraction.delivery-facts · declared — rollups count direct bindings without conferring facts on ancestors
  • spec:consumers.capability-map dependsOn spec:validation.readiness-floor · declared — each node reads the existing floor beside the author's statement
  • spec:consumers.capability-map refines spec:consumers.projections-model · declared — the capability map projects authored refinement without introducing a grouping
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.capability-map · declared — the page and index filter render the capability map's answer
  • spec:consumers.spec-studio.diagram-kinds.capability-tree dependsOn spec:consumers.capability-map · declared
  • spec:consumers.upgrade-kit dependsOn spec:consumers.capability-map · declared — the guide teaches epic organization through the capability map
  • spec:protocol.capability-epics dependsOn spec:consumers.capability-map · declared — the capability map exposes the corpus's authored refinement
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.capability-map · declared — the page is the capability map's reading for a person
  • spec:decisions.epics-of-any-kind refines spec:consumers.capability-map · declared — settles which Specs the capability map reads as epics
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.projections-model · stated ready, floor ready
  • dependsOn · spec:extraction.delivery-facts · stated ready, floor ready
  • dependsOn · spec:validation.readiness-floor · stated ready, floor ready
  • decidedBy · spec:decisions.epics-of-any-kind · stated ready, floor ready

Rested on by

Distance 1

  • spec:consumers.spec-studio.capability-map-page

    Implementing units

    • impl:protocol.studio-capabilities-page · src/projections/studio/pages/capabilities-page.ts:78
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.capability-tree

    Implementing units

    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.upgrade-kit

    Implementing units

    • impl:protocol.upgrade-guide · test/upgrade-kit.test.ts:87

    Referencing units

    None.

    Enabled verifiers: test:protocol.upgrade-guide

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

  • spec:decisions.epics-of-any-kind

    Implementing units

    None.

    Referencing units

    • impl:protocol.capability-map-recipe · test/recipes.test.ts:7602

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:protocol.capability-epics

    Implementing units

    • impl:protocol.capability-epics · test/recipes.test.ts:8173

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-epics

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Distance 2

  • spec:consumers.upgrade-kit.capability-adoption

    Implementing units

    • impl:protocol.capability-adoption-recipe · test/upgrade-kit.test.ts:514

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal

    Implementing units

    • impl:protocol.rule-key-proposal-recipe · test/upgrade-kit.test.ts:742

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

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

Distance 3

  • spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.collision-and-unkeyable

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

  • spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.proposal-applies-clean

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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingCapability epics keep kind independent of altitude
spec:decisions.epics-of-any-kind · resolves
declaredNoneNone
dependsOn · outgoingspec:extraction.delivery-facts
spec:extraction.delivery-facts · resolves
declaredrollups count direct bindings without conferring facts on ancestorsNone
dependsOn · outgoingspec:validation.readiness-floor
spec:validation.readiness-floor · resolves
declaredeach node reads the existing floor beside the author's statementNone
refines · outgoingspec:consumers.projections-model
spec:consumers.projections-model · resolves
declaredthe capability map projects authored refinement without introducing a groupingNone
dependsOn · incomingThe capability map page makes refinement readable by epic
spec:consumers.spec-studio.capability-map-page · resolves
declaredthe page and index filter render the capability map's answerNone
dependsOn · incomingA refinement drawing follows the capability map
spec:consumers.spec-studio.diagram-kinds.capability-tree · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.upgrade-kit
spec:consumers.upgrade-kit · resolves
declaredthe guide teaches epic organization through the capability mapNone
dependsOn · incomingThe Protocol organizes its own features in capability epics
spec:protocol.capability-epics · resolves
declaredthe capability map exposes the corpus's authored refinementNone
refines · incomingThe capability map page makes refinement readable by epic
spec:consumers.spec-studio.capability-map-page · resolves
declaredthe page is the capability map's reading for a personNone
refines · incomingCapability epics keep kind independent of altitude
spec:decisions.epics-of-any-kind · resolves
declaredsettles which Specs the capability map reads as epicsNone

Bindings

Implementation binding: present

  • impl:protocol.capability-map-recipe · asserts realization of The capability map in docs/agent-surface/recipes.md · test/recipes.test.ts:7602 · role projection

Design reference: none

Verifier binding: present

  • test:protocol.capability-map · anchored · test/recipes.test.ts:7610 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

5. Capability epics keep kind independent of altitude

spec:decisions.epics-of-any-kind

Capability epics keep kind independent of altitude

spec:decisions.epics-of-any-kindDecision Record · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/decisions/epics-of-any-kind.sdp.md

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

Intent
outcome
Decide whether a capability map admits epics of every kind or only behavior epics.
Decision
context
The glossary row for capability and domain names a Capability Map over high-altitude behavior Specs, while kind and altitude are independent descriptors on the one primitive, and the hubs that already state the Protocol's capabilities include a domain model, a projection model and the rule that separates the two check families.
decision
Any Spec stated at epic altitude is an epic, whatever its kind, and keeps its kind: the capability map reads every epic and its refinement descendants, and the glossary row broadens from high-altitude behavior Specs to epic Specs of every kind.
rationale
  • Hard to reverse: corpora organize their capabilities around which Specs may be epics, and the capability map, its page and the upgrade guide read that choice. Surprising without context: the ratified glossary row limited the map to behavior Specs, so a reader needs to know why a model or a rule now heads a capability. A real trade-off: an epic of any kind keeps the Spec that already owns a capability's outcome as its head, as the one-primitive decision's named coordinates already imply, against a map whose roots differ in kind and a glossary row that changes.
alternatives
  • Keep behavior-only capability epics and introduce behavior wrappers over the model and rule hubs: each wrapper would restate an outcome another Spec already owns, a second owner that drifts, only so that a view can read it.
consequences
  • The capability map draws epics of every kind, each labelled with its kind, and a Spec's kind never decides whether it heads a capability.
  • The glossary row for capability and domain names a Capability Map over epic Specs of every kind and their refinement descendants.
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:decisions.epics-of-any-kind
The diagram as text
  • spec:decisions.epics-of-any-kind: Capability epics keep kind independent of altitude · declared Spec
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants · declared Spec
  • impl:protocol.capability-map-recipe: asserts realization of The capability map in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:7602
  • spec:decisions.epics-of-any-kind refines spec:consumers.capability-map · declared — settles which Specs the capability map reads as epics
  • impl:protocol.capability-map-recipe references spec:decisions.epics-of-any-kind · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

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:decisions.epics-of-any-kind
Relations of spec:decisions.epics-of-any-kinddecidedBy · declaredrefines · declareddependsOn · declareddecidedBy · declaredOutgoing refinesspec:consumers.capability-mapThe capability map readsevery epic and itsrefinement descendants…consumers.capability-mapOutgoing dependsOnspec:decisions.one-primitiveOne Spec carries nameddelivery coordinates…decisions.one-primitiveSubjectspec:decisions.epics-of-any-kindCapability epics keep kindindependent of altitude…decisions.epics-of-any-kindIncoming decidedByspec:protocol.capability-epicsThe Protocol organizes itsown features in capabilityepics…protocol.capability-epics
The diagram as text
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants
  • spec:decisions.epics-of-any-kind: Capability epics keep kind independent of altitude
  • spec:decisions.one-primitive: One Spec carries named delivery coordinates
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics
  • spec:decisions.epics-of-any-kind dependsOn spec:decisions.one-primitive · declared — kind and altitude are independent named coordinates on the one primitive
  • spec:decisions.epics-of-any-kind refines spec:consumers.capability-map · declared — settles which Specs the capability map reads as epics
  • spec:consumers.capability-map decidedBy spec:decisions.epics-of-any-kind · declared
  • spec:protocol.capability-epics decidedBy spec:decisions.epics-of-any-kind · 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

  • spec:consumers.spec-studio.capability-map-page

    Implementing units

    • impl:protocol.studio-capabilities-page · src/projections/studio/pages/capabilities-page.ts:78
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.capability-tree

    Implementing units

    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.upgrade-kit

    Implementing units

    • impl:protocol.upgrade-guide · test/upgrade-kit.test.ts:87

    Referencing units

    None.

    Enabled verifiers: test:protocol.upgrade-guide

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

Distance 3

  • spec:consumers.upgrade-kit.capability-adoption

    Implementing units

    • impl:protocol.capability-adoption-recipe · test/upgrade-kit.test.ts:514

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal

    Implementing units

    • impl:protocol.rule-key-proposal-recipe · test/upgrade-kit.test.ts:742

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

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

Distance 4

  • spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.collision-and-unkeyable

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

  • spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.proposal-applies-clean

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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:decisions.one-primitive
spec:decisions.one-primitive · resolves
declaredkind and altitude are independent named coordinates on the one primitiveNone
refines · outgoingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredsettles which Specs the capability map reads as epicsNone
decidedBy · incomingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredNoneNone
decidedBy · incomingThe Protocol organizes its own features in capability epics
spec:protocol.capability-epics · resolves
declaredNoneNone

Bindings

Implementation binding: none

Design reference: present

  • impl:protocol.capability-map-recipe · asserts realization of The capability map in docs/agent-surface/recipes.md · test/recipes.test.ts:7602 · role projection

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

6. The Protocol organizes its own features in capability epics

spec:protocol.capability-epics

The Protocol organizes its own features in capability epics

spec:protocol.capability-epicsUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 5 design entries · no pinned declarations · 1 decision

Findings: no errors, no warnings

specs/protocol/capability-epics.sdp.md

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

An epic states an enduring intended outcome. Where an existing hub owns an outcome, enlarging its altitude preserves its identity, kind, evidence and bindings. Self-hosting describes the Protocol using itself; it is not the parent of every capability offered to an adopter.

Intent
outcome
Organize the Protocol's capabilities through explicit refinement so a reader can choose a capability and inspect its design and bindings.
Behavior
rule.epicHome line 25 · specs/protocol/capability-epics.sdp.md:25
Enrich an existing hub to epic altitude when its intended outcome already names the capability. Keep its id, kind and truth; author a new epic only when no existing Spec owns that outcome. A model or rule can be an epic without becoming behavior merely to appear in the map.

no example exercises it

rule.refinement line 26 · specs/protocol/capability-epics.sdp.md:26
Each feature belongs under the epic whose intended outcome it makes more precise, directly or through intermediate Specs. Existing genuine refinement remains, including a nested epic and multiple parents. A Pack, path or dependency alone does not establish that relationship.

no example exercises it

rule.selfHosting line 27 · specs/protocol/capability-epics.sdp.md:27
The self-hosting epic keeps the Protocol's own use of the carrier, structural binding, roadmap and capability organization, and the decisions about that practice and the Protocol's identity. General model, derivation, validation and projection capabilities no longer refine self-hosting merely because the corpus exercises them.

no example exercises it

rule.preserveEvidence line 28 · specs/protocol/capability-epics.sdp.md:28
A re-altituded hub keeps its readiness statement when its content still supports it; reparenting confers no delivery fact and adds no anchor.

no example exercises it

0 unkeyed rules.

Design
epicHome line 32 · specs/protocol/capability-epics.sdp.md:32
reuse an existing outcome owner so altitude changes do not duplicate intent; add an epic only for an outcome no hub already states. Design iteration has no epic: no Spec owns that outcome, its features are views and reader recipes that refine the projection and agent capabilities, and its Pack already groups them for review.
carrierHome line 33 · specs/protocol/capability-epics.sdp.md:33
the Markdown hub names the default authoring entry, while its rule puts Markdown and TypeScript on one graph path and its carrier ruling admits Gherkin. Its existing descendants refine that shared authoring outcome, so it keeps its identity and title.
executableHome line 34 · specs/protocol/capability-epics.sdp.md:34
the runner owns step dispatch and failure rendering, and contract generation owns typed contracts. Neither owns the whole outcome of executing an example against its authored intent, so a separate executable-examples epic joins those refinements. Their other genuine refinement and dependency relations remain.
nestedEpic line 35 · specs/protocol/capability-epics.sdp.md:35
the agent capability remains a refinement of the projection capability because scripted graph access is a consumer-specific view. Its descendants belong to both epic scopes, and the map reports that overlap explicitly.
corpusChecks line 36 · specs/protocol/capability-epics.sdp.md:36
corpus-selected rules refine the agent capability because their intended operation is scripting the graph; the validation command is their host, while their findings remain outside the Protocol's conformance and honesty families. A refinement states the narrower outcome and a dependency states what must hold: both relations intentionally connect the build pipeline to derivation, corpus rules to the agent capability, and architecture and external-register checks to corpus rules.
Verification · reviewed
criteria
  • Re-measure the corpus's refinement transitions, roots, overlapping parents and epic reach from the graph.
  • Every previously ready Spec still states ready and reaches the ready floor after the edits; the drift alarm stays empty.
  • Compare the capability map before and after authoring the epics, and read the same projection on an adopter with one broad epic without changing its intent.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.capability-epics · anchored · test anchor binding present · test/recipes.test.ts:8179
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:protocol.capability-epics
Requirement drawing for spec:protocol.capability-epicssatisfies · anchoredrefines · declaredverifies · anchoredIntended Specsspec:protocol.capability-epicsThe Protocol organizes itsown features in capabilityepicsspec:protocol.capability-epicsdeclared SpecSatisfying or referencingunitsimpl:protocol.capability-epicsasserts realization of thecapability epics in theshipped corpus's refinementimpl:protocol.capability-epicsanchored codeTest or oracle bindingstest:protocol.capability-epicstest:protocol.capability-epicstest:protocol.capability-epicsanchored test binding ·binding presentOutside the selected setspec:protocol.self-hostingThe Protocol authors andvalidates itself…self-hostingdeclared Spec
The diagram as text
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics · declared Spec
  • spec:protocol.self-hosting: The Protocol authors and validates itself · declared Spec
  • impl:protocol.capability-epics: asserts realization of the capability epics in the shipped corpus's refinement · anchored code · test/recipes.test.ts:8173
  • test:protocol.capability-epics: test:protocol.capability-epics · anchored test binding · binding present · test/recipes.test.ts:8179
  • spec:protocol.capability-epics refines spec:protocol.self-hosting · declared
  • impl:protocol.capability-epics satisfies spec:protocol.capability-epics · anchored
  • test:protocol.capability-epics verifies spec:protocol.capability-epics · 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

  • Capability epics keep kind independent of altitude

    Any Spec stated at epic altitude is an epic, whatever its kind, and keeps its kind: the capability map reads every epic and its refinement descendants, and the glossary row broadens from high-altitude behavior Specs to epic Specs of every kind.

Runtime
  • impl:protocol.capability-epics · asserts realization of the capability epics in the shipped corpus's refinement · test/recipes.test.ts:8173

    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:protocol.capability-epics
Relations of spec:protocol.capability-epicsdependsOn · declareddecidedBy · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:protocol.self-hostingThe Protocol authors andvalidates itself…protocol.self-hostingOutgoing dependsOnspec:consumers.capability-mapThe capability map readsevery epic and itsrefinement descendants…consumers.capability-mapspec:validation.readiness-floorStated readiness must clearits floor…validation.readiness-floorOutgoing decidedByspec:decisions.epics-of-any-kindCapability epics keep kindindependent of altitude…decisions.epics-of-any-kindSubjectspec:protocol.capability-epicsThe Protocol organizes itsown features in capabilityepics…protocol.capability-epics
The diagram as text
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants
  • spec:decisions.epics-of-any-kind: Capability epics keep kind independent of altitude
  • spec:protocol.capability-epics: The Protocol organizes its own features in capability epics
  • spec:protocol.self-hosting: The Protocol authors and validates itself
  • spec:validation.readiness-floor: Stated readiness must clear its floor
  • spec:protocol.capability-epics decidedBy spec:decisions.epics-of-any-kind · declared
  • spec:protocol.capability-epics dependsOn spec:consumers.capability-map · declared — the capability map exposes the corpus's authored refinement
  • spec:protocol.capability-epics dependsOn spec:validation.readiness-floor · declared — reparenting preserves the floor of each existing ready child
  • spec:protocol.capability-epics refines spec:protocol.self-hosting · 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
decidedBy · outgoingCapability epics keep kind independent of altitude
spec:decisions.epics-of-any-kind · resolves
declaredNoneNone
dependsOn · outgoingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredthe capability map exposes the corpus's authored refinementNone
dependsOn · outgoingspec:validation.readiness-floor
spec:validation.readiness-floor · resolves
declaredreparenting preserves the floor of each existing ready childNone
refines · outgoingspec:protocol.self-hosting
spec:protocol.self-hosting · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.capability-epics · asserts realization of the capability epics in the shipped corpus's refinement · test/recipes.test.ts:8173

Design reference: none

Verifier binding: present

  • test:protocol.capability-epics · anchored · test/recipes.test.ts:8179 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

7. Bound examples execute their authored steps

spec:extraction.executable-examples

Bound examples execute their authored steps

spec:extraction.executable-examplesUse Case / Behavior · epicready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, 1 warning

specs/extraction/executable-examples.sdp.md

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

The capability connects authored intent to an example's execution. Contract generation and the runner own narrower parts of that outcome; neither alone owns it. A change to the authored example must reach its test through the generated contract.

Intent
actor
An author binding an example to a test of the intended behavior.
problem
A separately handwritten test can drift from the Spec's own steps and expected outcome.
outcome
Run an example against its authored intent through graph-derived contracts and report failures in the words of its steps.
Behavior
rule.authoredSteps line 23 · specs/extraction/executable-examples.sdp.md:23
Execution reads the steps and bound values from contracts derived from the graph; it adds no second authored description of the example.

no example exercises it

rule.binding line 24 · specs/extraction/executable-examples.sdp.md:24
A bound test supplies the world and step handlers, and the runner executes the contract's steps in authored order. Contract generation and execution keep their separate responsibilities.

no example exercises it

rule.failure line 25 · specs/extraction/executable-examples.sdp.md:25
A failing step names the authored intent it exercised. An unspecified expected outcome remains explicit and cannot become a passing comparison by assumption.

no example exercises it

rule.facts line 26 · specs/extraction/executable-examples.sdp.md:26
A verifier binding says the example has a verifier. Execution results stay outside the graph and confer no readiness or delivery fact on this epic.

no example exercises it

0 unkeyed rules.

Verification · reviewed
criteria
  • Trace a bound example from its graph steps through generated contracts to runner dispatch, then change an expected outcome and check that its test fails in the example's words.
  • Read the epic's own binding facts separately from the bindings on its contract-generation and runner descendants.
mode
reviewed
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

Requirement drawing for spec:extraction.executable-examples
  • E6: refines (5), verifies (9) · declared
Requirement drawing for spec:extraction.executable-examplesrefines · declaredrefines · declaredrefines · declaredsatisfies · anchoredsatisfies · anchoredE6refines, verifies · declaredverifies · anchoredIntended Specs2 refining Specs · declared, folded2 refining Specs · declaredspec:extraction.executable-examplesBound examples executetheir authored steps…extraction.executable-examplesdeclared SpecDeclared verifying examples9 verifying examples · declared; 9 test bindings · anchored, folded9 verifying examples ·declared9 test bindings · anchored ·foldedSatisfying or referencingunits9 satisfying units · anchored, folded9 satisfying units ·anchoredTest or oracle bindingstest:protocol.example-runner-cleanupthe Vitest adapter cleansup a world whether itssteps pass or fail…protocol.example-runner-cleanupanchored test binding ·binding presentOutside the selected set2 refining Specs · declared, folded2 refining Specs · declaredspec:carrier.step-keysAn example step may carry akey that survives rewording…carrier.step-keysdeclared Specspec:extraction.build-pipelineThe build pipeline has oneordered flow…extraction.build-pipelinedeclared Spec
The diagram as text
  • spec:extraction.executable-examples: Bound examples execute their authored steps · declared Spec
  • spec:extraction.example-runner: A bound example runs its contract steps against a fresh world · declared Spec
  • spec:extraction.executable-contracts: The build derives step and space contracts from graph examples · declared Spec
  • spec:carrier.step-keys.conflicting-example-key-withheld: An example marker that disagrees with its vocabulary withholds the contract · declared Spec
  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld: A step key equal to another step's skeleton withholds the contract · declared Spec
  • spec:carrier.step-keys.reworded-keyed-step-stays-bound: A keyed step reworded in its vocabulary and its example keeps its binding · declared Spec
  • spec:carrier.step-keys.reworded-unkeyed-step-breaks: The same rewording without a key breaks the binding · declared Spec
  • spec:extraction.example-runner.red-step-naming: A red step names itself before the assertion detail · declared Spec
  • spec:extraction.example-runner.step-order: A repeated step runs its one handler at each occurrence, in contract order · declared Spec
  • spec:extraction.executable-contracts.case-colliding-path: A case-only path collision withholds the whole contracts tree · declared Spec
  • spec:extraction.executable-contracts.concreteness-refusal: An unbound slot in a used step earns no step contract · declared Spec
  • spec:extraction.executable-contracts.multi-entry-example: A second structured entry is named, never left silently inert · declared Spec
  • spec:carrier.step-keys: An example step may carry a key that survives rewording · declared Spec
  • spec:extraction.contract-declarations: Pinned declarations give an adopter a derived module to typecheck · declared Spec
  • spec:extraction.build-pipeline: The build pipeline has one ordered flow · declared Spec
  • spec:extraction.runnable-modules: Derived runnable modules freeze the registrar interface · declared Spec
  • component:protocol.adapters: external runtime and source adapters · anchored code · src/adapters/vitest.ts:23
  • component:protocol.runner: provider-neutral example execution · anchored code · src/runner/index.ts:99
  • impl:protocol.delivery-facts: computes delivery facts from resolving binding edges · anchored code · src/graph/delivery-facts.ts:65
  • impl:protocol.example-runner: plans and executes a bound example against the caller's world · anchored code · src/runner/index.ts:108
  • impl:protocol.example-runner-adapter: registers one test per example and owns the fresh world lifecycle · anchored code · src/adapters/vitest.ts:32
  • impl:protocol.example-space: resolves example-space vocabulary for contracts and floors · anchored code · src/graph/example-space.ts:117
  • impl:protocol.example-testing-helpers: adapter-lifecycle and oracle-comparison helpers for bound examples · anchored code · src/testing/index.ts:50
  • impl:protocol.executable-contracts: derives step and example-space contracts from the graph · anchored code · src/codegen/contracts.ts:647
  • impl:protocol.runnable-modules: derives and publishes runnable registrar modules from the graph · anchored code · src/codegen/contracts.ts:658
  • test:protocol.example-runner-cleanup: the Vitest adapter cleans up a world whether its steps pass or fail · anchored test binding · binding present · test/vitest-adapter.test.ts:19
  • test:protocol.example-runner.red-step-naming: the red-step point verifies the self-naming failure law · anchored test binding · binding present · test/self-hosting-extraction.test.ts:798
  • test:protocol.example-runner.step-order: the step-order point verifies contract order and the one handler per step · anchored test binding · binding present · test/self-hosting-extraction.test.ts:789
  • test:protocol.executable-contracts.case-colliding-path: the collision point verifies the all-or-nothing withholding · anchored test binding · binding present · test/self-hosting-extraction.test.ts:593
  • test:protocol.executable-contracts.concreteness-refusal: the concreteness point verifies the unbound-slot refusal · anchored test binding · binding present · test/self-hosting-extraction.test.ts:575
  • test:protocol.executable-contracts.multi-entry-example: the multi-entry point verifies the named second entry · anchored test binding · binding present · test/self-hosting-extraction.test.ts:584
  • test:protocol.step-keys.conflicting-example-key-withheld: test:protocol.step-keys.conflicting-example-key-withheld · anchored test binding · binding present · test/self-hosting-step-keys.test.ts:26
  • test:protocol.step-keys.key-equal-to-a-skeleton-withheld: test:protocol.step-keys.key-equal-to-a-skeleton-withheld · anchored test binding · binding present · test/self-hosting-step-keys.test.ts:120
  • test:protocol.step-keys.reworded-keyed-step-stays-bound: test:protocol.step-keys.reworded-keyed-step-stays-bound · anchored test binding · binding present · test/self-hosting-step-keys.test.ts:308
  • test:protocol.step-keys.reworded-unkeyed-step-breaks: test:protocol.step-keys.reworded-unkeyed-step-breaks · anchored test binding · binding present · test/self-hosting-step-keys.test.ts:355
  • spec:carrier.step-keys.conflicting-example-key-withheld refines spec:carrier.step-keys · declared
  • spec:carrier.step-keys.conflicting-example-key-withheld verifies spec:carrier.step-keys · declared
  • spec:carrier.step-keys.conflicting-example-key-withheld verifies spec:extraction.executable-contracts · declared
  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld refines spec:carrier.step-keys · declared
  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld verifies spec:carrier.step-keys · declared
  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld verifies spec:extraction.executable-contracts · declared
  • spec:carrier.step-keys.reworded-keyed-step-stays-bound refines spec:carrier.step-keys · declared
  • spec:carrier.step-keys.reworded-keyed-step-stays-bound verifies spec:carrier.step-keys · declared
  • spec:carrier.step-keys.reworded-keyed-step-stays-bound verifies spec:extraction.executable-contracts · declared
  • spec:carrier.step-keys.reworded-unkeyed-step-breaks refines spec:carrier.step-keys · declared
  • spec:carrier.step-keys.reworded-unkeyed-step-breaks verifies spec:carrier.step-keys · declared
  • spec:carrier.step-keys.reworded-unkeyed-step-breaks verifies spec:extraction.executable-contracts · declared
  • spec:extraction.contract-declarations refines spec:extraction.executable-contracts · declared
  • spec:extraction.example-runner refines spec:extraction.executable-examples · declared — step dispatch and failure rendering execute a bound example
  • spec:extraction.example-runner.red-step-naming refines spec:extraction.example-runner · declared
  • spec:extraction.example-runner.red-step-naming verifies spec:extraction.example-runner · declared
  • spec:extraction.example-runner.step-order refines spec:extraction.example-runner · declared
  • spec:extraction.example-runner.step-order verifies spec:extraction.example-runner · declared
  • spec:extraction.executable-contracts refines spec:extraction.build-pipeline · declared
  • spec:extraction.executable-contracts refines spec:extraction.executable-examples · declared — typed contracts carry the authored steps and example space into execution
  • spec:extraction.executable-contracts.case-colliding-path refines spec:extraction.executable-contracts · declared
  • spec:extraction.executable-contracts.case-colliding-path verifies spec:extraction.executable-contracts · declared
  • spec:extraction.executable-contracts.concreteness-refusal refines spec:extraction.executable-contracts · declared
  • spec:extraction.executable-contracts.concreteness-refusal verifies spec:extraction.executable-contracts · declared
  • spec:extraction.executable-contracts.multi-entry-example refines spec:extraction.executable-contracts · declared
  • spec:extraction.executable-contracts.multi-entry-example verifies spec:extraction.executable-contracts · declared
  • spec:extraction.runnable-modules refines spec:extraction.example-runner · declared
  • component:protocol.adapters satisfies spec:extraction.example-runner · anchored
  • component:protocol.runner satisfies spec:extraction.example-runner · anchored
  • impl:protocol.delivery-facts satisfies spec:extraction.executable-examples · anchored
  • impl:protocol.example-runner satisfies spec:extraction.example-runner · anchored
  • impl:protocol.example-runner satisfies spec:extraction.executable-examples · anchored
  • impl:protocol.example-runner-adapter satisfies spec:extraction.example-runner · anchored
  • impl:protocol.example-runner-adapter satisfies spec:extraction.executable-examples · anchored
  • impl:protocol.example-space satisfies spec:extraction.executable-contracts · anchored
  • impl:protocol.example-testing-helpers satisfies spec:extraction.executable-examples · anchored
  • impl:protocol.executable-contracts satisfies spec:extraction.executable-contracts · anchored
  • impl:protocol.executable-contracts satisfies spec:extraction.executable-examples · anchored
  • impl:protocol.runnable-modules satisfies spec:extraction.executable-examples · anchored
  • test:protocol.example-runner-cleanup verifies spec:extraction.example-runner · anchored
  • test:protocol.example-runner.red-step-naming verifies spec:extraction.example-runner.red-step-naming · anchored
  • test:protocol.example-runner.step-order verifies spec:extraction.example-runner.step-order · anchored
  • test:protocol.executable-contracts.case-colliding-path verifies spec:extraction.executable-contracts.case-colliding-path · anchored
  • test:protocol.executable-contracts.concreteness-refusal verifies spec:extraction.executable-contracts.concreteness-refusal · anchored
  • test:protocol.executable-contracts.multi-entry-example verifies spec:extraction.executable-contracts.multi-entry-example · anchored
  • test:protocol.step-keys.conflicting-example-key-withheld verifies spec:carrier.step-keys.conflicting-example-key-withheld · anchored
  • test:protocol.step-keys.key-equal-to-a-skeleton-withheld verifies spec:carrier.step-keys.key-equal-to-a-skeleton-withheld · anchored
  • test:protocol.step-keys.reworded-keyed-step-stays-bound verifies spec:carrier.step-keys.reworded-keyed-step-stays-bound · anchored
  • test:protocol.step-keys.reworded-unkeyed-step-breaks verifies spec:carrier.step-keys.reworded-unkeyed-step-breaks · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

Runtime
  • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol

    Uses

    • component:protocol.runner · provider-neutral example execution · src/runner/index.ts:99 · layer application · context protocol
  • component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · 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.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · 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.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.runner · provider-neutral example execution · src/runner/index.ts:99 · layer application · context protocol

    Uses

    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
  • component:protocol.testing · the generated registrar runtime · src/testing/index.ts:38 · layer adapter · context protocol

    Uses

    • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol
    • component:protocol.runner · provider-neutral example execution · src/runner/index.ts:99 · layer application · context protocol
  • impl:protocol.delivery-facts · computes delivery facts from resolving binding edges · src/graph/delivery-facts.ts:65

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

    Uses

    None.

  • impl:protocol.example-runner · plans and executes a bound example against the caller's world · src/runner/index.ts:108

    Component: component:protocol.runner · provider-neutral example execution · src/runner/index.ts:99 · layer application · context protocol

    Uses

    None.

  • impl:protocol.example-runner-adapter · registers one test per example and owns the fresh world lifecycle · src/adapters/vitest.ts:32

    Component: component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol

    Uses

    • impl:protocol.example-runner · plans and executes a bound example against the caller's world · src/runner/index.ts:108
  • impl:protocol.example-testing-helpers · adapter-lifecycle and oracle-comparison helpers for bound examples · src/testing/index.ts:50

    Component: component:protocol.testing · the generated registrar runtime · src/testing/index.ts:38 · layer adapter · context protocol

    Uses

    None.

  • impl:protocol.executable-contracts · derives step and example-space contracts from the graph · src/codegen/contracts.ts:647

    Component: component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · layer application · context protocol

    Uses

    None.

  • impl:protocol.runnable-modules · derives and publishes runnable registrar modules from the graph · src/codegen/contracts.ts:658

    Component: component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · 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.executable-examples
Relations of spec:extraction.executable-examplesrefines · declaredrefines · declareddependsOn · declaredOutgoing dependsOnspec:extraction.derive-graphCarrier reification derivesthe one graph…derive-graphSubjectspec:extraction.executable-examplesBound examples executetheir authored steps…executable-examplesIncoming refinesspec:extraction.example-runnerA bound example runs itscontract steps against afresh world…example-runnerspec:extraction.executable-contractsThe build derives step andspace contracts from graphexamples…executable-contracts
The diagram as text
  • spec:extraction.derive-graph: Carrier reification derives the one graph
  • spec:extraction.example-runner: A bound example runs its contract steps against a fresh world
  • spec:extraction.executable-contracts: The build derives step and space contracts from graph examples
  • spec:extraction.executable-examples: Bound examples execute their authored steps
  • spec:extraction.executable-examples dependsOn spec:extraction.derive-graph · declared — executable contracts read the one graph rather than another carrier path
  • spec:extraction.example-runner refines spec:extraction.executable-examples · declared — step dispatch and failure rendering execute a bound example
  • spec:extraction.executable-contracts refines spec:extraction.executable-examples · declared — typed contracts carry the authored steps and example space into execution
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.

Rests on

  • dependsOn · spec:extraction.derive-graph · stated ready, floor ready

Rested on by

Distance 1

  • spec:extraction.example-runner

    Implementing units

    • component:protocol.adapters · src/adapters/vitest.ts:23
    • component:protocol.runner · src/runner/index.ts:99
    • impl:protocol.example-runner · src/runner/index.ts:108
    • impl:protocol.example-runner-adapter · src/adapters/vitest.ts:32

    Referencing units

    None.

    Enabled verifiers: spec:extraction.example-runner.red-step-naming, spec:extraction.example-runner.step-order, test:protocol.example-runner-cleanup

    Packs: pack:self-hosting-v1

  • spec:extraction.executable-contracts

    Implementing units

    • impl:protocol.example-space · src/graph/example-space.ts:117
    • impl:protocol.executable-contracts · src/codegen/contracts.ts:647

    Referencing units

    None.

    Enabled verifiers: spec:carrier.step-keys.conflicting-example-key-withheld, spec:carrier.step-keys.key-equal-to-a-skeleton-withheld, spec:carrier.step-keys.reworded-keyed-step-stays-bound, spec:carrier.step-keys.reworded-unkeyed-step-breaks, spec:extraction.executable-contracts.case-colliding-path, spec:extraction.executable-contracts.concreteness-refusal, spec:extraction.executable-contracts.multi-entry-example

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

Distance 2

  • spec:consumers.agent-surface.example-space-coverage

    Implementing units

    • impl:protocol.example-space-coverage-recipe · test/studio-s1.test.ts:856
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.example-space-coverage.number-not-enumerable, spec:consumers.agent-surface.example-space-coverage.uncovered-literal

    Packs: pack:design-management-v1, pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:extraction.contract-declarations

    Implementing units

    • impl:protocol.pack-design · src/reader/reader.ts:499
    • impl:protocol.register-recipes · test/recipes.test.ts:2057

    Referencing units

    None.

    Enabled verifiers: test:protocol.register-recipes

    Packs: pack:self-hosting-v1

  • spec:extraction.example-runner.red-step-naming

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.example-runner.red-step-naming

    Packs: pack:self-hosting-v1

  • spec:extraction.example-runner.step-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.example-runner.step-order

    Packs: pack:self-hosting-v1

  • spec:extraction.executable-contracts.case-colliding-path

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.executable-contracts.case-colliding-path

    Packs: pack:self-hosting-v1

  • spec:extraction.executable-contracts.concreteness-refusal

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.executable-contracts.concreteness-refusal

    Packs: pack:self-hosting-v1

  • spec:extraction.executable-contracts.multi-entry-example

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.executable-contracts.multi-entry-example

    Packs: pack:self-hosting-v1

  • spec:extraction.runnable-modules

    Implementing units

    • component:protocol.codegen · src/codegen/contracts.ts:633
    • component:protocol.testing · src/testing/index.ts:38
    • impl:protocol.example-testing-helpers · src/testing/index.ts:50
    • impl:protocol.runnable-modules · src/codegen/contracts.ts:658

    Referencing units

    None.

    Enabled verifiers: test:protocol.runnable-modules, test:protocol.runnable-modules-generation, test:protocol.runnable-modules-types

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

Distance 3

  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-coverage-number

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-coverage-literal

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.pack-design

    Implementing units

    • impl:protocol.pack-design · src/reader/reader.ts:499

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-design

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.lenses.tests

    Implementing units

    • impl:protocol.studio-tests-lens · src/projections/studio/pages/tests-page.ts:34

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.lenses.tests.coverage-row

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.registers

    Implementing units

    • impl:protocol.studio-registers · src/projections/studio/pages/registers-page.ts:47

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.registers.blocking-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels.rule-coverage

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-rule-coverage

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.upgrade-kit.capability-adoption

    Implementing units

    • impl:protocol.capability-adoption-recipe · test/upgrade-kit.test.ts:514

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

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

  • spec:decisions.adopted-registrars-committed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:model.enrichment-lifecycle

    Implementing units

    • impl:protocol.slimming-recipe · test/curation-recipes.test.ts:26

    Referencing units

    None.

    Enabled verifiers: test:protocol.slimming-recipe

    Packs: pack:design-iteration-v1, pack:self-hosting-v1

Distance 4

  • spec:consumers.agent-surface.design-recipes

    Implementing units

    • impl:protocol.design-recipes · test/recipes.test.ts:4769

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-recipes

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.delivery-session-on-ramp

    Implementing units

    • impl:protocol.delivery-session-on-ramp · test/skills.test.ts:83

    Referencing units

    None.

    Enabled verifiers: test:protocol.delivery-session-on-ramp

    Packs: pack:self-hosting-v1

  • spec:consumers.design-review.pack-design-page

    Implementing units

    • impl:protocol.pack-design-page · src/projections/design-review-pages.ts:120

    Referencing units

    • impl:protocol.pack-design-sections · src/projections/design-review-pack-sections.ts:19

    Enabled verifiers: test:protocol.pack-design-page

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.design-slice

    Implementing units

    • impl:protocol.design-slice-recipe · test/self-hosting-design-slice.test.ts:148

    Referencing units

    • impl:protocol.studio-slice-answer · src/projections/studio/slice-answer.ts:1

    Enabled verifiers: spec:consumers.design-slice.chain, spec:consumers.design-slice.component-absent, spec:consumers.design-slice.component-differing, spec:consumers.design-slice.component-matching, spec:consumers.design-slice.component-unreadable, spec:consumers.design-slice.component-unrelated, spec:consumers.design-slice.decision-backlink, spec:consumers.design-slice.dependency-cycle, spec:consumers.design-slice.folded-example, spec:consumers.design-slice.independent-example, spec:consumers.design-slice.outside-components, spec:consumers.design-slice.outside-holding, spec:consumers.design-slice.outside-satisfied, spec:consumers.design-slice.outside-unbound, test:protocol.design-slice

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.obsidian-vault.bases

    Implementing units

    • impl:protocol.vault-bases · src/projections/vault/bases.ts:43
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.bases.views-match-sources

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.review-perspectives

    Implementing units

    • impl:protocol.perspective-filter-recipe · test/iteration-recipes.test.ts:753

    Referencing units

    None.

    Enabled verifiers: test:protocol.perspective-filter-recipe

    Packs: pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.cited-line-text

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:consumers.spec-studio.data

    Implementing units

    • impl:protocol.studio-data · src/projections/studio/data.ts:279

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-data

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.tests.coverage-row

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-tests-coverage-row

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.pack-page

    Implementing units

    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-priority, test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.registers.blocking-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-registers-blocking-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page

    Implementing units

    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8
    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-adoption.counts-a-corpus

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

  • spec:decisions.pack-design-page

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-design-page · src/projections/design-review-pages.ts:120

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:model.design-maturity

    Implementing units

    • impl:protocol.pack-design · src/reader/reader.ts:499

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-design

    Packs: pack:design-management-v1, pack:self-hosting-v1

Distance 5

  • spec:consumers.agent-surface.answer-shapes

    Implementing units

    • impl:protocol.answer-shape-recipes · test/recipes.test.ts:6214

    Referencing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.reader · src/reader/reader.ts:687

    Enabled verifiers: test:protocol.answer-shape-recipes

    Packs: pack:design-iteration-v1, pack:self-hosting-v1

  • spec:consumers.context-bundle

    Implementing units

    • impl:protocol.context-bundle-recipe · test/iteration-recipes.test.ts:765

    Referencing units

    None.

    Enabled verifiers: spec:consumers.context-bundle.oversized-member-named, spec:consumers.context-bundle.parts-cover-the-pack, test:protocol.context-bundle-recipe

    Packs: pack:adopter-speed-v1, pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.chain

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.chain

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-absent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-absent

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-differing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-differing

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-matching

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-matching

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-unreadable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-unreadable

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-unrelated

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-unrelated

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.decision-backlink

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.decision-backlink

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.dependency-cycle

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.dependency-cycle

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.folded-example

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.folded-example

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.independent-example

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.independent-example

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-components

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-components

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-holding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-holding

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-satisfied

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-satisfied

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-unbound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-unbound

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.graph-first-planning

    Implementing units

    • impl:protocol.graph-first-planning · test/skills.test.ts:290

    Referencing units

    None.

    Enabled verifiers: test:protocol.graph-first-planning

    Packs: pack:self-hosting-v1

  • spec:consumers.obsidian-vault.bases.views-match-sources

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.bases.views-match-sources

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.components

    Implementing units

    • component:protocol.studio-elements · src/studio-elements/index.ts:13
    • impl:protocol.studio-compose · src/studio-elements/compose.ts:13
    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-intent-panel-element · src/studio-elements/intent-panel-element.ts:14
    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68
    • impl:protocol.studio-scenario-editor · src/studio-elements/scenario-editor.ts:17
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.inputs

    Implementing units

    • impl:protocol.studio-base-input · src/cli/studio-inputs.ts:9
    • impl:protocol.studio-command · src/cli/studio-command.ts:106
    • impl:protocol.studio-inputs · src/projections/studio/inputs.ts:1

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.data.inputs.both-given, spec:consumers.spec-studio.data.inputs.graph-only

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.recipe-answers

    Implementing units

    • impl:protocol.studio-recipes · src/projections/studio/recipes.ts:34

    Referencing units

    • impl:protocol.studio-register-contracts · src/projections/studio/pages/register-answers.ts:4

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagram-kinds.dependency

    Implementing units

    • impl:protocol.studio-slice-dependencies · src/projections/studio/diagrams/slice.ts:10

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-dependency

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.requirement-trace

    Implementing units

    • impl:protocol.studio-requirement-diagram · src/projections/studio/diagrams/requirement.ts:12
    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture

    Implementing units

    • impl:protocol.studio-slice-architecture · src/projections/studio/diagrams/slice.ts:219

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-architecture

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagrams

    Implementing units

    • impl:protocol.studio-architecture-diagrams · src/projections/studio/diagrams/architecture.ts:4
    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-diagram-model · src/projections/studio/diagrams/model.ts:1
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73
    • impl:protocol.studio-relation-diagrams · src/projections/studio/diagrams/bands.ts:10

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.diagrams.folds-by-context, spec:consumers.spec-studio.diagrams.folds-by-layer, spec:consumers.spec-studio.diagrams.within-bound, test:protocol.studio-diagram-core

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.export

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-pack-export · src/projections/studio/pages/export-page.ts:35
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.glossary-page

    Implementing units

    • impl:protocol.studio-glossary · src/projections/studio/pages/glossary-page.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.glossary-page.same-word-twice

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.index-page

    Implementing units

    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50
    • impl:protocol.studio-evidence-lens · src/projections/studio/pages/evidence-page.ts:3
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-tests-lens · src/projections/studio/pages/tests-page.ts:34

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.owner-queue

    Implementing units

    • impl:protocol.studio-owner-queue · src/projections/studio/pages/queue-page.ts:9

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.owner-queue.dependency-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.pack-page.maturity-map

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.studio-command · src/cli/studio-command.ts:106
    • impl:protocol.studio-page-catalog · src/projections/studio/pages/index.ts:21
    • impl:protocol.studio-paths · src/projections/studio/paths.ts:2
    • impl:protocol.studio-publish · src/projections/studio/publish.ts:24

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-data, test:protocol.studio-publisher

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.roadmap-page

    Implementing units

    • impl:protocol.studio-roadmap-page · src/projections/studio/pages/roadmap-page.ts:168

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-roadmap-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.search

    Implementing units

    • impl:protocol.studio-concept-match · src/reader/concept-match.ts:43
    • impl:protocol.studio-search-page · src/projections/studio/pages/search-page.ts:5
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-concept-match, test:protocol.studio-page-elements, test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.shell

    Implementing units

    • impl:protocol.studio-code-spans · src/projections/studio/pages/code-spans.ts:9
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-html · src/projections/studio/pages/html.ts:8
    • impl:protocol.studio-text · src/projections/studio/pages/text.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.slice-page

    Implementing units

    • impl:protocol.studio-slice-page · src/projections/studio/pages/slice-page.ts:25

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.spec-page.cited-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-cited-declaration

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.core

    Implementing units

    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 6

  • spec:consumers.command-line

    Implementing units

    • impl:protocol.adopter-help · src/cli/help.ts:167
    • impl:protocol.agent-surface-cli · src/cli/sdp.ts:94
    • impl:protocol.build-args · src/cli/build-args.ts:11
    • impl:protocol.generate-command · src/cli/generate-command.ts:34

    Referencing units

    None.

    Enabled verifiers: spec:consumers.command-line.generate-check-failure, spec:consumers.command-line.generate-writes-every-root, spec:consumers.command-line.verb-help-touches-nothing

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

  • spec:consumers.context-bundle.oversized-member-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.context-bundle.oversized-member-named

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

  • spec:consumers.context-bundle.parts-cover-the-pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.context-bundle.parts-cover-the-pack

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

  • spec:consumers.readiness-planner

    Implementing units

    • impl:protocol.statement-queue-recipe · test/self-hosting-readiness-planner.test.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.readiness-planner.cycle-shares-a-round, spec:consumers.readiness-planner.decision-first, spec:consumers.readiness-planner.dependency-order, spec:consumers.readiness-planner.owner-question-holds

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

  • spec:consumers.roadmap

    Implementing units

    • impl:protocol.roadmap-recipe · test/roadmap.test.ts:20

    Referencing units

    None.

    Enabled verifiers: spec:consumers.roadmap.blocking-part, spec:consumers.roadmap.buildable-part, spec:consumers.roadmap.built-work, spec:consumers.roadmap.design-part, spec:consumers.roadmap.drifting-part, spec:consumers.roadmap.missing-evidence, spec:consumers.roadmap.outside-parent, spec:consumers.roadmap.statement-order, spec:consumers.roadmap.statement-part, test:protocol.roadmap-recipe

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.capability-map-page

    Implementing units

    • impl:protocol.studio-capabilities-page · src/projections/studio/pages/capabilities-page.ts:78
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.data.inputs.both-given

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-inputs-both-given

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.inputs.graph-only

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-graph-only

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagram-kinds

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50
    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-layout · src/projections/studio/diagrams/layout.ts:140
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73
    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7
    • impl:protocol.studio-requirement-diagram · src/projections/studio/diagrams/requirement.ts:12
    • impl:protocol.studio-slice-architecture · src/projections/studio/diagrams/slice.ts:219
    • impl:protocol.studio-slice-dependencies · src/projections/studio/diagrams/slice.ts:10

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-catalog

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.edge-routing

    Implementing units

    • impl:protocol.studio-diagram-routing · src/projections/studio/diagrams/routing.ts:38
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.legibility

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-diagram-layout · src/projections/studio/diagrams/layout.ts:140
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagrams.folds-by-context

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-folds-context

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagrams.folds-by-layer

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-folds-layer

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagrams.within-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-within-bound

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diff-page

    Implementing units

    • impl:protocol.studio-diff · src/projections/studio/pages/diff-page.ts:91

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.diff-page.changed-entry, test:protocol.roadmap-priority

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.export.self-contained

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-export-contained

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.glossary-page.same-word-twice

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-glossary-same-word-twice

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.lenses.architecture.planned-apart, test:protocol.studio-architecture-maturity-requirement

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.evidence

    Implementing units

    • impl:protocol.studio-evidence-lens · src/projections/studio/pages/evidence-page.ts:3

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.packs

    Implementing units

    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.navigation

    Implementing units

    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-navigation, test:protocol.studio-roadmap-page

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.owner-queue.dependency-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-queue-dependency-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.page-elements

    Implementing units

    • component:protocol.studio-elements · src/studio-elements/index.ts:13
    • impl:protocol.studio-copy · src/studio-elements/copy.ts:22
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-search-form · src/studio-elements/search.ts:18
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95
    • impl:protocol.studio-stamp · src/studio-elements/stamp.ts:30

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-copy-source, test:protocol.studio-page-elements

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher.watch

    Implementing units

    • impl:protocol.studio-watch · src/cli/studio-command.ts:122

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.publisher.watch.matches-plain-run

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.register-input

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:consumers.spec-studio.runs-page

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-runs-page · src/projections/studio/pages/runs-page.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.runs-page.external-evidence

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.sharing

    Implementing units

    • impl:protocol.stamp-command · src/cli/stamp-command.ts:8
    • impl:protocol.studio-preview-workflow · test/studio-s4.test.ts:742
    • impl:protocol.studio-stamp · src/studio-elements/stamp.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.sharing.stamp-written-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.studio-on-ramp

    Implementing units

    • impl:protocol.studio-on-ramp · test/skills.test.ts:1693

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-on-ramp

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 7

  • spec:consumers.command-line.generate-check-failure

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.generate-check-failure

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

  • spec:consumers.command-line.generate-writes-every-root

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.generate-writes-every-root

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

  • spec:consumers.command-line.verb-help-touches-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.verb-help-touches-nothing

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

  • spec:consumers.engine-provenance

    Implementing units

    • impl:protocol.build-artifacts · src/cli/build-artifacts.ts:182
    • impl:protocol.engine-provenance-cli · src/cli/sdp.ts:102

    Referencing units

    None.

    Enabled verifiers: test:protocol.engine-provenance

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.projections-model.roadmap-views

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.readiness-planner.cycle-shares-a-round

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.cycle-shares-a-round

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

  • spec:consumers.readiness-planner.decision-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.decision-first

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

  • spec:consumers.readiness-planner.dependency-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.dependency-order

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

  • spec:consumers.readiness-planner.owner-question-holds

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.owner-question-holds

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

  • spec:consumers.roadmap.blocking-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.blocking-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.buildable-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.buildable-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.built-work

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.built-work

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.design-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.design-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.drifting-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.drifting-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.memo

    Implementing units

    • impl:protocol.roadmap-memo-recipe · test/roadmap.test.ts:27
    • impl:protocol.studio-roadmap-page · src/projections/studio/pages/roadmap-page.ts:168

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-memo-recipe, test:protocol.studio-roadmap-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.missing-evidence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.missing-evidence

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.outside-parent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.outside-parent

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.statement-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.statement-order

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.statement-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.statement-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.capability-tree

    Implementing units

    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.maturity-picture

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.mermaid-source

    Implementing units

    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diff-page.changed-entry

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diff-changed-entry

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture.planned-apart

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-planned-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture.unit-register

    Implementing units

    • impl:protocol.studio-unit-register · src/projections/studio/pages/architecture-register.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher.watch.matches-plain-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-watch-plain

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.runs-page.external-evidence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-external

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.sharing.stamp-written-apart

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-stamp-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.upgrade-kit

    Implementing units

    • impl:protocol.upgrade-guide · test/upgrade-kit.test.ts:87

    Referencing units

    None.

    Enabled verifiers: test:protocol.upgrade-guide

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

  • spec:protocol.roadmap-replaces-plans

    Implementing units

    • impl:protocol.roadmap-practice · test/check-self-hosting-gates.test.ts:52

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-practice

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Distance 8

  • spec:consumers.upgrade-kit.rule-key-proposal

    Implementing units

    • impl:protocol.rule-key-proposal-recipe · test/upgrade-kit.test.ts:742

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

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

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

Distance 9

  • spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.collision-and-unkeyable

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

  • spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.proposal-applies-clean

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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:extraction.derive-graph
spec:extraction.derive-graph · resolves
declaredexecutable contracts read the one graph rather than another carrier pathNone
refines · incomingspec:extraction.example-runner
spec:extraction.example-runner · resolves
declaredstep dispatch and failure rendering execute a bound exampleNone
refines · incomingspec:extraction.executable-contracts
spec:extraction.executable-contracts · resolves
declaredtyped contracts carry the authored steps and example space into executionNone

Bindings

Implementation binding: present

  • impl:protocol.delivery-facts · computes delivery facts from resolving binding edges · src/graph/delivery-facts.ts:65 · role decider · component component:protocol.graph · layer domain · context protocol
  • impl:protocol.example-runner · plans and executes a bound example against the caller's world · src/runner/index.ts:108 · role service · component component:protocol.runner · layer application · context protocol
  • impl:protocol.example-runner-adapter · registers one test per example and owns the fresh world lifecycle · src/adapters/vitest.ts:32 · role adapter · component component:protocol.adapters · layer adapter · context protocol
  • impl:protocol.example-testing-helpers · adapter-lifecycle and oracle-comparison helpers for bound examples · src/testing/index.ts:50 · role adapter · component component:protocol.testing · layer adapter · context protocol
  • impl:protocol.executable-contracts · derives step and example-space contracts from the graph · src/codegen/contracts.ts:647 · role projection · component component:protocol.codegen · layer application · context protocol
  • impl:protocol.runnable-modules · derives and publishes runnable registrar modules from the graph · src/codegen/contracts.ts:658 · role projection · component component:protocol.codegen · layer application · context protocol

Design reference: none

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

  • warning · honesty/gaps · spec:extraction.executable-examples · Spec "spec:extraction.executable-examples" states readiness "ready" with no resolving verifier — a gap, informative only (ready never requires delivery facts). · specs/extraction/executable-examples.sdp.md

8. The capability map page makes refinement readable by epic

spec:consumers.spec-studio.capability-map-page

The capability map page makes refinement readable by epic

spec:consumers.spec-studio.capability-map-pageUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 6 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.capability-map-page.sdp.md

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

Intent
actor
A reviewer looking for a capability before choosing a Spec or Pack.
problem
A flat altitude filter hides how a capability is decomposed, and a large refinement drawing becomes unreadable when shrunk to the page width.
outcome
Read an epic overview, inspect its refinement structure and evidence, and narrow the index's Specs to its descendants.
Behavior
rule.page line 32 · specs/consumers/spec-studio.capability-map-page.sdp.md:32
The Studio publishes capabilities.html on every build and links it as Capabilities immediately after Packs in the top navigation. The Packs lens keeps its membership order and the index remains the landing page.

no example exercises it

rule.recipeData line 33 · specs/consumers/spec-studio.capability-map-page.sdp.md:33
The page reads recipe 52 with { detail: true } and no epic parameter. It renders every epic's own evidence beside its descendant rollup and names the rollup's scope. Examples and decisions have separate counts and expandable rows. There is no combined total obtained by adding epic rows.

no example exercises it

rule.drawing line 34 · specs/consumers/spec-studio.capability-map-page.sdp.md:34
Each epic has a refinement drawing supplied by the shared diagram implementation. It keeps parent-to-child reading order while arrows, if drawn, point child to parent and the legend says refines. Repeated nodes link to their first occurrence within that epic section. A nested epic remains a labelled epic, not a new altitude.

no example exercises it

rule.bounded line 35 · specs/consumers/spec-studio.capability-map-page.sdp.md:35
A large branch folds at the shared diagram bound and links to its complete refinement text. At desktop width it never scales labels below the shared legibility size to fit an entire tree; below the responsive breakpoint it follows the shared legibility rule's narrow fit. The text includes every node and edge, repeats and cyclic links labelled in words, and stays readable without script.

no example exercises it

rule.links line 36 · specs/consumers/spec-studio.capability-map-page.sdp.md:36
Every node title links to that Spec's Studio page. A separate Show these Specs link goes to the index's Specs section with the epic selected. Keyed questions link to their entry on the Spec page; unkeyed questions link to the Spec page's section.intent. Unresolved endpoints are text with their diagnostics, never plausible Spec links.

no example exercises it

rule.filter line 37 · specs/consumers/spec-studio.capability-map-page.sdp.md:37
The index's Specs filter gains Epic, with Any, No epic and every epic by title and id. An epic selects its own Spec and every Spec whose full-corpus epicIds contains it. It intersects with the existing filters, resets with them, and never changes Pack membership or hides Pack cards.

no example exercises it

rule.withoutScript line 38 · specs/consumers/spec-studio.capability-map-page.sdp.md:38
Native links, disclosures, complete refinement text and all Spec rows work without script. Index filtering is an enhancement: before script applies a requested epic, the index says filtering needs script and shows all rows. A supplied id that is absent or not epic reports Unknown epic filter and leaves all rows visible.

no example exercises it

rule.emptyAndDamage line 39 · specs/consumers/spec-studio.capability-map-page.sdp.md:39
The page always has No epic reaches these Specs, including an explicit empty message. With no epics it explains that authors may organize Specs through refinement and still lists the whole corpus. Cycles and unresolved edges are visible diagnostics beside the complete text, without a new validation rule.

no example exercises it

0 unkeyed rules.

Design
route line 43 · specs/consumers/spec-studio.capability-map-page.sdp.md:43
capabilities.html; an epic's section id is its Spec id. The filtered-index route is index.html?epic=<percent-encoded Spec id>#specs; epic=none selects unreached Specs, absence selects Any. An unknown or repeated epic parameter reports the unknown-filter message without applying it.

no citation recorded

diagramInput line 44 · specs/consumers/spec-studio.capability-map-page.sdp.md:44
recipe 52's node, edge, epic and unreached rows supply the drawing and its text; layout derives no reach, floor or delivery fact. The shared drawing implementation owns folding, label metrics and SVG or Mermaid representation. A capability drawing must support same-altitude edges, skipped altitudes, multiple parents, nested epics, and cycles without pretending to be a strict three-level tree.
disclosureOrder line 45 · specs/consumers/spec-studio.capability-map-page.sdp.md:45
epic overview cards and sections follow recipe order. Each section opens with the epic's own rung, floor, binding evidence and questions, then the rollup labelled Distinct descendants, excluding this epic. Refinement text expands a depth-first walk with children in id order and renders later visits as references; it follows the recipe's root order and uses per-section visited ids. Examples and decisions fold through native disclosures without pruning their descendants.
rowEvidence line 46 · specs/consumers/spec-studio.capability-map-page.sdp.md:46
each row names kind and altitude, stated <rung>, floor <rung>, the implementation binding and the verifier binding as present or none, and open and blocking question counts with their text available. Facts that are absent stay absent; a folded branch's counts never become the parent's badges.
nestedEpics line 47 · specs/consumers/spec-studio.capability-map-page.sdp.md:47
a card for an epic that refines another epic says Inside <title>, using parentEpicIds, and a card whose descendants include an epic names it, so overlapping counts read as overlap.
responsive line 48 · specs/consumers/spec-studio.capability-map-page.sdp.md:48
overview cards reflow to one column on a narrow viewport; refinement text wraps ids and titles, caps visual indentation, and names the parent in words so deep trees remain readable. At desktop width diagram labels use the shared readable size and bounded branches. Below the responsive breakpoint the drawing follows the legibility rule's narrow fit; the complete refinement text is the readable form. Print opens the disclosures and retains the complete text.
Verification · reviewed
criteria
  • Read the same page on a corpus with one broad epic, several epics, and no epics, with script disabled and at a narrow viewport.
  • Follow a shared descendant from both parents and verify that the rollup counts it once and the index filter lists it once.
  • Select an epic on the index, combine it with kind and readiness filters, reset it, and open the filtered URL directly; invalid and repeated epic parameters never show a false empty result.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.studio-capabilities · anchored · test anchor binding present · test/studio-capabilities.test.ts:89
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.capability-map-page

Scroll horizontally to read the whole drawing.

The diagram as text
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic · declared Spec
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants · declared Spec
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence · declared Spec
  • impl:protocol.studio-capabilities-page: renders epic evidence, refinement and unreached Specs from the capability map · anchored code · src/projections/studio/pages/capabilities-page.ts:78
  • impl:protocol.studio-filter: filters build-rendered rows through their recorded attributes · anchored code · src/studio-elements/filter.ts:25
  • impl:protocol.studio-frame: renders Studio navigation, page rails and composing controls · anchored code · src/projections/studio/pages/frame.ts:6
  • impl:protocol.studio-index-page: renders Pack disclosures and filterable Spec rows · anchored code · src/projections/studio/pages/index-page.ts:8
  • test:protocol.studio-capabilities: test:protocol.studio-capabilities · anchored test binding · binding present · test/studio-capabilities.test.ts:89
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.capability-map · declared — the page is the capability map's reading for a person
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.spec-studio.lenses · declared — the Capabilities page is a lens that reads refinement
  • impl:protocol.studio-capabilities-page satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-filter satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-frame satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • impl:protocol.studio-index-page satisfies spec:consumers.spec-studio.capability-map-page · anchored
  • test:protocol.studio-capabilities verifies spec:consumers.spec-studio.capability-map-page · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • component:protocol.studio-elements · optional browser behavior and proposal handoff · src/studio-elements/index.ts:13 · layer edge · context protocol

    Uses

    • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol
    • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
  • impl:protocol.studio-capabilities-page · renders epic evidence, refinement and unreached Specs from the capability map · src/projections/studio/pages/capabilities-page.ts:78

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-filter · filters build-rendered rows through their recorded attributes · src/studio-elements/filter.ts:25

    Component: component:protocol.studio-elements · optional browser behavior and proposal handoff · src/studio-elements/index.ts:13 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-frame · renders Studio navigation, page rails and composing controls · src/projections/studio/pages/frame.ts:6

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-index-page · renders Pack disclosures and filterable Spec rows · src/projections/studio/pages/index-page.ts:8

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.capability-map-page
Relations of spec:consumers.spec-studio.capability-map-pagedependsOn · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declaredrefines · declaredOutgoing refinesspec:consumers.capability-mapThe capability map readsevery epic and itsrefinement descendants…capability-mapspec:consumers.spec-studio.lensesFive lenses read the graphas Packs, capabilities,architecture, tests andevidence…spec-studio.lensesOutgoing dependsOnspec:consumers.binding-language-viewsViews speak bindinglanguage, never theinternal fact name…binding-language-viewsspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…spec-studio.diagram-kindsspec:consumers.spec-studio.index-pageThe index says where thecorpus stands and narrowsevery Spec…spec-studio.index-pageSubjectspec:consumers.spec-studio.capability-map-pageThe capability map pagemakes refinement readableby epic…spec-studio.capability-map-page
The diagram as text
  • spec:consumers.binding-language-views: Views speak binding language, never the internal fact name
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.index-page: The index says where the corpus stands and narrows every Spec
  • spec:consumers.spec-studio.lenses: Five lenses read the graph as Packs, capabilities, architecture, tests and evidence
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.binding-language-views · declared — aggregate rows use the same binding labels as Spec pages
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.capability-map · declared — the page and index filter render the capability map's answer
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.spec-studio.diagram-kinds · declared — the refinement drawing shares the Studio's diagram layout and accessible text contract
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.spec-studio.index-page · declared — the Epic filter extends the index's Specs filters
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.capability-map · declared — the page is the capability map's reading for a person
  • spec:consumers.spec-studio.capability-map-page refines spec:consumers.spec-studio.lenses · declared — the Capabilities page is a lens that reads refinement
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
dependsOn · outgoingspec:consumers.binding-language-views
spec:consumers.binding-language-views · resolves
declaredaggregate rows use the same binding labels as Spec pagesNone
dependsOn · outgoingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredthe page and index filter render the capability map's answerNone
dependsOn · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredthe refinement drawing shares the Studio's diagram layout and accessible text contractNone
dependsOn · outgoingspec:consumers.spec-studio.index-page
spec:consumers.spec-studio.index-page · resolves
declaredthe Epic filter extends the index's Specs filtersNone
refines · outgoingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredthe page is the capability map's reading for a personNone
refines · outgoingspec:consumers.spec-studio.lenses
spec:consumers.spec-studio.lenses · resolves
declaredthe Capabilities page is a lens that reads refinementNone

Bindings

Implementation binding: present

  • impl:protocol.studio-capabilities-page · renders epic evidence, refinement and unreached Specs from the capability map · src/projections/studio/pages/capabilities-page.ts:78 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-filter · filters build-rendered rows through their recorded attributes · src/studio-elements/filter.ts:25 · role interaction · component component:protocol.studio-elements · layer edge · context protocol
  • impl:protocol.studio-frame · renders Studio navigation, page rails and composing controls · src/projections/studio/pages/frame.ts:6 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-index-page · renders Pack disclosures and filterable Spec rows · src/projections/studio/pages/index-page.ts:8 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-capabilities · anchored · test/studio-capabilities.test.ts:89 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

9. The Studio chooses diagram kinds from graph values

spec:consumers.spec-studio.diagram-kinds

The Studio chooses diagram kinds from graph values

spec:consumers.spec-studio.diagram-kindsUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 37 design entries · 1 pinned declaration · 1 decision

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.sdp.md

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

Dependency chains across a Pack, capability refinement, the components a design touches, and differences between stated readiness and the floor need different pictures. A diagram kind earns its place through the question it answers and the graph values that answer it. Mermaid supplies a useful catalog of visual forms, not the Studio's layout runtime or an instruction to draw every form.

Intent
outcome
Choose useful drawings from graph values, keep their labels readable on first view, and offer source a reader can copy without changing the shipped Mermaid projection.
Behavior
rule.graphData line 22 · specs/consumers/spec-studio.diagram-kinds.sdp.md:22
A drawing reads the graph through the page's reader values and recipe answers. A visual form never supplies missing intent, order, cardinality, scores, dates or runtime evidence from prose, paths or imports.

no example exercises it

rule.kindCatalog line 23 · specs/consumers/spec-studio.diagram-kinds.sdp.md:23
The catalog names each visual family, whether the graph holds its data, its subject, the question it answers, and a refusal or deferral's re-entry trigger. Renderer aliases share their family's row; diagnostic renderers are named apart.

no example exercises it

rule.drawnKinds line 24 · specs/consumers/spec-studio.diagram-kinds.sdp.md:24
The Studio adds dependency depth, capability refinement, scoped architecture and the maturity map as a grid of counts, and a component uses table beside the architecture lens's drawing; requirement traceability replaces the realization drawing on a Spec page. Equivalent Mermaid forms share one Studio drawing.

no example exercises it

Cited at

  • Test line · test/studio-diagram-catalog.test.ts:127 · test:protocol.studio-diagram-catalog
rule.honestScope line 25 · specs/consumers/spec-studio.diagram-kinds.sdp.md:25
A Pack, slice or roadmap passes an explicit ordered set of Spec ids to a drawing. A grouping or a diagram never authors a delivery fact, ranks work, grants permission or sets a workflow gate.

no example exercises it

rule.sharedContract line 26 · specs/consumers/spec-studio.diagram-kinds.sdp.md:26
Every new drawing keeps the diagram contract's bound, deterministic static SVG, links, words beside style, text equivalent and unique element ids. Layout and copying add no browser layout dependency.

no example exercises it

0 unkeyed rules.

Design
kindCatalog line 30 · specs/consumers/spec-studio.diagram-kinds.sdp.md:30
draw, equivalent, defer and refuse describe catalog choices only. They are not graph fields or delivery states. A deferred form has honest inputs but adds no needed reading beyond the selected views; a refused form lacks typed inputs.

no citation recorded

legibleLabels line 31 · specs/consumers/spec-studio.diagram-kinds.sdp.md:31
The figure keeps the Studio's navigation rail. Title-first labels and width-based cell wrapping reduce width; natural-size SVG with local horizontal scrolling preserves readable labels on desktop. Below the responsive breakpoint the same drawing fits the screen. The legibility child pins these measurements and behavior.
flowchart line 32 · specs/consumers/spec-studio.diagram-kinds.sdp.md:32
Draw for a Spec set, Pack, slice or roadmap from declared relations; dependency depth reveals chains and cycles the one-hop trace cannot show. Arrows retain their exact relation and direction, never execution order. The existing trace and members remain equivalent flowchart subjects.
mindmap line 33 · specs/consumers/spec-studio.diagram-kinds.sdp.md:33
Draw capability refinement from declared refines for an epic or capability map. The tree shows nesting absent from a flat list; repeated parents and cycles stay explicit rather than becoming an invented hierarchy.
treeView line 34 · specs/consumers/spec-studio.diagram-kinds.sdp.md:34
Equivalent to the capability tree for a strict refinement tree. Folder icons and file paths would invent meaning; use plain labels. Repeated parents use the capability view's cross-links or its flowchart source.
block line 35 · specs/consumers/spec-studio.diagram-kinds.sdp.md:35
Draw scoped architecture and the discrete maturity matrix. Components and anchored uses answer which seams a Spec set touches; stated and reached rungs answer where statements lag or overreach. Cell position is categorical, never a score.
architecture line 36 · specs/consumers/spec-studio.diagram-kinds.sdp.md:36
Equivalent to the scoped architecture drawing for a component or Spec set, from component, memberOf and uses plus planned-component declarations. Generic boxes keep optional context and layer; cloud, service, network and deployment icons need explicit typed declarations before they can mean anything.
usesTable line 37 · specs/consumers/spec-studio.diagram-kinds.sdp.md:37
Draw a component uses table, a design structure matrix, beside the architecture lens's drawing: one row per realized component as the user and one column per realized component as the used, in one order, a cell for each pair. A table stays legible at any number of uses, where routed edges between a dozen components run in parallel bundles. It is an HTML table read from anchored uses, needs no layout, bound or fold, and offers no Mermaid source because Mermaid has no matrix form.

Cited at

  • Test line · test/studio-diagram-catalog.test.ts:117 · test:protocol.studio-diagram-catalog
requirement line 38 · specs/consumers/spec-studio.diagram-kinds.sdp.md:38
Draw a Spec's or bounded Spec set's refinement, satisfying units and declared versus anchored verifiers together. This shows the distinction between intent and binding in one picture; it supplies no risk, test method or passing result.
class line 39 · specs/consumers/spec-studio.diagram-kinds.sdp.md:39
Defer a role view for a component or slice: units as classes stereotyped by their recorded role, with anchored uses as dependency arrows and no fields, methods or inheritance. Role, memberOf and uses are honest inputs, but the role vocabulary is under review and the architecture page lists roles as text. Re-enter when the role vocabulary settles and a reader needs pattern relationships drawn. Refuse fields, methods, inheritance and multiplicities; Model prose is not a schema.
entityRelationship line 40 · specs/consumers/spec-studio.diagram-kinds.sdp.md:40
Refuse for a Spec, component or corpus. Terms and relations are not entity attributes, keys or cardinalities. Re-enter with an explicit typed entity and cardinality contract.
sequence line 41 · specs/consumers/spec-studio.diagram-kinds.sdp.md:41
Refuse for a Spec or slice. Uses and dependsOn hold no messages, participants or temporal order. Re-enter with typed ordered interactions or a separately admitted runtime input.
zenUml line 42 · specs/consumers/spec-studio.diagram-kinds.sdp.md:42
Refuse for the same missing interaction data as sequence; the optional external renderer adds no graph evidence. Re-enter when ordered interactions have a lawful graph home.
state line 43 · specs/consumers/spec-studio.diagram-kinds.sdp.md:43
Refuse for a Spec or roadmap. Readiness is a position, not a transition machine, and the graph holds no domain states, events or guards. Re-enter with a typed domain state contract unrelated to delivery gating.
journey line 44 · specs/consumers/spec-studio.diagram-kinds.sdp.md:44
Refuse for a Spec, Pack or corpus. Intent actors do not define ordered journey tasks or satisfaction scores. Re-enter with typed journey steps and a reader who needs them.
gantt line 45 · specs/consumers/spec-studio.diagram-kinds.sdp.md:45
Refuse for a roadmap or corpus. No durations, start dates or schedules are held, and dependency depth is not time. Re-enter only with a separately ruled temporal input that never gates work.
pie line 46 · specs/consumers/spec-studio.diagram-kinds.sdp.md:46
Defer for a Pack or corpus. Counts by kind or readiness are honest, but slices repeat the census while hiding exact comparisons. Re-enter when a reader needs part-to-whole comparison that the census cannot answer.
quadrant line 47 · specs/consumers/spec-studio.diagram-kinds.sdp.md:47
Refuse normalized quadrant coordinates for a Pack or roadmap. Readiness rungs have no numeric distances and priority is not a score. The maturity map uses a discrete matrix instead. Re-enter with explicitly typed independent numeric measures.
gitGraph line 48 · specs/consumers/spec-studio.diagram-kinds.sdp.md:48
Refuse for a Spec, Pack or corpus. Git is the event log, but commits and branch ancestry are not nodes in the current graph. Re-enter with a ruled history input and a history reader.
c4 line 49 · specs/consumers/spec-studio.diagram-kinds.sdp.md:49
Refuse C4 semantics for a component or slice. Component anchors do not state people, software systems, containers, trust boundaries or deployment. Re-enter with typed C4 meanings; generic component structure remains in the architecture drawing.
timeline line 50 · specs/consumers/spec-studio.diagram-kinds.sdp.md:50
Refuse for a roadmap or corpus. A dependency chain and authored Pack order are neither dated events nor time periods. Re-enter with a lawful history input.
sankey line 51 · specs/consumers/spec-studio.diagram-kinds.sdp.md:51
Refuse for a component, slice or corpus. Uses counts are discrete bindings, not a conserved flow or its magnitude. Re-enter with typed flow units and weights.
xyChart line 52 · specs/consumers/spec-studio.diagram-kinds.sdp.md:52
Defer categorical count bars for a Pack or corpus because the census already gives the exact counts; refuse a trend without time-series input. Re-enter when a reader needs a count comparison or a separately ruled time series.
packet line 53 · specs/consumers/spec-studio.diagram-kinds.sdp.md:53
Refuse for a Spec or component. Contract prose contains no typed bit offsets, field widths or packet layout. Re-enter with a typed wire-format layout.
kanban line 54 · specs/consumers/spec-studio.diagram-kinds.sdp.md:54
Defer a separate readiness board because the maturity map shows both stated and reached rungs; refuse workflow states or inferred work order. The roadmap page's HTML lists by need already provide the categorical board over explicit graph values. Re-enter for Mermaid kanban export when a reader needs to copy that board.
radar line 55 · specs/consumers/spec-studio.diagram-kinds.sdp.md:55
Refuse for a Spec, Pack or corpus. There are no comparable numeric quality scores or justified common scales; cardinalities cannot manufacture them. Re-enter with typed independent measures and their units.
treemap line 56 · specs/consumers/spec-studio.diagram-kinds.sdp.md:56
Defer for a Pack or corpus. Spec counts and membership are honest, but area repeats the census and a multi-parent refinement graph cannot be partitioned without duplication. Re-enter with a named size-comparison reader and an explicit partition and measure.
swimlanes line 57 · specs/consumers/spec-studio.diagram-kinds.sdp.md:57
Refuse process swimlanes for a slice or component. Context and layer do not define actors, tasks or control flow. The architecture grid remains an equivalent grouping only. Re-enter with typed process participants and flow.
useCase line 58 · specs/consumers/spec-studio.diagram-kinds.sdp.md:58
Refuse UML use-case associations for an epic or Spec. Intent.actor is prose, not an actor identity or an include, extend or association edge. Re-enter with explicit typed actor associations; behavior altitude alone supplies none.
eventModeling line 59 · specs/consumers/spec-studio.diagram-kinds.sdp.md:59
Refuse for a component or slice. The graph holds no ordered commands, events, screens or event streams. Re-enter with typed event-modeling declarations.
venn line 60 · specs/consumers/spec-studio.diagram-kinds.sdp.md:60
Defer Pack-overlap sets for the corpus. Membership allows honest intersections, but no current task needs a bounded overlap picture. Re-enter with named Packs and an overlap question whose intersections remain legible.
ishikawa line 61 · specs/consumers/spec-studio.diagram-kinds.sdp.md:61
Refuse for a Spec or corpus. A dependency is not a causal explanation and the graph holds no typed cause categories. Re-enter with authored causal relations admitted by the Protocol.
wardley line 62 · specs/consumers/spec-studio.diagram-kinds.sdp.md:62
Refuse for a capability map or roadmap. Refinement and dependencies hold no value-chain visibility or evolution coordinates. Re-enter with a ruled typed strategy input; never map readiness to evolution.
cynefin line 63 · specs/consumers/spec-studio.diagram-kinds.sdp.md:63
Refuse for a Spec or roadmap. Kind and readiness are not complexity classifications. Re-enter with explicitly authored complexity assessments in an admitted contract.
agentFlow line 64 · specs/consumers/spec-studio.diagram-kinds.sdp.md:64
Refuse agent-flow semantics for a component or slice. Anchored uses do not identify agents, tools, prompts or routing decisions. Re-enter with typed agent and routing declarations.
railroad line 65 · specs/consumers/spec-studio.diagram-kinds.sdp.md:65
Refuse railroad, EBNF, ABNF and PEG forms for a Spec or corpus. A vocabulary's step strings and parameter slots do not state a complete grammar production graph. Re-enter with typed productions and a grammar reader; never parse prose into a grammar.
diagnostics line 66 · specs/consumers/spec-studio.diagram-kinds.sdp.md:66
Mermaid's info and error renderers are diagnostics, not corpus diagram kinds. Keep them outside the Studio catalog of graph drawings; renderer variants such as flowchart ELK, class and state versions share their semantic family's row.
Verification

Verifier bindings

  • test:protocol.studio-diagram-catalog · anchored · test anchor binding present · test/studio-diagram-catalog.test.ts:12
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.spec-studio.diagram-kindsrefines · declaredrefines · declaredsatisfies · anchoredsatisfies · anchoredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specs8 refining Specs · declared, folded8 refining Specs · declaredspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…consumers.spec-studio.diagram-kindsdeclared SpecSatisfying or referencingunits12 satisfying units · anchored, folded12 satisfying units ·anchoredTest or oracle bindingstest:protocol.studio-architecture-maturity-requirementtest:protocol.studio-architecture-maturity-requirement…protocol.studio-architecture-maturity-requirementanchored test binding ·binding presenttest:protocol.studio-capabilitiestest:protocol.studio-capabilities…protocol.studio-capabilitiesanchored test binding ·binding presenttest:protocol.studio-diagram-catalogtest:protocol.studio-diagram-catalog…protocol.studio-diagram-cataloganchored test binding ·binding presenttest:protocol.studio-diagram-coretest:protocol.studio-diagram-core…protocol.studio-diagram-coreanchored test binding ·binding presenttest:protocol.studio-slice-architecturetest:protocol.studio-slice-architecture…protocol.studio-slice-architectureanchored test binding ·binding presenttest:protocol.studio-slice-dependencytest:protocol.studio-slice-dependency…protocol.studio-slice-dependencyanchored test binding ·binding presentOutside the selected setspec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…consumers.spec-studio.diagramsdeclared Spec
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification · declared Spec
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches · declared Spec
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent · declared Spec
  • impl:protocol.studio-architecture-lens: renders recipe component rows and planned designs as architecture and member diagrams · anchored code · src/projections/studio/pages/architecture-page.ts:50
  • impl:protocol.studio-capability-diagrams: places refinement occurrences and bounded branches from the capability map · anchored code · src/projections/studio/diagrams/capability.ts:101
  • impl:protocol.studio-diagram-element: adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · anchored code · src/studio-elements/diagram.ts:23
  • impl:protocol.studio-diagram-layout: title-first box placement, wrapping and band sizing for desktop and phone · anchored code · src/projections/studio/diagrams/layout.ts:140
  • impl:protocol.studio-diagram-routing: port, channel and overflow-rail edge routes around boxes and labels · anchored code · src/projections/studio/diagrams/routing.ts:38
  • impl:protocol.studio-diagram-source: escaped Mermaid flowchart and mindmap source in placed box order · anchored code · src/projections/studio/diagrams/mermaid.ts:13
  • impl:protocol.studio-diagrams: deterministic grid and band layouts with bounded folds and full text equivalents · anchored code · src/projections/studio/diagrams/svg.ts:73
  • impl:protocol.studio-maturity-map: places resolved Pack members by their stated rung and floor in authored order · anchored code · src/projections/studio/pages/maturity-map.ts:7
  • impl:protocol.studio-requirement-diagram: folds requirement bindings by relation direction and claim and serializes exact relations · anchored code · src/projections/studio/diagrams/requirement.ts:12
  • impl:protocol.studio-requirement-view: selects Spec refiners, verifying examples and their recorded bindings · anchored code · src/projections/studio/pages/requirement-view.ts:8
  • impl:protocol.studio-slice-architecture: selected component grid with distinct planned identities and complete unit edges · anchored code · src/projections/studio/diagrams/slice.ts:219
  • impl:protocol.studio-slice-dependencies: supplied depth bands with protected boundary boxes and lossless text · anchored code · src/projections/studio/diagrams/slice.ts:10
  • test:protocol.studio-architecture-maturity-requirement: test:protocol.studio-architecture-maturity-requirement · anchored test binding · binding present · test/studio-panels.test.ts:35
  • test:protocol.studio-capabilities: test:protocol.studio-capabilities · anchored test binding · binding present · test/studio-capabilities.test.ts:89
  • test:protocol.studio-diagram-catalog: test:protocol.studio-diagram-catalog · anchored test binding · binding present · test/studio-diagram-catalog.test.ts:12
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • test:protocol.studio-slice-architecture: test:protocol.studio-slice-architecture · anchored test binding · binding present · test/studio-slice.test.ts:579
  • test:protocol.studio-slice-dependency: test:protocol.studio-slice-dependency · anchored test binding · binding present · test/studio-slice.test.ts:369
  • spec:consumers.spec-studio.diagram-kinds refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-architecture-lens satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-capability-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • impl:protocol.studio-capability-diagrams satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagram-element satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagram-layout satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagram-layout satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagram-routing satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-requirement-view satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
  • impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • impl:protocol.studio-slice-dependencies satisfies spec:consumers.spec-studio.diagram-kinds.dependency · anchored
  • impl:protocol.studio-slice-dependencies satisfies spec:consumers.spec-studio.diagram-kinds · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-capabilities verifies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • test:protocol.studio-diagram-catalog verifies spec:consumers.spec-studio.diagram-kinds · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-slice-architecture verifies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
  • test:protocol.studio-slice-dependency verifies spec:consumers.spec-studio.diagram-kinds.dependency · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

  • spec:decisions.studio-diagram-renderer

    The engine lays out every Studio diagram at build time with its own deterministic layered layout and writes it into the page as inline SVG followed by a text equivalent. The custom element that holds a diagram adds only pan, zoom and pinch, by changing the SVG's view box. One diagram draws at most the bound spec:consumers.spec-studio.diagrams names, and above it the diagram folds, by context and then by layer, as that Spec states.

Runtime
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-architecture-lens · renders recipe component rows and planned designs as architecture and member diagrams · src/projections/studio/pages/architecture-page.ts:50

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • impl:protocol.studio-diagram-model · shared diagram boxes, edges and drawing bounds · src/projections/studio/diagrams/model.ts:1
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds
Relations of spec:consumers.spec-studio.diagram-kindsdependsOn · declaredrefines · declareddecidedBy · declaredrefines · declaredOutgoing refinesspec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…consumers.spec-studio.diagramsOutgoing decidedByspec:decisions.studio-diagram-rendererThe engine lays out everyStudio diagram as staticSVG when the page set isbuilt…decisions.studio-diagram-rendererSubjectspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…consumers.spec-studio.diagram-kindsIncoming refinesspec:consumers.spec-studio.diagram-kinds.fold.Incoming.refines8 Incoming refines, folded…consumers.spec-studio.diagram-kinds.fold.Incoming.refinesIncoming dependsOnspec:consumers.spec-studio.capability-map-pageThe capability map pagemakes refinement readableby epic…consumers.spec-studio.capability-map-page
The diagram as text
  • spec:consumers.spec-studio.capability-map-page: The capability map page makes refinement readable by epic
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:decisions.studio-diagram-renderer: The engine lays out every Studio diagram as static SVG when the page set is built
  • spec:consumers.spec-studio.diagram-kinds decidedBy spec:decisions.studio-diagram-renderer · declared — every new kind is laid out by the engine at build time as the renderer decision rules
  • spec:consumers.spec-studio.diagram-kinds refines spec:consumers.spec-studio.diagrams · declared
  • spec:consumers.spec-studio.capability-map-page dependsOn spec:consumers.spec-studio.diagram-kinds · declared — the refinement drawing shares the Studio's diagram layout and accessible text contract
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · 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.spec-studio.diagrams · stated ready, floor ready
  • decidedBy · spec:decisions.studio-diagram-renderer · stated ready, floor ready

Rested on by

Distance 1

Distance 2

  • spec:consumers.spec-studio.pack-page.maturity-map

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.slice-page

    Implementing units

    • impl:protocol.studio-slice-page · src/projections/studio/pages/slice-page.ts:25

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.spec-page

    Implementing units

    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8
    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 3

  • spec:consumers.spec-studio.export

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-pack-export · src/projections/studio/pages/export-page.ts:35
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.cited-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-cited-declaration

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.core

    Implementing units

    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 4

  • spec:consumers.spec-studio.export.self-contained

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-export-contained

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels.rule-coverage

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-rule-coverage

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.studio-on-ramp

    Implementing units

    • impl:protocol.studio-on-ramp · test/skills.test.ts:1693

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-on-ramp

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.studio-diagram-renderer
spec:decisions.studio-diagram-renderer · resolves
declaredevery new kind is laid out by the engine at build time as the renderer decision rulesNone
refines · outgoingspec:consumers.spec-studio.diagrams
spec:consumers.spec-studio.diagrams · resolves
declaredNoneNone
dependsOn · incomingThe capability map page makes refinement readable by epic
spec:consumers.spec-studio.capability-map-page · resolves
declaredthe refinement drawing shares the Studio's diagram layout and accessible text contractNone
refines · incomingA refinement drawing follows the capability map
spec:consumers.spec-studio.diagram-kinds.capability-tree · resolves
declaredNoneNone
refines · incomingA dependency drawing shows the declared footing of a Spec set
spec:consumers.spec-studio.diagram-kinds.dependency · resolves
declaredNoneNone
refines · incomingEdges route around boxes with deterministic orthogonal paths
spec:consumers.spec-studio.diagram-kinds.edge-routing · resolves
declaredarrows that cover no label serve the readable drawings the diagram kinds stateNone
refines · incomingA diagram preserves readable labels before zoom
spec:consumers.spec-studio.diagram-kinds.legibility · resolves
declaredreadable labels are part of the outcome the diagram kinds stateNone
refines · incomingThe maturity map is drawn as a grid of counts
spec:consumers.spec-studio.diagram-kinds.maturity-picture · resolves
declaredNoneNone
refines · incomingA diagram offers Mermaid source as copyable text
spec:consumers.spec-studio.diagram-kinds.mermaid-source · resolves
declaredNoneNone
refines · incomingA requirement drawing separates intent from realization and verification
spec:consumers.spec-studio.diagram-kinds.requirement-trace · resolves
declaredNoneNone
refines · incomingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-architecture-lens · renders recipe component rows and planned designs as architecture and member diagrams · src/projections/studio/pages/architecture-page.ts:50 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-diagram-catalog · anchored · test/studio-diagram-catalog.test.ts:12 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

10. A diagram preserves readable labels before zoom

spec:consumers.spec-studio.diagram-kinds.legibility

A diagram preserves readable labels before zoom

spec:consumers.spec-studio.diagram-kinds.legibilityContract · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md

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

Intent
outcome
Read a drawing's labels on first view while allowing a wide graph to scroll inside its figure.
Contract
rule.firstView line 19 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:19
At 720 CSS pixels of viewport width and wider, a diagram's SVG starts at its natural size inside its figure's scroll region and is never shrunk to fit. Overflow scrolls inside the figure, never the page. The build writes Scroll horizontally to read the whole drawing. above every drawing wider than the width budget. Below that viewport width the responsive contract's narrow drawing applies.

no example exercises it

rule.titleFirst line 20 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:20
A box starts with its title or recorded label at fourteen pixels, then a shortened id at twelve pixels, with full identity in its link title and text equivalent. Shortening changes no identity, target or element id; collisions extend the displayed suffix until it is unique within the figure. The box's remaining words, such as a component's member count, follow the id.

no example exercises it

0 unkeyed rules.

Design
widthBudget line 23 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:23
880 logical pixels for a band or grid, band labels included, which stay above their band; 264 per context cell when several contexts share a grid, the full band budget when only one context is shown, and 24 between boxes. A drawing wider than 880 scrolls inside its figure. Layout reads no browser or font measurement.

no citation recorded

labelMetrics line 24 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:24
Title lines hold at most 28 characters at fourteen pixels with an eight-pixel character advance; ids hold at most 30 characters at twelve pixels with an eight-pixel advance. Wrap at spaces or id punctuation, then by code point, with whole-pixel coordinates and height calculated from all lines.
minimumScale line 25 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:25
1 on first desktop view at viewport widths of at least 720 CSS pixels; below that width the responsive contract fits the same drawing to the screen. Zooming out on desktop remains an explicit reader choice.

no citation recorded

shortId line 26 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:26
Drop the namespace and the leading dotted segments every id in the figure shares, and mark the elision with a leading …, so a label may show …markdown-authoring; keep more segments on collisions. A displayed id never carries a namespace unless it is shown in full. Full ids remain in the link title, the text equivalent and the source.
viewport line 27 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:27
.diagram-scroll is a keyboard-focusable named region with overflow auto and max-width one hundred percent. At desktop widths its SVG has natural width and height with no max-width fit; below 720 CSS pixels the SVG fits the region. The caption and legend stay outside. The build emits the scroll instruction only when SVG width exceeds the fixed width budget; CSS leaves the region discoverable on narrower columns.

no citation recorded

elementIds line 28 · specs/consumers/spec-studio.diagram-kinds.legibility.sdp.md:28
Keep each kind's text and arrow ids; the viewport uses diagram.<subject>[.<view>].viewport and its visible instruction uses .scroll-help, inserting the view name exactly where the diagram's own ids do.
Verification

Verifier bindings

  • test:protocol.studio-diagram-core · anchored · test anchor binding present · test/studio-diagram-core.test.ts:37
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.legibility
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent · declared Spec
  • impl:protocol.studio-diagram-element: adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · anchored code · src/studio-elements/diagram.ts:23
  • impl:protocol.studio-diagram-layout: title-first box placement, wrapping and band sizing for desktop and phone · anchored code · src/projections/studio/diagrams/layout.ts:140
  • impl:protocol.studio-diagrams: deterministic grid and band layouts with bounded folds and full text equivalents · anchored code · src/projections/studio/diagrams/svg.ts:73
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagrams · declared
  • impl:protocol.studio-diagram-element satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagram-layout satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.legibility · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.legibility · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • component:protocol.studio-elements · optional browser behavior and proposal handoff · src/studio-elements/index.ts:13 · layer edge · context protocol

    Uses

    • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol
    • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
  • impl:protocol.studio-diagram-element · adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · src/studio-elements/diagram.ts:23

    Component: component:protocol.studio-elements · optional browser behavior and proposal handoff · src/studio-elements/index.ts:13 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • impl:protocol.studio-diagram-model · shared diagram boxes, edges and drawing bounds · src/projections/studio/diagrams/model.ts:1

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:consumers.spec-studio.diagram-kinds.legibility
Relations of spec:consumers.spec-studio.diagram-kinds.legibilityrefines · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…diagram-kindsspec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…diagramsOutgoing dependsOnspec:consumers.spec-studio.responsiveThe Studio reads on a phoneas on a desktop…responsiveSubjectspec:consumers.spec-studio.diagram-kinds.legibilityA diagram preservesreadable labels before zoom…diagram-kinds.legibility
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.legibility: A diagram preserves readable labels before zoom
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:consumers.spec-studio.responsive: The Studio reads on a phone as on a desktop
  • spec:consumers.spec-studio.diagram-kinds.legibility dependsOn spec:consumers.spec-studio.responsive · declared
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagram-kinds · declared — readable labels are part of the outcome the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.legibility refines spec:consumers.spec-studio.diagrams · 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.spec-studio.diagram-kinds · stated ready, floor ready
  • refines · spec:consumers.spec-studio.diagrams · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.responsive · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:consumers.spec-studio.responsive
spec:consumers.spec-studio.responsive · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredreadable labels are part of the outcome the diagram kinds stateNone
refines · outgoingspec:consumers.spec-studio.diagrams
spec:consumers.spec-studio.diagrams · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-diagram-element · adds view-box pan, zoom and pinch to build-rendered SVG without changing its layout · src/studio-elements/diagram.ts:23 · role interaction · component component:protocol.studio-elements · layer edge · context protocol
  • impl:protocol.studio-diagram-layout · title-first box placement, wrapping and band sizing for desktop and phone · src/projections/studio/diagrams/layout.ts:140 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-diagram-core · anchored · test/studio-diagram-core.test.ts:37 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

11. Edges route around boxes with deterministic orthogonal paths

spec:consumers.spec-studio.diagram-kinds.edge-routing

Edges route around boxes with deterministic orthogonal paths

spec:consumers.spec-studio.diagram-kinds.edge-routingContract · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 6 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md

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

Intent
outcome
Follow an arrow without it crossing a box or covering a label, using the engine's own static layout.
Contract
rule.obstacles line 18 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:18
After box placement and label wrapping, reserve each box and band label rectangle as an obstacle with clearance. An edge may touch only its own source and destination ports; no other segment may intersect a reserved rectangle's interior.

no example exercises it

rule.routes line 19 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:19
Route edges deterministically in code-unit order by from, to, kind and claim with orthogonal whole-pixel paths around the reserved obstacles. Add no layout dependency and read no browser measurement. The build owns the search representation, weights and tie-break implementation.

no example exercises it

rule.ports line 20 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:20
Choose source and destination sides deterministically for forward, same-band and backward edges. Every incident edge has its own port. A cycle and a backward edge remain directed and route around intervening boxes.

no example exercises it

rule.labels line 21 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:21
Reserve an edge label's rectangle beside a free segment. If the exact relation and claim words do not fit, use a stable edge key and name its full wording in the adjacent legend and text equivalent. Every placed label rectangle is an obstacle for later labels and routes; no two labels overlap. An edge carries a label only where spec:consumers.spec-studio.diagrams asks for one; a drawing whose edges share one relation and one claim names them once in its legend.

no example exercises it

rule.noPath line 22 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:22
If any required route, distinct lane or label cannot be placed within the deterministic routing budget, omit that SVG and open its text equivalent with an explicit routing explanation. Never draw a straight line through a box as fallback.

no example exercises it

0 unkeyed rules.

Design
clearance line 25 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:25
12 logical pixels around boxes and text, with ports connected through their own clearance by a stub. Lane spacing is 8 pixels and gutter margin is 24 pixels; all coordinates and costs are integers.

no citation recorded

cost line 26 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:26
Crossings remain permitted at free points, never through nodes or labels. Two edges never share a collinear segment: they take distinct ports and lanes 8 pixels apart, and an edge that cannot get a lane is a routing failure under the no-path rule.
searchBound line 27 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:27
The build chooses a finite deterministic search budget and tests its routing-failure explanation; tuning the search changes no graph meaning. The shared box and edge bound applies first.
overflow line 28 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:28
Routing gutters may increase SVG width beyond the box layout budget to preserve distinct lanes; the desktop scroll instruction follows that final width. No label is shrunk to fit.
routeModel line 29 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:29
Each route retains from, to, kind, claim, optional aggregation count and relation reason, plus its integer point list; ports and routes are presentation values, never graph edges.
elementIds line 30 · specs/consumers/spec-studio.diagram-kinds.edge-routing.sdp.md:30
Preserve .edge data-from, data-to and data-kind, add data-claim when present and a stable data-edge-key for legend lookup; arrow marker ids remain scoped to subject and view.
Verification

Verifier bindings

  • test:protocol.studio-diagram-core · anchored · test anchor binding present · test/studio-diagram-core.test.ts:37
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.edge-routing
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent · declared Spec
  • impl:protocol.studio-diagram-routing: port, channel and overflow-rail edge routes around boxes and labels · anchored code · src/projections/studio/diagrams/routing.ts:38
  • impl:protocol.studio-diagrams: deterministic grid and band layouts with bounded folds and full text equivalents · anchored code · src/projections/studio/diagrams/svg.ts:73
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagrams · declared
  • impl:protocol.studio-diagram-routing satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.edge-routing · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.edge-routing · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-diagram-routing · port, channel and overflow-rail edge routes around boxes and labels · src/projections/studio/diagrams/routing.ts:38

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • impl:protocol.studio-diagram-model · shared diagram boxes, edges and drawing bounds · src/projections/studio/diagrams/model.ts:1

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:consumers.spec-studio.diagram-kinds.edge-routing

Arrows: refines (declared).

Relations of spec:consumers.spec-studio.diagram-kinds.edge-routingOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…diagram-kindsspec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…diagramsSubjectspec:consumers.spec-studio.diagram-kinds.edge-routingEdges route around boxeswith deterministicorthogonal paths…diagram-kinds.edge-routing
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.edge-routing: Edges route around boxes with deterministic orthogonal paths
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagram-kinds · declared — arrows that cover no label serve the readable drawings the diagram kinds state
  • spec:consumers.spec-studio.diagram-kinds.edge-routing refines spec:consumers.spec-studio.diagrams · 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 · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredarrows that cover no label serve the readable drawings the diagram kinds stateNone
refines · outgoingspec:consumers.spec-studio.diagrams
spec:consumers.spec-studio.diagrams · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-diagram-routing · port, channel and overflow-rail edge routes around boxes and labels · src/projections/studio/diagrams/routing.ts:38 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-diagram-core · anchored · test/studio-diagram-core.test.ts:37 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

12. A diagram offers Mermaid source as copyable text

spec:consumers.spec-studio.diagram-kinds.mermaid-source

A diagram offers Mermaid source as copyable text

spec:consumers.spec-studio.diagram-kinds.mermaid-sourceUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md

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

Mermaid source is a second serialization of the drawing's supplied values. It changes neither the static SVG renderer nor the separately shipped Mermaid root, so it requires no decision refining either ruling. A future Mermaid runtime, layout library or change to that root would need its own decision.

Intent
outcome
Copy a drawing into another document while keeping the Studio usable without script or a Mermaid runtime.
Behavior
rule.sourceOnly line 21 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:21
Build escaped Mermaid text from the same selected and folded diagram values as the SVG. Source is an optional export, never a browser rendering path, a network request, a new command or a write to the shipped Mermaid root.

no example exercises it

rule.losslessMeaning line 22 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:22
Each kind names its preferred syntax. Use a labelled flowchart fallback whenever that syntax cannot state the drawing's exact relations, claims or folds. State the chosen syntax and fallback reason beside the source. Preserve full ids in labels or comments and every aggregation count and folded member identity in comments; the text equivalent remains authoritative for the diagram's reading.

no example exercises it

rule.copy line 23 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:23
A closed source disclosure contains a read-only text area with a visible label. Without script a reader selects and copies it. The page elements' copy control enhances this same text with its Copy button, Copied feedback and select-the-text fallback. The diagram element keeps only its viewport controls.

no example exercises it

rule.escaping line 24 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:24
Treat every title, label, id and reason as data. Escape HTML at the page boundary and Mermaid syntax at the source boundary; never emit source directives, executable links, raw HTML or configuration supplied by corpus text.

no example exercises it

rule.omission line 25 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:25
A drawing omitted for bounds or routing offers its text equivalent and a reason; it offers no partial Mermaid source that appears complete. Source follows the same explicit scope and folds as its figure.

no example exercises it

0 unkeyed rules.

Design
disclosure line 28 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:28
Summary Mermaid source, a paragraph Copyable source; the Studio draws static SVG., a syntax label and optional fallback explanation, then a labelled read-only textarea and the script-added copy button.
sourceElement line 29 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:29
The disclosure's copy button is the page elements' sdp-copy, given a for attribute that names the source text area so a long source is not repeated in an attribute; no new element is added, and sdp-diagram still adds only pan, zoom and pinch.
sourceEscaping line 30 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:30
Inside a quoted label, ", #, %, < and > become Mermaid entity codes (#quot;, #35;, #37;, #lt;, #gt;); a backtick becomes #96;, a line break becomes a space, and every other character is kept.
sourceIds line 31 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:31
Stable safe aliases assigned in displayed box order, with full graph ids in quoted labels or escaped comments. Aliases are local serialization names, never graph identities. No click directive or initialization directive is emitted.
elementIds line 32 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:32
Use diagram.<subject>[.<view>].source and .source-text, inserting the view name exactly where the diagram's own ids do, so a trace graph's source is diagram.<subject>.source.
export line 33 · specs/consumers/spec-studio.diagram-kinds.mermaid-source.sdp.md:33
The self-contained Pack export retains source as selectable text and omits the copy script; print expands the text equivalent and leaves source closed unless the reader opened it.
Verification

Verifier bindings

  • test:protocol.studio-diagram-core · anchored · test anchor binding present · test/studio-diagram-core.test.ts:37
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.mermaid-source
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-diagram-source: escaped Mermaid flowchart and mindmap source in placed box order · anchored code · src/projections/studio/diagrams/mermaid.ts:13
  • impl:protocol.studio-diagrams: deterministic grid and band layouts with bounded folds and full text equivalents · anchored code · src/projections/studio/diagrams/svg.ts:73
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • impl:protocol.studio-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.mermaid-source · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.mermaid-source · 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

  • spec:decisions.shipped-projections-frozen

    Re-specifying the shipped Design Review, census, Mermaid, or Gherkin projection is refused. These four projections are the ruled read surfaces over the one graph. A later decision Spec that supersedes this one replaces the ruling whole; a decision Spec that refines this one narrows it for one projection or one rendering and leaves the rest frozen. Either passes the ADR three-part test.

  • spec:decisions.studio-diagram-renderer

    The engine lays out every Studio diagram at build time with its own deterministic layered layout and writes it into the page as inline SVG followed by a text equivalent. The custom element that holds a diagram adds only pan, zoom and pinch, by changing the SVG's view box. One diagram draws at most the bound spec:consumers.spec-studio.diagrams names, and above it the diagram folds, by context and then by layer, as that Spec states.

Runtime
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • impl:protocol.studio-diagram-model · shared diagram boxes, edges and drawing bounds · src/projections/studio/diagrams/model.ts:1

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:consumers.spec-studio.diagram-kinds.mermaid-source
Relations of spec:consumers.spec-studio.diagram-kinds.mermaid-sourcerefines · declareddependsOn · declareddecidedBy · declareddecidedBy · declaredOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…consumers.spec-studio.diagram-kindsOutgoing dependsOnspec:consumers.spec-studio.page-elementsA few custom elementsfilter, search, open andcopy on a rendered page…consumers.spec-studio.page-elementsOutgoing decidedByspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozenspec:decisions.studio-diagram-rendererThe engine lays out everyStudio diagram as staticSVG when the page set isbuilt…decisions.studio-diagram-rendererSubjectspec:consumers.spec-studio.diagram-kinds.mermaid-sourceA diagram offers Mermaidsource as copyable text…consumers.spec-studio.diagram-kinds.mermaid-source
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source: A diagram offers Mermaid source as copyable text
  • spec:consumers.spec-studio.page-elements: A few custom elements filter, search, open and copy on a rendered page
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen
  • spec:decisions.studio-diagram-renderer: The engine lays out every Studio diagram as static SVG when the page set is built
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source decidedBy spec:decisions.shipped-projections-frozen · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source decidedBy spec:decisions.studio-diagram-renderer · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source dependsOn spec:consumers.spec-studio.page-elements · declared
  • spec:consumers.spec-studio.diagram-kinds.mermaid-source refines spec:consumers.spec-studio.diagram-kinds · 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.spec-studio.diagram-kinds · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.page-elements · stated ready, floor ready
  • decidedBy · spec:decisions.shipped-projections-frozen · stated ready, floor ready
  • decidedBy · spec:decisions.studio-diagram-renderer · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.shipped-projections-frozen
spec:decisions.shipped-projections-frozen · resolves
declaredNoneNone
decidedBy · outgoingspec:decisions.studio-diagram-renderer
spec:decisions.studio-diagram-renderer · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.spec-studio.page-elements
spec:consumers.spec-studio.page-elements · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagrams · deterministic grid and band layouts with bounded folds and full text equivalents · src/projections/studio/diagrams/svg.ts:73 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-diagram-core · anchored · test/studio-diagram-core.test.ts:37 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

13. A dependency drawing shows the declared footing of a Spec set

spec:consumers.spec-studio.diagram-kinds.dependency

A dependency drawing shows the declared footing of a Spec set

spec:consumers.spec-studio.diagram-kinds.dependencyUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md

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

Intent
outcome
See multi-hop dependency chains and cycles within a Pack, slice or roadmap without reading them as an execution schedule.
Behavior
rule.declaredOnly line 16 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:16
Draw the design slice answer's structure edges and rests-on boundary, preserving each declared refines, dependsOn, constrainedBy and decidedBy relation's exact direction, reason and claim. The design slice owns its rests-on exception for a refines back to a member that names it by another typed relation: such an edge carries orders: false, is drawn dashed and says in its legend and text that it orders nothing. Membership is scope, never a dependency.

no example exercises it

rule.depth line 17 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:17
Band each member by the depth its supplied answer gives, the design slice's depth for a Pack, slice or roadmap scope; the layout never recomputes it. A cycle's members share one band and are named as a cycle in words.

no example exercises it

rule.boundary line 18 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:18
Show immediate dependencies outside the supplied scope in a separate boundary band, without traversing their dependencies. An unresolved target is named unresolved and has no invented title or link.

no example exercises it

rule.fold line 19 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:19
The boundary band always folds into one box per relation type that names its count, keeping as its own box each outside Spec that holds a member's stated next rung or states below defined, and every folded Spec stays a row of the text equivalent; above the shared bound, whole depth bands fold in descending box count, ties by ascending depth; if the drawing still exceeds the bound, the SVG is omitted and the text equivalent opens.

no example exercises it

rule.examplesInParent line 20 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:20
An example member the design slice folds into its parent is counted on that parent's box and is never drawn as its own box; it keeps its row in the text equivalent. An example the slice does not fold is a box like any other member's.

no example exercises it

0 unkeyed rules.

Design
inputs line 23 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:23
subject and the design slice answer supply ordered members, exampleOf, exampleMembers, depth, cycles, structure edges and the rests-on boundary with its holds and relation reasons; a roadmap passes its explicitly selected ordered Spec set to that same reader. Duplicate or unknown scope ids are that reader's diagnostics, never repaired by layout.

no citation recorded

bands line 24 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:24
Label bands Depth <n> from the deepest at the top down to depth 1, then Outside this scope at the bottom, so a member sits above what it rests on and boundary edges stay short. Within a band keep supplied order. Depths are structural, never phases, dates or priority.
edgeWords line 25 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:25
Show refines, dependsOn, constrainedBy and decidedBy beside their arrow or as a keyed legend where several kinds occur, and in the text equivalent with claim and optional reason. Mixed relations cannot become an unlabeled dependency arrow. Arrows with the same ends, claim and ordering may combine into one arrow naming every relation; the text equivalent retains each original relation and reason.
textEquivalent line 26 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:26
List every scoped and boundary Spec with its full id and title, then every original edge and every cycle's members; folding removes no text row.
elementIds line 27 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:27
Use diagram.<subject>.dependencies.text, .dependencies.arrow and .dependencies.fold.<depth>; a second scope on one page uses a distinct subject occurrence key supplied by the page.
mermaidKind line 28 · specs/consumers/spec-studio.diagram-kinds.dependency.sdp.md:28
flowchart TB with depth subgraphs and exact relation labels; export the displayed folds and name the full text equivalent beside the source.

no citation recorded

Verification

Verifier bindings

  • test:protocol.studio-slice-dependency · anchored · test anchor binding present · test/studio-slice.test.ts:369
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.dependency
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-slice-dependencies: supplied depth bands with protected boundary boxes and lossless text · anchored code · src/projections/studio/diagrams/slice.ts:10
  • test:protocol.studio-slice-dependency: test:protocol.studio-slice-dependency · anchored test binding · binding present · test/studio-slice.test.ts:369
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-slice-dependencies satisfies spec:consumers.spec-studio.diagram-kinds.dependency · anchored
  • test:protocol.studio-slice-dependency verifies spec:consumers.spec-studio.diagram-kinds.dependency · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds.dependency
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
  • spec:consumers.spec-studio.diagram-kinds.dependency dependsOn spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.diagram-kinds.dependency refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagram-kinds.dependency · declared — the dependency drawing given the slice's order is a drawing kind, which owns layout, folding and the text equivalent
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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone
dependsOn · incomingA slice page shows a Pack's design as one whole
spec:consumers.spec-studio.slice-page · resolves
declaredthe dependency drawing given the slice's order is a drawing kind, which owns layout, folding and the text equivalentNone

Bindings

Implementation binding: present

  • impl:protocol.studio-slice-dependencies · supplied depth bands with protected boundary boxes and lossless text · src/projections/studio/diagrams/slice.ts:10 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-slice-dependency · anchored · test/studio-slice.test.ts:369 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

14. A refinement drawing follows the capability map

spec:consumers.spec-studio.diagram-kinds.capability-tree

A refinement drawing follows the capability map

spec:consumers.spec-studio.diagram-kinds.capability-treeUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 5 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md

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

Intent
outcome
Read the capability map as a hierarchy without inventing parentage from names or hiding multiple parents.
Behavior
rule.mapInput line 16 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:16
Draw the roots, refinement edges, unreached Specs and repeated reach supplied by the capability map. Root selection and reach belong to that reader, never to label prefixes, files or the drawing.

no example exercises it

rule.multipleParents line 17 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:17
Place a Spec at its first visit in the capability map page's traversal of the epic and draw each later visit as a repeat box that links to the first occurrence and keeps its own refines arrow. A cycle is a labelled group whose internal relations stay in the text equivalent; the drawing never cuts an edge silently.

no example exercises it

rule.fold line 18 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:18
Above the shared bound, retain each root and fold the largest descendant branch below a non-root parent first, ties by root order then id, linking to its full branch list. If siblings still exceed the bound, keep their first entries in supplied order and replace the remaining siblings of one parent together with their descendant boxes with a labelled folded remainder, keeping that parent's relation explicit and counting every hidden unique Spec. Count unique Specs and rendered boxes separately where a cycle or repeated reach needs an occurrence. If no lawful fold fits, omit the SVG and open the text equivalent.

no example exercises it

0 unkeyed rules.

Design
layout line 21 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:21
Roots lead, then depth bands of children; label each box with its title, altitude and shortened id. A refines arrow still points child to parent. Unreached Specs occupy a labelled band apart. Within a depth band, children sit together under their placement parent as one labelled sibling group, in parent order; a band never interleaves siblings of different parents.
wordsBesideStyle line 22 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:22
The legend says Arrows: refines (declared). Later visits repeat a Spec and link to its first occurrence. A group says cycle or folded in words and names its unique member count.
textEquivalent line 23 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:23
List every root and reachable Spec, all declared refines edges, cycle membership and unreached ids using full identities. Grouping confers no delivery fact or readiness.
elementIds line 24 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:24
Use diagram.<subject>.capability.text, .capability.arrow and .capability.branch.<encoded-root-id>; encoded identities are injective and stable, not truncated labels.
mermaidKind line 25 · specs/consumers/spec-studio.diagram-kinds.capability-tree.sdp.md:25
mindmap for a strict tree, with title and full id per node. Use flowchart BT with exact refines edges whenever there is repeated parentage, a cycle, an unreached band or a fold that mindmap cannot state losslessly. TreeView is an optional equivalent export of a strict tree with icons disabled.

no citation recorded

Verification

Verifier bindings

  • test:protocol.studio-capabilities · anchored · test anchor binding present · test/studio-capabilities.test.ts:89
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.capability-tree
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-capability-diagrams: places refinement occurrences and bounded branches from the capability map · anchored code · src/projections/studio/diagrams/capability.ts:101
  • impl:protocol.studio-diagram-source: escaped Mermaid flowchart and mindmap source in placed box order · anchored code · src/projections/studio/diagrams/mermaid.ts:13
  • test:protocol.studio-capabilities: test:protocol.studio-capabilities · anchored test binding · binding present · test/studio-capabilities.test.ts:89
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-capability-diagrams satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • impl:protocol.studio-diagram-source satisfies spec:consumers.spec-studio.diagram-kinds.capability-tree · anchored
  • test:protocol.studio-capabilities verifies spec:consumers.spec-studio.diagram-kinds.capability-tree · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds.capability-tree
The diagram as text
  • spec:consumers.capability-map: The capability map reads every epic and its refinement descendants
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.capability-tree: A refinement drawing follows the capability map
  • spec:consumers.spec-studio.diagram-kinds.capability-tree dependsOn spec:consumers.capability-map · declared
  • spec:consumers.spec-studio.diagram-kinds.capability-tree refines spec:consumers.spec-studio.diagram-kinds · 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
dependsOn · outgoingThe capability map reads every epic and its refinement descendants
spec:consumers.capability-map · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-capability-diagrams · places refinement occurrences and bounded branches from the capability map · src/projections/studio/diagrams/capability.ts:101 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-diagram-source · escaped Mermaid flowchart and mindmap source in placed box order · src/projections/studio/diagrams/mermaid.ts:13 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-capabilities · anchored · test/studio-capabilities.test.ts:89 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

15. A Spec set draws the architecture it touches

spec:consumers.spec-studio.diagram-kinds.scoped-architecture

A Spec set draws the architecture it touches

spec:consumers.spec-studio.diagram-kinds.scoped-architectureUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 5 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md

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

Intent
outcome
Review a Pack, slice or roadmap's realized and planned seams together while seeing exactly why each component is present.
Behavior
rule.scopeInput line 19 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:19
Read the design slice's architecture answer: components with how the slice reaches each, in words, members' satisfying code, members' referencing code or what the slice rests on; designs with their declared values, realization and comparison rows, each drawn as a planned box; uses with the unit edges behind each count and its outside mark; plannedUses; outside; and unplaced. The drawing resolves no unit to a component itself and recomputes none of them; the unplaced units remain listed apart.

no example exercises it

rule.separatePlans line 20 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:20
Draw anchored components and component designs as separate identities, even when the realization comparison joins them. Planned layer, context and uses stay declared; realized structure stays anchored; a difference is labelled rather than merged away.

no example exercises it

rule.boundary line 21 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:21
Draw only the uses boundary the supplied design-slice architecture answer includes; never traverse it in layout. Its uses includes anchored pairs between touched components and pairs with one immediate outside neighbour, marked outside: true, as spec:consumers.design-slice#rule.outsideNeighbors states. Fold supplied outside neighbours into one outside scope box per context and layer while keeping their identities and original unit edges in the text equivalent; never add pairs between two outside components. Planned uses remain separate and never increase an anchored count.

no example exercises it

rule.bound line 22 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:22
Apply the shared architecture folds by context then layer to this selected graph. If no component or planned design resolves, show the empty explanation and unassigned units instead of a blank or invented architecture.

no example exercises it

0 unkeyed rules.

Design
layout line 25 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:25
Use the architecture grid's context columns and layer bands, with the legibility child's title-first boxes, cell wrapping and local scroll. Prefix planned boxes with planned; outside-scope boxes say outside scope.
edgeWords line 26 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:26
The legend distinguishes uses (anchored), plans to use (declared) and realizes (anchored) when present. A drawing containing uses and planned uses alone carries no per-edge label. When a realization correspondence is present, label the distinct relation families beside each link or through a keyed legend; realization stays apart from uses and confers no delivery fact.
textEquivalent line 27 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:27
List each component's full id, label, layer, context and the scoped Spec and binding kind that brought it in; list unassigned units, unreadable declarations, planned-to-realized comparisons and every original uses edge.
elementIds line 28 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:28
Use diagram.<subject>.architecture.text and .architecture.arrow; context and layer folds append their encoded full key before the suffix.
mermaidKind line 29 · specs/consumers/spec-studio.diagram-kinds.scoped-architecture.sdp.md:29
block with generic component boxes and uses arrows for a purely anchored grid; use flowchart TB with explicit declared and anchored labels when planned, comparison or folded edges cannot be preserved by block syntax. Architecture icons never infer deployment meaning.

no citation recorded

Verification

Verifier bindings

  • test:protocol.studio-slice-architecture · anchored · test anchor binding present · test/studio-slice.test.ts:579
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.scoped-architecture
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-slice-architecture: selected component grid with distinct planned identities and complete unit edges · anchored code · src/projections/studio/diagrams/slice.ts:219
  • test:protocol.studio-slice-architecture: test:protocol.studio-slice-architecture · anchored test binding · binding present · test/studio-slice.test.ts:579
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-slice-architecture satisfies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · anchored
  • test:protocol.studio-slice-architecture verifies spec:consumers.spec-studio.diagram-kinds.scoped-architecture · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds.scoped-architecture
Relations of spec:consumers.spec-studio.diagram-kinds.scoped-architecturedependsOn · declaredrefines · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…consumers.spec-studio.diagram-kindsOutgoing dependsOnspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-slicespec:consumers.spec-studio.lenses.architectureThe architecture lens drawscomponents by context andlayer, the planned besidethe built…consumers.spec-studio.lenses.architecturespec:model.planned-architectureComponents are designedahead of their code…model.planned-architectureSubjectspec:consumers.spec-studio.diagram-kinds.scoped-architectureA Spec set draws thearchitecture it touches…consumers.spec-studio.diagram-kinds.scoped-architectureIncoming dependsOnspec:consumers.spec-studio.slice-pageA slice page shows a Pack'sdesign as one whole…consumers.spec-studio.slice-page
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.spec-studio.lenses.architecture · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:model.planned-architecture · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagram-kinds.scoped-architecture · declared — the scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalent
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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture · resolves
declaredNoneNone
dependsOn · outgoingspec:model.planned-architecture
spec:model.planned-architecture · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone
dependsOn · incomingA slice page shows a Pack's design as one whole
spec:consumers.spec-studio.slice-page · resolves
declaredthe scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalentNone

Bindings

Implementation binding: present

  • impl:protocol.studio-slice-architecture · selected component grid with distinct planned identities and complete unit edges · src/projections/studio/diagrams/slice.ts:219 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-slice-architecture · anchored · test/studio-slice.test.ts:579 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

16. The maturity map is drawn as a grid of counts

spec:consumers.spec-studio.diagram-kinds.maturity-picture

The maturity map is drawn as a grid of counts

spec:consumers.spec-studio.diagram-kinds.maturity-pictureUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 6 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md

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

Intent
outcome
See whether a Pack's statements match, lag or exceed its floors without a wall of member cards inside the picture.
Behavior
rule.discreteCells line 15 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:15
Draw one equal-sized cell per stated-rung and floor pair. A populated cell shows its exact count and one mark per member, up to 100 marks, beyond which it is filled solid, and links to that cell's full ordered member list; an empty cell is a faint outline with no number. matches, floor above statement and statement above floor are named once each in the legend, and the diagonal carries an outline. Floor none is distinct from idea, and unresolved members are listed apart.

no example exercises it

rule.noScore line 16 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:16
Use categorical cell position, never normalized coordinates, a quality score, area proportional to maturity, completion percentage or a recommendation to implement. Marks count members and score nothing.

no example exercises it

rule.fullMembership line 17 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:17
Every resolved member appears in exactly one cell list in authored order. The picture holds cell counts, not per-member cards. Without script every populated cell links to its already-built list and every member links to its card.

no example exercises it

rule.oneCell line 18 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:18
When every resolved member falls in one cell, one sentence before the grid names that cell's stated rung and floor with its count and links to the cell's member list, and the grid sits in a closed disclosure; when two or more cells hold members, the grid shows with no disclosure. The sentence scores nothing, and print opens the disclosure.

no example exercises it

0 unkeyed rules.

Design
matrix line 21 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:21
Rows run stated idea, scoped, defined, ready from top to bottom; columns run floor none, idea, scoped, defined, ready from left to right. The grid including axes fits the shared width budget. Empty cells show only a faint outline; the matching diagonal has a stronger outline. Relation phrases appear once in the legend.
bound line 22 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:22
The fixed categorical cells fit the shared box bound and have no edges. Membership volume does not grow the picture; complete lists follow in closed disclosures and print open. Overlong lists are never truncated.
oneCellDisclosure line 23 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:23
the disclosure that holds a one-cell grid reads Stated readiness by floor reached as its summary; the grid inside it keeps its element ids.
textEquivalent line 24 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:24
Keep the accessible table of cell counts and complete member lists as the diagram's text equivalent; identify every member by its full id, title, stated rung and floor. The axis explanation belongs to the caption.
elementIds line 25 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:25
Use diagram.<subject>.maturity.text and diagram.<subject>.maturity.cell.<stated>.<floor>; cell links target the built list, with unique member-card targets supplied by the Pack page.
mermaidKind line 26 · specs/consumers/spec-studio.diagram-kinds.maturity-picture.sdp.md:26
block with a fixed categorical grid, cell labels and counts. This is not a quadrant chart; source includes each cell's full membership as comments and names its accessible table.

no citation recorded

Verification

Verifier bindings

  • test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present · test/studio-panels.test.ts:35
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.maturity-picture
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-maturity-map: places resolved Pack members by their stated rung and floor in authored order · anchored code · src/projections/studio/pages/maturity-map.ts:7
  • test:protocol.studio-architecture-maturity-requirement: test:protocol.studio-architecture-maturity-requirement · anchored test binding · binding present · test/studio-panels.test.ts:35
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-maturity-map satisfies spec:consumers.spec-studio.diagram-kinds.maturity-picture · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.maturity-picture · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds.maturity-picture
Relations of spec:consumers.spec-studio.diagram-kinds.maturity-picturerefines · declareddependsOn · declaredOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…diagram-kindsSubjectspec:consumers.spec-studio.diagram-kinds.maturity-pictureThe maturity map is drawnas a grid of counts…diagram-kinds.maturity-pictureIncoming dependsOnspec:consumers.spec-studio.pack-page.maturity-mapA Pack page's maturity mapplaces every member by itsstated rung and its floor…pack-page.maturity-map
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture: The maturity map is drawn as a grid of counts
  • spec:consumers.spec-studio.pack-page.maturity-map: A Pack page's maturity map places every member by its stated rung and its floor
  • spec:consumers.spec-studio.diagram-kinds.maturity-picture refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.pack-page.maturity-map dependsOn spec:consumers.spec-studio.diagram-kinds.maturity-picture · declared — the map is drawn as the picture defines
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

  • spec:consumers.spec-studio.pack-page.maturity-map

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.pack-page.maturity-map
spec:consumers.spec-studio.pack-page.maturity-map · resolves
declaredthe map is drawn as the picture definesNone

Bindings

Implementation binding: present

  • impl:protocol.studio-maturity-map · places resolved Pack members by their stated rung and floor in authored order · src/projections/studio/pages/maturity-map.ts:7 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-architecture-maturity-requirement · anchored · test/studio-panels.test.ts:35 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

17. A requirement drawing separates intent from realization and verification

spec:consumers.spec-studio.diagram-kinds.requirement-trace

A requirement drawing separates intent from realization and verification

spec:consumers.spec-studio.diagram-kinds.requirement-traceUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 8 design entries · 1 pinned declaration · no decisions

Findings: no errors, no warnings

specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md

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

Intent
outcome
Read a Spec's refinement, satisfying code and verifier bindings in one picture without mistaking a declared example for a running test.
Behavior
rule.exactEdges line 16 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:16
For the Spec page's selected set, draw declared refines, declared and anchored verifies, and anchored satisfies edges incident on the set, plus anchored verifies on its declared verifying examples. Draw code references and oracle models only as their own named kinds, never as realization or successful verification.

no example exercises it

rule.claimsApart line 17 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:17
Every box and edge names its claim. A declared verifying example with no resolving test says no test binding; an anchored verifier says binding present, never passed. Missing satisfies says no satisfying binding, never unimplemented by inference through a child. Examples and decision records, which code never satisfies, carry no satisfying-binding label.

no example exercises it

rule.fold line 18 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:18
Combine arrows with the same ends, direction and claim into one labelled arrow naming every relation. Fold verifying examples together with their exclusive test bindings beyond a small readable count, naming both claims and counts. Above the shared bound or readable density, fold the largest remaining group within each band by edge kind, direction and claim, ties in that lexical order and then by band order, until it fits. A fold names its relation and claim and hides its internal identity. Keep every original edge and box in the text equivalent. If the fold still cannot fit, omit the drawing and open its text.

no example exercises it

0 unkeyed rules.

Design
placement line 21 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:21
On a Spec page the requirement drawing replaces the realization drawing under its heading; its set is the Spec, the Specs that refine it, and the examples that verify any of them.
bands line 22 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:22
Place selected non-example Specs, declared verifying examples, satisfying or referencing units, and test or oracle bindings in labelled bands. An example in the selected set always sits in the examples band, including when it also refines a selected Spec. Place Specs outside the selected set in a separate labelled band. Each node has one placement and keeps every edge. Derive each absence statement from the selected examples and recorded edge kinds, never from which bands contain boxes.
exampleFoldCount line 23 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:23
Fold more than 4 selected verifying examples, excluding the subject, with their exclusive test bindings; retain the fold only when it lowers layout height. A generic examples-band fold is named verifying examples, never refining Specs.
foldTitles line 24 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:24
Name incoming and outgoing refinement folds refining Specs and refined Specs; incoming satisfies, references, anchored verifies and models folds read satisfying units, referencing units, test bindings and oracle bindings. Every fold includes its claim and hides its internal identity.
wordsBesideStyle line 25 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:25
Box subtitles say declared Spec, anchored code, anchored test binding or anchored oracle binding; edge labels carry both the exact relation and claim. Verification modes, risk levels and assertion results are not invented.
textEquivalent line 26 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:26
List every full id and title or binding label, each binding's file and line, every exact edge with its claim and reason, and examples with no test binding. This drawing replaces the realization drawing and complements the detailed verification panels.
elementIds line 27 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:27
Use diagram.<subject>.requirement.text, .requirement.arrow and .requirement.fold.<kind>.<direction>.<claim>; when the same group occurs in multiple bands, append .band.<band-index> in the stated band order.
mermaidKind line 28 · specs/consumers/spec-studio.diagram-kinds.requirement-trace.sdp.md:28
requirementDiagram for the exact refines, satisfies and verifies subset, generic requirement nodes and element nodes for code and bindings; omit risk and verifyMethod. Serialize the original exact relations separately even when the SVG combines their arrow. Put claim words in node text and per-edge comments. Use flowchart TB with exact labels when references, models or folds require relations requirement syntax cannot express; never rename them traces.

no citation recorded

Verification

Verifier bindings

  • test:protocol.studio-architecture-maturity-requirement · anchored · test anchor binding present · test/studio-panels.test.ts:35
  • test:protocol.studio-diagram-core · anchored · test anchor binding present · test/studio-diagram-core.test.ts:37
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.diagram-kinds.requirement-trace
The diagram as text
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification · declared Spec
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values · declared Spec
  • impl:protocol.studio-requirement-diagram: folds requirement bindings by relation direction and claim and serializes exact relations · anchored code · src/projections/studio/diagrams/requirement.ts:12
  • impl:protocol.studio-requirement-view: selects Spec refiners, verifying examples and their recorded bindings · anchored code · src/projections/studio/pages/requirement-view.ts:8
  • test:protocol.studio-architecture-maturity-requirement: test:protocol.studio-architecture-maturity-requirement · anchored test binding · binding present · test/studio-panels.test.ts:35
  • test:protocol.studio-diagram-core: test:protocol.studio-diagram-core · anchored test binding · binding present · test/studio-diagram-core.test.ts:37
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • impl:protocol.studio-requirement-diagram satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • impl:protocol.studio-requirement-view satisfies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-architecture-maturity-requirement verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · anchored
  • test:protocol.studio-diagram-core verifies spec:consumers.spec-studio.diagram-kinds.requirement-trace · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.studio-requirement-view · selects Spec refiners, verifying examples and their recorded bindings · src/projections/studio/pages/requirement-view.ts:8

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.diagram-kinds.requirement-trace
Relations of spec:consumers.spec-studio.diagram-kinds.requirement-tracedependsOn · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.spec-studio.diagram-kindsThe Studio chooses diagramkinds from graph values…diagram-kindsOutgoing dependsOnspec:consumers.spec-studio.dataThe Studio renders from thereader's values and embedsonly what its script reads…dataSubjectspec:consumers.spec-studio.diagram-kinds.requirement-traceA requirement drawingseparates intent fromrealization and verification…diagram-kinds.requirement-traceIncoming dependsOnspec:consumers.spec-studio.spec-pageA Spec page shows one Specin collapsible panels, in afixed order…spec-page
The diagram as text
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.diagram-kinds: The Studio chooses diagram kinds from graph values
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace: A requirement drawing separates intent from realization and verification
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace dependsOn spec:consumers.spec-studio.data · declared
  • spec:consumers.spec-studio.diagram-kinds.requirement-trace refines spec:consumers.spec-studio.diagram-kinds · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.spec-studio.diagram-kinds.requirement-trace · declared — the Design view reads the selected set and claims the requirement drawing defines
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

  • spec:consumers.spec-studio.spec-page

    Implementing units

    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8
    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 2

  • spec:consumers.spec-studio.export

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-pack-export · src/projections/studio/pages/export-page.ts:35
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.cited-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-cited-declaration

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.core

    Implementing units

    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Distance 3

  • spec:consumers.spec-studio.export.self-contained

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-export-contained

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels.rule-coverage

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-rule-coverage

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.studio-on-ramp

    Implementing units

    • impl:protocol.studio-on-ramp · test/skills.test.ts:1693

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-on-ramp

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:consumers.spec-studio.data
spec:consumers.spec-studio.data · resolves
declaredNoneNone
refines · outgoingThe Studio chooses diagram kinds from graph values
spec:consumers.spec-studio.diagram-kinds · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredthe Design view reads the selected set and claims the requirement drawing definesNone

Bindings

Implementation binding: present

  • impl:protocol.studio-requirement-diagram · folds requirement bindings by relation direction and claim and serializes exact relations · src/projections/studio/diagrams/requirement.ts:12 · role projection · component component:protocol.projections · layer edge · context protocol
  • impl:protocol.studio-requirement-view · selects Spec refiners, verifying examples and their recorded bindings · src/projections/studio/pages/requirement-view.ts:8 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-architecture-maturity-requirement · anchored · test/studio-panels.test.ts:35 · test anchor
  • test:protocol.studio-diagram-core · anchored · test/studio-diagram-core.test.ts:37 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

18. A slice reads a Pack as one design, with the architecture it touches and what each member needs next

spec:consumers.design-slice

A slice reads a Pack as one design, with the architecture it touches and what each member needs next

spec:consumers.design-sliceUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 18 design entries · 15 pinned declarations · 2 decisions

Findings: no errors, no warnings

specs/consumers/design-slice.sdp.md

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

Features that must be reviewed together are already grouped as a Pack, and the Pack page shows each member in turn. A design pass also needs the whole at once: how the members rest on each other, which components they touch, realized or planned, which decisions and open questions bound them, and what each member needs for its next rung. Rounds of design add detail a little at a time; the floor sets how little a rung needs, and how much is enough stays a judgment the authoring guidance supports and no check makes.

The first generation kept a slice as an authored file: a list of members and the one question they answer together, a saved view for design and review that delivered nothing itself (@libar-dev/architect, formal-spec/04-tag-registry.md, the hierarchy level slice). The original design saved AI context slices per Pack, per capability and per changed Spec as files (docs/lineage/v0-design/07-spec-studio-and-projections.md §5.5). The Protocol holds the first as a Pack, its members in reading order and its framing saying what they answer together, and it refused the second: a context bundle is composed on each invocation and never saved. A design slice is therefore a reading and not an artifact. It is a Pack read whole, narrowed to one perspective's members when a pass reads for one concern, or an ordered list of Specs, composed from the graph each time, and it adds no grouping, kind, stage or gate. A Spec's planning slice reads one Spec's neighborhood; widening it hop by hop would pick a reach no one authored, so a design slice starts from the set a person chose.

The reading answers what a card-by-card page leaves a reviewer to assemble. A design that builds on existing code says so through its own dependsOn or refines to the Spec that code satisfies, so the architecture a design ahead of its code will touch is read from those relations and the anchors of the Specs they name. The first adopter asked for the same separation: the design under review apart from the contracts and decisions it rests on, and the outside Spec whose rung holds a member shown at the boundary with what it holds (libar-platform/docs/feedback/sdp-feedback-02.md, items 11 and 12).

Intent
actor
A person or an agent running a design pass over features that must be reviewed together.
problem
The Pack page reads member by member, so a reviewer assembles the dependency order, the touched architecture and the open decisions by hand before judging the design as a whole.
outcome
Read a Pack as one design slice: its members and their relations, the components they touch, realized and planned, the decisions and open questions that bound them, and what each member needs for its next rung.
value
A design pass judges the whole before its parts, starting from the members others rest on, and sees how much design each member carries beside its rung without a score.
Behavior
rule.readingNotArtifact line 48 · specs/consumers/design-slice.sdp.md:48
A design slice is a reading of a set of Specs that a catalog recipe composes from the graph on each invocation; it is never authored, saved or committed, it adds no grouping, namespace, kind, stage or gate, and reading it records nothing.

no example exercises it

rule.scope line 49 · specs/consumers/design-slice.sdp.md:49
A slice takes one scope: a Pack, its resolved members read in authored order, or an ordered list of Spec ids; a Pack scope may be narrowed to an ordered subset of its members, such as the members the perspective filter selects, and then says that it is a subset.

spec:consumers.design-slice.chain · enabled

rule.restsOn line 50 · specs/consumers/design-slice.sdp.md:50
Inside the slice a member rests on each other member it names by refines, dependsOn, constrainedBy or decidedBy, except a refines to a member that names it back by one of the other three, as the statement queue reads them; every relation of those four types between two members is listed with its type, its reason and whether it orders, so a reading tells an ordering link from a relation that orders nothing.

spec:consumers.design-slice.decision-backlink · enabled

rule.depth line 51 · specs/consumers/design-slice.sdp.md:51
A member that rests on no other member has depth 1, as the statement queue's rounds start at 1, and any other member has the depth after the deepest member it rests on; members that reach each other through those links form a cycle, share the depth after the deepest member outside the cycle that any of them rests on, and are listed with one closed path, and the slice refuses nothing.

spec:consumers.design-slice.chain · enabled, spec:consumers.design-slice.decision-backlink · enabled, spec:consumers.design-slice.dependency-cycle · enabled

rule.examplesFold line 52 · specs/consumers/design-slice.sdp.md:52
An example member folds into the member it refines when that refines is its only relation of the four types, in either direction, inside the slice or across its boundary: it is listed among that member's example members and keeps its own row, with its own stated rung, floor reached, stated next rung and holds, and folding lends the member none of them; an example with any other such relation is a member like any other.

spec:consumers.design-slice.folded-example · enabled, spec:consumers.design-slice.independent-example · enabled

rule.memberColumns line 53 · specs/consumers/design-slice.sdp.md:53
Each member carries its stated rung, the floor reached, its stated next rung with the clauses that hold it, its design columns, its rule count as rule coverage counts it, its verifiers and verifying examples with how many are enabled, the units that implement and reference it, and the components those units belong to; the columns are counts and lists beside the rung, never a score, a verdict or a rung.

spec:consumers.design-slice.chain · enabled, spec:consumers.design-slice.folded-example · enabled

rule.boundary line 54 · specs/consumers/design-slice.sdp.md:54
The slice's boundary is built over its members as Pack design builds a Pack's, so a whole Pack's slice has the Pack's boundary; each Spec the slice rests on also carries the floor it reaches and the members whose stated next rung it holds, and a Pack member left out of a narrowed slice is marked as in the Pack.

spec:consumers.design-slice.independent-example · enabled, spec:consumers.design-slice.outside-holding · enabled

rule.touchedComponents line 55 · specs/consumers/design-slice.sdp.md:55
The components a slice touches are the anchored components it reaches three ways, each named on the component's row and never merged: a unit that satisfies or references a member belongs to it; a unit that satisfies a Spec the slice rests on belongs to it; or a member component design names it.

spec:consumers.design-slice.component-absent · enabled, spec:consumers.design-slice.component-differing · enabled, spec:consumers.design-slice.component-matching · enabled, spec:consumers.design-slice.component-unreadable · enabled, spec:consumers.design-slice.component-unrelated · enabled, spec:consumers.design-slice.outside-satisfied · enabled, spec:consumers.design-slice.outside-unbound · enabled

rule.componentDesigns line 56 · specs/consumers/design-slice.sdp.md:56
Every member that is a component design, as the planned-architecture convention selects it, is its own row whether or not code realizes it: the component it names, the layer, context, role and uses it declares, whether an anchor holds that component, whether that anchor satisfies the design, and the realization comparison's differing and unreadable rows for it; a declared value never stands in for an anchored one, nor an anchored value for a declared one.

spec:consumers.design-slice.component-absent · enabled, spec:consumers.design-slice.component-differing · enabled, spec:consumers.design-slice.component-matching · enabled, spec:consumers.design-slice.component-unreadable · enabled, spec:consumers.design-slice.component-unrelated · enabled

rule.touchedUses line 57 · specs/consumers/design-slice.sdp.md:57
Between touched components the slice lists the anchored uses aggregated to component pairs, as the architecture map counts them, a use within one component left out, each pair with the unit edges behind its count; each component a member design declares in uses is a planned use of that design, listed apart from the anchored pairs and never added to their counts.

spec:consumers.design-slice.component-absent · enabled, spec:consumers.design-slice.component-differing · enabled, spec:consumers.design-slice.component-matching · enabled, spec:consumers.design-slice.component-unreadable · enabled, spec:consumers.design-slice.component-unrelated · enabled

rule.outsideNeighbors line 58 · specs/consumers/design-slice.sdp.md:58
A component one uses step from a touched component, in either direction, or named in a member design's uses, that the slice does not touch is listed as outside the slice with how it is reached, and its anchored pairs with touched components are listed and marked outside; the slice reaches no further, and outside components and pairs are counted apart from the touched ones.

spec:consumers.design-slice.component-absent · enabled, spec:consumers.design-slice.component-differing · enabled, spec:consumers.design-slice.component-matching · enabled, spec:consumers.design-slice.component-unreadable · enabled, spec:consumers.design-slice.component-unrelated · enabled, spec:consumers.design-slice.outside-components · enabled, spec:consumers.design-slice.outside-satisfied · enabled

rule.unplaced line 59 · specs/consumers/design-slice.sdp.md:59
A unit that implements or references a member and belongs to no component is listed apart, so no binding drops out of the reading.

no example exercises it

rule.notDownstream line 60 · specs/consumers/design-slice.sdp.md:60
The slice does not count the code of Specs that rest on it: that code follows a change to the slice, and design-change impact reads it; a component that uses a touched component appears only as an outside neighbor.

spec:consumers.design-slice.outside-satisfied · enabled

rule.decisionsInScope line 61 · specs/consumers/design-slice.sdp.md:61
The decisions in scope are the decision members and every decision a member names through decidedBy, each with its stated rung, the floor reached, whether it is a member, the members it shapes, the decisions it refines and supersedes, and its open and blocking question counts.

spec:consumers.design-slice.decision-backlink · enabled

rule.questionsInScope line 62 · specs/consumers/design-slice.sdp.md:62
The open questions in scope are those of every member and of every decision in scope, and the blocking questions of every Spec outside the slice that holds a member's stated next rung, blocking questions first; each carries its address, its fields and the members whose stated next rung its Spec holds.

spec:consumers.design-slice.outside-holding · enabled

rule.noDesignVerdict line 63 · specs/consumers/design-slice.sdp.md:63
The slice shows how much design each member carries and never whether it is enough: it reports no over- or under-designed member, no ratio of design to rung and no finding, because how much to write is the authoring guidance's judgment and checks police conformance and honesty, never content quality.

no example exercises it

rule.graphOnly line 64 · specs/consumers/design-slice.sdp.md:64
The slice reads declared relations, anchored bindings and component designs only; it infers no dependency, component or decision from prose, paths, imports or names.

spec:consumers.design-slice.outside-unbound · enabled

rule.orderAdvisory line 65 · specs/consumers/design-slice.sdp.md:65
Depth gives a reading order, the members others rest on first; it records, schedules and gates nothing, and a member read or designed out of that order is never a finding.

spec:consumers.design-slice.dependency-cycle · enabled

0 unkeyed rules.

Verifying examples

Members rest on a chain · spec:consumers.design-slice.chain · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the members read in depth order {order: "spec:probe.base, spec:probe.design, spec:probe.top"}

Open example

An unanchored component design stays visible · spec:consumers.design-slice.component-absent · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "no anchor holds"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "unrealized"} with {differing: 0} differing and {unreadable: 0} unreadable rows

Open example

A realized component keeps its differing layer and uses apart · spec:consumers.design-slice.component-differing · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, with a differing layer and uses"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 2} differing and {unreadable: 0} unreadable rows

Open example

A realized component matches its declared values · spec:consumers.design-slice.component-matching · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 0} differing and {unreadable: 0} unreadable rows

Open example

An unreadable declared layer stays visible · spec:consumers.design-slice.component-unreadable · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, with an unreadable layer"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 0} differing and {unreadable: 1} unreadable rows

Open example

An anchor alone does not realize a component design · spec:consumers.design-slice.component-unrelated · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "unrealized"} with {differing: 0} differing and {unreadable: 0} unreadable rows

Open example

A shaping decision comes before its member · spec:consumers.design-slice.decision-backlink · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the members read in depth order {order: "spec:probe.base, spec:probe.design, spec:probe.top"}

Open example

A cycle shares a depth · spec:consumers.design-slice.dependency-cycle · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include two members that depend on each other"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 1} cycles and {exampleMembers: 0} folded example members

Open example

An example folds without lending its readiness · spec:consumers.design-slice.folded-example · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include an example that refines a member"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 0} cycles and {exampleMembers: 1} folded example members

Open example

An example with its own dependency stays unfolded · spec:consumers.design-slice.independent-example · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include an example that refines a member and depends on an outside Spec"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 0} cycles and {exampleMembers: 0} folded example members

Open example

Outside components stop at the touched components' neighbors · spec:consumers.design-slice.outside-components · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the outside components are {outsideComponents: "component:probe.neighbor"}

Open example

An outside prerequisite names the member it holds · spec:consumers.design-slice.outside-holding · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "stated below defined"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the outside Spec holds {held: "spec:probe.base"}

Open example

A prerequisite reaches its satisfying component · spec:consumers.design-slice.outside-satisfied · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the touched components are {components: "component:probe.dependency, component:probe.designed"}, {throughRestsOn: 1} of them reached through what the slice rests on

Open example

An unbound prerequisite invents no component · spec:consumers.design-slice.outside-unbound · ready floor ready

Executable Spec

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the touched components are {components: "component:probe.designed"}, {throughRestsOn: 0} of them reached through what the slice rests on

Open example

Example space

Given a probe Pack whose members {structure:"rest on each other in a chain"|"include a decision that refines the member it shapes"|"include two members that depend on each other"|"include an example that refines a member"|"include an example that refines a member and depends on an outside Spec"}
Given one member depends on an outside Spec {outside:"that a component's unit satisfies"|"that no code satisfies"|"stated below defined"}
Given one member is a component design whose component {anchor:"no anchor holds"|"an anchor holds without satisfying the design"|"an anchor satisfies, matching every declared value"|"an anchor satisfies, with a differing layer and uses"|"an anchor satisfies, with an unreadable layer"}
When the design slice runs over the probe Pack
Then the members read in depth order {order:string}
Then the slice reports {cycles:number} cycles and {exampleMembers:number} folded example members
Then the touched components are {components:string}, {throughRestsOn:number} of them reached through what the slice rests on
Then the member design reads {realized:"realized"|"unrealized"} with {differing:number} differing and {unreadable:number} unreadable rows
Then the outside components are {outsideComponents:string}
Then the outside Spec holds {held:string}
Design
sliceRecipe line 69 · specs/consumers/design-slice.sdp.md:69
recipe 54, the design slice, takes exactly one scope, params.pack or params.specs, an optional params.members beside pack, and an optional params.detail; an unknown parameter name returns { unknownParams, accepts } alone, and any input #design.sliceDiagnostics refuses returns { diagnostics } and no slice.
sliceDiagnostics line 70 · specs/consumers/design-slice.sdp.md:70
the checks run in this order and every failure is kept, a check that reads an earlier value being skipped when that value failed: a detail that is present and neither a boolean nor a list of strings, null included, gives { scope: "detail", problem: "Expected true, false or a list of member ids." }; neither or both of pack and specs gives { scope: "scope", problem: "Supply exactly one of pack or specs." }; a pack that is not a string naming a Pack gives { scope: "pack", problem: "Pack does not resolve." }; beside a resolved Pack, a members that is not a non-empty list of distinct strings gives { scope: "members", problem: "Expected a non-empty list of distinct member ids." }, and otherwise each id that is no resolved member gives { scope: <the id>, problem: "Not a resolved member of the Pack." } in list order; a specs that is not a non-empty list of distinct strings gives { scope: "specs", problem: "Expected a non-empty list of distinct Spec ids." }, and otherwise each id the graph does not hold gives { scope: <the id>, problem: "Spec does not resolve." } in list order, as the context bundle names an unresolved id; and a members beside specs gives { scope: "members", problem: "members narrows only a Pack scope." }.
sliceDetail line 71 · specs/consumers/design-slice.sdp.md:71
params.detail is absent or false for the summary, true for every row in full, or a list of member ids for full rows of those members beside summary rows of the rest, an id that is no member adding { id, reason: "not-member" } to the slice's diagnostics, as Pack design reads it; a summary keeps totals whole and adds leftOut, one line for each kind of detail it omits.

no citation recorded

sliceAnswer line 72 · specs/consumers/design-slice.sdp.md:72
{ scope, totals, members, structure, boundary, architecture, decisions, questions }, where scope is { pack, title, framing, subset, members, unresolved } for a Pack, unresolved naming the manifest ids the graph does not hold, and { specs } for a Spec list.

no citation recorded

sliceTotals line 73 · specs/consumers/design-slice.sdp.md:73
{ members, exampleMembers, relations, depth, cycles, heldBelowNextRung, waitingForAuthor, restsOn, holdingOutside, restedOnBy, verifiedBy, supersededBy, components: { touched, throughMembers, throughRestsOn, throughDesigns, outside }, designs: { total, realized, matching, unrealized, differing, unreadable }, componentUses: { inside, outside, planned }, decisions, decisionsBelowReady, openQuestions, blockingQuestions }, where exampleMembers counts folded example members, depth is the deepest member's depth, holdingOutside counts the outside Specs that hold a member, heldBelowNextRung and waitingForAuthor count as Pack design counts them, components.touched counts distinct anchored components however reached and components.outside the outside components, designs counts member designs as the realization comparison's totals count designs, and componentUses counts the anchored pairs inside, the anchored pairs marked outside, and the planned uses.

no citation recorded

memberRow line 74 · specs/consumers/design-slice.sdp.md:74
{ id, title, specKind, altitude, statedReadiness, floorReached, statedNextRung, holds, depth, restsOn, restedOnBy, exampleOf, exampleMembers, design, rules: { total, keyed }, examples: { total, enabled }, verifiers: { total, enabled }, implementedBy, referencedBy, components } in the scope's order, where holds lists the stated-next-rung failures as [{ clauseId, description, targets: [{ type, id, statedReadiness }] }], restsOn and restedOnBy are member ids, exampleOf is the member an example member refines or null, exampleMembers the folded example members, design is the design columns as { entries, declarations, openQuestions, blockingQuestions, decisions } counts, examples the verifying examples bound to the member wherever they sit, apart from exampleMembers, rules.total is the keyed and unkeyed rule and flow entries of the primary behavior owner, implementedBy and referencedBy are unit ids, and components the ids of the components those units belong to.

no citation recorded

memberSummary line 75 · specs/consumers/design-slice.sdp.md:75
{ id, specKind, statedReadiness, floorReached, statedNextRung, holds, depth, restsOn, exampleOf, design, rules, implementedBy, referencedBy } is a member's summary row, with holds as [{ clauseId, targets: [id] }], as Pack design's summary reads it, and implementedBy and referencedBy as counts.

no citation recorded

structureShape line 76 · specs/consumers/design-slice.sdp.md:76
{ edges: [{ from, to, type, orders, reason }], cycles: [{ members, cycle }], unresolved: [{ from, to, type, reason }] }, one edge per declared typed relation between two members, sorted by from, type and to, orders false only for a refines the target names back, and reason present only when the relation states one; cycles in the statement queue's cycle row; a summary drops each edge's reason; unresolved keeps unresolved outgoing typed targets apart from the resolved boundary, with no invented title or rung.

no citation recorded

boundaryRow line 77 · specs/consumers/design-slice.sdp.md:77
Pack design's boundary row { id, title, statedReadiness, implemented, via } with a via that has relation reasons also carrying reasons: [{ member, reason }] for those relations, and with specKind, floorReached, holds, the member ids whose stated-next-rung failures name it as a target, empty outside restsOn, and inPack: true on a Pack member left out of a narrowed slice, in { restsOn, restedOnBy, verifiedBy, supersededBy } sorted by id; a summary keeps { id, statedReadiness, holds } and inPack.
componentRow line 78 · specs/consumers/design-slice.sdp.md:78
{ id, label, layer, context, members: { satisfies, references }, restsOn, designs } sorted by id, one per touched anchored component, where members.satisfies and members.references are the members whose units belong to it by each binding, restsOn the outside Specs the slice rests on whose satisfying units belong to it, designs the member component designs naming it, and label, layer and context come from the architecture map's component row.

no citation recorded

componentSummary line 79 · specs/consumers/design-slice.sdp.md:79
{ id, layer, context, members: { satisfies, references }, restsOn, designs }, each list replaced by its count and label left out.

no citation recorded

designRow line 80 · specs/consumers/design-slice.sdp.md:80
{ spec, componentId, layer, context, role, uses, anchorExists, realized, differing, unreadable } sorted by spec, one per member component design, where the declared values are read as spec:model.planned-architecture reads them, null when unstated or unreadable and uses an empty list for none, realized holds as spec:model.planned-architecture says, differing lists the comparison's { field, planned, realized } rows for the design and unreadable its { key, value } rows; a summary keeps { spec, componentId, anchorExists, realized } and the two lists as counts.

no citation recorded

componentUse line 81 · specs/consumers/design-slice.sdp.md:81
{ from, to, count, outside, units } sorted by from and to, one per pair of components with an anchored uses between them and at least one end touched, where count is the architecture map's count of unit uses edges for the pair, units lists those edges as { from, to, claim } from the architecture map's usesEdges, and outside is true when one end is not touched; a summary drops units.

no citation recorded

plannedUse line 82 · specs/consumers/design-slice.sdp.md:82
{ design, from, to, outside } sorted by from, to and design, one per component a member design declares in uses other than its own, where from is the component the design names and outside is true when to is neither touched nor named by a member design.

no citation recorded

outsideRow line 83 · specs/consumers/design-slice.sdp.md:83
{ id, label, layer, context, anchored, reachedBy } sorted by id, where reachedBy lists, in this order, touchedUses when a touched component uses it, usesTouched when it uses a touched component, and plannedUse when a member design declares it, and anchored says whether an anchor holds it; a summary keeps { id, anchored, reachedBy }.

no citation recorded

architectureShape line 84 · specs/consumers/design-slice.sdp.md:84
{ components, designs, uses, plannedUses, outside, unplaced }, where unplaced lists { unit, member, via }, via being satisfies or references, for each unit of a member that belongs to no component.

no citation recorded

decisionRow line 85 · specs/consumers/design-slice.sdp.md:85
{ id, title, statedReadiness, floorReached, member, shapes, refines, supersedes, supersededBy, openQuestions, blockingQuestions } sorted by id, where shapes lists the members that name the decision through decidedBy and the next three lists come from its decision register row; a summary keeps { id, statedReadiness, member, shapes } with shapes as a count.

no citation recorded

questionRow line 86 · specs/consumers/design-slice.sdp.md:86
{ address, spec, origin, index, question, blocking, deferral, decider, links, provisional, trigger, holds } with the open-question register's fields, where origin is member, decision or restsOn, index the question's authored position from 0, address null without a key, and holds the members whose stated next rung its Spec holds when the question blocks, its own Spec first when that Spec is a member held by the floor's blocking-question clause, empty for a non-blocking question; rows sort blocking first, then by how many members they hold, then by Spec id and position; a summary keeps a non-blocking question as { address, spec, index }.

no citation recorded

Verification

Verifier bindings

Example space

  • structure · "rest on each other in a chain" | "include a decision that refines the member it shapes" | "include two members that depend on each other" | "include an example that refines a member" | "include an example that refines a member and depends on an outside Spec" · declared by a probe Pack whose members {structure}
  • outside · "that a component's unit satisfies" | "that no code satisfies" | "stated below defined" · declared by one member depends on an outside Spec {outside}
  • anchor · "no anchor holds" | "an anchor holds without satisfying the design" | "an anchor satisfies, matching every declared value" | "an anchor satisfies, with a differing layer and uses" | "an anchor satisfies, with an unreadable layer" · declared by one member is a component design whose component {anchor}

Bound points

Examplestructureoutsideanchor
spec:consumers.design-slice.chain"rest on each other in a chain""that no code satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.component-absent"rest on each other in a chain""that a component's unit satisfies""no anchor holds"
spec:consumers.design-slice.component-differing"rest on each other in a chain""that a component's unit satisfies""an anchor satisfies, with a differing layer and uses"
spec:consumers.design-slice.component-matching"rest on each other in a chain""that a component's unit satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.component-unreadable"rest on each other in a chain""that a component's unit satisfies""an anchor satisfies, with an unreadable layer"
spec:consumers.design-slice.component-unrelated"rest on each other in a chain""that a component's unit satisfies""an anchor holds without satisfying the design"
spec:consumers.design-slice.decision-backlink"include a decision that refines the member it shapes""that no code satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.dependency-cycle"include two members that depend on each other""that no code satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.folded-example"include an example that refines a member""that no code satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.independent-example"include an example that refines a member and depends on an outside Spec""that no code satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.outside-components"include a decision that refines the member it shapes""that a component's unit satisfies""an anchor satisfies, matching every declared value"
spec:consumers.design-slice.outside-holding"include a decision that refines the member it shapes""stated below defined""an anchor holds without satisfying the design"
spec:consumers.design-slice.outside-satisfied"include a decision that refines the member it shapes""that a component's unit satisfies""an anchor holds without satisfying the design"
spec:consumers.design-slice.outside-unbound"include a decision that refines the member it shapes""that no code satisfies""an anchor holds without satisfying the design"

Oracle binding: present · oracle:protocol.design-slice · test/self-hosting-design-slice.test.ts:549

Coverage

Unbound

  • structure: None
  • outside: None
  • anchor: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.design-slice

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.design-slicerefines, verifies · declaredsatisfies · anchoredreferences · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-slicedeclared Specspec:consumers.spec-studio.slice-pageA slice page shows a Pack'sdesign as one whole…consumers.spec-studio.slice-pagedeclared SpecDeclared verifying examples14 verifying examples · declared; 14 test bindings · anchored, folded14 verifying examples ·declared14 test bindings · anchored ·foldedSatisfying or referencingunitsimpl:protocol.design-slice-reciperealizes the design slicein the shipped recipecatalog…protocol.design-slice-recipeanchored codeimpl:protocol.studio-slice-answerfull design slice answerconsumed by the page anddrawings…protocol.studio-slice-answeranchored codeimpl:protocol.studio-slice-pagedesign slice summaries,member needs, architecturecomparisons and boundarytablesimpl:protocol.studio-slice-pageanchored codeTest or oracle bindingsoracle:protocol.design-sliceoracle:protocol.design-sliceoracle:protocol.design-sliceanchored oracle bindingtest:protocol.design-slicetest:protocol.design-slicetest:protocol.design-sliceanchored test binding ·binding presenttest:protocol.studio-slice-pagetest:protocol.studio-slice-pagetest:protocol.studio-slice-pageanchored test binding ·binding presentOutside the selected setspec:consumers.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designdeclared Specspec:consumers.spec-studioThe Spec Studio is a staticHTML workbench over the onegraph…consumers.spec-studiodeclared Spec
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • spec:consumers.design-slice.chain: Members rest on a chain · declared Spec
  • spec:consumers.design-slice.component-absent: An unanchored component design stays visible · declared Spec
  • spec:consumers.design-slice.component-differing: A realized component keeps its differing layer and uses apart · declared Spec
  • spec:consumers.design-slice.component-matching: A realized component matches its declared values · declared Spec
  • spec:consumers.design-slice.component-unreadable: An unreadable declared layer stays visible · declared Spec
  • spec:consumers.design-slice.component-unrelated: An anchor alone does not realize a component design · declared Spec
  • spec:consumers.design-slice.decision-backlink: A shaping decision comes before its member · declared Spec
  • spec:consumers.design-slice.dependency-cycle: A cycle shares a depth · declared Spec
  • spec:consumers.design-slice.folded-example: An example folds without lending its readiness · declared Spec
  • spec:consumers.design-slice.independent-example: An example with its own dependency stays unfolded · declared Spec
  • spec:consumers.design-slice.outside-components: Outside components stop at the touched components' neighbors · declared Spec
  • spec:consumers.design-slice.outside-holding: An outside prerequisite names the member it holds · declared Spec
  • spec:consumers.design-slice.outside-satisfied: A prerequisite reaches its satisfying component · declared Spec
  • spec:consumers.design-slice.outside-unbound: An unbound prerequisite invents no component · declared Spec
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole · declared Spec
  • spec:consumers.pack-design: The Pack context carries the Pack's design · declared Spec
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph · declared Spec
  • impl:protocol.design-slice-recipe: realizes the design slice in the shipped recipe catalog · anchored code · test/self-hosting-design-slice.test.ts:148
  • impl:protocol.studio-slice-answer: full design slice answer consumed by the page and drawings · anchored code · src/projections/studio/slice-answer.ts:1
  • impl:protocol.studio-slice-page: design slice summaries, member needs, architecture comparisons and boundary tables · anchored code · src/projections/studio/pages/slice-page.ts:25
  • oracle:protocol.design-slice: oracle:protocol.design-slice · anchored oracle binding · test/self-hosting-design-slice.test.ts:549
  • test:protocol.design-slice: test:protocol.design-slice · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:155
  • test:protocol.design-slice.chain: test:protocol.design-slice.chain · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:768
  • test:protocol.design-slice.component-absent: test:protocol.design-slice.component-absent · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:798
  • test:protocol.design-slice.component-differing: test:protocol.design-slice.component-differing · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:816
  • test:protocol.design-slice.component-matching: test:protocol.design-slice.component-matching · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:810
  • test:protocol.design-slice.component-unreadable: test:protocol.design-slice.component-unreadable · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:822
  • test:protocol.design-slice.component-unrelated: test:protocol.design-slice.component-unrelated · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:804
  • test:protocol.design-slice.decision-backlink: test:protocol.design-slice.decision-backlink · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:774
  • test:protocol.design-slice.dependency-cycle: test:protocol.design-slice.dependency-cycle · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:780
  • test:protocol.design-slice.folded-example: test:protocol.design-slice.folded-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:786
  • test:protocol.design-slice.independent-example: test:protocol.design-slice.independent-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:792
  • test:protocol.design-slice.outside-components: test:protocol.design-slice.outside-components · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:762
  • test:protocol.design-slice.outside-holding: test:protocol.design-slice.outside-holding · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:840
  • test:protocol.design-slice.outside-satisfied: test:protocol.design-slice.outside-satisfied · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:828
  • test:protocol.design-slice.outside-unbound: test:protocol.design-slice.outside-unbound · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:834
  • test:protocol.studio-slice-page: test:protocol.studio-slice-page · anchored test binding · binding present · test/studio-slice.test.ts:132
  • spec:consumers.design-slice refines spec:consumers.pack-design · declared — a slice reads a Pack's design as one whole, with its architecture and open decisions beside it
  • spec:consumers.design-slice.chain refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.chain verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound verifies spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • spec:consumers.spec-studio.slice-page refines spec:consumers.spec-studio · declared
  • impl:protocol.design-slice-recipe satisfies spec:consumers.design-slice · anchored
  • impl:protocol.studio-slice-answer references spec:consumers.design-slice · anchored
  • impl:protocol.studio-slice-page satisfies spec:consumers.spec-studio.slice-page · anchored
  • oracle:protocol.design-slice models spec:consumers.design-slice · anchored
  • test:protocol.design-slice verifies spec:consumers.design-slice · anchored
  • test:protocol.design-slice.chain verifies spec:consumers.design-slice.chain · anchored
  • test:protocol.design-slice.component-absent verifies spec:consumers.design-slice.component-absent · anchored
  • test:protocol.design-slice.component-differing verifies spec:consumers.design-slice.component-differing · anchored
  • test:protocol.design-slice.component-matching verifies spec:consumers.design-slice.component-matching · anchored
  • test:protocol.design-slice.component-unreadable verifies spec:consumers.design-slice.component-unreadable · anchored
  • test:protocol.design-slice.component-unrelated verifies spec:consumers.design-slice.component-unrelated · anchored
  • test:protocol.design-slice.decision-backlink verifies spec:consumers.design-slice.decision-backlink · anchored
  • test:protocol.design-slice.dependency-cycle verifies spec:consumers.design-slice.dependency-cycle · anchored
  • test:protocol.design-slice.folded-example verifies spec:consumers.design-slice.folded-example · anchored
  • test:protocol.design-slice.independent-example verifies spec:consumers.design-slice.independent-example · anchored
  • test:protocol.design-slice.outside-components verifies spec:consumers.design-slice.outside-components · anchored
  • test:protocol.design-slice.outside-holding verifies spec:consumers.design-slice.outside-holding · anchored
  • test:protocol.design-slice.outside-satisfied verifies spec:consumers.design-slice.outside-satisfied · anchored
  • test:protocol.design-slice.outside-unbound verifies spec:consumers.design-slice.outside-unbound · anchored
  • test:protocol.studio-slice-page verifies spec:consumers.spec-studio.slice-page · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

  • spec:decisions.anchor-binding-grain

    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.

  • spec:decisions.architectural-annotation

    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.

Runtime
  • impl:protocol.design-slice-recipe · realizes the design slice in the shipped recipe catalog · test/self-hosting-design-slice.test.ts:148

    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:consumers.design-slice
The diagram as text
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.context-bundle: A context bundle is composed per invocation within a stated budget
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.chain: Members rest on a chain
  • spec:consumers.design-slice.component-absent: An unanchored component design stays visible
  • spec:consumers.design-slice.component-differing: A realized component keeps its differing layer and uses apart
  • spec:consumers.design-slice.component-matching: A realized component matches its declared values
  • spec:consumers.design-slice.component-unreadable: An unreadable declared layer stays visible
  • spec:consumers.design-slice.component-unrelated: An anchor alone does not realize a component design
  • spec:consumers.design-slice.decision-backlink: A shaping decision comes before its member
  • spec:consumers.design-slice.dependency-cycle: A cycle shares a depth
  • spec:consumers.design-slice.folded-example: An example folds without lending its readiness
  • spec:consumers.design-slice.independent-example: An example with its own dependency stays unfolded
  • spec:consumers.design-slice.outside-components: Outside components stop at the touched components' neighbors
  • spec:consumers.design-slice.outside-holding: An outside prerequisite names the member it holds
  • spec:consumers.design-slice.outside-satisfied: A prerequisite reaches its satisfying component
  • spec:consumers.design-slice.outside-unbound: An unbound prerequisite invents no component
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:consumers.readiness-planner: The readiness planner orders the statements a person can make
  • spec:consumers.review-perspectives: A Pack is read from a named perspective
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
  • spec:decisions.anchor-binding-grain: Bindings are optional, plural, and may reference a design
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it
  • spec:consumers.design-slice decidedBy spec:decisions.anchor-binding-grain · declared — the code a design builds on is reached through the design's own relations, never through a reference from that code
  • spec:consumers.design-slice decidedBy spec:decisions.architectural-annotation · declared — a touched component carries the layer and context its anchor states
  • spec:consumers.design-slice dependsOn spec:consumers.agent-surface.design-recipes · declared — decisions in scope read the decision register's rows
  • spec:consumers.design-slice dependsOn spec:consumers.context-bundle · declared — a slice takes its scope as the bundle does, and builds a Spec list's boundary the same way
  • spec:consumers.design-slice dependsOn spec:consumers.readiness-planner · declared — members rest on each other as the statement queue reads the four typed relations, and a cycle reports in its shape
  • spec:consumers.design-slice dependsOn spec:consumers.review-perspectives · declared — a slice read for one concern takes the members a perspective selects
  • spec:consumers.design-slice dependsOn spec:model.open-question-fields · declared — each question in scope carries its fields
  • spec:consumers.design-slice dependsOn spec:model.planned-architecture · declared — planned components and differing designs come from the realization comparison
  • spec:consumers.design-slice dependsOn spec:model.rule-keys · declared — each member's rule count is the count rule coverage reports
  • spec:consumers.design-slice refines spec:consumers.pack-design · declared — a slice reads a Pack's design as one whole, with its architecture and open decisions beside it
  • spec:consumers.spec-studio.diagram-kinds.dependency dependsOn spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.design-slice · declared — the page renders the slice's answer
  • spec:consumers.design-slice.chain refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound refines spec:consumers.design-slice · declared
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • spec:consumers.design-slice.chain verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.decision-backlink verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied verifies spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound verifies spec:consumers.design-slice · 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.pack-design · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.design-recipes · stated ready, floor ready
  • dependsOn · spec:consumers.context-bundle · stated ready, floor ready
  • dependsOn · spec:consumers.readiness-planner · stated ready, floor ready
  • dependsOn · spec:consumers.review-perspectives · stated ready, floor ready
  • dependsOn · spec:model.open-question-fields · stated ready, floor ready
  • dependsOn · spec:model.planned-architecture · stated ready, floor ready
  • dependsOn · spec:model.rule-keys · stated ready, floor ready
  • decidedBy · spec:decisions.anchor-binding-grain · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

Distance 1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.anchor-binding-grain
spec:decisions.anchor-binding-grain · resolves
declaredthe code a design builds on is reached through the design's own relations, never through a reference from that codeNone
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declareda touched component carries the layer and context its anchor statesNone
dependsOn · outgoingspec:consumers.agent-surface.design-recipes
spec:consumers.agent-surface.design-recipes · resolves
declareddecisions in scope read the decision register's rowsNone
dependsOn · outgoingspec:consumers.context-bundle
spec:consumers.context-bundle · resolves
declareda slice takes its scope as the bundle does, and builds a Spec list's boundary the same wayNone
dependsOn · outgoingspec:consumers.readiness-planner
spec:consumers.readiness-planner · resolves
declaredmembers rest on each other as the statement queue reads the four typed relations, and a cycle reports in its shapeNone
dependsOn · outgoingspec:consumers.review-perspectives
spec:consumers.review-perspectives · resolves
declareda slice read for one concern takes the members a perspective selectsNone
dependsOn · outgoingspec:model.open-question-fields
spec:model.open-question-fields · resolves
declaredeach question in scope carries its fieldsNone
dependsOn · outgoingspec:model.planned-architecture
spec:model.planned-architecture · resolves
declaredplanned components and differing designs come from the realization comparisonNone
dependsOn · outgoingspec:model.rule-keys
spec:model.rule-keys · resolves
declaredeach member's rule count is the count rule coverage reportsNone
refines · outgoingspec:consumers.pack-design
spec:consumers.pack-design · resolves
declareda slice reads a Pack's design as one whole, with its architecture and open decisions beside itNone
dependsOn · incomingA dependency drawing shows the declared footing of a Spec set
spec:consumers.spec-studio.diagram-kinds.dependency · resolves
declaredNoneNone
dependsOn · incomingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone
dependsOn · incomingA slice page shows a Pack's design as one whole
spec:consumers.spec-studio.slice-page · resolves
declaredthe page renders the slice's answerNone
refines · incomingMembers rest on a chain
spec:consumers.design-slice.chain · resolves
declaredNoneNone
refines · incomingAn unanchored component design stays visible
spec:consumers.design-slice.component-absent · resolves
declaredNoneNone
refines · incomingA realized component keeps its differing layer and uses apart
spec:consumers.design-slice.component-differing · resolves
declaredNoneNone
refines · incomingA realized component matches its declared values
spec:consumers.design-slice.component-matching · resolves
declaredNoneNone
refines · incomingAn unreadable declared layer stays visible
spec:consumers.design-slice.component-unreadable · resolves
declaredNoneNone
refines · incomingAn anchor alone does not realize a component design
spec:consumers.design-slice.component-unrelated · resolves
declaredNoneNone
refines · incomingA shaping decision comes before its member
spec:consumers.design-slice.decision-backlink · resolves
declaredNoneNone
refines · incomingA cycle shares a depth
spec:consumers.design-slice.dependency-cycle · resolves
declaredNoneNone
refines · incomingAn example folds without lending its readiness
spec:consumers.design-slice.folded-example · resolves
declaredNoneNone
refines · incomingAn example with its own dependency stays unfolded
spec:consumers.design-slice.independent-example · resolves
declaredNoneNone
refines · incomingOutside components stop at the touched components' neighbors
spec:consumers.design-slice.outside-components · resolves
declaredNoneNone
refines · incomingAn outside prerequisite names the member it holds
spec:consumers.design-slice.outside-holding · resolves
declaredNoneNone
refines · incomingA prerequisite reaches its satisfying component
spec:consumers.design-slice.outside-satisfied · resolves
declaredNoneNone
refines · incomingAn unbound prerequisite invents no component
spec:consumers.design-slice.outside-unbound · resolves
declaredNoneNone
refines · incomingA slice page shows a Pack's design as one whole
spec:consumers.spec-studio.slice-page · resolves
declaredthe page is the design slice's reading for a personNone
verifies · incomingMembers rest on a chain
spec:consumers.design-slice.chain · resolves
declaredNonedepth, scope, memberColumns
verifies · incomingAn unanchored component design stays visible
spec:consumers.design-slice.component-absent · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors
verifies · incomingA realized component keeps its differing layer and uses apart
spec:consumers.design-slice.component-differing · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors
verifies · incomingA realized component matches its declared values
spec:consumers.design-slice.component-matching · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors
verifies · incomingAn unreadable declared layer stays visible
spec:consumers.design-slice.component-unreadable · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors
verifies · incomingAn anchor alone does not realize a component design
spec:consumers.design-slice.component-unrelated · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors
verifies · incomingA shaping decision comes before its member
spec:consumers.design-slice.decision-backlink · resolves
declaredNonerestsOn, depth, decisionsInScope
verifies · incomingA cycle shares a depth
spec:consumers.design-slice.dependency-cycle · resolves
declaredNonedepth, orderAdvisory
verifies · incomingAn example folds without lending its readiness
spec:consumers.design-slice.folded-example · resolves
declaredNoneexamplesFold, memberColumns
verifies · incomingAn example with its own dependency stays unfolded
spec:consumers.design-slice.independent-example · resolves
declaredNoneexamplesFold, boundary
verifies · incomingOutside components stop at the touched components' neighbors
spec:consumers.design-slice.outside-components · resolves
declaredNoneoutsideNeighbors
verifies · incomingAn outside prerequisite names the member it holds
spec:consumers.design-slice.outside-holding · resolves
declaredNoneboundary, questionsInScope
verifies · incomingA prerequisite reaches its satisfying component
spec:consumers.design-slice.outside-satisfied · resolves
declaredNonetouchedComponents, outsideNeighbors, notDownstream
verifies · incomingAn unbound prerequisite invents no component
spec:consumers.design-slice.outside-unbound · resolves
declaredNonetouchedComponents, graphOnly

Bindings

Implementation binding: present

  • impl:protocol.design-slice-recipe · realizes the design slice in the shipped recipe catalog · test/self-hosting-design-slice.test.ts:148 · role projection

Design reference: present

  • impl:protocol.studio-slice-answer · full design slice answer consumed by the page and drawings · src/projections/studio/slice-answer.ts:1 · role contract · component component:protocol.projections · layer edge · context protocol

Verifier binding: present

Expected-outcome oracle: present

  • oracle:protocol.design-slice · test/self-hosting-design-slice.test.ts:549

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

19. Outside components stop at the touched components' neighbors

spec:consumers.design-slice.outside-components

Outside components stop at the touched components' neighbors

spec:consumers.design-slice.outside-componentsExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.outside-components.sdp.md

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

Intent
outcome
Outside components stop at the touched components' neighbors.
Behavior

Examples

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the outside components are {outsideComponents: "component:probe.neighbor"}
Verification

Verifier bindings

  • test:protocol.design-slice.outside-components · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:762
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.outside-components
The diagram as text
  • spec:consumers.design-slice.outside-components: Outside components stop at the touched components' neighbors · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.outside-components: test:protocol.design-slice.outside-components · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:762
  • spec:consumers.design-slice.outside-components refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.outside-components verifies spec:consumers.design-slice.outside-components · 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:consumers.design-slice.outside-components
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.outside-components: Outside components stop at the touched components' neighbors
  • spec:consumers.design-slice.outside-components refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-components verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneoutsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.outside-components · anchored · test/self-hosting-design-slice.test.ts:762 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

20. Members rest on a chain

spec:consumers.design-slice.chain

Members rest on a chain

spec:consumers.design-slice.chainExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.chain.sdp.md

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

Intent
outcome
Members rest on a chain.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the members read in depth order {order: "spec:probe.base, spec:probe.design, spec:probe.top"}
Verification

Verifier bindings

  • test:protocol.design-slice.chain · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:768
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.chain
The diagram as text
  • spec:consumers.design-slice.chain: Members rest on a chain · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.chain: test:protocol.design-slice.chain · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:768
  • spec:consumers.design-slice.chain refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.chain verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.chain verifies spec:consumers.design-slice.chain · 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:consumers.design-slice.chain
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.chain: Members rest on a chain
  • spec:consumers.design-slice.chain refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.chain verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonedepth, scope, memberColumns

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.chain · anchored · test/self-hosting-design-slice.test.ts:768 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

22. A cycle shares a depth

spec:consumers.design-slice.dependency-cycle

A cycle shares a depth

spec:consumers.design-slice.dependency-cycleExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.dependency-cycle.sdp.md

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

Intent
outcome
A cycle shares a depth.
Behavior

Examples

Given a probe Pack whose members {structure: "include two members that depend on each other"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 1} cycles and {exampleMembers: 0} folded example members
Verification

Verifier bindings

  • test:protocol.design-slice.dependency-cycle · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:780
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.dependency-cycle
The diagram as text
  • spec:consumers.design-slice.dependency-cycle: A cycle shares a depth · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.dependency-cycle: test:protocol.design-slice.dependency-cycle · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:780
  • spec:consumers.design-slice.dependency-cycle refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.dependency-cycle verifies spec:consumers.design-slice.dependency-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:consumers.design-slice.dependency-cycle
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.dependency-cycle: A cycle shares a depth
  • spec:consumers.design-slice.dependency-cycle refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.dependency-cycle verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonedepth, orderAdvisory

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.dependency-cycle · anchored · test/self-hosting-design-slice.test.ts:780 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

23. An example folds without lending its readiness

spec:consumers.design-slice.folded-example

An example folds without lending its readiness

spec:consumers.design-slice.folded-exampleExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.folded-example.sdp.md

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

Intent
outcome
An example folds without lending its readiness.
Behavior

Examples

Given a probe Pack whose members {structure: "include an example that refines a member"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 0} cycles and {exampleMembers: 1} folded example members
Verification

Verifier bindings

  • test:protocol.design-slice.folded-example · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:786
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.folded-example
The diagram as text
  • spec:consumers.design-slice.folded-example: An example folds without lending its readiness · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.folded-example: test:protocol.design-slice.folded-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:786
  • spec:consumers.design-slice.folded-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.folded-example verifies spec:consumers.design-slice.folded-example · 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:consumers.design-slice.folded-example
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.folded-example: An example folds without lending its readiness
  • spec:consumers.design-slice.folded-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.folded-example verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneexamplesFold, memberColumns

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.folded-example · anchored · test/self-hosting-design-slice.test.ts:786 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

24. An example with its own dependency stays unfolded

spec:consumers.design-slice.independent-example

An example with its own dependency stays unfolded

spec:consumers.design-slice.independent-exampleExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.independent-example.sdp.md

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

Intent
outcome
An example with its own dependency stays unfolded.
Behavior

Examples

Given a probe Pack whose members {structure: "include an example that refines a member and depends on an outside Spec"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the slice reports {cycles: 0} cycles and {exampleMembers: 0} folded example members
Verification

Verifier bindings

  • test:protocol.design-slice.independent-example · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:792
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.independent-example
The diagram as text
  • spec:consumers.design-slice.independent-example: An example with its own dependency stays unfolded · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.independent-example: test:protocol.design-slice.independent-example · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:792
  • spec:consumers.design-slice.independent-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.independent-example verifies spec:consumers.design-slice.independent-example · 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:consumers.design-slice.independent-example
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.independent-example: An example with its own dependency stays unfolded
  • spec:consumers.design-slice.independent-example refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.independent-example verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneexamplesFold, boundary

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.independent-example · anchored · test/self-hosting-design-slice.test.ts:792 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

25. An unanchored component design stays visible

spec:consumers.design-slice.component-absent

An unanchored component design stays visible

spec:consumers.design-slice.component-absentExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.component-absent.sdp.md

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

Intent
outcome
An unanchored component design stays visible.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "no anchor holds"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "unrealized"} with {differing: 0} differing and {unreadable: 0} unreadable rows
Verification

Verifier bindings

  • test:protocol.design-slice.component-absent · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:798
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.component-absent
The diagram as text
  • spec:consumers.design-slice.component-absent: An unanchored component design stays visible · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.component-absent: test:protocol.design-slice.component-absent · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:798
  • spec:consumers.design-slice.component-absent refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.component-absent verifies spec:consumers.design-slice.component-absent · 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:consumers.design-slice.component-absent
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.component-absent: An unanchored component design stays visible
  • spec:consumers.design-slice.component-absent refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-absent verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.component-absent · anchored · test/self-hosting-design-slice.test.ts:798 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

26. An anchor alone does not realize a component design

spec:consumers.design-slice.component-unrelated

An anchor alone does not realize a component design

spec:consumers.design-slice.component-unrelatedExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.component-unrelated.sdp.md

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

Intent
outcome
An anchor alone does not realize a component design.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "unrealized"} with {differing: 0} differing and {unreadable: 0} unreadable rows
Verification

Verifier bindings

  • test:protocol.design-slice.component-unrelated · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:804
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.component-unrelated
The diagram as text
  • spec:consumers.design-slice.component-unrelated: An anchor alone does not realize a component design · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.component-unrelated: test:protocol.design-slice.component-unrelated · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:804
  • spec:consumers.design-slice.component-unrelated refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.component-unrelated verifies spec:consumers.design-slice.component-unrelated · 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:consumers.design-slice.component-unrelated
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.component-unrelated: An anchor alone does not realize a component design
  • spec:consumers.design-slice.component-unrelated refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unrelated verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.component-unrelated · anchored · test/self-hosting-design-slice.test.ts:804 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

27. A realized component matches its declared values

spec:consumers.design-slice.component-matching

A realized component matches its declared values

spec:consumers.design-slice.component-matchingExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.component-matching.sdp.md

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

Intent
outcome
A realized component matches its declared values.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, matching every declared value"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 0} differing and {unreadable: 0} unreadable rows
Verification

Verifier bindings

  • test:protocol.design-slice.component-matching · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:810
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.component-matching
The diagram as text
  • spec:consumers.design-slice.component-matching: A realized component matches its declared values · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.component-matching: test:protocol.design-slice.component-matching · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:810
  • spec:consumers.design-slice.component-matching refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.component-matching verifies spec:consumers.design-slice.component-matching · 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:consumers.design-slice.component-matching
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.component-matching: A realized component matches its declared values
  • spec:consumers.design-slice.component-matching refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-matching verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.component-matching · anchored · test/self-hosting-design-slice.test.ts:810 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

28. A realized component keeps its differing layer and uses apart

spec:consumers.design-slice.component-differing

A realized component keeps its differing layer and uses apart

spec:consumers.design-slice.component-differingExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.component-differing.sdp.md

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

Intent
outcome
A realized component keeps its differing layer and uses apart.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, with a differing layer and uses"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 2} differing and {unreadable: 0} unreadable rows
Verification

Verifier bindings

  • test:protocol.design-slice.component-differing · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:816
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.component-differing
The diagram as text
  • spec:consumers.design-slice.component-differing: A realized component keeps its differing layer and uses apart · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.component-differing: test:protocol.design-slice.component-differing · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:816
  • spec:consumers.design-slice.component-differing refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.component-differing verifies spec:consumers.design-slice.component-differing · 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:consumers.design-slice.component-differing
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.component-differing: A realized component keeps its differing layer and uses apart
  • spec:consumers.design-slice.component-differing refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-differing verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.component-differing · anchored · test/self-hosting-design-slice.test.ts:816 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

29. An unreadable declared layer stays visible

spec:consumers.design-slice.component-unreadable

An unreadable declared layer stays visible

spec:consumers.design-slice.component-unreadableExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.component-unreadable.sdp.md

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

Intent
outcome
An unreadable declared layer stays visible.
Behavior

Examples

Given a probe Pack whose members {structure: "rest on each other in a chain"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor satisfies, with an unreadable layer"}
When the design slice runs over the probe Pack
Then the member design reads {realized: "realized"} with {differing: 0} differing and {unreadable: 1} unreadable rows
Verification

Verifier bindings

  • test:protocol.design-slice.component-unreadable · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:822
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.component-unreadable
The diagram as text
  • spec:consumers.design-slice.component-unreadable: An unreadable declared layer stays visible · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.component-unreadable: test:protocol.design-slice.component-unreadable · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:822
  • spec:consumers.design-slice.component-unreadable refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.component-unreadable verifies spec:consumers.design-slice.component-unreadable · 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:consumers.design-slice.component-unreadable
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.component-unreadable: An unreadable declared layer stays visible
  • spec:consumers.design-slice.component-unreadable refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.component-unreadable verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonecomponentDesigns, touchedComponents, touchedUses, outsideNeighbors

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.component-unreadable · anchored · test/self-hosting-design-slice.test.ts:822 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

30. A prerequisite reaches its satisfying component

spec:consumers.design-slice.outside-satisfied

A prerequisite reaches its satisfying component

spec:consumers.design-slice.outside-satisfiedExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.outside-satisfied.sdp.md

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

Intent
outcome
A prerequisite reaches its satisfying component.
Behavior

Examples

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that a component's unit satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the touched components are {components: "component:probe.dependency, component:probe.designed"}, {throughRestsOn: 1} of them reached through what the slice rests on
Verification

Verifier bindings

  • test:protocol.design-slice.outside-satisfied · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:828
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.outside-satisfied
The diagram as text
  • spec:consumers.design-slice.outside-satisfied: A prerequisite reaches its satisfying component · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.outside-satisfied: test:protocol.design-slice.outside-satisfied · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:828
  • spec:consumers.design-slice.outside-satisfied refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.outside-satisfied verifies spec:consumers.design-slice.outside-satisfied · 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:consumers.design-slice.outside-satisfied
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.outside-satisfied: A prerequisite reaches its satisfying component
  • spec:consumers.design-slice.outside-satisfied refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-satisfied verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonetouchedComponents, outsideNeighbors, notDownstream

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.outside-satisfied · anchored · test/self-hosting-design-slice.test.ts:828 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

31. An unbound prerequisite invents no component

spec:consumers.design-slice.outside-unbound

An unbound prerequisite invents no component

spec:consumers.design-slice.outside-unboundExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.outside-unbound.sdp.md

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

Intent
outcome
An unbound prerequisite invents no component.
Behavior

Examples

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "that no code satisfies"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the touched components are {components: "component:probe.designed"}, {throughRestsOn: 0} of them reached through what the slice rests on
Verification

Verifier bindings

  • test:protocol.design-slice.outside-unbound · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:834
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.outside-unbound
The diagram as text
  • spec:consumers.design-slice.outside-unbound: An unbound prerequisite invents no component · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.outside-unbound: test:protocol.design-slice.outside-unbound · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:834
  • spec:consumers.design-slice.outside-unbound refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.outside-unbound verifies spec:consumers.design-slice.outside-unbound · 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:consumers.design-slice.outside-unbound
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.outside-unbound: An unbound prerequisite invents no component
  • spec:consumers.design-slice.outside-unbound refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-unbound verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNonetouchedComponents, graphOnly

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.outside-unbound · anchored · test/self-hosting-design-slice.test.ts:834 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

32. An outside prerequisite names the member it holds

spec:consumers.design-slice.outside-holding

An outside prerequisite names the member it holds

spec:consumers.design-slice.outside-holdingExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/design-slice.outside-holding.sdp.md

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

Intent
outcome
An outside prerequisite names the member it holds.
Behavior

Examples

Given a probe Pack whose members {structure: "include a decision that refines the member it shapes"}
Given one member depends on an outside Spec {outside: "stated below defined"}
Given one member is a component design whose component {anchor: "an anchor holds without satisfying the design"}
When the design slice runs over the probe Pack
Then the outside Spec holds {held: "spec:probe.base"}
Verification

Verifier bindings

  • test:protocol.design-slice.outside-holding · anchored · test anchor binding present · test/self-hosting-design-slice.test.ts:840
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.design-slice.outside-holding
The diagram as text
  • spec:consumers.design-slice.outside-holding: An outside prerequisite names the member it holds · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • test:protocol.design-slice.outside-holding: test:protocol.design-slice.outside-holding · anchored test binding · binding present · test/self-hosting-design-slice.test.ts:840
  • spec:consumers.design-slice.outside-holding refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding verifies spec:consumers.design-slice · declared
  • test:protocol.design-slice.outside-holding verifies spec:consumers.design-slice.outside-holding · 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:consumers.design-slice.outside-holding
  • E2: verifies · declared
The diagram as text
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.design-slice.outside-holding: An outside prerequisite names the member it holds
  • spec:consumers.design-slice.outside-holding refines spec:consumers.design-slice · declared
  • spec:consumers.design-slice.outside-holding verifies spec:consumers.design-slice · 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 slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneNone
verifies · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredNoneboundary, questionsInScope

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.design-slice.outside-holding · anchored · test/self-hosting-design-slice.test.ts:840 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

33. A slice page shows a Pack's design as one whole

spec:consumers.spec-studio.slice-page

A slice page shows a Pack's design as one whole

spec:consumers.spec-studio.slice-pageUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.slice-page.sdp.md

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

The Pack page reads a Pack card by card, in the order its author wrote. A reviewer judging the design needs the other reading first: which members the rest stand on, what the design will touch in the code, and what decisions and questions bound it. The slice page gives that reading on a page of its own beside the Pack page, one link apart. It keeps the Pack page whole, because a Pack of a hundred members already makes a long page of cards, and the two readings answer different questions in different orders: the author's narrative there, the members others rest on first here.

Intent
outcome
Give the Studio a page per Pack that shows its design slice: the members' dependency drawing, the components they touch, the decisions and open questions in scope, and each member's next rung.

Open questions

  • non-blocking · question.exportCarriesSlice line 38 · specs/consumers/spec-studio.slice-page.sdp.md:38 · Does a Pack export also carry the Pack's slice page?Decider: delegatedProvisional: no; the export keeps the Pack page and its members, and the slice page stays one link away in the page set
Behavior
rule.slicePerPack line 44 · specs/consumers/spec-studio.slice-page.sdp.md:44
The page set holds one slice page per Pack, slices/<name>.html, its name formed from the Pack's id as the Pack page's name is; it renders the build's design slice answer for that Pack in full and states no value the answer does not hold, apart from counts the build takes of it.

no example exercises it

rule.header line 45 · specs/consumers/spec-studio.slice-page.sdp.md:45
The page opens with the heading Design slice and the Pack's title, the Pack's id as text with a copy action, and a link back to the Pack page, then the summary and a reading note.

no example exercises it

rule.summary line 46 · specs/consumers/spec-studio.slice-page.sdp.md:46
The summary states each slice total in one sentence that opens with its count: the members and the examples counted in their parents; when the manifest names members that resolve to no Spec, how many and each one's id, so an incomplete Pack never reads as complete; the relations among members, the deepest depth and any cycle; the members held below their stated next rung and those waiting only for their author; the outside Specs the slice rests on, how many of them hold a member, and the outside Specs that rest on it; the components touched, through the members' code, through what the slice rests on, and named by member designs, with the outside components shown beside them; the member component designs, how many are realized and how many of those match; the decisions in scope and how many state below ready; and the open and blocking questions.

no example exercises it

rule.readingNote line 47 · specs/consumers/spec-studio.slice-page.sdp.md:47
The reading note says in words that members read with the ones others rest on first, that the design columns count what each member carries beside its rung and never judge whether it is enough, and that the page records no review and approves nothing.

no example exercises it

rule.dependencyDrawing line 48 · specs/consumers/spec-studio.slice-page.sdp.md:48
Under How the members rest on each other comes the slice's dependency drawing, spec:consumers.spec-studio.diagram-kinds.dependency given the slice's order: it consumes the answer's members, depths, rests-on links, structure edges, cycles and boundary rows and recomputes no scope, depth or order. Each member that is not a folded example is a box with its title, id, stated rung and floor, and its count of folded example members; every supplied relation keeps its type and direction, and a relation that orders nothing reads apart from one that orders. The drawing kind owns layout, bounded folding and the complete text equivalent, which lists every folded example with its refines; a fold changes no value of the answer.

no example exercises it

rule.memberTable line 49 · specs/consumers/spec-studio.slice-page.sdp.md:49
Under What each member needs next comes one row per member that is not a folded example, by depth and then in the scope's order: the member's title linked to its card on the Pack page with its id, its depth, its stated rung beside the floor reached, its stated next rung with nothing blocks or each unmet clause and the Specs it names with their stated rungs, then the design it carries, its rules with how many are keyed, its design entries, pinned declarations, open questions with how many block, decisions, and verifying examples with how many are bound, each count on its own line, and its implementation and reference bindings as counts; the table has no total row, and no count is combined with another.

no example exercises it

rule.exampleRows line 50 · specs/consumers/spec-studio.slice-page.sdp.md:50
A folded example member has no row of its own and stays readable in a disclosure within its parent's row, whose summary counts the folded examples and how many are held below their stated next rung; inside, each example shows its title linked to its card on the Pack page, its id, its own stated rung, floor reached and stated next rung with each unmet clause and the Specs it names. Folding lends the parent no rung, hold or binding, and the folded count stays apart from the count of examples that verify the parent.

no example exercises it

rule.architecture line 51 · specs/consumers/spec-studio.slice-page.sdp.md:51
Under The architecture it touches comes the scoped architecture drawing of the diagram kinds, given the answer's components, designs, uses, planned uses and outside components, then one row per touched component: its id linked to its detail on the architecture lens; its label, layer and context; and how the slice reaches it, the members whose code satisfies it, the members whose code references it, the Specs the slice rests on whose code it holds, and the member designs naming it, each on its own line in words.

no example exercises it

rule.designs line 52 · specs/consumers/spec-studio.slice-page.sdp.md:52
After the component rows comes one row per member component design: the design linked to its Spec page, the component it names, the layer, context, role and uses it declares, whether an anchor holds that component and whether that anchor satisfies the design, in words, and its differing rows with the declared and anchored values side by side and its unreadable rows; declared entries stay in the Declared cell, and every anchored value in the Comparison cell is labelled anchored.

no example exercises it

rule.outside line 53 · specs/consumers/spec-studio.slice-page.sdp.md:53
Then come the components outside the slice, each with how it is reached and whether an anchor holds it, under a heading that says they are shown for context and not counted as touched.

no example exercises it

rule.unplaced line 54 · specs/consumers/spec-studio.slice-page.sdp.md:54
After them come the units that implement or reference a member and belong to no component, reading None when empty.

no example exercises it

rule.noArchitecture line 55 · specs/consumers/spec-studio.slice-page.sdp.md:55
A slice that touches no component and holds no component design says so in one sentence and names, by count, the Specs it rests on that no code satisfies, so an empty architecture never reads as an architecture nobody needs.

no example exercises it

rule.decisions line 56 · specs/consumers/spec-studio.slice-page.sdp.md:56
Under Decisions in scope comes one row per decision: its title linked to its Spec page, its stated rung beside the floor reached, whether it is a member, the members it shapes, the decisions it refines or supersedes, and its open and blocking question counts.

no example exercises it

rule.questions line 57 · specs/consumers/spec-studio.slice-page.sdp.md:57
Under Open questions in scope comes each question, blocking ones first, with its blocking flag in words, its address linked to the question on its Spec page when it is keyed, its Spec, its text, its decider, links, provisional reading and trigger when present, and the members it holds.

no example exercises it

rule.boundary line 58 · specs/consumers/spec-studio.slice-page.sdp.md:58
Under Where the slice meets the rest come four closed sections, Rests on, Rested on by, Verified by and Superseded by, each headed with its count; a Rests on row shows the outside Spec linked, its stated rung beside the floor reached, its implementation binding as present or none, the members it joins under each relation type, and the members it holds.

no example exercises it

rule.bindingWords line 59 · specs/consumers/spec-studio.slice-page.sdp.md:59
The page speaks binding language: a unit implements or references a member, a verifier is bound, and no cell reads built, done, verified or approved.

no example exercises it

rule.openAll line 60 · specs/consumers/spec-studio.slice-page.sdp.md:60
Open all and Close all open or close every closed section and text equivalent at once, and the page reads in full without script.

no example exercises it

0 unkeyed rules.

Verification · manual
criteria
  • A person given only the slice page of the first adopter's history-view Pack names the member the most others rest on, the components the Pack's code touches and the outside Specs whose code the Pack builds on, from the page alone.
  • The same person, given the slice page of a Pack whose members no code realizes yet, names the components the design will touch through what it rests on, and the members carrying pinned declarations while they state below defined.
  • The same person, given the slice page of a Pack holding member component designs, says for each design whether code realizes it and where its declared values differ from the anchored ones, and reads no declared value as anchored.
  • The same person, given the same page on a phone, names each member's stated next rung and what holds it without scrolling sideways, including an example member folded into its parent.
mode
manual
UI
pagePath line 64 · specs/consumers/spec-studio.slice-page.sdp.md:64
slices/<name>.html, <name> formed from the Pack id as packs/<name>.html forms it, so the Pack page and its slice page share a name.
headerBlock line 65 · specs/consumers/spec-studio.slice-page.sdp.md:65
the page heading Design slice: <Pack title>; below it the Pack id with a copy action and the link Read the Pack member by member to its Pack page; then the summary under The design as a whole, then the reading note.
readingNoteText line 66 · specs/consumers/spec-studio.slice-page.sdp.md:66
Members read with the ones others rest on first. The columns count the design each member carries beside its rung; they never judge whether it is enough. This page records no review and approves nothing.
drawingIds line 67 · specs/consumers/spec-studio.slice-page.sdp.md:67
Both drawings take the Pack id as their subject and use their drawing kind's element-id contract. The dependency text and arrow ids are diagram.<pack id>.dependencies.text and diagram.<pack id>.dependencies.arrow; scoped architecture uses diagram.<pack id>.architecture.text and diagram.<pack id>.architecture.arrow. The kinds also own viewport, source, fold and occurrence suffixes; the page invents no singular dependency or scoped-architecture alias.
memberTable line 68 · specs/consumers/spec-studio.slice-page.sdp.md:68
a table in a scroll region with the columns Member, Depth, Rung, Next rung, Design carried and Code, so it fits a desktop column without scrolling; Member holds the title link, the id and the kind; Rung the rung badge and floor <rung>; Design carried six lines, <n> rules, <k> keyed, <n> entries, <n> declarations, <n> questions, <b> blocking, <n> decisions and <bound> of <n> verifying examples bound, each count a plain number, a zero written 0, and a zero part such as , 0 keyed left out; Code two lines, <n> implementing and <n> referencing. Below the phone breakpoint each member reads as a stacked block: its title, id and kind, its rung badge and floor, and its next rung with each unmet clause stay together at the top, and its depth, design counts and binding counts follow as labelled runs that wrap; no part of a member sits beyond a horizontal scroll.
foldedExamples line 69 · specs/consumers/spec-studio.slice-page.sdp.md:69
a row under the parent's row spanning the table, holding a closed disclosure whose summary reads <n> example members folded in, followed by , <h> held below the next rung when any is held; inside, one line per example with its title link, its id, its rung badge, floor <rung> and next <rung>: with nothing blocks or each unmet clause.
componentTable line 70 · specs/consumers/spec-studio.slice-page.sdp.md:70
a table with the columns Component, Layer and context and Reached through, the last listing each way the slice reaches the component on its own labelled line.
designTable line 71 · specs/consumers/spec-studio.slice-page.sdp.md:71
a table with the columns Design, Component, Declared, Anchor and Comparison; Declared one labelled line per key, not stated for a key the design leaves out; Anchor reads absent, present, does not satisfy the design or satisfies the design; Comparison reads not compared for a design no anchor satisfies, matches for a realized design with no differing or unreadable row, and otherwise one line per differing field as <field>: declared <value>; anchored <value>, a uses line reading uses: only declared <components>; only anchored <components> as the comparison names them, and one line per unreadable key as <key>: unreadable <value>, not compared.
outsideList line 72 · specs/consumers/spec-studio.slice-page.sdp.md:72
a list headed Outside the slice, shown for context and not counted as touched, each component with its id, linked when anchored, its label, anchored or not anchored, and how it is reached in words.
decisionTable line 73 · specs/consumers/spec-studio.slice-page.sdp.md:73
a table with the columns Decision, Rung, In the slice, Shapes and Questions.
questionItem line 74 · specs/consumers/spec-studio.slice-page.sdp.md:74
the blocking flag in words; for a keyed question, question.<key> as a link to its address with a copy action for the full address; its Spec; the text; each present field on its own labelled line; then Holds: and the held members, or nothing for a question that holds none.
boundaryTable line 75 · specs/consumers/spec-studio.slice-page.sdp.md:75
five columns, Spec, rung, implementation binding, joined members and holds, the joined members listing each relation type with its members.
Verification

Verifier bindings

  • test:protocol.studio-slice-page · anchored · test anchor binding present · test/studio-slice.test.ts:132
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.slice-page
The diagram as text
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole · declared Spec
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next · declared Spec
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph · declared Spec
  • impl:protocol.studio-slice-page: design slice summaries, member needs, architecture comparisons and boundary tables · anchored code · src/projections/studio/pages/slice-page.ts:25
  • test:protocol.studio-slice-page: test:protocol.studio-slice-page · anchored test binding · binding present · test/studio-slice.test.ts:132
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • spec:consumers.spec-studio.slice-page refines spec:consumers.spec-studio · declared
  • impl:protocol.studio-slice-page satisfies spec:consumers.spec-studio.slice-page · anchored
  • test:protocol.studio-slice-page verifies spec:consumers.spec-studio.slice-page · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-slice-page · design slice summaries, member needs, architecture comparisons and boundary tables · src/projections/studio/pages/slice-page.ts:25

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.slice-page
  • E5: refines · declared
Relations of spec:consumers.spec-studio.slice-pagedependsOn · declareddependsOn · declareddependsOn · declaredrefines · declaredE5dependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-slicespec:consumers.spec-studioThe Spec Studio is a staticHTML workbench over the onegraph…consumers.spec-studioOutgoing dependsOnspec:consumers.binding-language-viewsViews speak bindinglanguage, never theinternal fact name…consumers.binding-language-viewsspec:consumers.derived-readiness-bannerDerived readiness rendersbeside the stated rung andwarns in one direction…consumers.derived-readiness-bannerspec:consumers.spec-studio.data.recipe-answersA page takes each recipeanswer from the recipe'sshipped body…consumers.spec-studio.data.recipe-answersspec:consumers.spec-studio.diagram-kinds.dependencyA dependency drawing showsthe declared footing of aSpec set…consumers.spec-studio.diagram-kinds.dependencyspec:consumers.spec-studio.diagram-kinds.scoped-architectureA Spec set draws thearchitecture it touches…consumers.spec-studio.diagram-kinds.scoped-architecturespec:consumers.spec-studio.diagramsA diagram is laid out fromgraph values into SVG witha text equivalent…consumers.spec-studio.diagramsspec:consumers.spec-studio.pack-pageA Pack page shows thePack's design as one cardper member…consumers.spec-studio.pack-pagespec:model.open-question-fieldsAn open question may namewho decides it, its links,a provisional reading and are-entry trigger…model.open-question-fieldsSubjectspec:consumers.spec-studio.slice-pageA slice page shows a Pack'sdesign as one whole…consumers.spec-studio.slice-page
The diagram as text
  • spec:consumers.binding-language-views: Views speak binding language, never the internal fact name
  • spec:consumers.derived-readiness-banner: Derived readiness renders beside the stated rung and warns in one direction
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph
  • spec:consumers.spec-studio.data.recipe-answers: A page takes each recipe answer from the recipe's shipped body
  • spec:consumers.spec-studio.diagram-kinds.dependency: A dependency drawing shows the declared footing of a Spec set
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture: A Spec set draws the architecture it touches
  • spec:consumers.spec-studio.diagrams: A diagram is laid out from graph values into SVG with a text equivalent
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.derived-readiness-banner · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.design-slice · declared — the page renders the slice's answer
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.data.recipe-answers · declared — the build evaluates the slice recipe once for each Pack, and the page reads that answer
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagram-kinds.dependency · declared — the dependency drawing given the slice's order is a drawing kind, which owns layout, folding and the text equivalent
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagram-kinds.scoped-architecture · declared — the scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalent
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.diagrams · declared — both drawings keep the diagram contract, bound and text equivalent included
  • spec:consumers.spec-studio.slice-page dependsOn spec:consumers.spec-studio.pack-page · declared — each member links to its card on the Pack page, whose element id is the member's id
  • spec:consumers.spec-studio.slice-page dependsOn spec:model.open-question-fields · declared
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • spec:consumers.spec-studio.slice-page refines spec:consumers.spec-studio · 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.design-slice · stated ready, floor ready
  • refines · spec:consumers.spec-studio · stated ready, floor ready
  • dependsOn · spec:consumers.binding-language-views · stated ready, floor ready
  • dependsOn · spec:consumers.derived-readiness-banner · stated ready, floor ready
  • dependsOn · spec:consumers.design-slice · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.data.recipe-answers · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.diagram-kinds.dependency · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.diagram-kinds.scoped-architecture · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.diagrams · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.pack-page · stated ready, floor ready
  • dependsOn · spec:model.open-question-fields · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:consumers.binding-language-views
spec:consumers.binding-language-views · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.derived-readiness-banner
spec:consumers.derived-readiness-banner · resolves
declaredNoneNone
dependsOn · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredthe page renders the slice's answerNone
dependsOn · outgoingspec:consumers.spec-studio.data.recipe-answers
spec:consumers.spec-studio.data.recipe-answers · resolves
declaredthe build evaluates the slice recipe once for each Pack, and the page reads that answerNone
dependsOn · outgoingA dependency drawing shows the declared footing of a Spec set
spec:consumers.spec-studio.diagram-kinds.dependency · resolves
declaredthe dependency drawing given the slice's order is a drawing kind, which owns layout, folding and the text equivalentNone
dependsOn · outgoingA Spec set draws the architecture it touches
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredthe scoped architecture drawing is a drawing kind, which owns layout, folding and the text equivalentNone
dependsOn · outgoingspec:consumers.spec-studio.diagrams
spec:consumers.spec-studio.diagrams · resolves
declaredboth drawings keep the diagram contract, bound and text equivalent includedNone
dependsOn · outgoingspec:consumers.spec-studio.pack-page
spec:consumers.spec-studio.pack-page · resolves
declaredeach member links to its card on the Pack page, whose element id is the member's idNone
dependsOn · outgoingspec:model.open-question-fields
spec:model.open-question-fields · resolves
declaredNoneNone
refines · outgoingA slice reads a Pack as one design, with the architecture it touches and what each member needs next
spec:consumers.design-slice · resolves
declaredthe page is the design slice's reading for a personNone
refines · outgoingspec:consumers.spec-studio
spec:consumers.spec-studio · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-slice-page · design slice summaries, member needs, architecture comparisons and boundary tables · src/projections/studio/pages/slice-page.ts:25 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-slice-page · anchored · test/studio-slice.test.ts:132 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

34. A roadmap states advisory priority in the graph

spec:decisions.roadmap-priority

A roadmap states advisory priority in the graph

spec:decisions.roadmap-priorityDecision Record · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/decisions/roadmap-priority.sdp.md

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

Dependency order already has a graph home: dependsOn, which the statement queue reads to order the statements a person can make. Preference has none: which body of work the owner wants next when nothing forces one before another. It lives in prose, in each pull request's forward section and in the plan files, and the graph reads neither. The roadmap views waited for a named reader; the owner, choosing what the next pull requests take up, is that reader. A Pack already keeps its members in authored order and states no truth of its own, so a Pack whose manifest says its order is a priority holds the preference with one optional field and no new relation.

Intent
outcome
Decide whether and how the graph may hold an advisory priority over upcoming work, a roadmap, without dates, without a new relation, and without gating or sequencing any work.
Decision
context
The planning truths decision gives each planning truth a ruled graph home and keeps recorded work order out of the graph, so dependency rides dependsOn and everything else about order stays in plan files and pull request descriptions. The owner now reads and edits that order and asks for it in the graph: what to design next and a prioritized list of what to build, tied to the pull requests that carry it out. A Pack keeps its members in authored order and states no system truth; the Pack manifest's envelope is closed to id, specs and modelRefs.
decision
A roadmap is a Pack whose manifest states order: priority; its members' authored order is the corpus's advisory priority, first entry first. order is an optional manifest field whose one lawful value is priority, and a Pack without it keeps the reading order every Pack has. Priority is preference among bodies of work and nothing more: it carries no date, no dependency, no status and no gate, and no check, recipe or page treats a place on a roadmap as permission, obligation or sequence. Everything a roadmap shows about an entry, what it still needs and what holds it, is read from the graph each time. A corpus may keep several roadmaps, and a Spec may be listed on any number of them.
rationale
  • Hard to reverse: the manifest envelope gains a field that both manifest carriers, the graph's Pack node and the reader carry, and corpora author roadmaps against it. Surprising without context: the planning truths decision kept recorded work order out of the graph, so a reader needs to know why one order is now graph data and why it still sequences nothing. A real trade-off: a priority held in the graph is checked where membership is checked, so every entry resolves; it shows in the design diff, as an added, removed or reordered member and as a Pack that becomes or stops being a roadmap; and it reaches the Studio, the vault and a pull request's forward section with no extra input. It costs one optional field and the risk that an order reads as a schedule, which this decision bounds by giving the order no consequence.
  • A Pack is the right home because a roadmap says nothing about the system. It is an authored grouping, as a Pack is, whose members already carry an authored order; the field states what that order means and leaves the rest of the Pack law unchanged.
alternatives
  • A Pack read as a roadmap by a naming convention, such as a reserved id: the Protocol reads no meaning from an id anywhere else, a reserved name would collide with a corpus's own Packs, and nothing in the manifest would tell its reader that the order means priority.
  • Any Pack's order read as a priority, the roadmap named to each recipe and page as a parameter: the Studio takes no corpus configuration, so it could not tell a roadmap from a Pack in reading order, and a reading order would show as a priority nobody stated.
  • Priority outside the graph, as corpus data a recipe reads, like a perspective's order: an entry that no longer resolves is caught only by a rules file the corpus writes, the design diff, the Studio, the vault and the preview workflow would each need a new input to see it, and planning would gain a second store beside the graph. A perspective suits a reader's own concern; a roadmap is one authored choice for the whole corpus.
  • A new relation such as precedes, or a rank on each Spec: the planning truths decision refused precedes for its engine surface across the model, the carriers, extraction, validators and the agent surface, and a rank on the truth primitive is a status that goes stale with every edit and invites scoring.
  • A boolean field such as roadmap: true: it names the noun but not what differs, which is the meaning of the order; order: priority says that directly.
  • Prose, as today: the graph cannot read it, and each forward section is rewritten by hand and drifts from the Specs it names.
consequences
  • The planning truths decision's refusal of recorded work order narrows for this one case: a roadmap's priority is graph structure, carried as its Pack's member order, and never workflow authority. Plan numbering, staleness and every other recorded work order stay out of the graph.
  • The Pack manifest admits order, in the Markdown and the TypeScript manifest alike; the Pack node carries order when the manifest states it, after modelRefs in the serialized node; any other value refuses at extraction as a malformed envelope field does; and the Pack model names the priority order. These touch the Pack carrier, the Pack model and the Pack node's member-order law, each enriched in place when the field is built.
  • No check reads a roadmap's content. An entry already built, an order that disagrees with dependency, an empty roadmap and several roadmaps are never findings, because a place carries no authority and staleness is never a finding.
  • Where priority and dependency disagree, a roadmap view shows what an entry rests on and never reorders it; readiness statements keep the statement queue's dependency order, in a roadmap's list of what waits on a person as everywhere else.
  • The design diff reports a change in what a Pack's order means apart from a change in its members' order, so a Pack that becomes or stops being a roadmap shows in a comparison even when its members stay. A base graph whose schema predates the field carries no order and reads as reading order, as an absent field does in every schema version; a value the head's engine does not know lies outside the common schema and is reported as a diagnostic, never compared. This touches the design diff and its Studio page when the field is built.
  • A place on a roadmap confers what membership of any Pack confers, which is nothing: no readiness, no delivery fact and no gate.
  • The roadmap reading, its page and its forward-section memo read a roadmap this way, under spec:consumers.roadmap.
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:decisions.roadmap-priority
Requirement drawing for spec:decisions.roadmap-priorityreferences · anchoredreferences · anchoredrefines · declaredrefines · declaredIntended Specsspec:decisions.roadmap-priorityA roadmap states advisorypriority in the graph…decisions.roadmap-prioritydeclared SpecSatisfying or referencingunitsimpl:protocol.pack-aggregatePack aggregate and modelreferences…protocol.pack-aggregateanchored codeimpl:protocol.pack-member-orderkeeps manifest member orderon the Pack node…protocol.pack-member-orderanchored codeOutside the selected setspec:decisions.pack-markdown-carrierPacks have a Markdownmanifest carrier…decisions.pack-markdown-carrierdeclared Specspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…decisions.planning-truths-placementdeclared Spec
The diagram as text
  • spec:decisions.roadmap-priority: A roadmap states advisory priority in the graph · declared Spec
  • spec:decisions.pack-markdown-carrier: Packs have a Markdown manifest carrier · declared Spec
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes · declared Spec
  • impl:protocol.pack-aggregate: Pack aggregate and model references · anchored code · src/model/pack.ts:23
  • impl:protocol.pack-member-order: keeps manifest member order on the Pack node · anchored code · src/extract/derive.ts:153
  • spec:decisions.roadmap-priority refines spec:decisions.pack-markdown-carrier · declared — opens the closed Pack manifest envelope to one optional field, `order`
  • spec:decisions.roadmap-priority refines spec:decisions.planning-truths-placement · declared — narrows the refusal of recorded work order for one case, the advisory priority of a roadmap
  • impl:protocol.pack-aggregate references spec:decisions.roadmap-priority · anchored
  • impl:protocol.pack-member-order references spec:decisions.roadmap-priority · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

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:decisions.roadmap-priority
Relations of spec:decisions.roadmap-prioritydecidedBy · declareddecidedBy · declareddecidedBy · declareddependsOn · declaredrefines · declaredrefines · declareddecidedBy · declareddecidedBy · declaredOutgoing refinesspec:decisions.pack-markdown-carrierPacks have a Markdownmanifest carrier…decisions.pack-markdown-carrierspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…decisions.planning-truths-placementSubjectspec:decisions.roadmap-priorityA roadmap states advisorypriority in the graph…decisions.roadmap-priorityIncoming dependsOnspec:decisions.roadmap-over-plansPlan and review files stopcarrying the deliveryrecord once the roadmap andthe pull request do…decisions.roadmap-over-plansIncoming decidedByspec:carrier.markdown-pack-authoringA Pack has a Markdownmanifest carrier…carrier.markdown-pack-authoringspec:consumers.design-diffDesigns are comparedbetween a base commit andthe working tree at entrygrain…consumers.design-diffspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…consumers.roadmapspec:extraction.pack-member-orderA Pack node keeps itsmembers in authored order…extraction.pack-member-orderspec:model.pack-aggregateA Pack is a truth-freereview aggregate…model.pack-aggregate
The diagram as text
  • spec:carrier.markdown-pack-authoring: A Pack has a Markdown manifest carrier
  • spec:consumers.design-diff: Designs are compared between a base commit and the working tree at entry grain
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:decisions.pack-markdown-carrier: Packs have a Markdown manifest carrier
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes
  • spec:decisions.roadmap-over-plans: Plan and review files stop carrying the delivery record once the roadmap and the pull request do
  • spec:decisions.roadmap-priority: A roadmap states advisory priority in the graph
  • spec:extraction.pack-member-order: A Pack node keeps its members in authored order
  • spec:model.pack-aggregate: A Pack is a truth-free review aggregate
  • spec:decisions.roadmap-priority refines spec:decisions.pack-markdown-carrier · declared — opens the closed Pack manifest envelope to one optional field, `order`
  • spec:decisions.roadmap-priority refines spec:decisions.planning-truths-placement · declared — narrows the refusal of recorded work order for one case, the advisory priority of a roadmap
  • spec:carrier.markdown-pack-authoring decidedBy spec:decisions.roadmap-priority · declared
  • spec:consumers.design-diff decidedBy spec:decisions.roadmap-priority · declared
  • spec:consumers.roadmap decidedBy spec:decisions.roadmap-priority · declared
  • spec:extraction.pack-member-order decidedBy spec:decisions.roadmap-priority · declared
  • spec:model.pack-aggregate decidedBy spec:decisions.roadmap-priority · declared
  • spec:decisions.roadmap-over-plans dependsOn spec:decisions.roadmap-priority · declared — plan files give up forward planning only once a roadmap holds priority in the graph
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:decisions.pack-markdown-carrier · stated ready, floor ready
  • refines · spec:decisions.planning-truths-placement · stated ready, floor ready

Rested on by

Distance 1

  • spec:carrier.markdown-pack-authoring

    Implementing units

    • impl:protocol.markdown-pack-authoring · src/extract/markdown-pack.ts:117
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-pack-authoring.markdown-ts-parity, spec:carrier.markdown-pack-authoring.spec-envelope-refused, test:protocol.roadmap-priority

    Packs: pack:self-hosting-v1

  • spec:consumers.design-diff

    Implementing units

    • impl:protocol.design-diff-recipe · test/iteration-recipes.test.ts:27

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-diff-recipe, test:protocol.roadmap-priority

    Packs: pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.roadmap

    Implementing units

    • impl:protocol.roadmap-recipe · test/roadmap.test.ts:20

    Referencing units

    None.

    Enabled verifiers: spec:consumers.roadmap.blocking-part, spec:consumers.roadmap.buildable-part, spec:consumers.roadmap.built-work, spec:consumers.roadmap.design-part, spec:consumers.roadmap.drifting-part, spec:consumers.roadmap.missing-evidence, spec:consumers.roadmap.outside-parent, spec:consumers.roadmap.statement-order, spec:consumers.roadmap.statement-part, test:protocol.roadmap-recipe

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:decisions.roadmap-over-plans

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:extraction.pack-member-order

    Implementing units

    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.pack-coherence · src/validate/validators.ts:1102
    • impl:protocol.pack-design-page · src/projections/design-review-pages.ts:120
    • impl:protocol.pack-member-order · src/extract/derive.ts:153
    • impl:protocol.reader · src/reader/reader.ts:687

    Referencing units

    None.

    Enabled verifiers: spec:extraction.pack-member-order.manifest-order-kept, test:protocol.roadmap-priority

    Packs: pack:self-hosting-v1

  • spec:model.pack-aggregate

    Implementing units

    • impl:protocol.pack-aggregate · src/model/pack.ts:23

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-builder, test:protocol.roadmap-priority

    Packs: pack:self-hosting-v1

Distance 2

  • spec:carrier.markdown-pack-authoring.markdown-ts-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-pack-authoring.markdown-ts-parity

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-pack-authoring.spec-envelope-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-pack-authoring.spec-envelope-refused

    Packs: pack:self-hosting-v1

  • spec:consumers.authoring-on-ramp

    Implementing units

    • impl:protocol.authoring-on-ramp · test/skills.test.ts:76
    • impl:protocol.spec-scaffolder · src/cli/new-spec-command.ts:348

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-on-ramp

    Packs: pack:self-hosting-v1

  • spec:consumers.delivery-session-on-ramp

    Implementing units

    • impl:protocol.delivery-session-on-ramp · test/skills.test.ts:83

    Referencing units

    None.

    Enabled verifiers: test:protocol.delivery-session-on-ramp

    Packs: pack:self-hosting-v1

  • spec:consumers.intent-composition.proposal

    Implementing units

    • impl:protocol.proposal-schema-and-recipe · test/iteration-recipes.test.ts:1510
    • impl:protocol.studio-proposal-contract · src/studio-elements/proposal.ts:1

    Referencing units

    None.

    Enabled verifiers: test:protocol.proposal-schema-and-recipe

    Packs: pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.pack-design

    Implementing units

    • impl:protocol.pack-design · src/reader/reader.ts:499

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-design

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.projections-model.roadmap-views

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.blocking-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.blocking-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.buildable-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.buildable-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.built-work

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.built-work

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.design-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.design-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.drifting-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.drifting-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.memo

    Implementing units

    • impl:protocol.roadmap-memo-recipe · test/roadmap.test.ts:27
    • impl:protocol.studio-roadmap-page · src/projections/studio/pages/roadmap-page.ts:168

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-memo-recipe, test:protocol.studio-roadmap-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.missing-evidence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.missing-evidence

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.outside-parent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.outside-parent

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.statement-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.statement-order

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.roadmap.statement-part

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap.statement-part

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.data

    Implementing units

    • impl:protocol.studio-data · src/projections/studio/data.ts:279

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-data

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.inputs

    Implementing units

    • impl:protocol.studio-base-input · src/cli/studio-inputs.ts:9
    • impl:protocol.studio-command · src/cli/studio-command.ts:106
    • impl:protocol.studio-inputs · src/projections/studio/inputs.ts:1

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.data.inputs.both-given, spec:consumers.spec-studio.data.inputs.graph-only

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diff-page

    Implementing units

    • impl:protocol.studio-diff · src/projections/studio/pages/diff-page.ts:91

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.diff-page.changed-entry, test:protocol.roadmap-priority

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.packs

    Implementing units

    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.roadmap-page

    Implementing units

    • impl:protocol.studio-roadmap-page · src/projections/studio/pages/roadmap-page.ts:168

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-roadmap-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.upgrade-kit

    Implementing units

    • impl:protocol.upgrade-guide · test/upgrade-kit.test.ts:87

    Referencing units

    None.

    Enabled verifiers: test:protocol.upgrade-guide

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

  • spec:decisions.pack-reified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:extraction.pack-member-order.manifest-order-kept

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-member-order

    Packs: pack:self-hosting-v1

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:protocol.roadmap-replaces-plans

    Implementing units

    • impl:protocol.roadmap-practice · test/check-self-hosting-gates.test.ts:52

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-practice

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:validation.pack-coherence

    Implementing units

    • impl:protocol.pack-coherence · src/validate/validators.ts:1102

    Referencing units

    None.

    Enabled verifiers: spec:validation.pack-coherence.incoherent-aggregate

    Packs: pack:self-hosting-v1

Distance 3

  • spec:consumers.adopter-on-ramp

    Implementing units

    • impl:protocol.adopter-help · src/cli/help.ts:167
    • impl:protocol.adopter-on-ramp · test/skills.test.ts:712

    Referencing units

    None.

    Enabled verifiers: test:protocol.adopter-on-ramp, test:protocol.shipped-protocol-corpus

    Packs: pack:self-hosting-v1

  • spec:consumers.agent-surface.design-recipes

    Implementing units

    • impl:protocol.design-recipes · test/recipes.test.ts:4769

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-recipes

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.design-review.pack-design-page

    Implementing units

    • impl:protocol.pack-design-page · src/projections/design-review-pages.ts:120

    Referencing units

    • impl:protocol.pack-design-sections · src/projections/design-review-pack-sections.ts:19

    Enabled verifiers: test:protocol.pack-design-page

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.design-slice

    Implementing units

    • impl:protocol.design-slice-recipe · test/self-hosting-design-slice.test.ts:148

    Referencing units

    • impl:protocol.studio-slice-answer · src/projections/studio/slice-answer.ts:1

    Enabled verifiers: spec:consumers.design-slice.chain, spec:consumers.design-slice.component-absent, spec:consumers.design-slice.component-differing, spec:consumers.design-slice.component-matching, spec:consumers.design-slice.component-unreadable, spec:consumers.design-slice.component-unrelated, spec:consumers.design-slice.decision-backlink, spec:consumers.design-slice.dependency-cycle, spec:consumers.design-slice.folded-example, spec:consumers.design-slice.independent-example, spec:consumers.design-slice.outside-components, spec:consumers.design-slice.outside-holding, spec:consumers.design-slice.outside-satisfied, spec:consumers.design-slice.outside-unbound, test:protocol.design-slice

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.graph-first-planning

    Implementing units

    • impl:protocol.graph-first-planning · test/skills.test.ts:290

    Referencing units

    None.

    Enabled verifiers: test:protocol.graph-first-planning

    Packs: pack:self-hosting-v1

  • spec:consumers.intent-composition.proposal.memo

    Implementing units

    • impl:protocol.proposal-memo-recipe · test/recipes.test.ts:7298
    • impl:protocol.studio-proposal-memo · src/studio-elements/memo.ts:13

    Referencing units

    None.

    Enabled verifiers: spec:consumers.intent-composition.proposal.memo.shared

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.obsidian-vault.bases

    Implementing units

    • impl:protocol.vault-bases · src/projections/vault/bases.ts:43
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.bases.views-match-sources

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.obsidian-vault.iteration

    Implementing units

    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98
    • impl:protocol.vault-text · src/projections/vault/text.ts:30
    • impl:protocol.vault-watch · src/cli/vault-command.ts:219

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.iteration.watch-rewrites-changed-notes, spec:consumers.obsidian-vault.iteration.watch-source-anchor

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.review-perspectives

    Implementing units

    • impl:protocol.perspective-filter-recipe · test/iteration-recipes.test.ts:753

    Referencing units

    None.

    Enabled verifiers: test:protocol.perspective-filter-recipe

    Packs: pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.shipped-protocol-corpus

    Implementing units

    • impl:protocol.shipped-protocol-corpus · test/package-smoke.test.ts:252

    Referencing units

    None.

    Enabled verifiers: test:protocol.shipped-protocol-corpus

    Packs: pack:self-hosting-v1

  • spec:consumers.spec-studio.components

    Implementing units

    • component:protocol.studio-elements · src/studio-elements/index.ts:13
    • impl:protocol.studio-compose · src/studio-elements/compose.ts:13
    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-intent-panel-element · src/studio-elements/intent-panel-element.ts:14
    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68
    • impl:protocol.studio-scenario-editor · src/studio-elements/scenario-editor.ts:17
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.inputs.both-given

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-inputs-both-given

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.inputs.graph-only

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-graph-only

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.data.recipe-answers

    Implementing units

    • impl:protocol.studio-recipes · src/projections/studio/recipes.ts:34

    Referencing units

    • impl:protocol.studio-register-contracts · src/projections/studio/pages/register-answers.ts:4

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagram-kinds.requirement-trace

    Implementing units

    • impl:protocol.studio-requirement-diagram · src/projections/studio/diagrams/requirement.ts:12
    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagrams

    Implementing units

    • impl:protocol.studio-architecture-diagrams · src/projections/studio/diagrams/architecture.ts:4
    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-diagram-model · src/projections/studio/diagrams/model.ts:1
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73
    • impl:protocol.studio-relation-diagrams · src/projections/studio/diagrams/bands.ts:10

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.diagrams.folds-by-context, spec:consumers.spec-studio.diagrams.folds-by-layer, spec:consumers.spec-studio.diagrams.within-bound, test:protocol.studio-diagram-core

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diff-page.changed-entry

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diff-changed-entry

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.glossary-page

    Implementing units

    • impl:protocol.studio-glossary · src/projections/studio/pages/glossary-page.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.glossary-page.same-word-twice

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.index-page

    Implementing units

    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.intent-panel

    Implementing units

    • impl:protocol.studio-compose · src/studio-elements/compose.ts:13
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-intent-panel · src/studio-elements/intent-panel.ts:51
    • impl:protocol.studio-intent-panel-element · src/studio-elements/intent-panel-element.ts:14
    • impl:protocol.studio-scenario-editor · src/studio-elements/scenario-editor.ts:17

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.intent-panel.refresh-keeps-intents, test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50
    • impl:protocol.studio-evidence-lens · src/projections/studio/pages/evidence-page.ts:3
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-tests-lens · src/projections/studio/pages/tests-page.ts:34

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.owner-queue

    Implementing units

    • impl:protocol.studio-owner-queue · src/projections/studio/pages/queue-page.ts:9

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.owner-queue.dependency-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.pack-page

    Implementing units

    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-priority, test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.studio-command · src/cli/studio-command.ts:106
    • impl:protocol.studio-page-catalog · src/projections/studio/pages/index.ts:21
    • impl:protocol.studio-paths · src/projections/studio/paths.ts:2
    • impl:protocol.studio-publish · src/projections/studio/publish.ts:24

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-data, test:protocol.studio-publisher

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.register-input

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:consumers.spec-studio.registers

    Implementing units

    • impl:protocol.studio-registers · src/projections/studio/pages/registers-page.ts:47

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.registers.blocking-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.runs-page

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-runs-page · src/projections/studio/pages/runs-page.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.runs-page.external-evidence

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.search

    Implementing units

    • impl:protocol.studio-concept-match · src/reader/concept-match.ts:43
    • impl:protocol.studio-search-page · src/projections/studio/pages/search-page.ts:5
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-concept-match, test:protocol.studio-page-elements, test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.shell

    Implementing units

    • impl:protocol.studio-code-spans · src/projections/studio/pages/code-spans.ts:9
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-html · src/projections/studio/pages/html.ts:8
    • impl:protocol.studio-text · src/projections/studio/pages/text.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page

    Implementing units

    • impl:protocol.studio-requirement-view · src/projections/studio/pages/requirement-view.ts:8
    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201
    • impl:protocol.studio-spec-structure · src/projections/studio/pages/spec-structure.ts:44

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.spec-page.cited-declaration, test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.spec-page.core

    Implementing units

    • impl:protocol.studio-spec-page · src/projections/studio/pages/spec-page.ts:201

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-pages

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.studio-on-ramp

    Implementing units

    • impl:protocol.studio-on-ramp · test/skills.test.ts:1693

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-on-ramp

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.upgrade-kit.capability-adoption

    Implementing units

    • impl:protocol.capability-adoption-recipe · test/upgrade-kit.test.ts:514

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal

    Implementing units

    • impl:protocol.rule-key-proposal-recipe · test/upgrade-kit.test.ts:742

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

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

  • spec:consumers.validate-watch

    Implementing units

    • impl:protocol.validate-watch · src/cli/validate-watch.ts:591

    Referencing units

    None.

    Enabled verifiers: test:protocol.validate-watch, test:protocol.validate-watch-rules

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

  • spec:decisions.pack-design-page

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-design-page · src/projections/design-review-pages.ts:120

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:model.design-maturity

    Implementing units

    • impl:protocol.pack-design · src/reader/reader.ts:499

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-design

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:validation.pack-coherence.incoherent-aggregate

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.pack-coherence.incoherent-aggregate

    Packs: pack:self-hosting-v1

Distance 4

  • spec:consumers.agent-surface.answer-shapes

    Implementing units

    • impl:protocol.answer-shape-recipes · test/recipes.test.ts:6214

    Referencing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.reader · src/reader/reader.ts:687

    Enabled verifiers: test:protocol.answer-shape-recipes

    Packs: pack:design-iteration-v1, pack:self-hosting-v1

  • spec:consumers.agent-surface.example-space-coverage

    Implementing units

    • impl:protocol.example-space-coverage-recipe · test/studio-s1.test.ts:856
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.example-space-coverage.number-not-enumerable, spec:consumers.agent-surface.example-space-coverage.uncovered-literal

    Packs: pack:design-management-v1, pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.command-line

    Implementing units

    • impl:protocol.adopter-help · src/cli/help.ts:167
    • impl:protocol.agent-surface-cli · src/cli/sdp.ts:94
    • impl:protocol.build-args · src/cli/build-args.ts:11
    • impl:protocol.generate-command · src/cli/generate-command.ts:34

    Referencing units

    None.

    Enabled verifiers: spec:consumers.command-line.generate-check-failure, spec:consumers.command-line.generate-writes-every-root, spec:consumers.command-line.verb-help-touches-nothing

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

  • spec:consumers.context-bundle

    Implementing units

    • impl:protocol.context-bundle-recipe · test/iteration-recipes.test.ts:765

    Referencing units

    None.

    Enabled verifiers: spec:consumers.context-bundle.oversized-member-named, spec:consumers.context-bundle.parts-cover-the-pack, test:protocol.context-bundle-recipe

    Packs: pack:adopter-speed-v1, pack:design-iteration-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.chain

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.chain

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-absent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-absent

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-differing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-differing

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-matching

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-matching

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-unreadable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-unreadable

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.component-unrelated

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.component-unrelated

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.decision-backlink

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.decision-backlink

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.dependency-cycle

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.dependency-cycle

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.folded-example

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.folded-example

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.independent-example

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.independent-example

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-components

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-components

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-holding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-holding

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-satisfied

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-satisfied

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.design-slice.outside-unbound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-slice.outside-unbound

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.engine-provenance

    Implementing units

    • impl:protocol.build-artifacts · src/cli/build-artifacts.ts:182
    • impl:protocol.engine-provenance-cli · src/cli/sdp.ts:102

    Referencing units

    None.

    Enabled verifiers: test:protocol.engine-provenance

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:consumers.intent-composition.proposal.memo.shared

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-memo-shared

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.obsidian-vault.bases.views-match-sources

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.bases.views-match-sources

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.obsidian-vault.iteration.watch-rewrites-changed-notes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.iteration.watch-rewrites-changed-notes

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.obsidian-vault.iteration.watch-source-anchor

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.iteration.watch-source-anchor

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:consumers.readiness-planner

    Implementing units

    • impl:protocol.statement-queue-recipe · test/self-hosting-readiness-planner.test.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.readiness-planner.cycle-shares-a-round, spec:consumers.readiness-planner.decision-first, spec:consumers.readiness-planner.dependency-order, spec:consumers.readiness-planner.owner-question-holds

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

  • spec:consumers.spec-studio.capability-map-page

    Implementing units

    • impl:protocol.studio-capabilities-page · src/projections/studio/pages/capabilities-page.ts:78
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.cited-line-text

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50
    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-layout · src/projections/studio/diagrams/layout.ts:140
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73
    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7
    • impl:protocol.studio-requirement-diagram · src/projections/studio/diagrams/requirement.ts:12
    • impl:protocol.studio-slice-architecture · src/projections/studio/diagrams/slice.ts:219
    • impl:protocol.studio-slice-dependencies · src/projections/studio/diagrams/slice.ts:10

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-catalog

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.dependency

    Implementing units

    • impl:protocol.studio-slice-dependencies · src/projections/studio/diagrams/slice.ts:10

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-dependency

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.edge-routing

    Implementing units

    • impl:protocol.studio-diagram-routing · src/projections/studio/diagrams/routing.ts:38
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.legibility

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-diagram-layout · src/projections/studio/diagrams/layout.ts:140
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture

    Implementing units

    • impl:protocol.studio-slice-architecture · src/projections/studio/diagrams/slice.ts:219

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-architecture

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagrams.folds-by-context

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-folds-context

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagrams.folds-by-layer

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-folds-layer

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.diagrams.within-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-within-bound

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.export

    Implementing units

    • impl:protocol.studio-diagram-element · src/studio-elements/diagram.ts:23
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-pack-export · src/projections/studio/pages/export-page.ts:35
    • impl:protocol.studio-pack-page · src/projections/studio/pages/pack-page.ts:68

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.export.self-contained, test:protocol.studio-intent-handoff

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.glossary-page.same-word-twice

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-glossary-same-word-twice

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.intent-panel.refresh-keeps-intents

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-intents-refresh

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture

    Implementing units

    • impl:protocol.studio-architecture-lens · src/projections/studio/pages/architecture-page.ts:50

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.lenses.architecture.planned-apart, test:protocol.studio-architecture-maturity-requirement

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.evidence

    Implementing units

    • impl:protocol.studio-evidence-lens · src/projections/studio/pages/evidence-page.ts:3

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-lenses

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.tests

    Implementing units

    • impl:protocol.studio-tests-lens · src/projections/studio/pages/tests-page.ts:34

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.lenses.tests.coverage-row

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.navigation

    Implementing units

    • impl:protocol.studio-frame · src/projections/studio/pages/frame.ts:6
    • impl:protocol.studio-index-page · src/projections/studio/pages/index-page.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-navigation, test:protocol.studio-roadmap-page

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.owner-queue.dependency-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-queue-dependency-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.pack-page.maturity-map

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.page-elements

    Implementing units

    • component:protocol.studio-elements · src/studio-elements/index.ts:13
    • impl:protocol.studio-copy · src/studio-elements/copy.ts:22
    • impl:protocol.studio-expander · src/studio-elements/expander.ts:16
    • impl:protocol.studio-filter · src/studio-elements/filter.ts:25
    • impl:protocol.studio-search-form · src/studio-elements/search.ts:18
    • impl:protocol.studio-search-results · src/studio-elements/search-results.ts:95
    • impl:protocol.studio-stamp · src/studio-elements/stamp.ts:30

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-copy-source, test:protocol.studio-page-elements

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher.watch

    Implementing units

    • impl:protocol.studio-watch · src/cli/studio-command.ts:122

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.publisher.watch.matches-plain-run

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.registers.blocking-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-registers-blocking-first

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.runs-page.external-evidence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-external

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.sharing

    Implementing units

    • impl:protocol.stamp-command · src/cli/stamp-command.ts:8
    • impl:protocol.studio-preview-workflow · test/studio-s4.test.ts:742
    • impl:protocol.studio-stamp · src/studio-elements/stamp.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.sharing.stamp-written-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.slice-page

    Implementing units

    • impl:protocol.studio-slice-page · src/projections/studio/pages/slice-page.ts:25

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-slice-page

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.spec-page.cited-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-cited-declaration

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels

    Implementing units

    • impl:protocol.studio-run-rows · src/projections/studio/pages/run-rows.ts:69
    • impl:protocol.studio-verification-panels · src/projections/studio/pages/spec-verification.ts:74

    Referencing units

    None.

    Enabled verifiers: spec:consumers.spec-studio.verification-panels.rule-coverage, test:protocol.studio-panels

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.collision-and-unkeyable

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

  • spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.proposal-applies-clean

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

  • spec:consumers.vault-on-ramp

    Implementing units

    • impl:protocol.vault-on-ramp · test/skills.test.ts:1995

    Referencing units

    None.

    Enabled verifiers: test:protocol.vault-on-ramp

    Packs: pack:obsidian-vault-v1, pack:self-hosting-v1

  • spec:validation.corpus-rules

    Implementing units

    • impl:protocol.corpus-rule-runner · src/cli/corpus-rules.ts:65
    • impl:protocol.corpus-rules · src/cli/validate-view-command.ts:79
    • impl:protocol.validate-watch · src/cli/validate-watch.ts:591

    Referencing units

    None.

    Enabled verifiers: 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:validation.corpus-rules.copies-contain-changes, spec:validation.corpus-rules.error-finding-fails, spec:validation.corpus-rules.malformed-finding-fails, 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, spec:validation.corpus-rules.warning-finding-informs

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

Distance 5

  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-coverage-number

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-coverage-literal

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.command-line.generate-check-failure

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.generate-check-failure

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

  • spec:consumers.command-line.generate-writes-every-root

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.generate-writes-every-root

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

  • spec:consumers.command-line.verb-help-touches-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.command-line.verb-help-touches-nothing

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

  • spec:consumers.context-bundle.oversized-member-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.context-bundle.oversized-member-named

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

  • spec:consumers.context-bundle.parts-cover-the-pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.context-bundle.parts-cover-the-pack

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

  • spec:consumers.readiness-planner.cycle-shares-a-round

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.cycle-shares-a-round

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

  • spec:consumers.readiness-planner.decision-first

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.decision-first

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

  • spec:consumers.readiness-planner.dependency-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.dependency-order

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

  • spec:consumers.readiness-planner.owner-question-holds

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.readiness-planner.owner-question-holds

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

  • spec:consumers.spec-studio.diagram-kinds.capability-tree

    Implementing units

    • impl:protocol.studio-capability-diagrams · src/projections/studio/diagrams/capability.ts:101
    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-capabilities

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.maturity-picture

    Implementing units

    • impl:protocol.studio-maturity-map · src/projections/studio/pages/maturity-map.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.diagram-kinds.mermaid-source

    Implementing units

    • impl:protocol.studio-diagram-source · src/projections/studio/diagrams/mermaid.ts:13
    • impl:protocol.studio-diagrams · src/projections/studio/diagrams/svg.ts:73

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-diagram-core

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

  • spec:consumers.spec-studio.export.self-contained

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-export-contained

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture.planned-apart

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-planned-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.architecture.unit-register

    Implementing units

    • impl:protocol.studio-unit-register · src/projections/studio/pages/architecture-register.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-architecture-maturity-requirement

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.lenses.tests.coverage-row

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-tests-coverage-row

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.publisher.watch.matches-plain-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-watch-plain

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.sharing.stamp-written-apart

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-stamp-apart

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.spec-studio.verification-panels.rule-coverage

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.studio-rule-coverage

    Packs: pack:self-hosting-v1, pack:spec-studio-v1

  • spec:consumers.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-v1

  • spec:validation.architecture-constraints

    Implementing units

    • impl:protocol.architecture-walk-recipe · test/architecture-recipes.test.ts:10

    Referencing units

    None.

    Enabled verifiers: spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.isolated-context-as-rule, spec:validation.architecture-constraints.unstated-layer-unclassified

    Packs: pack:corpus-checks-v1, pack:design-management-v1, pack:self-hosting-v1

  • spec:validation.corpus-rules.copies-contain-changes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.copies-contain-changes

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

  • spec:validation.corpus-rules.error-finding-fails

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.error-finding-fails

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

  • spec:validation.corpus-rules.malformed-finding-fails

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.malformed-finding-fails

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

  • spec:validation.corpus-rules.params-edit-starts-a-cycle

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.params-edit-starts-a-cycle

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

  • spec:validation.corpus-rules.rules-edit-starts-a-cycle

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.rules-edit-starts-a-cycle

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

  • spec:validation.corpus-rules.unreadable-params-fail-one-file

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.unreadable-params-fail-one-file

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

  • spec:validation.corpus-rules.warning-finding-informs

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.corpus-rules.warning-finding-informs

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

  • spec:validation.external-registers

    Implementing units

    • impl:protocol.external-registers-recipe · test/external-registers.test.ts:9

    Referencing units

    None.

    Enabled verifiers: spec:validation.external-registers.uncited-on-request, spec:validation.external-registers.unknown-and-retired

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

Distance 6

  • spec:validation.architecture-constraints.forbidden-layer-pair

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.architecture-constraints.forbidden-layer-pair

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

  • spec:validation.architecture-constraints.isolated-context-as-rule

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.architecture-constraints.isolated-context-as-rule

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

  • spec:validation.architecture-constraints.unstated-layer-unclassified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.validation.architecture-constraints.unstated-layer-unclassified

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

  • spec:validation.external-registers.uncited-on-request

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.external-registers.uncited-on-request

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

  • spec:validation.external-registers.unknown-and-retired

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.external-registers.unknown-and-retired

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

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingspec:decisions.pack-markdown-carrier
spec:decisions.pack-markdown-carrier · resolves
declaredopens the closed Pack manifest envelope to one optional field, orderNone
refines · outgoingspec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement · resolves
declarednarrows the refusal of recorded work order for one case, the advisory priority of a roadmapNone
decidedBy · incomingspec:carrier.markdown-pack-authoring
spec:carrier.markdown-pack-authoring · resolves
declaredNoneNone
decidedBy · incomingspec:consumers.design-diff
spec:consumers.design-diff · resolves
declaredNoneNone
decidedBy · incomingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
decidedBy · incomingspec:extraction.pack-member-order
spec:extraction.pack-member-order · resolves
declaredNoneNone
decidedBy · incomingspec:model.pack-aggregate
spec:model.pack-aggregate · resolves
declaredNoneNone
dependsOn · incomingPlan and review files stop carrying the delivery record once the roadmap and the pull request do
spec:decisions.roadmap-over-plans · resolves
declaredplan files give up forward planning only once a roadmap holds priority in the graphNone

Bindings

Implementation binding: none

Design reference: present

  • impl:protocol.pack-aggregate · Pack aggregate and model references · src/model/pack.ts:23 · role contract · component component:protocol.model · layer domain · context protocol
  • impl:protocol.pack-member-order · keeps manifest member order on the Pack node · src/extract/derive.ts:153 · role extractor · component component:protocol.extract · layer application · context protocol

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

35. A roadmap orders the next bodies of work, and the graph says what each still needs

spec:consumers.roadmap

A roadmap orders the next bodies of work, and the graph says what each still needs

spec:consumers.roadmapUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 13 design entries · 10 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/roadmap.sdp.md

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

The Protocol's planning reads the graph: the build backlog lists ready work no code realizes, the design backlog lists defined work, and the statement queue orders what a person can state. None of them says which capability comes first. A roadmap is that one authored choice, the order of the next few bodies of work. Everything else about an entry, whether it still needs design, waits only for a person's statement, is ready to build, or is built, is read from the graph each time, so a roadmap never goes stale in what it says about state. It goes stale only in its order, which its owner edits.

An entry stands for its whole refinement subtree: an epic for its features and stories, a feature for its stories. The reading counts the subtree's work by what each part needs, so a large entry shows how much of it is designed and built, and the parts that could be built now.

Intent
actor
The owner choosing what the next pull requests take up, and an agent opening the next body of work.
problem
Priority lives in prose, in each pull request's forward section and in the plan files, which the graph cannot read and which go stale as work lands.
outcome
Read a roadmap as an ordered list of upcoming capabilities, each placed by the graph in what it needs next, to design, to state, to build or built, with the design it lacks and the work it rests on.
Behavior
rule.entries line 35 · specs/consumers/roadmap.sdp.md:35
A roadmap's entries are its Pack's members in authored order, each numbered by its place from 1; an entry may be an epic, a feature or a story, and its place states its owner's preference and nothing else.

no example exercises it

rule.scope line 36 · specs/consumers/roadmap.sdp.md:36
An entry's scope is the entry and every Spec that reaches it through one or more refines edges, each counted once whichever parent it reaches through; its work is the Specs of its scope whose kind is neither example nor decision, the build backlog's exclusions.

spec:consumers.roadmap.buildable-part · enabled, spec:consumers.roadmap.built-work · enabled, spec:consumers.roadmap.design-part · enabled, spec:consumers.roadmap.outside-parent · enabled, spec:consumers.roadmap.statement-part · enabled

rule.specNeed line 37 · specs/consumers/roadmap.sdp.md:37
Each Spec in a scope has a need read from the graph: to design when it states a rung below ready and its floor does not reach ready; to state when it states a rung below ready and its floor reaches ready, so only a person's statement stands before it; to build when it states ready, is neither an example nor a decision, and is not implemented; built when it states ready and is implemented; settled when it is an example or a decision that states ready.

spec:consumers.roadmap.buildable-part · enabled, spec:consumers.roadmap.built-work · enabled, spec:consumers.roadmap.design-part · enabled, spec:consumers.roadmap.statement-part · enabled

rule.drift line 38 · specs/consumers/roadmap.sdp.md:38
A Spec of an entry's work that is implemented while it states below ready keeps its need and counts as drift, as the drift alarm reads it.

spec:consumers.roadmap.drifting-part · enabled

rule.entryNeed line 39 · specs/consumers/roadmap.sdp.md:39
An entry needs the first of to design, to state and to build that any Spec of its work needs, and is built when every Spec of its work is built; an entry reads built only when every Spec of its work states ready and is implemented.

spec:consumers.roadmap.blocking-part · enabled, spec:consumers.roadmap.buildable-part · enabled, spec:consumers.roadmap.built-work · enabled, spec:consumers.roadmap.design-part · enabled, spec:consumers.roadmap.missing-evidence · enabled, spec:consumers.roadmap.statement-part · enabled

rule.apart line 40 · specs/consumers/roadmap.sdp.md:40
An entry that is itself an example or a decision, whose scope holds no work, takes no need: it is listed apart with its place and its own need, and it is read through the entries it verifies or shapes.

no example exercises it

rule.entryShows line 41 · specs/consumers/roadmap.sdp.md:41
Each entry shows its stated rung, the rung its floor reaches, its stated next rung with the floor clauses that hold it, its work counted by need with the parts to build now, every blocking open question in its scope, and every decision below ready that its scope holds or names by decidedBy, with that decision's blocking questions, keyed or not.

spec:consumers.roadmap.blocking-part · enabled, spec:consumers.roadmap.missing-evidence · enabled

rule.workRows line 42 · specs/consumers/roadmap.sdp.md:42
Each entry lists every Spec of its work once, with its need, its stated rung, the rung its floor reaches, its stated next rung with the floor clauses and the dependency targets that hold it, and whether it is drift; the parts with the entry's need are the ones that set it, so a descendant that holds an entry back is named with what holds it, and the entry's own readiness stays labelled apart.

spec:consumers.roadmap.blocking-part · enabled, spec:consumers.roadmap.buildable-part · enabled, spec:consumers.roadmap.built-work · enabled, spec:consumers.roadmap.design-part · enabled, spec:consumers.roadmap.drifting-part · enabled, spec:consumers.roadmap.missing-evidence · enabled, spec:consumers.roadmap.outside-parent · enabled, spec:consumers.roadmap.statement-part · enabled

rule.restsOn line 43 · specs/consumers/roadmap.sdp.md:43
An entry rests on each resolving Spec outside its scope that any Spec of its scope names by dependsOn, constrainedBy or refines, while that Spec is to design, to state or to build, so a descendant's second parent outside the entry counts as the entry's own parent does; shaping decisions stay in the decision rows. Each row names the relation, the Specs of the scope that name it, the Spec's need and stated rung, whether it holds a ready statement in the scope because it states below defined, and the place of the first entry whose scope holds it, or none when it lies outside the roadmap.

spec:consumers.roadmap.outside-parent · enabled

rule.restedOnBy line 44 · specs/consumers/roadmap.sdp.md:44
An entry is rested on by each Spec outside its scope, to design, to state or to build, that names a Spec of its scope by dependsOn, constrainedBy or decidedBy, so a reader sees what waits on it.

no example exercises it

rule.waiting line 45 · specs/consumers/roadmap.sdp.md:45
Apart from the entries, the reading lists what waits on the person the caller names, the owner by default: each open question whose decider names that person, on a Spec of any entry's scope or on a decision a scope names by decidedBy; and each such Spec or decision whose floor reaches a rung above the rung it states, a statement only a person makes, which for a decision is its ratification. Each row carries the places of the entries it touches. Questions follow their first place; statements keep their relative order in the statement queue across the whole roadmap, so a Spec others rest on comes first whatever its place, and their places never reorder them.

spec:consumers.roadmap.statement-order · enabled

rule.withoutDecider line 46 · specs/consumers/roadmap.sdp.md:46
The open questions over the same Specs that name no decider are listed apart and counted, blocking and not, so a question nobody is named to settle never reads as an empty workload; the reading never infers a decider from a question's prose.

no example exercises it

rule.earlier line 47 · specs/consumers/roadmap.sdp.md:47
Each entry lists the waiting statements the statement queue puts before its own: every Spec that the queue says one of the entry's waiting statements rests on, its work's and its shaping decisions' alike, each once, in the queue's order, marked as inside the entry, at the first place of another entry whose scope or shaping decisions it is among, or outside the roadmap. The list advises the order of statements and is never a readiness requirement.

spec:consumers.roadmap.statement-order · enabled

rule.builtStays line 48 · specs/consumers/roadmap.sdp.md:48
A built entry keeps its place and reads built until someone edits the roadmap; nothing removes it, and no check reports it.

no example exercises it

rule.overlap line 49 · specs/consumers/roadmap.sdp.md:49
Two entries may share Specs, as an epic and a feature beneath it do; each reads its own scope and names the places of the entries it shares a Spec with.

no example exercises it

rule.readingOrder line 50 · specs/consumers/roadmap.sdp.md:50
A Pack whose manifest does not state order: priority reads the same way when it is named, and the answer says its order is reading order, so no view presents it as a priority.

no example exercises it

rule.statesNothing line 51 · specs/consumers/roadmap.sdp.md:51
The reading states, records and gates nothing: it moves no rung, authors no fact and reports no finding, and work taken up out of its place is never a finding.

no example exercises it

0 unkeyed rules.

Verifying examples

A descendant question holds the entry for design · spec:consumers.roadmap.blocking-part · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has a ready root and one descendant held by a blocking question"}
When the roadmap recipe reads the probe roadmap
Then the entry names {part: "spec:probe.part"} among the parts with its need, held by {clause: "no-blocking-open-questions"}

Open example

A ready unbound part needs building · spec:consumers.roadmap.buildable-part · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part ready and not implemented"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to build"}

Open example

Built work stays on the roadmap · spec:consumers.roadmap.built-work · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "is ready and implemented throughout"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "built"}

Open example

An unfinished part needs design · spec:consumers.roadmap.design-part · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part below ready whose floor stops short"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to design"}

Open example

A binding below ready remains drift · spec:consumers.roadmap.drifting-part · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part implemented below ready"}
When the roadmap recipe reads the probe roadmap
Then the entry counts {drift: 1} parts as drift

Open example

A descendant without evidence names its holding clause · spec:consumers.roadmap.missing-evidence · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has a ready root and one descendant without its kind's evidence"}
When the roadmap recipe reads the probe roadmap
Then the entry names {part: "spec:probe.part"} among the parts with its need, held by {clause: "kind-evidence-present"}

Open example

A descendant names its outside parent · spec:consumers.roadmap.outside-parent · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one descendant that also refines a Spec outside the roadmap"}
When the roadmap recipe reads the probe roadmap
Then the entry rests on {target: "spec:probe.outside"} through {origin: "spec:probe.part"}

Open example

Waiting statements keep dependency order against roadmap places · spec:consumers.roadmap.statement-order · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.dependent"}
Given that work {state: "has one part below ready whose floor reaches ready"}
Given a probe roadmap whose first entry rests on a Spec of its second entry, both waiting for a statement
When the roadmap recipe reads the probe roadmap
Then the waiting statements list {earlier: "spec:probe.base"} before {later: "spec:probe.dependent"}

Open example

A complete part waits for a statement · spec:consumers.roadmap.statement-part · ready floor ready

Executable Spec

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part below ready whose floor reaches ready"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to state"}

Open example

Example space

Given a probe roadmap whose entry holds the work {work:string}
Given that work {state:"is ready and implemented throughout"|"has one part ready and not implemented"|"has one part below ready whose floor reaches ready"|"has one part below ready whose floor stops short"|"has one part implemented below ready"|"has a ready root and one descendant without its kind's evidence"|"has a ready root and one descendant held by a blocking question"|"has one descendant that also refines a Spec outside the roadmap"}
Given a probe roadmap whose first entry rests on a Spec of its second entry, both waiting for a statement
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need:"to design"|"to state"|"to build"|"built"}
Then the entry counts {drift:number} parts as drift
Then the entry names {part:string} among the parts with its need, held by {clause:string}
Then the entry rests on {target:string} through {origin:string}
Then the waiting statements list {earlier:string} before {later:string}
Design
roadmapRecipe line 55 · specs/consumers/roadmap.sdp.md:55
recipe 53, the roadmap, takes params.pack, one Pack id, and params.decider, a token on the decider field's grammar, "owner" by default; without pack it reads every Pack whose manifest states order: priority, in id order; a pack that names no Pack, or a decider off the grammar, returns { diagnostics: [{ parameter, problem }] } and no roadmaps.
roadmapAnswer line 56 · specs/consumers/roadmap.sdp.md:56
{ decider, roadmaps }, one roadmap per Pack read: { pack, title, framing, order, totals, entries, apart, unresolved, waiting }, where order is "priority" or "reading" and totals is { entries, toDesign, toState, toBuild, built, apart, unresolved, questions, blockingQuestions, withoutDecider, blockingWithoutDecider, statements }, the entries with each need and the rows waiting. entries in totals counts every manifest member, including unresolved ones, and totals.unresolved counts the unresolved members; unresolved lists { place, id } in manifest order for members that do not resolve, and every place is the original manifest position, never renumbered.

no citation recorded

needValues line 57 · specs/consumers/roadmap.sdp.md:57
an entry's need is "to design", "to state", "to build" or "built"; a Spec's need is one of those or "settled".
entryRow line 58 · specs/consumers/roadmap.sdp.md:58
{ place, id, title, specKind, altitude, need, statedReadiness, floorReached, statedNextRung, holdsNextRung, work, workRows, buildNow, blockingQuestions, decisions, restsOn, restedOnBy, earlierStatements, packs, sharesScopeWith } in place order, where statedNextRung is null at ready, holdsNextRung lists the holding rows that keep the floor from the stated next rung, work is { specs, toDesign, toState, toBuild, built, drift } counted over the entry's work, buildNow lists the ids of its work to build, packs lists the entry's Packs other than the roadmap, and sharesScopeWith lists places.

no citation recorded

workRow line 59 · specs/consumers/roadmap.sdp.md:59
workRows lists every Spec counted in work once, in Spec-id order, as { id, need, statedReadiness, floorReached, statedNextRung, holdsNextRung, drift }, with statedNextRung and holdsNextRung read as on the entry row and drift a boolean; the rows whose need equals the entry's are the ones that set it.

no citation recorded

holdsRow line 60 · specs/consumers/roadmap.sdp.md:60
a holding row is { clause, targets }, clause the id of a floor clause that fails at the stated next rung, in the floor evaluator's order, and targets the ids that the typed-dependency clause names, in its order, empty for any other clause.
questionRow line 61 · specs/consumers/roadmap.sdp.md:61
{ address, spec, index, question, blocking, decider, provisional } for each blocking question in the entry's scope, address null when the question carries no key, index its authored position from 0, and decider and provisional null when absent, sorted by Spec id and authored position.

no citation recorded

decisionRow line 62 · specs/consumers/roadmap.sdp.md:62
{ id, title, statedReadiness, blockingQuestions } for each decision below ready the entry's scope holds or names by decidedBy, sorted by id, blockingQuestions listing a question row for each of its blocking questions, keyed or not.

no citation recorded

restsOnRow line 63 · specs/consumers/roadmap.sdp.md:63
{ id, via, from, need, statedReadiness, holdsReady, onRoadmap }, where via is "dependsOn", "constrainedBy" or "refines", from lists in id order the Specs of the scope that name it by that relation, holdsReady is true when the Spec states below defined, and onRoadmap is the place of the first entry whose scope holds it or null; rows sort by id, then via.

no citation recorded

restedOnByRow line 64 · specs/consumers/roadmap.sdp.md:64
{ id, via, need, onRoadmap }, where via is the relation it names the scope by; rows sort by id, then via.

no citation recorded

earlierRow line 65 · specs/consumers/roadmap.sdp.md:65
earlierStatements lists { id, where, onRoadmap } in the statement queue's order, where where is "entry" for a Spec of the entry's scope or one of its shaping decisions, "roadmap" for a waiting statement another entry touches through its scope or its shaping decisions, and "outside" otherwise, and onRoadmap is the first place of the entries that statement touches, null unless where is "roadmap".

no citation recorded

apartRow line 66 · specs/consumers/roadmap.sdp.md:66
{ place, id, specKind, statedReadiness, need } in place order.

no citation recorded

waitingRows line 67 · specs/consumers/roadmap.sdp.md:67
waiting is { questions, withoutDecider, statements }: a question in either list is a question row with places; a statement is { id, statedReadiness, floorReached, places }. Questions sort by their first place, then blocking ones first, then by Spec id and authored position. Statements keep their relative order in the statement queue, recipe 46, across the whole roadmap; their places name the entries they touch and never reorder them.

no citation recorded

Verification

Verifier bindings

Example space

  • work · string · declared by a probe roadmap whose entry holds the work {work}
  • state · "is ready and implemented throughout" | "has one part ready and not implemented" | "has one part below ready whose floor reaches ready" | "has one part below ready whose floor stops short" | "has one part implemented below ready" | "has a ready root and one descendant without its kind's evidence" | "has a ready root and one descendant held by a blocking question" | "has one descendant that also refines a Spec outside the roadmap" · declared by that work {state}

Bound points

Exampleworkstate
spec:consumers.roadmap.blocking-part"spec:probe.root, spec:probe.part""has a ready root and one descendant held by a blocking question"
spec:consumers.roadmap.buildable-part"spec:probe.root, spec:probe.part""has one part ready and not implemented"
spec:consumers.roadmap.built-work"spec:probe.root, spec:probe.part""is ready and implemented throughout"
spec:consumers.roadmap.design-part"spec:probe.root, spec:probe.part""has one part below ready whose floor stops short"
spec:consumers.roadmap.drifting-part"spec:probe.root, spec:probe.part""has one part implemented below ready"
spec:consumers.roadmap.missing-evidence"spec:probe.root, spec:probe.part""has a ready root and one descendant without its kind's evidence"
spec:consumers.roadmap.outside-parent"spec:probe.root, spec:probe.part""has one descendant that also refines a Spec outside the roadmap"
spec:consumers.roadmap.statement-order"spec:probe.dependent""has one part below ready whose floor reaches ready"
spec:consumers.roadmap.statement-part"spec:probe.root, spec:probe.part""has one part below ready whose floor reaches ready"

Oracle binding: present · oracle:protocol.roadmap · test/roadmap-examples.test.ts:27

Coverage

work: "spec:probe.root, spec:probe.part" · spec:consumers.roadmap.blocking-part, spec:consumers.roadmap.buildable-part, spec:consumers.roadmap.built-work, spec:consumers.roadmap.design-part, spec:consumers.roadmap.drifting-part, spec:consumers.roadmap.missing-evidence, spec:consumers.roadmap.outside-parent, spec:consumers.roadmap.statement-part; "spec:probe.dependent" · spec:consumers.roadmap.statement-order · not enumerable

state
Declared valueExamples
"is ready and implemented throughout"spec:consumers.roadmap.built-work
"has one part ready and not implemented"spec:consumers.roadmap.buildable-part
"has one part below ready whose floor reaches ready"spec:consumers.roadmap.statement-order, spec:consumers.roadmap.statement-part
"has one part below ready whose floor stops short"spec:consumers.roadmap.design-part
"has one part implemented below ready"spec:consumers.roadmap.drifting-part
"has a ready root and one descendant without its kind's evidence"spec:consumers.roadmap.missing-evidence
"has a ready root and one descendant held by a blocking question"spec:consumers.roadmap.blocking-part
"has one descendant that also refines a Spec outside the roadmap"spec:consumers.roadmap.outside-parent

Unbound

  • work: None
  • state: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.roadmap
Requirement drawing for spec:consumers.roadmapsatisfies · anchoredsatisfies · anchoredsatisfies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredrefines, verifies · declaredmodels · anchoredrefines · declaredrefines · declaredrefines · declaredrefines · declaredIntended Specsspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…consumers.roadmapdeclared Specspec:consumers.roadmap.memoA roadmap renders as theforward section of a pullrequest description…consumers.roadmap.memodeclared Specspec:consumers.spec-studio.roadmap-pageThe roadmap page shows theupcoming work in priorityorder, split by what itneeds…consumers.spec-studio.roadmap-pagedeclared SpecDeclared verifying examples9 verifying examples · declared; 9 test bindings · anchored, folded9 verifying examples ·declared9 test bindings · anchored ·foldedSatisfying or referencingunits3 satisfying units · anchored, folded3 satisfying units ·anchoredTest or oracle bindings3 test bindings · anchored, folded3 test bindings · anchoredoracle:protocol.roadmaporacle:protocol.roadmap…protocol.roadmapanchored oracle bindingOutside the selected setspec:consumers.graph-first-planningThe next body of work isplanned from the graph, notfrom a prose index…consumers.graph-first-planningdeclared Specspec:consumers.spec-studioThe Spec Studio is a staticHTML workbench over the onegraph…consumers.spec-studiodeclared Spec
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • spec:consumers.roadmap.blocking-part: A descendant question holds the entry for design · declared Spec
  • spec:consumers.roadmap.buildable-part: A ready unbound part needs building · declared Spec
  • spec:consumers.roadmap.built-work: Built work stays on the roadmap · declared Spec
  • spec:consumers.roadmap.design-part: An unfinished part needs design · declared Spec
  • spec:consumers.roadmap.drifting-part: A binding below ready remains drift · declared Spec
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description · declared Spec
  • spec:consumers.roadmap.missing-evidence: A descendant without evidence names its holding clause · declared Spec
  • spec:consumers.roadmap.outside-parent: A descendant names its outside parent · declared Spec
  • spec:consumers.roadmap.statement-order: Waiting statements keep dependency order against roadmap places · declared Spec
  • spec:consumers.roadmap.statement-part: A complete part waits for a statement · declared Spec
  • spec:consumers.spec-studio.roadmap-page: The roadmap page shows the upcoming work in priority order, split by what it needs · declared Spec
  • spec:consumers.graph-first-planning: The next body of work is planned from the graph, not from a prose index · declared Spec
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph · declared Spec
  • impl:protocol.roadmap-memo-recipe: realizes the roadmap memo in the shipped recipe catalog · anchored code · test/roadmap.test.ts:27
  • impl:protocol.roadmap-recipe: realizes the roadmap in the shipped recipe catalog · anchored code · test/roadmap.test.ts:20
  • impl:protocol.studio-roadmap-page: renders roadmap needs, holding parts and the shared Markdown memo · anchored code · src/projections/studio/pages/roadmap-page.ts:168
  • oracle:protocol.roadmap: oracle:protocol.roadmap · anchored oracle binding · test/roadmap-examples.test.ts:27
  • test:protocol.roadmap-memo-recipe: test:protocol.roadmap-memo-recipe · anchored test binding · binding present · test/roadmap.test.ts:39
  • test:protocol.roadmap-recipe: test:protocol.roadmap-recipe · anchored test binding · binding present · test/roadmap.test.ts:34
  • test:protocol.roadmap.blocking-part: test:protocol.roadmap.blocking-part · anchored test binding · binding present · test/roadmap-examples.test.ts:209
  • test:protocol.roadmap.buildable-part: test:protocol.roadmap.buildable-part · anchored test binding · binding present · test/roadmap-examples.test.ts:174
  • test:protocol.roadmap.built-work: test:protocol.roadmap.built-work · anchored test binding · binding present · test/roadmap-examples.test.ts:167
  • test:protocol.roadmap.design-part: test:protocol.roadmap.design-part · anchored test binding · binding present · test/roadmap-examples.test.ts:188
  • test:protocol.roadmap.drifting-part: test:protocol.roadmap.drifting-part · anchored test binding · binding present · test/roadmap-examples.test.ts:195
  • test:protocol.roadmap.missing-evidence: test:protocol.roadmap.missing-evidence · anchored test binding · binding present · test/roadmap-examples.test.ts:202
  • test:protocol.roadmap.outside-parent: test:protocol.roadmap.outside-parent · anchored test binding · binding present · test/roadmap-examples.test.ts:216
  • test:protocol.roadmap.statement-order: test:protocol.roadmap.statement-order · anchored test binding · binding present · test/roadmap-examples.test.ts:223
  • test:protocol.roadmap.statement-part: test:protocol.roadmap.statement-part · anchored test binding · binding present · test/roadmap-examples.test.ts:181
  • test:protocol.studio-roadmap-page: test:protocol.studio-roadmap-page · anchored test binding · binding present · test/studio-roadmap.test.ts:24
  • spec:consumers.roadmap refines spec:consumers.graph-first-planning · declared — a roadmap is advisory reading of the graph for choosing the next work
  • spec:consumers.roadmap.blocking-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.blocking-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.memo refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part verifies spec:consumers.roadmap · declared
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.roadmap · declared — the page is the roadmap's reading for a person
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.spec-studio · declared
  • impl:protocol.roadmap-memo-recipe satisfies spec:consumers.roadmap.memo · anchored
  • impl:protocol.roadmap-recipe satisfies spec:consumers.roadmap · anchored
  • impl:protocol.studio-roadmap-page satisfies spec:consumers.spec-studio.roadmap-page · anchored
  • impl:protocol.studio-roadmap-page satisfies spec:consumers.roadmap.memo · anchored
  • oracle:protocol.roadmap models spec:consumers.roadmap · anchored
  • test:protocol.roadmap-memo-recipe verifies spec:consumers.roadmap.memo · anchored
  • test:protocol.roadmap-recipe verifies spec:consumers.roadmap · anchored
  • test:protocol.roadmap.blocking-part verifies spec:consumers.roadmap.blocking-part · anchored
  • test:protocol.roadmap.buildable-part verifies spec:consumers.roadmap.buildable-part · anchored
  • test:protocol.roadmap.built-work verifies spec:consumers.roadmap.built-work · anchored
  • test:protocol.roadmap.design-part verifies spec:consumers.roadmap.design-part · anchored
  • test:protocol.roadmap.drifting-part verifies spec:consumers.roadmap.drifting-part · anchored
  • test:protocol.roadmap.missing-evidence verifies spec:consumers.roadmap.missing-evidence · anchored
  • test:protocol.roadmap.outside-parent verifies spec:consumers.roadmap.outside-parent · anchored
  • test:protocol.roadmap.statement-order verifies spec:consumers.roadmap.statement-order · anchored
  • test:protocol.roadmap.statement-part verifies spec:consumers.roadmap.statement-part · anchored
  • test:protocol.studio-roadmap-page verifies spec:consumers.spec-studio.roadmap-page · anchored
  • test:protocol.studio-roadmap-page verifies spec:consumers.roadmap.memo · 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

  • A roadmap states advisory priority in the graph

    A roadmap is a Pack whose manifest states order: priority; its members' authored order is the corpus's advisory priority, first entry first. order is an optional manifest field whose one lawful value is priority, and a Pack without it keeps the reading order every Pack has. Priority is preference among bodies of work and nothing more: it carries no date, no dependency, no status and no gate, and no check, recipe or page treats a place on a roadmap as permission, obligation or sequence. Everything a roadmap shows about an entry, what it still needs and what holds it, is read from the graph each time. A corpus may keep several roadmaps, and a Spec may be listed on any number of them.

Runtime
  • impl:protocol.roadmap-recipe · realizes the roadmap in the shipped recipe catalog · test/roadmap.test.ts:20

    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:consumers.roadmap
  • E7: verifies · declared (9 unit edges)
Relations of spec:consumers.roadmaprefines · declareddependsOn · declareddecidedBy · declareddependsOn · declareddependsOn · declaredrefines · declaredE7Outgoing refinesspec:consumers.graph-first-planningThe next body of work isplanned from the graph, notfrom a prose index…consumers.graph-first-planningOutgoing dependsOnspec:consumers.roadmap.fold.Outgoing.dependsOn4 Outgoing dependsOn, folded…consumers.roadmap.fold.Outgoing.dependsOnOutgoing decidedByspec:decisions.roadmap-priorityA roadmap states advisorypriority in the graph…decisions.roadmap-prioritySubjectspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…consumers.roadmapIncoming refinesspec:consumers.roadmap.fold.Incoming.refines11 Incoming refines, folded…consumers.roadmap.fold.Incoming.refinesIncoming dependsOnspec:consumers.roadmap.fold.Incoming.dependsOn3 Incoming dependsOn, folded…consumers.roadmap.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.graph-first-planning: The next body of work is planned from the graph, not from a prose index
  • spec:consumers.projections-model.roadmap-views: Roadmap views read releases, baselines and phases from git and the graph
  • spec:consumers.readiness-planner: The readiness planner orders the statements a person can make
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.blocking-part: A descendant question holds the entry for design
  • spec:consumers.roadmap.buildable-part: A ready unbound part needs building
  • spec:consumers.roadmap.built-work: Built work stays on the roadmap
  • spec:consumers.roadmap.design-part: An unfinished part needs design
  • spec:consumers.roadmap.drifting-part: A binding below ready remains drift
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description
  • spec:consumers.roadmap.missing-evidence: A descendant without evidence names its holding clause
  • spec:consumers.roadmap.outside-parent: A descendant names its outside parent
  • spec:consumers.roadmap.statement-order: Waiting statements keep dependency order against roadmap places
  • spec:consumers.roadmap.statement-part: A complete part waits for a statement
  • spec:consumers.spec-studio.roadmap-page: The roadmap page shows the upcoming work in priority order, split by what it needs
  • spec:consumers.upgrade-kit: The upgrade kit shows a corpus what it could adopt
  • spec:decisions.roadmap-priority: A roadmap states advisory priority in the graph
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
  • spec:validation.next-rung-floor: The floor names what blocks the floor's next rung
  • spec:validation.typed-dependency-floor: A ready Spec rests only on settled dependencies
  • spec:consumers.roadmap decidedBy spec:decisions.roadmap-priority · declared
  • spec:consumers.roadmap dependsOn spec:consumers.readiness-planner · declared — the statements waiting on a person follow the statement queue's order
  • spec:consumers.roadmap dependsOn spec:model.open-question-fields · declared — the questions waiting on a person are selected by their decider field
  • spec:consumers.roadmap dependsOn spec:validation.next-rung-floor · declared — an entry's stated next rung and the clauses that hold it come from the one floor evaluator
  • spec:consumers.roadmap dependsOn spec:validation.typed-dependency-floor · declared — what an entry rests on is read through the relations the ready floor reads
  • spec:consumers.roadmap refines spec:consumers.graph-first-planning · declared — a roadmap is advisory reading of the graph for choosing the next work
  • spec:consumers.projections-model.roadmap-views dependsOn spec:consumers.roadmap · declared — the roadmap view the owner asked for is the roadmap reading, its page and its memo
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.roadmap · declared — the page renders the roadmap reading
  • spec:consumers.upgrade-kit dependsOn spec:consumers.roadmap · declared — the guide teaches advisory priority and the roadmap memo as planning records
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.roadmap · declared — the Protocol reads its own next work from its roadmap
  • spec:consumers.roadmap.blocking-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.memo refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part refines spec:consumers.roadmap · declared
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.roadmap · declared — the page is the roadmap's reading for a person
  • spec:consumers.roadmap.blocking-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order verifies spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part verifies spec:consumers.roadmap · 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.graph-first-planning · stated ready, floor ready
  • dependsOn · spec:consumers.readiness-planner · stated ready, floor ready
  • dependsOn · spec:model.open-question-fields · stated ready, floor ready
  • dependsOn · spec:validation.next-rung-floor · stated ready, floor ready
  • dependsOn · spec:validation.typed-dependency-floor · stated ready, floor ready
  • decidedBy · spec:decisions.roadmap-priority · stated ready, floor ready

Rested on by

Distance 1

Distance 2

  • spec:consumers.upgrade-kit.capability-adoption

    Implementing units

    • impl:protocol.capability-adoption-recipe · test/upgrade-kit.test.ts:514

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal

    Implementing units

    • impl:protocol.rule-key-proposal-recipe · test/upgrade-kit.test.ts:742

    Referencing units

    None.

    Enabled verifiers: spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

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

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

Distance 3

  • spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.capability-adoption.counts-a-corpus

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

  • spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.collision-and-unkeyable

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

  • spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.rule-key-proposal.proposal-applies-clean

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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingA roadmap states advisory priority in the graph
spec:decisions.roadmap-priority · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.readiness-planner
spec:consumers.readiness-planner · resolves
declaredthe statements waiting on a person follow the statement queue's orderNone
dependsOn · outgoingspec:model.open-question-fields
spec:model.open-question-fields · resolves
declaredthe questions waiting on a person are selected by their decider fieldNone
dependsOn · outgoingspec:validation.next-rung-floor
spec:validation.next-rung-floor · resolves
declaredan entry's stated next rung and the clauses that hold it come from the one floor evaluatorNone
dependsOn · outgoingspec:validation.typed-dependency-floor
spec:validation.typed-dependency-floor · resolves
declaredwhat an entry rests on is read through the relations the ready floor readsNone
refines · outgoingspec:consumers.graph-first-planning
spec:consumers.graph-first-planning · resolves
declareda roadmap is advisory reading of the graph for choosing the next workNone
dependsOn · incomingRoadmap views read releases, baselines and phases from git and the graph
spec:consumers.projections-model.roadmap-views · resolves
declaredthe roadmap view the owner asked for is the roadmap reading, its page and its memoNone
dependsOn · incomingThe roadmap page shows the upcoming work in priority order, split by what it needs
spec:consumers.spec-studio.roadmap-page · resolves
declaredthe page renders the roadmap readingNone
dependsOn · incomingspec:consumers.upgrade-kit
spec:consumers.upgrade-kit · resolves
declaredthe guide teaches advisory priority and the roadmap memo as planning recordsNone
dependsOn · incomingThe Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
spec:protocol.roadmap-replaces-plans · resolves
declaredthe Protocol reads its own next work from its roadmapNone
refines · incomingA descendant question holds the entry for design
spec:consumers.roadmap.blocking-part · resolves
declaredNoneNone
refines · incomingA ready unbound part needs building
spec:consumers.roadmap.buildable-part · resolves
declaredNoneNone
refines · incomingBuilt work stays on the roadmap
spec:consumers.roadmap.built-work · resolves
declaredNoneNone
refines · incomingAn unfinished part needs design
spec:consumers.roadmap.design-part · resolves
declaredNoneNone
refines · incomingA binding below ready remains drift
spec:consumers.roadmap.drifting-part · resolves
declaredNoneNone
refines · incomingA roadmap renders as the forward section of a pull request description
spec:consumers.roadmap.memo · resolves
declaredNoneNone
refines · incomingA descendant without evidence names its holding clause
spec:consumers.roadmap.missing-evidence · resolves
declaredNoneNone
refines · incomingA descendant names its outside parent
spec:consumers.roadmap.outside-parent · resolves
declaredNoneNone
refines · incomingWaiting statements keep dependency order against roadmap places
spec:consumers.roadmap.statement-order · resolves
declaredNoneNone
refines · incomingA complete part waits for a statement
spec:consumers.roadmap.statement-part · resolves
declaredNoneNone
refines · incomingThe roadmap page shows the upcoming work in priority order, split by what it needs
spec:consumers.spec-studio.roadmap-page · resolves
declaredthe page is the roadmap's reading for a personNone
verifies · incomingA descendant question holds the entry for design
spec:consumers.roadmap.blocking-part · resolves
declaredNoneentryNeed, entryShows, workRows
verifies · incomingA ready unbound part needs building
spec:consumers.roadmap.buildable-part · resolves
declaredNonescope, specNeed, entryNeed, workRows
verifies · incomingBuilt work stays on the roadmap
spec:consumers.roadmap.built-work · resolves
declaredNonescope, specNeed, entryNeed, workRows
verifies · incomingAn unfinished part needs design
spec:consumers.roadmap.design-part · resolves
declaredNonescope, specNeed, entryNeed, workRows
verifies · incomingA binding below ready remains drift
spec:consumers.roadmap.drifting-part · resolves
declaredNonedrift, workRows
verifies · incomingA descendant without evidence names its holding clause
spec:consumers.roadmap.missing-evidence · resolves
declaredNoneentryNeed, entryShows, workRows
verifies · incomingA descendant names its outside parent
spec:consumers.roadmap.outside-parent · resolves
declaredNonescope, restsOn, workRows
verifies · incomingWaiting statements keep dependency order against roadmap places
spec:consumers.roadmap.statement-order · resolves
declaredNonewaiting, earlier
verifies · incomingA complete part waits for a statement
spec:consumers.roadmap.statement-part · resolves
declaredNonescope, specNeed, entryNeed, workRows

Bindings

Implementation binding: present

  • impl:protocol.roadmap-recipe · realizes the roadmap in the shipped recipe catalog · test/roadmap.test.ts:20 · role projection

Design reference: none

Verifier binding: present

Expected-outcome oracle: present

  • oracle:protocol.roadmap · test/roadmap-examples.test.ts:27

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

36. Built work stays on the roadmap

spec:consumers.roadmap.built-work

Built work stays on the roadmap

spec:consumers.roadmap.built-workExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.built-work.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. Every part states ready and has a direct implementation binding. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "is ready and implemented throughout"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "built"}
Verification

Verifier bindings

  • test:protocol.roadmap.built-work · anchored · test anchor binding present · test/roadmap-examples.test.ts:167
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.built-work
The diagram as text
  • spec:consumers.roadmap.built-work: Built work stays on the roadmap · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.built-work: test:protocol.roadmap.built-work · anchored test binding · binding present · test/roadmap-examples.test.ts:167
  • spec:consumers.roadmap.built-work refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.built-work verifies spec:consumers.roadmap.built-work · 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:consumers.roadmap.built-work
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.built-work: Built work stays on the roadmap
  • spec:consumers.roadmap.built-work refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.built-work verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonescope, specNeed, entryNeed, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.built-work · anchored · test/roadmap-examples.test.ts:167 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

37. A ready unbound part needs building

spec:consumers.roadmap.buildable-part

A ready unbound part needs building

spec:consumers.roadmap.buildable-partExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.buildable-part.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The root has a binding and its ready descendant has none. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part ready and not implemented"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to build"}
Verification

Verifier bindings

  • test:protocol.roadmap.buildable-part · anchored · test anchor binding present · test/roadmap-examples.test.ts:174
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.buildable-part
The diagram as text
  • spec:consumers.roadmap.buildable-part: A ready unbound part needs building · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.buildable-part: test:protocol.roadmap.buildable-part · anchored test binding · binding present · test/roadmap-examples.test.ts:174
  • spec:consumers.roadmap.buildable-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.buildable-part verifies spec:consumers.roadmap.buildable-part · 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:consumers.roadmap.buildable-part
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.buildable-part: A ready unbound part needs building
  • spec:consumers.roadmap.buildable-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.buildable-part verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonescope, specNeed, entryNeed, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.buildable-part · anchored · test/roadmap-examples.test.ts:174 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

38. A complete part waits for a statement

spec:consumers.roadmap.statement-part

A complete part waits for a statement

spec:consumers.roadmap.statement-partExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.statement-part.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The descendant states defined with complete behavior evidence and a ready parent. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part below ready whose floor reaches ready"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to state"}
Verification

Verifier bindings

  • test:protocol.roadmap.statement-part · anchored · test anchor binding present · test/roadmap-examples.test.ts:181
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.statement-part
The diagram as text
  • spec:consumers.roadmap.statement-part: A complete part waits for a statement · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.statement-part: test:protocol.roadmap.statement-part · anchored test binding · binding present · test/roadmap-examples.test.ts:181
  • spec:consumers.roadmap.statement-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.statement-part verifies spec:consumers.roadmap.statement-part · 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:consumers.roadmap.statement-part
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.statement-part: A complete part waits for a statement
  • spec:consumers.roadmap.statement-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-part verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonescope, specNeed, entryNeed, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.statement-part · anchored · test/roadmap-examples.test.ts:181 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

39. An unfinished part needs design

spec:consumers.roadmap.design-part

An unfinished part needs design

spec:consumers.roadmap.design-partExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.design-part.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The descendant states scoped and has a blocking question. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part below ready whose floor stops short"}
When the roadmap recipe reads the probe roadmap
Then the entry's need reads {need: "to design"}
Verification

Verifier bindings

  • test:protocol.roadmap.design-part · anchored · test anchor binding present · test/roadmap-examples.test.ts:188
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.design-part
The diagram as text
  • spec:consumers.roadmap.design-part: An unfinished part needs design · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.design-part: test:protocol.roadmap.design-part · anchored test binding · binding present · test/roadmap-examples.test.ts:188
  • spec:consumers.roadmap.design-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.design-part verifies spec:consumers.roadmap.design-part · 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:consumers.roadmap.design-part
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.design-part: An unfinished part needs design
  • spec:consumers.roadmap.design-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.design-part verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonescope, specNeed, entryNeed, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.design-part · anchored · test/roadmap-examples.test.ts:188 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

40. A binding below ready remains drift

spec:consumers.roadmap.drifting-part

A binding below ready remains drift

spec:consumers.roadmap.drifting-partExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.drifting-part.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The descendant states scoped, has a blocking question and an implementation binding. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one part implemented below ready"}
When the roadmap recipe reads the probe roadmap
Then the entry counts {drift: 1} parts as drift
Verification

Verifier bindings

  • test:protocol.roadmap.drifting-part · anchored · test anchor binding present · test/roadmap-examples.test.ts:195
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.drifting-part
The diagram as text
  • spec:consumers.roadmap.drifting-part: A binding below ready remains drift · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.drifting-part: test:protocol.roadmap.drifting-part · anchored test binding · binding present · test/roadmap-examples.test.ts:195
  • spec:consumers.roadmap.drifting-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.drifting-part verifies spec:consumers.roadmap.drifting-part · 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:consumers.roadmap.drifting-part
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.drifting-part: A binding below ready remains drift
  • spec:consumers.roadmap.drifting-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.drifting-part verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonedrift, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.drifting-part · anchored · test/roadmap-examples.test.ts:195 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

41. A descendant without evidence names its holding clause

spec:consumers.roadmap.missing-evidence

A descendant without evidence names its holding clause

spec:consumers.roadmap.missing-evidenceExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.missing-evidence.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The descendant states scoped, refines the ready root and has no behavior evidence. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has a ready root and one descendant without its kind's evidence"}
When the roadmap recipe reads the probe roadmap
Then the entry names {part: "spec:probe.part"} among the parts with its need, held by {clause: "kind-evidence-present"}
Verification

Verifier bindings

  • test:protocol.roadmap.missing-evidence · anchored · test anchor binding present · test/roadmap-examples.test.ts:202
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.missing-evidence
The diagram as text
  • spec:consumers.roadmap.missing-evidence: A descendant without evidence names its holding clause · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.missing-evidence: test:protocol.roadmap.missing-evidence · anchored test binding · binding present · test/roadmap-examples.test.ts:202
  • spec:consumers.roadmap.missing-evidence refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.missing-evidence verifies spec:consumers.roadmap.missing-evidence · 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:consumers.roadmap.missing-evidence
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.missing-evidence: A descendant without evidence names its holding clause
  • spec:consumers.roadmap.missing-evidence refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.missing-evidence verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneentryNeed, entryShows, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.missing-evidence · anchored · test/roadmap-examples.test.ts:202 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

42. A descendant question holds the entry for design

spec:consumers.roadmap.blocking-part

A descendant question holds the entry for design

spec:consumers.roadmap.blocking-partExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.blocking-part.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The descendant states scoped, refines the ready root, has one rule and a blocking question. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has a ready root and one descendant held by a blocking question"}
When the roadmap recipe reads the probe roadmap
Then the entry names {part: "spec:probe.part"} among the parts with its need, held by {clause: "no-blocking-open-questions"}
Verification

Verifier bindings

  • test:protocol.roadmap.blocking-part · anchored · test anchor binding present · test/roadmap-examples.test.ts:209
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.blocking-part
The diagram as text
  • spec:consumers.roadmap.blocking-part: A descendant question holds the entry for design · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.blocking-part: test:protocol.roadmap.blocking-part · anchored test binding · binding present · test/roadmap-examples.test.ts:209
  • spec:consumers.roadmap.blocking-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.blocking-part verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.blocking-part verifies spec:consumers.roadmap.blocking-part · 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:consumers.roadmap.blocking-part
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.blocking-part: A descendant question holds the entry for design
  • spec:consumers.roadmap.blocking-part refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.blocking-part verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneentryNeed, entryShows, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.blocking-part · anchored · test/roadmap-examples.test.ts:209 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

43. A descendant names its outside parent

spec:consumers.roadmap.outside-parent

A descendant names its outside parent

spec:consumers.roadmap.outside-parentExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.outside-parent.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes a roadmap Pack with one ready behavior root and one behavior descendant, each with an Intent outcome. The root has one rule and a direct implementation binding; both Specs have resolving relations. The defined descendant refines both the ready root and an outside scoped Spec. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.root, spec:probe.part"}
Given that work {state: "has one descendant that also refines a Spec outside the roadmap"}
When the roadmap recipe reads the probe roadmap
Then the entry rests on {target: "spec:probe.outside"} through {origin: "spec:probe.part"}
Verification

Verifier bindings

  • test:protocol.roadmap.outside-parent · anchored · test anchor binding present · test/roadmap-examples.test.ts:216
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.outside-parent
The diagram as text
  • spec:consumers.roadmap.outside-parent: A descendant names its outside parent · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.outside-parent: test:protocol.roadmap.outside-parent · anchored test binding · binding present · test/roadmap-examples.test.ts:216
  • spec:consumers.roadmap.outside-parent refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.outside-parent verifies spec:consumers.roadmap.outside-parent · 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:consumers.roadmap.outside-parent
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.outside-parent: A descendant names its outside parent
  • spec:consumers.roadmap.outside-parent refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.outside-parent verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonescope, restsOn, workRows

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.outside-parent · anchored · test/roadmap-examples.test.ts:216 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

44. Waiting statements keep dependency order against roadmap places

spec:consumers.roadmap.statement-order

Waiting statements keep dependency order against roadmap places

spec:consumers.roadmap.statement-orderExample / Scenario · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.statement-order.sdp.md

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

Intent
outcome
Execute one roadmap reading over a probe corpus.
assumptions
  • The world writes two defined behavior Specs with complete evidence and resolving relations. The first roadmap entry depends on the second; both floors reach ready. The roadmap reads the shipped body over the extracted probe corpus.
Behavior

Examples

Given a probe roadmap whose entry holds the work {work: "spec:probe.dependent"}
Given that work {state: "has one part below ready whose floor reaches ready"}
Given a probe roadmap whose first entry rests on a Spec of its second entry, both waiting for a statement
When the roadmap recipe reads the probe roadmap
Then the waiting statements list {earlier: "spec:probe.base"} before {later: "spec:probe.dependent"}
Verification

Verifier bindings

  • test:protocol.roadmap.statement-order · anchored · test anchor binding present · test/roadmap-examples.test.ts:223
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.roadmap.statement-order
The diagram as text
  • spec:consumers.roadmap.statement-order: Waiting statements keep dependency order against roadmap places · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • test:protocol.roadmap.statement-order: test:protocol.roadmap.statement-order · anchored test binding · binding present · test/roadmap-examples.test.ts:223
  • spec:consumers.roadmap.statement-order refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order verifies spec:consumers.roadmap · declared
  • test:protocol.roadmap.statement-order verifies spec:consumers.roadmap.statement-order · 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:consumers.roadmap.statement-order
  • E2: verifies · declared
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.statement-order: Waiting statements keep dependency order against roadmap places
  • spec:consumers.roadmap.statement-order refines spec:consumers.roadmap · declared
  • spec:consumers.roadmap.statement-order verifies spec:consumers.roadmap · 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 roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
verifies · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNonewaiting, earlier

Bindings

Implementation binding: none

Design reference: none

Verifier binding: present

  • test:protocol.roadmap.statement-order · anchored · test/roadmap-examples.test.ts:223 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

45. The roadmap page shows the upcoming work in priority order, split by what it needs

spec:consumers.spec-studio.roadmap-page

The roadmap page shows the upcoming work in priority order, split by what it needs

spec:consumers.spec-studio.roadmap-pageUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/spec-studio.roadmap-page.sdp.md

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

The owner reads a roadmap to choose what the next pull requests take up, and a reviewer reads it to see where an arc stands. The page shows each roadmap at a glance as a board, its entries in the column of what each needs next, and then each entry with what holds it. It ends with the forward section a pull request description carries, ready to copy. The page orders by the owner's places and links; it states nothing.

Intent
actor
The owner choosing the next work, and a reviewer with only a link.
problem
No page shows what comes next in priority order, so the owner reads it from the last pull request description, and a reviewer cannot tell which upcoming work needs design, a statement or a build.
outcome
Give the Studio a page that shows each roadmap in its priority order, with what to design, what to state, what to build and what is built, and for each entry what it lacks.
Behavior
rule.roadmapPage line 33 · specs/consumers/spec-studio.roadmap-page.sdp.md:33
The page set holds roadmap.html, which renders recipe 53 over every Pack whose manifest states order: priority, one section per roadmap in id order, each ending with recipe 55's memo for that Pack.

no example exercises it

rule.noRoadmap line 34 · specs/consumers/spec-studio.roadmap-page.sdp.md:34
With no such Pack, the page says the corpus states no roadmap and that a Pack becomes one when its manifest states order: priority.

no example exercises it

rule.roadmapSummary line 35 · specs/consumers/spec-studio.roadmap-page.sdp.md:35
Each roadmap's section opens with its title linked to its Pack page, its framing, and sentences the build counts from the answer: the entries with each need, those listed apart and any unresolved members, said to be in priority order only when the answer's order is priority and in authored reading order otherwise; the questions waiting on the owner, blocking and not, and those that name no decider; and the statements waiting, with a link to the owner queue.

no example exercises it

rule.board line 36 · specs/consumers/spec-studio.roadmap-page.sdp.md:36
A board follows: four columns, to design, to state, to build and built, each headed by its need and its count and listing its entries in place order, each as its place and its title linked to the entry's row below; an empty column reads none.

no example exercises it

rule.readingLegend line 37 · specs/consumers/spec-studio.roadmap-page.sdp.md:37
Beside the board, a legend reads To state means the floor allows ready and a person still judges the statement. Built means every Spec of the entry's work states ready and has an implementation binding; it reports no passing test and no deployment. The entry's own readiness is shown separately.

no example exercises it

rule.needLists line 38 · specs/consumers/spec-studio.roadmap-page.sdp.md:38
Four lists follow in the same order, each keeping the roadmap's order and numbering each entry by its place, so a gap in the numbers shows an entry with another need; an empty list says no entry has that need.

no example exercises it

rule.entryRow line 39 · specs/consumers/spec-studio.roadmap-page.sdp.md:39
Each entry shows its place and title, its kind and altitude, its stated rung and the rung its floor reaches, and its work by need with any drift; opened, it shows its Spec linked, its stated next rung with the clauses that hold it or nothing blocks, the parts with its need, each linked with its rungs and what holds its next rung, its own labelled itself, with its other parts folded under one line that counts them, the parts to build now linked, its blocking questions linked to their Spec pages, its decisions below ready with their blocking questions, what it rests on with the parts that reach it, what waits on it, for an entry to state the waiting statements the statement queue puts before its own, its other Packs and the entries it shares Specs with.

no example exercises it

rule.restsOnShown line 40 · specs/consumers/spec-studio.roadmap-page.sdp.md:40
Among what an entry rests on, the Specs to design, the Specs on the roadmap and the Specs that hold a ready statement show first, each with its relation, its need and its place on the roadmap or outside the roadmap; the rest fold under one line that counts them.

no example exercises it

rule.waitingList line 41 · specs/consumers/spec-studio.roadmap-page.sdp.md:41
After the lists, the page lists what waits on the owner, recipe 53's waiting: each question with its blocking flag, its address linked to the question on its Spec page with a copy action, its text and its provisional reading when present, and each waiting statement with its stated rung and the rung its floor allows, in the order the answer gives, each row linking the entries it touches. The questions that name no decider follow under the sentence These questions have no named decider., apart from the owner's.

no example exercises it

rule.apartList line 42 · specs/consumers/spec-studio.roadmap-page.sdp.md:42
The entries listed apart follow the lists, each with its place, kind, stated rung and need. Unresolved members follow under Unresolved members, each with its original place and its id as code, with no invented title, rung or need.

no example exercises it

rule.forwardSection line 43 · specs/consumers/spec-studio.roadmap-page.sdp.md:43
Each roadmap ends with a disclosure holding recipe 55's memo as preformatted text with a copy action, so a description's author pastes the forward section the graph holds.

no example exercises it

rule.needFilter line 44 · specs/consumers/spec-studio.roadmap-page.sdp.md:44
A filter narrows the lists by need; without script every row shows.

no example exercises it

rule.statesNothing line 45 · specs/consumers/spec-studio.roadmap-page.sdp.md:45
The page orders by the roadmap's places and links: it states no rung, approves nothing, and never presents a place as a date, a deadline or permission to start.

no example exercises it

0 unkeyed rules.

UI
boardColumn line 49 · specs/consumers/spec-studio.roadmap-page.sdp.md:49
a column headed To design, To state, To build or Built with its count, listing <place> and the title as a link to the entry's element id; the four columns sit side by side at desktop width and stack at phone width.
entryRow line 50 · specs/consumers/spec-studio.roadmap-page.sdp.md:50
a disclosure whose summary reads <place>. <title> on its first line and, on its second, the kind and altitude, the stated rung as a badge, floor <rung>, and the work as <n> Specs: followed by the nonzero counts of to design, to state, to build and built, then <d> drift when present; its element id is roadmap-<name>-entry-<place>, <name> the name the page set gives the roadmap's Pack page, and every link to an entry, from the board, a rests-on row, the waiting list or a shared-Specs line, uses the owning roadmap's prefix, so two roadmaps on the page never share an id.
entryFields line 51 · specs/consumers/spec-studio.roadmap-page.sdp.md:51
labelled lines Id, Next, Parts, Build now, Blocked by, Decided by, Rests on, Waited on by, Earlier statements, Also in and Shares Specs with, an empty line left out; Parts appears when the entry has more than one part or a part other than itself sets its need.
restsOnItem line 52 · specs/consumers/spec-studio.roadmap-page.sdp.md:52
the Spec linked, its relation in words, followed by from and the parts that reach it when any part other than the entry itself does, its need, holds ready when it states below defined, and entry <place> linked to that row or outside the roadmap.
memoDisclosure line 53 · specs/consumers/spec-studio.roadmap-page.sdp.md:53
a disclosure whose summary reads The forward section, as Markdown, holding a copy action and the memo in a pre element.
Verification

Verifier bindings

  • test:protocol.studio-roadmap-page · anchored · test anchor binding present · test/studio-roadmap.test.ts:24
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.spec-studio.roadmap-page
The diagram as text
  • spec:consumers.spec-studio.roadmap-page: The roadmap page shows the upcoming work in priority order, split by what it needs · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph · declared Spec
  • impl:protocol.studio-roadmap-page: renders roadmap needs, holding parts and the shared Markdown memo · anchored code · src/projections/studio/pages/roadmap-page.ts:168
  • test:protocol.studio-roadmap-page: test:protocol.studio-roadmap-page · anchored test binding · binding present · test/studio-roadmap.test.ts:24
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.roadmap · declared — the page is the roadmap's reading for a person
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.spec-studio · declared
  • impl:protocol.studio-roadmap-page satisfies spec:consumers.spec-studio.roadmap-page · anchored
  • test:protocol.studio-roadmap-page verifies spec:consumers.spec-studio.roadmap-page · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.spec-studio.roadmap-page
Relations of spec:consumers.spec-studio.roadmap-pagedependsOn · declaredrefines · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…roadmapspec:consumers.spec-studioThe Spec Studio is a staticHTML workbench over the onegraph…spec-studioOutgoing dependsOnspec:consumers.roadmap.memoA roadmap renders as theforward section of a pullrequest description…roadmap.memospec:consumers.spec-studio.dataThe Studio renders from thereader's values and embedsonly what its script reads…spec-studio.dataspec:consumers.spec-studio.publishersdp studio publishes theStudio as one page set…spec-studio.publisherspec:consumers.spec-studio.shellThe Studio's shell framesevery page with navigation,a rail and a canvas…spec-studio.shellSubjectspec:consumers.spec-studio.roadmap-pageThe roadmap page shows theupcoming work in priorityorder, split by what itneeds…spec-studio.roadmap-page
The diagram as text
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description
  • spec:consumers.spec-studio: The Spec Studio is a static HTML workbench over the one graph
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.publisher: sdp studio publishes the Studio as one page set
  • spec:consumers.spec-studio.roadmap-page: The roadmap page shows the upcoming work in priority order, split by what it needs
  • spec:consumers.spec-studio.shell: The Studio's shell frames every page with navigation, a rail and a canvas
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.roadmap · declared — the page renders the roadmap reading
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.roadmap.memo · declared — the page carries the roadmap memo for a description's author to copy
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.spec-studio.data · declared
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.spec-studio.publisher · declared — an entry's element id carries the name the page set gives its roadmap's Pack page
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.spec-studio.shell · declared
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.roadmap · declared — the page is the roadmap's reading for a person
  • spec:consumers.spec-studio.roadmap-page refines spec:consumers.spec-studio · 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.roadmap · stated ready, floor ready
  • refines · spec:consumers.spec-studio · stated ready, floor ready
  • dependsOn · spec:consumers.roadmap · stated ready, floor ready
  • dependsOn · spec:consumers.roadmap.memo · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.data · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.publisher · stated ready, floor ready
  • dependsOn · spec:consumers.spec-studio.shell · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredthe page renders the roadmap readingNone
dependsOn · outgoingA roadmap renders as the forward section of a pull request description
spec:consumers.roadmap.memo · resolves
declaredthe page carries the roadmap memo for a description's author to copyNone
dependsOn · outgoingspec:consumers.spec-studio.data
spec:consumers.spec-studio.data · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.spec-studio.publisher
spec:consumers.spec-studio.publisher · resolves
declaredan entry's element id carries the name the page set gives its roadmap's Pack pageNone
dependsOn · outgoingspec:consumers.spec-studio.shell
spec:consumers.spec-studio.shell · resolves
declaredNoneNone
refines · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredthe page is the roadmap's reading for a personNone
refines · outgoingspec:consumers.spec-studio
spec:consumers.spec-studio · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.studio-roadmap-page · anchored · test/studio-roadmap.test.ts:24 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

46. A roadmap renders as the forward section of a pull request description

spec:consumers.roadmap.memo

A roadmap renders as the forward section of a pull request description

spec:consumers.roadmap.memoUse Case / Behavior · storyready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/roadmap.memo.sdp.md

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

A pull request description ends with a forward section: the next work in priority order, what waits on the owner, and what is deferred until its trigger. Written by hand, it drifts from the Specs it names and is rewritten each time. The roadmap memo renders it from the roadmap reading at the head of the branch, so the forward section a description carries is the roadmap the graph holds. The memo states what the graph holds and nothing more: it copies each entry's purpose from its own intent and derives its dependency reach, and the owner's reason for an entry's place, the re-entry condition of the next pull request and the durable refused list stay the description author's words around it.

Intent
actor
The author of a pull request description, and the owner reading it.
problem
A description's forward section is written by hand from plan files and recipe answers, so it drifts from the roadmap and the Specs it names.
outcome
Render a roadmap's entries, what waits on the owner and the deferred questions as Markdown a pull request description carries as its forward section, so the plan a description proposes is the roadmap the graph holds.
Behavior
rule.memoRecipe line 26 · specs/consumers/roadmap.memo.sdp.md:26
Recipe 55 renders one roadmap's reading, recipe 53's answer for that Pack, as one Markdown memo a pull request description carries as its forward section; the roadmap page shows the same bytes.

no example exercises it

rule.sections line 27 · specs/consumers/roadmap.memo.sdp.md:27
The memo holds, in order: the roadmap's title, a line saying what to state and built mean, and its framing; the entries to design, to state and to build, each need in priority order with every entry's place; what waits on the owner; the questions that name no decider; the entries built and still listed; the unresolved members with their original places and ids; and the deferred open questions with their triggers. The to design and to build sections always appear and say when they hold no entry; every other section is left out when it holds no row.

no example exercises it

rule.purposeAndReach line 28 · specs/consumers/roadmap.memo.sdp.md:28
An entry's purpose and reach is read, never authored: its intent's problem, or its outcome when it states no problem, then how many Specs outside its scope wait on it and how many of its parts are ready to build now. These values state its purpose and its place in the graph's structure, never why the owner selected the entry or gave it its place; the description's author may state that reason around the memo, and the memo adds no status, date, estimate or assignment to a pull request.

no example exercises it

rule.holds line 29 · specs/consumers/roadmap.memo.sdp.md:29
An entry to design names the parts that set its need, its own first, each with its stated next rung and the clauses and dependency targets that hold it, then its blocking questions and its decisions below ready; an entry to state names the waiting statements the statement queue puts before its own, inside the entry, elsewhere on the roadmap and outside it, as advice on the order of statements and never as a readiness requirement; an entry to build names each Spec it rests on that is not built.

no example exercises it

rule.authorsOwn line 30 · specs/consumers/roadmap.memo.sdp.md:30
The memo derives no reason for the priority and carries no re-entry condition or refused list; the description's author writes those around it.

no example exercises it

rule.readingOrderNoted line 31 · specs/consumers/roadmap.memo.sdp.md:31
A memo of a Pack whose order is reading order says so under the framing, so no description presents it as a priority.

no example exercises it

rule.deterministic line 32 · specs/consumers/roadmap.memo.sdp.md:32
One graph and one set of parameters render one memo, byte for byte.

no example exercises it

0 unkeyed rules.

Design
memoRecipe line 36 · specs/consumers/roadmap.memo.sdp.md:36
recipe 55, the roadmap memo, takes params.pack and params.decider as recipe 53 does; without pack it reads the one Pack whose manifest states order: priority, and with none or several it returns { diagnostics: [{ parameter, problem }], memo: null }; otherwise it answers { diagnostics: [], memo }, the memo one string.
memoHead line 37 · specs/consumers/roadmap.memo.sdp.md:37
the memo opens with the line ## The next work, from the roadmap, a blank line, the line Roadmap: followed by the Pack's title and its id as a code span, a blank line, the line To state means the floor allows ready and a person still judges the statement. Built means every Spec of the entry's work states ready and has an implementation binding; it reports no passing test and no deployment. and a blank line, each paragraph of the framing as authored followed by a blank line, and for a reading-order Pack the line This Pack's order is reading order, not a stated priority. and a blank line.

Cited at

  • test/recipes.test.ts:8384
memoDesign line 38 · specs/consumers/roadmap.memo.sdp.md:38
the section ### To design holds a table with the columns Place, Entry, Next and Purpose and reach; Next reads, for at most three of the work rows with the entry's need, the entry's own first and the rest in Spec-id order, the row's id as a code span or itself for the entry's own, its stated rung and stated next rung as code spans joined by → , then held by and each clause id followed by its targets as code spans in parentheses, or nothing holds it; then and <n> more parts to design when rows are left out; then blocked by and each blocking question's address as a code span, or its Spec id when unkeyed; then decided by and each decision below ready as a code span with its stated rung; the parts joined by ; .

Cited at

  • test/recipes.test.ts:8385
memoState line 39 · specs/consumers/roadmap.memo.sdp.md:39
the section ### To state holds a table with the columns Place, Entry, Earlier waiting statements and Purpose and reach; the third column reads No preceding waiting statement in the statement queue. when the entry's earlierStatements is empty, and otherwise in this entry followed by those inside it as code spans, on the roadmap followed by those at another entry as code spans each with (place <n>), and <n> outside the roadmap, each part present only when it holds a row and the parts joined by ; .

Cited at

  • test/recipes.test.ts:8386
memoBuild line 40 · specs/consumers/roadmap.memo.sdp.md:40
the section ### To build holds a table with the columns Place, Entry, Purpose and reach and Rests on; Rests on lists each Spec the entry rests on as a code span with its need, or reads nothing unbuilt.

Cited at

  • test/recipes.test.ts:8387
memoEntry line 41 · specs/consumers/roadmap.memo.sdp.md:41
an Entry cell is the entry's title followed by its id as a code span; the Purpose and reach cell is the intent line, ending with a full stop when it ends with none, then Waited on by <n>. when Specs wait on it and <n> of its parts ready to build now. for an entry not to build that has such parts.
memoWaiting line 42 · specs/consumers/roadmap.memo.sdp.md:42
the section ### Waiting on the <decider> lists one line per row of recipe 53's waiting.questions and waiting.statements, questions first and statements in the order the answer gives: a question as its address as a code span, or its Spec id when unkeyed, (blocking) when it blocks, place and the places, and its text; a statement as State , the Spec id as a code span, its stated rung and the rung its floor allows, and the places.

Cited at

  • test/recipes.test.ts:8388
memoUndecided line 43 · specs/consumers/roadmap.memo.sdp.md:43
the section ### Questions without a decider opens with the line These questions have no named decider. and a blank line, then lists one line per row of recipe 53's waiting.withoutDecider: its address as a code span, or its Spec id as a code span followed by question and its authored position from 1 when unkeyed, then (blocking) when it blocks, place and the places; the text stays on the roadmap page, so a corpus with many such questions keeps a short memo.
memoBuilt line 44 · specs/consumers/roadmap.memo.sdp.md:44
the section ### Built and still on the roadmap lists each built entry as its place, its title and its id as a code span. The section ### Unresolved members follows when recipe 53 reports unresolved members, listing each as - Place <place>: <id>, the id as a code span.
memoDeferred line 45 · specs/consumers/roadmap.memo.sdp.md:45
the section ### Deferred, with their triggers lists each open question recipe 20 marks as a deferral, in the register's order, as its address as a code span, or its Spec id when unkeyed, its text, and Trigger: with its trigger.
memoMarkup line 46 · specs/consumers/roadmap.memo.sdp.md:46
code spans follow the proposal memo's rule; outside code spans, authored <, > and & are written as &lt;, &gt; and &amp;, respectively; other authored text is written verbatim, with each line break written as a space and, inside a table cell, each | written \|; every line ends with a line feed and the memo with one.
Verification

Verifier bindings

  • test:protocol.roadmap-memo-recipe · anchored · test anchor binding present · test/roadmap.test.ts:39
  • test:protocol.studio-roadmap-page · anchored · test anchor binding present · test/studio-roadmap.test.ts:24
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.roadmap.memo
The diagram as text
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description · declared Spec
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs · declared Spec
  • impl:protocol.roadmap-memo-recipe: realizes the roadmap memo in the shipped recipe catalog · anchored code · test/roadmap.test.ts:27
  • impl:protocol.studio-roadmap-page: renders roadmap needs, holding parts and the shared Markdown memo · anchored code · src/projections/studio/pages/roadmap-page.ts:168
  • test:protocol.roadmap-memo-recipe: test:protocol.roadmap-memo-recipe · anchored test binding · binding present · test/roadmap.test.ts:39
  • test:protocol.studio-roadmap-page: test:protocol.studio-roadmap-page · anchored test binding · binding present · test/studio-roadmap.test.ts:24
  • spec:consumers.roadmap.memo refines spec:consumers.roadmap · declared
  • impl:protocol.roadmap-memo-recipe satisfies spec:consumers.roadmap.memo · anchored
  • impl:protocol.studio-roadmap-page satisfies spec:consumers.roadmap.memo · anchored
  • test:protocol.roadmap-memo-recipe verifies spec:consumers.roadmap.memo · anchored
  • test:protocol.studio-roadmap-page verifies spec:consumers.roadmap.memo · 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
  • component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · context protocol

    Uses

    • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol
    • 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.roadmap-memo-recipe · realizes the roadmap memo in the shipped recipe catalog · test/roadmap.test.ts:27

    Uses

    None.

  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168

    Component: component:protocol.projections · read-only output, layout and owned publication · src/projections/design-review.ts:29 · layer edge · 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:consumers.roadmap.memo
Relations of spec:consumers.roadmap.memodependsOn · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…consumers.roadmapOutgoing dependsOnspec:consumers.agent-surface.register-recipesRegister questions stayexecutable graph recipes…consumers.agent-surface.register-recipesspec:consumers.intent-composition.proposal.memoRecipe 49 renders a changeproposal as the Markdownmemo a person reviews…consumers.intent-composition.proposal.memoSubjectspec:consumers.roadmap.memoA roadmap renders as theforward section of a pullrequest description…consumers.roadmap.memoIncoming dependsOnspec:consumers.spec-studio.roadmap-pageThe roadmap page shows theupcoming work in priorityorder, split by what itneeds…consumers.spec-studio.roadmap-pagespec:protocol.roadmap-replaces-plansThe Protocol reads its nextwork from its roadmap andkeeps its delivery recordin git and its pull requests…protocol.roadmap-replaces-plans
The diagram as text
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes
  • spec:consumers.intent-composition.proposal.memo: Recipe 49 renders a change proposal as the Markdown memo a person reviews
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description
  • spec:consumers.spec-studio.roadmap-page: The roadmap page shows the upcoming work in priority order, split by what it needs
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
  • spec:consumers.roadmap.memo dependsOn spec:consumers.agent-surface.register-recipes · declared — the deferred items come from the open-question register
  • spec:consumers.roadmap.memo dependsOn spec:consumers.intent-composition.proposal.memo · declared — the memo writes its code spans by the proposal memo's markup rules
  • spec:consumers.roadmap.memo refines spec:consumers.roadmap · declared
  • spec:consumers.spec-studio.roadmap-page dependsOn spec:consumers.roadmap.memo · declared — the page carries the roadmap memo for a description's author to copy
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.roadmap.memo · declared — each description's forward section is the roadmap memo
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.roadmap · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.register-recipes · stated ready, floor ready
  • dependsOn · spec:consumers.intent-composition.proposal.memo · stated ready, floor ready

Rested on by

Distance 1

Distance 2

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredthe deferred items come from the open-question registerNone
dependsOn · outgoingspec:consumers.intent-composition.proposal.memo
spec:consumers.intent-composition.proposal.memo · resolves
declaredthe memo writes its code spans by the proposal memo's markup rulesNone
refines · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredNoneNone
dependsOn · incomingThe roadmap page shows the upcoming work in priority order, split by what it needs
spec:consumers.spec-studio.roadmap-page · resolves
declaredthe page carries the roadmap memo for a description's author to copyNone
dependsOn · incomingThe Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
spec:protocol.roadmap-replaces-plans · resolves
declaredeach description's forward section is the roadmap memoNone

Bindings

Implementation binding: present

  • impl:protocol.roadmap-memo-recipe · realizes the roadmap memo in the shipped recipe catalog · test/roadmap.test.ts:27 · role projection
  • impl:protocol.studio-roadmap-page · renders roadmap needs, holding parts and the shared Markdown memo · src/projections/studio/pages/roadmap-page.ts:168 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.roadmap-memo-recipe · anchored · test/roadmap.test.ts:39 · test anchor
  • test:protocol.studio-roadmap-page · anchored · test/studio-roadmap.test.ts:24 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

47. Plan and review files stop carrying the delivery record once the roadmap and the pull request do

spec:decisions.roadmap-over-plans

Plan and review files stop carrying the delivery record once the roadmap and the pull request do

spec:decisions.roadmap-over-plansDecision Record · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/decisions/roadmap-over-plans.sdp.md

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

Each arc's intent already lives in its capture Specs and its Pack, its rulings in their carrying Specs, its open items in keyed questions, and its story in its pull request description. A plan file still carries the status line the handbook copies and agents read first, the arc's lanes and waves, copies of its ruling tables, and its acceptance as measured. Beside it, committed review reports and their assets carry a review's findings, what became of each, and the screenshots and prototypes the review cites, while a change proposal already gives a finding against a Spec its reviewable shape. Once a roadmap holds priority in the graph and the pull request holds the arc's story and its reviews, the forward role and the record each have one home; what remains of a plan or a review file is history, or a second copy of what the graph, git and the pull request description already hold. Retiring the files removes competing records, never durable evidence.

Intent
outcome
Decide whether the Protocol retires its numbered plan files and its committed review files, reading its next work from the roadmap and keeping each arc's record in git and its pull request, and what replaces the gate that requires a current plan.
Decision
context
Plan files grew as the Protocol's working record: every arc adds one, the handbook keeps a status line for each, and the self-hosting gate requires the highest-numbered plan to carry a status header the handbook names. Review reports grew beside them under reviews/, with their prompts and assets. Since the graph-first planning arc, a plan is a thin pointer to its Pack and capture Specs, and the pull request description standard already asks each description for the arc's story, its rulings as tables, its acceptance as measured and a forward section. The owner asked whether plans can be replaced by Specs: no prose in the plan, but designed, grouped and prioritized roadmaps and sets of features or epics. The owner then retired both folders as carriers of the delivery record, leaving their removal or archival to a separate cleanup change.
decision
The Protocol reads its forward planning from its roadmap and keeps its delivery record in git and its pull requests; it adds no plan file and no review file, and plans/ and reviews/ stand as frozen history until a later arc removes or archives them. An agent opening the next work runs the roadmap recipe over the roadmap Pack the handbook names and follows each entry to its Packs and carrying Specs. Before an arc's first push its record is its branch, git being the event log: the arc's first commit message states the owner's working rules for the arc and the arc's Pack, each later message says what its unit did, and outstanding work is read from the arc's Pack, the backlogs and the open-question register; no record file is kept under reviews/ or anywhere else. The arc pushes and opens its draft pull request at its first coherent commit, normally the scaffold, so the window in which only local git holds the record stays short and a session restarted on another machine sees the work. The draft pull request description then holds the arc's narrative: its story, lanes, rulings with who made them, review findings as change proposals and their memos, acceptance as measured, deferrals and refusals. A review's findings against Specs travel as a change proposal whose base is the commit the reviewer read: the branch head, or, for a proposal composed in a preview, the merge commit its stamp names, checked against that base and posted to the pull request as its memo; a finding against code or another file is a review comment on its line; a finding left open becomes an open question with its decider, provisional reading and links. Evidence no test or recipe carries is committed on the arc's branch with the commands that made it, linked from the description at that commit, and removed before the merge; the Protocol merges its pull requests with merge commits, and GitHub keeps each pull request's head ref, so links at the evidence commit keep resolving. A squash or rebase merge would need the evidence published to a durable ref first. Briefs and prompts stay in the session. The handbook names the roadmap Pack and the roadmap recipe where it named the current plan, and the self-hosting gate checks that instead of a current plan.
rationale
  • Hard to reverse: the handbook, the skills, the description standard and a gate point every session at the newest plan and at committed review files, and every session's first read changes. Surprising without context: a reader finds two folders that stopped. A real trade-off: one forward-planning carrier in the graph and one record per arc in git and its pull request, with nothing to keep in step, against review findings and pre-push state living in commit messages and pull request threads rather than in files a person can search in the tree.
alternatives
  • Keep plan files for forward planning beside the roadmap: priority would live in two places, and the plan's copy would drift.
  • Keep a thin plan file per arc for its execution record alone, with no status gate: the pull request description already carries the same record by the description standard, so the file would be a second copy that the next session must reconcile.
  • Record an arc's execution in the graph, as an arc Spec or Pack fields: who ruled what and when is history that git and the description keep, and that a review happened is never a graph fact.
  • A gate check that refuses a numbered plan past the last frozen one: the cleanup arc removes the folder, so the check would guard a short window, and refusing a kind of file polices the workflow, not conformance; the handbook saying the plans are frozen history is enough.
  • Keep an arc's record in a file under reviews/ until its first push, then only its link: the file repeats what the commits already say, outlives the arc as a stub, and keeps reviews/ growing after its retirement.
  • Keep review reports as committed files beside the change proposal: the proposal is the reviewable shape, an applied edit is git history and an open finding is an open question, so a report file repeats all three and goes stale with the next edit.
  • Keep evidence no test or recipe carries in a committed evidence folder on the main line: the folder becomes a new store that grows with every arc, while a link pinned to the arc's commit already lasts after the merge.
  • Link only the latest preview or an expiring CI artifact as evidence: a later run replaces what a historical description cites.
consequences
  • The handbook drops its stack of plan statuses for a short pointer to the roadmap and its recipe. The self-hosting gate's current-record check refuses a handbook that does not name the roadmap Pack and recipe, and a roadmap Pack manifest that is missing or does not state priority order; its frozen historical checks, its green-gate legs and its ban on plan status in the registry and the glossary stay until the cleanup arc removes the folders they read. It adds no check of plan numbers, roadmap content, work order, freshness or review disposition.
  • The graph-first planning Spec's plan-file rule narrows to a plan document a corpus chooses to keep, which points to its Packs and carrying Specs and confers nothing; an adopter keeps whatever planning documents it wants, and a roadmap is open to it as to the Protocol.
  • The description standard renders its forward section with the roadmap memo; the pull request that completes an entry's selected work removes it from the roadmap in the same change, and entries join or move only on the owner's word.
  • The owner's instruction that opens an arc authorizes commits on its branch, as a plan's commit strategy did, and its push; this record convention creates no authority of its own. The arc's first commit message records the owner's working rules and the draft description repeats them. A session that must stop with no clean boundary commits its work in progress on the arc's branch with a message saying what is incomplete, rather than accounting for it in a file; a session resuming without its predecessor reads the branch, its commits, the draft pull request and the graph, and never claims git kept what was never committed.
  • The proposal schema still scopes Specs only: a finding that changes no Spec takes no invented Spec scope, and a review that proposes no Spec edit needs no empty proposal. An accepted change is an ordinary carrier edit, and whether a change was accepted stays in the pull request's discussion and git, never in the proposal or the graph.
  • Tests and recipes carry repeatable evidence. A preview is the current human view of a branch, never an immutable acceptance record, so the description names the commit it measured and the commands that re-derive each number.
  • The plan and review files stay as they are until a dedicated cleanup arc removes or archives them and updates the historical checks and links that read them; until then nothing is added to either, and a file in either changes only to correct the record it keeps. This decision sets no record convention for an adopter.
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.
Requirement drawing for spec:decisions.roadmap-over-plans

Arrows: refines (declared).

Requirement drawing for spec:decisions.roadmap-over-plansIntended Specsspec:decisions.roadmap-over-plansPlan and review files stopcarrying the deliveryrecord once the roadmap andthe pull request do…roadmap-over-plansdeclared SpecOutside the selected setspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…planning-truths-placementdeclared Spec
The diagram as text
  • spec:decisions.roadmap-over-plans: Plan and review files stop carrying the delivery record once the roadmap and the pull request do · declared Spec
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes · declared Spec
  • spec:decisions.roadmap-over-plans refines spec:decisions.planning-truths-placement · declared — narrows what a plan file may still carry once a roadmap holds priority
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:decisions.roadmap-over-plans
Relations of spec:decisions.roadmap-over-plansrefines · declareddependsOn · declareddecidedBy · declareddecidedBy · declaredOutgoing refinesspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…decisions.planning-truths-placementOutgoing dependsOnspec:decisions.roadmap-priorityA roadmap states advisorypriority in the graph…decisions.roadmap-prioritySubjectspec:decisions.roadmap-over-plansPlan and review files stopcarrying the deliveryrecord once the roadmap andthe pull request do…decisions.roadmap-over-plansIncoming decidedByspec:protocol.delivery-record-cleanupThe Protocol removes itsfrozen plans, reviewreports and supersededconcept material…protocol.delivery-record-cleanupspec:protocol.roadmap-replaces-plansThe Protocol reads its nextwork from its roadmap andkeeps its delivery recordin git and its pull requests…protocol.roadmap-replaces-plans
The diagram as text
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes
  • spec:decisions.roadmap-over-plans: Plan and review files stop carrying the delivery record once the roadmap and the pull request do
  • spec:decisions.roadmap-priority: A roadmap states advisory priority in the graph
  • spec:protocol.delivery-record-cleanup: The Protocol removes its frozen plans, review reports and superseded concept material
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
  • spec:decisions.roadmap-over-plans dependsOn spec:decisions.roadmap-priority · declared — plan files give up forward planning only once a roadmap holds priority in the graph
  • spec:decisions.roadmap-over-plans refines spec:decisions.planning-truths-placement · declared — narrows what a plan file may still carry once a roadmap holds priority
  • spec:protocol.delivery-record-cleanup decidedBy spec:decisions.roadmap-over-plans · declared
  • spec:protocol.roadmap-replaces-plans decidedBy spec:decisions.roadmap-over-plans · 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

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

  • spec:protocol.roadmap-replaces-plans

    Implementing units

    • impl:protocol.roadmap-practice · test/check-self-hosting-gates.test.ts:52

    Referencing units

    None.

    Enabled verifiers: test:protocol.roadmap-practice

    Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingA roadmap states advisory priority in the graph
spec:decisions.roadmap-priority · resolves
declaredplan files give up forward planning only once a roadmap holds priority in the graphNone
refines · outgoingspec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement · resolves
declarednarrows what a plan file may still carry once a roadmap holds priorityNone
decidedBy · incomingspec:protocol.delivery-record-cleanup
spec:protocol.delivery-record-cleanup · resolves
declaredNoneNone
decidedBy · incomingThe Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
spec:protocol.roadmap-replaces-plans · resolves
declaredNoneNone

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.

48. The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests

spec:protocol.roadmap-replaces-plans

The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests

spec:protocol.roadmap-replaces-plansUse Case / Behavior · featureready floor ready

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

Design: 3 design entries · 2 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/protocol/roadmap-replaces-plans.sdp.md

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

Each arc's intent already lives in its capture Specs and Pack, its rulings in their carrying Specs, and its story in its pull request description. What a plan file still carries is the status line agents read first, the lanes and waves of the arc, and copies of ruling tables; what a committed review file carries, a change proposal, its memo and git already hold. Once a roadmap holds priority, the Protocol reads its next work from the graph, keeps each arc's record in git and its pull request, with review findings and evidence beside the story, and lets the plan and review files stand as the record of how earlier arcs were run. The Protocol keeps one living roadmap: its owner selects what it lists, and the pull requests that complete that work remove it.

Intent
actor
An agent or a person opening, reviewing or resuming the Protocol's work, and the owner keeping its order.
problem
The handbook points every session at the newest plan file and keeps a status line for each, and a gate requires both, so forward planning lives in prose beside the graph that already holds the arc's intent, and committed review files repeat what change proposals, git and the pull request already carry.
outcome
Let an agent opening the Protocol's next work read it from the roadmap recipe, review and recover an arc from git and its pull request, and keep the plan and review files as frozen history no gate requires to grow.
Behavior
rule.readsRoadmap line 33 · specs/protocol/roadmap-replaces-plans.sdp.md:33
An agent opening the Protocol's next work runs the roadmap recipe over the roadmap Pack the handbook names and follows each entry to its Packs and carrying Specs; no plan file answers for forward work.

no example exercises it

rule.oneRoadmap line 34 · specs/protocol/roadmap-replaces-plans.sdp.md:34
The Protocol keeps one living roadmap Pack, edited in place. Its owner selects captured work for the upcoming pull requests; landing a capture does not add it. Entries leave by an ordinary manifest edit when the selected work is complete or no longer belongs among the next work, and move on the owner's word, with git as history.

no example exercises it

rule.plansFrozen line 35 · specs/protocol/roadmap-replaces-plans.sdp.md:35
plans/ and reviews/ keep the plans and review records of the arcs that had them as history until a cleanup arc removes or archives them; no file is added to either, and a file in either changes only to correct the record it keeps.

no example exercises it

rule.executionRecord line 36 · specs/protocol/roadmap-replaces-plans.sdp.md:36
Before an arc's first push its record is its branch, git being the event log: the first commit message states the owner's working rules for the arc and the arc's Pack, each later message says what its unit did, and outstanding work is read from the arc's Pack, the backlogs and the open-question register; no record file is kept under reviews/ or anywhere else. The arc pushes and opens its draft pull request at its first coherent commit, normally the scaffold, so the window in which only local git holds the record stays short and a session restarted on another machine sees the work. The draft pull request description then holds the record: its branch and base, working rules, lanes, the rulings with who made them, review findings as change proposals and their memos, acceptance as measured, deferrals and refusals. A session resuming without its predecessor's context reads the branch, its commits, the draft pull request and the graph, and never claims git kept what was never committed. The authority to commit and push comes from the owner's instruction for the arc, never from this rule, and no check reads the record.

no example exercises it

rule.reviewFindings line 37 · specs/protocol/roadmap-replaces-plans.sdp.md:37
A review's findings against Specs travel as one change proposal in the shape spec:consumers.intent-composition.proposal states, whose base is the branch-head commit the reviewer read; a proposal composed in a preview names the preview's merge commit from its stamp; the proposal check runs it against the graph at that base, a moved, unresolved or incomparable scope is read again before its change applies, and its memo, as spec:consumers.intent-composition.proposal.memo renders it, is posted to the pull request. A finding against code or another file is a review comment on its line, and a review that proposes no Spec edit has no proposal. The commit that applies a proposal carries its reason line and base, and whether a change was accepted stays in the pull request's discussion and git, never in the proposal or the graph. No review file is committed, and a brief or prompt stays in the session that used it.

no example exercises it

rule.openFindings line 38 · specs/protocol/roadmap-replaces-plans.sdp.md:38
A finding left open against intended design becomes an open question on its carrying Spec with its decider, provisional reading and links, and a deferral is a blocking question with its re-entry trigger; a code defect against settled intent stays a code finding until it is repaired and never becomes an invented design question.

no example exercises it

rule.evidence line 39 · specs/protocol/roadmap-replaces-plans.sdp.md:39
Evidence no test or recipe carries, such as a prototype of a view not yet built, an adopter measurement's raw output or a screenshot for the description, is committed on the arc's branch with the commands that made it, linked from the description at that commit, and removed before the merge; the Protocol merges its pull requests with merge commits, and GitHub keeps each pull request's head ref, so links at the evidence commit keep resolving. A squash or rebase merge would need the evidence published to a durable ref first.

no example exercises it

rule.acceptance line 40 · specs/protocol/roadmap-replaces-plans.sdp.md:40
An arc's acceptance links its bound examples and their run evidence, and re-derives each recipe measurement at the commit the description names, with its commands, never inheriting an earlier result. A run record is evidence from its test file as spec:observation.run-evidence reads it, never a verdict for one verifier, and it counts as evidence for a preview only when its recorded commit is the commit the preview's stamp names; a preview stays a current view, never an acceptance record.

no example exercises it

rule.forwardSection line 41 · specs/protocol/roadmap-replaces-plans.sdp.md:41
Each description's forward section is the roadmap memo rendered at the branch's head, with the re-entry condition, the owner's reason for each entry's place and the refused list in the author's words around it; the pull request that completes an entry's selected work removes it from the roadmap in the same change, entries join or move only on the owner's word, and nothing checks either.

no example exercises it

rule.handbookPointer line 42 · specs/protocol/roadmap-replaces-plans.sdp.md:42
The handbook names the roadmap Pack and the roadmap recipe where it named the current plan, and keeps no status line for any plan.

no example exercises it

rule.gateRecord line 43 · specs/protocol/roadmap-replaces-plans.sdp.md:43
The self-hosting gate's current-record check refuses a handbook that does not name the roadmap Pack or the roadmap recipe, and a generated graph without a Pack node pack:roadmap whose order is priority; it keeps the frozen historical checks, the documented green-gate legs, and the ban on plan status in the decision registry and the glossary until the cleanup arc removes the folders they read. It checks no plan number, roadmap content, freshness, work order or review disposition.

no example exercises it

0 unkeyed rules.

Design
roadmapPack line 47 · specs/protocol/roadmap-replaces-plans.sdp.md:47
pack:roadmap, carried by specs/roadmap.pack.sdp.md.

no citation recorded

handbookTokens line 48 · specs/protocol/roadmap-replaces-plans.sdp.md:48
the gate reads the handbook for the strings pack:roadmap and recipe 53, and the generated graph at generated/graph.json for a Pack node pack:roadmap whose order is "priority".
gateMessages line 49 · specs/protocol/roadmap-replaces-plans.sdp.md:49
AGENTS.md — the handbook does not name the roadmap Pack, AGENTS.md — the handbook does not name the roadmap recipe, generated/graph.json — the roadmap Pack pack:roadmap is missing, generated/graph.json — the roadmap Pack pack:roadmap does not state order: priority, and generated/graph.json — the generated graph is missing or unreadable.

no citation recorded

Verification · reviewed
criteria
  • Resume an arc from its branch and draft pull request alone, reading the tree, its commits and the graph, and name any context that lived only in the earlier session.
  • Run the gate with a handbook that does not name the roadmap Pack and with a roadmap manifest that does not state order: priority, and see each refused; an empty roadmap, a built entry and an order contrary to dependency add no finding.
mode
reviewed
Verification

Verifier bindings

  • test:protocol.roadmap-practice · anchored · test anchor binding present · test/check-self-hosting-gates.test.ts:59
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:protocol.roadmap-replaces-plans
Requirement drawing for spec:protocol.roadmap-replaces-planssatisfies · anchoredrefines · declaredrefines · declaredverifies · anchoredIntended Specsspec:protocol.delivery-record-cleanupThe Protocol removes itsfrozen plans, reviewreports and supersededconcept material…delivery-record-cleanupdeclared Spec · no satisfyingbindingspec:protocol.roadmap-replaces-plansThe Protocol reads its nextwork from its roadmap andkeeps its delivery recordin git and its pull requests…roadmap-replaces-plansdeclared SpecSatisfying or referencingunitsimpl:protocol.roadmap-practicerealizes the roadmaphandbook and itscurrent-record gateimpl:protocol.roadmap-practiceanchored codeTest or oracle bindingstest:protocol.roadmap-practicetest:protocol.roadmap-practicetest:protocol.roadmap-practiceanchored test binding ·binding presentOutside the selected setspec:protocol.self-hostingThe Protocol authors andvalidates itself…self-hostingdeclared Spec
The diagram as text
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests · declared Spec
  • spec:protocol.delivery-record-cleanup: The Protocol removes its frozen plans, review reports and superseded concept material · declared Spec · no satisfying binding
  • spec:protocol.self-hosting: The Protocol authors and validates itself · declared Spec
  • impl:protocol.roadmap-practice: realizes the roadmap handbook and its current-record gate · anchored code · test/check-self-hosting-gates.test.ts:52
  • test:protocol.roadmap-practice: test:protocol.roadmap-practice · anchored test binding · binding present · test/check-self-hosting-gates.test.ts:59
  • spec:protocol.delivery-record-cleanup refines spec:protocol.roadmap-replaces-plans · declared — carries out the removal the roadmap and the pull request record made possible for frozen history
  • spec:protocol.roadmap-replaces-plans refines spec:protocol.self-hosting · declared
  • impl:protocol.roadmap-practice satisfies spec:protocol.roadmap-replaces-plans · anchored
  • test:protocol.roadmap-practice verifies spec:protocol.roadmap-replaces-plans · 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

  • Plan and review files stop carrying the delivery record once the roadmap and the pull request do

    The Protocol reads its forward planning from its roadmap and keeps its delivery record in git and its pull requests; it adds no plan file and no review file, and plans/ and reviews/ stand as frozen history until a later arc removes or archives them. An agent opening the next work runs the roadmap recipe over the roadmap Pack the handbook names and follows each entry to its Packs and carrying Specs. Before an arc's first push its record is its branch, git being the event log: the arc's first commit message states the owner's working rules for the arc and the arc's Pack, each later message says what its unit did, and outstanding work is read from the arc's Pack, the backlogs and the open-question register; no record file is kept under reviews/ or anywhere else. The arc pushes and opens its draft pull request at its first coherent commit, normally the scaffold, so the window in which only local git holds the record stays short and a session restarted on another machine sees the work. The draft pull request description then holds the arc's narrative: its story, lanes, rulings with who made them, review findings as change proposals and their memos, acceptance as measured, deferrals and refusals. A review's findings against Specs travel as a change proposal whose base is the commit the reviewer read: the branch head, or, for a proposal composed in a preview, the merge commit its stamp names, checked against that base and posted to the pull request as its memo; a finding against code or another file is a review comment on its line; a finding left open becomes an open question with its decider, provisional reading and links. Evidence no test or recipe carries is committed on the arc's branch with the commands that made it, linked from the description at that commit, and removed before the merge; the Protocol merges its pull requests with merge commits, and GitHub keeps each pull request's head ref, so links at the evidence commit keep resolving. A squash or rebase merge would need the evidence published to a durable ref first. Briefs and prompts stay in the session. The handbook names the roadmap Pack and the roadmap recipe where it named the current plan, and the self-hosting gate checks that instead of a current plan.

Runtime
  • impl:protocol.roadmap-practice · realizes the roadmap handbook and its current-record gate · test/check-self-hosting-gates.test.ts:52

    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:protocol.roadmap-replaces-plans
Relations of spec:protocol.roadmap-replaces-plansrefines · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddecidedBy · declareddependsOn · declaredrefines · declaredOutgoing refinesspec:protocol.self-hostingThe Protocol authors andvalidates itself…protocol.self-hostingOutgoing dependsOnspec:consumers.intent-composition.proposalA change proposal isaddressed, based andchecked before it lands…consumers.intent-composition.proposalspec:consumers.intent-composition.proposal.memoRecipe 49 renders a changeproposal as the Markdownmemo a person reviews…consumers.intent-composition.proposal.memospec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…consumers.roadmapspec:consumers.roadmap.memoA roadmap renders as theforward section of a pullrequest description…consumers.roadmap.memospec:observation.run-evidenceCI run records are joinedto verifiers in a view…observation.run-evidenceOutgoing decidedByspec:decisions.roadmap-over-plansPlan and review files stopcarrying the deliveryrecord once the roadmap andthe pull request do…decisions.roadmap-over-plansSubjectspec:protocol.roadmap-replaces-plansThe Protocol reads its nextwork from its roadmap andkeeps its delivery recordin git and its pull requests…protocol.roadmap-replaces-plansIncoming refinesspec:protocol.delivery-record-cleanupThe Protocol removes itsfrozen plans, reviewreports and supersededconcept material…protocol.delivery-record-cleanup
The diagram as text
  • spec:consumers.intent-composition.proposal: A change proposal is addressed, based and checked before it lands
  • spec:consumers.intent-composition.proposal.memo: Recipe 49 renders a change proposal as the Markdown memo a person reviews
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.roadmap.memo: A roadmap renders as the forward section of a pull request description
  • spec:decisions.roadmap-over-plans: Plan and review files stop carrying the delivery record once the roadmap and the pull request do
  • spec:observation.run-evidence: CI run records are joined to verifiers in a view
  • spec:protocol.delivery-record-cleanup: The Protocol removes its frozen plans, review reports and superseded concept material
  • spec:protocol.roadmap-replaces-plans: The Protocol reads its next work from its roadmap and keeps its delivery record in git and its pull requests
  • spec:protocol.self-hosting: The Protocol authors and validates itself
  • spec:protocol.roadmap-replaces-plans decidedBy spec:decisions.roadmap-over-plans · declared
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.intent-composition.proposal · declared — a review's findings against Specs travel as a checked change proposal
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.intent-composition.proposal.memo · declared — the pull request carries a review's proposal as its memo
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.roadmap · declared — the Protocol reads its own next work from its roadmap
  • spec:protocol.roadmap-replaces-plans dependsOn spec:consumers.roadmap.memo · declared — each description's forward section is the roadmap memo
  • spec:protocol.roadmap-replaces-plans dependsOn spec:observation.run-evidence · declared — an arc's acceptance reads run records as evidence from test files at their recorded commit
  • spec:protocol.roadmap-replaces-plans refines spec:protocol.self-hosting · declared
  • spec:protocol.delivery-record-cleanup refines spec:protocol.roadmap-replaces-plans · declared — carries out the removal the roadmap and the pull request record made possible for frozen history
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:protocol.self-hosting · stated ready, floor ready
  • dependsOn · spec:consumers.intent-composition.proposal · stated ready, floor ready
  • dependsOn · spec:consumers.intent-composition.proposal.memo · stated ready, floor ready
  • dependsOn · spec:consumers.roadmap · stated ready, floor ready
  • dependsOn · spec:consumers.roadmap.memo · stated ready, floor ready
  • dependsOn · spec:observation.run-evidence · stated ready, floor ready
  • decidedBy · spec:decisions.roadmap-over-plans · stated ready, floor ready

Rested on by

Distance 1

  • spec:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-v1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingPlan and review files stop carrying the delivery record once the roadmap and the pull request do
spec:decisions.roadmap-over-plans · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.intent-composition.proposal
spec:consumers.intent-composition.proposal · resolves
declareda review's findings against Specs travel as a checked change proposalNone
dependsOn · outgoingspec:consumers.intent-composition.proposal.memo
spec:consumers.intent-composition.proposal.memo · resolves
declaredthe pull request carries a review's proposal as its memoNone
dependsOn · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredthe Protocol reads its own next work from its roadmapNone
dependsOn · outgoingA roadmap renders as the forward section of a pull request description
spec:consumers.roadmap.memo · resolves
declaredeach description's forward section is the roadmap memoNone
dependsOn · outgoingspec:observation.run-evidence
spec:observation.run-evidence · resolves
declaredan arc's acceptance reads run records as evidence from test files at their recorded commitNone
refines · outgoingspec:protocol.self-hosting
spec:protocol.self-hosting · resolves
declaredNoneNone
refines · incomingspec:protocol.delivery-record-cleanup
spec:protocol.delivery-record-cleanup · resolves
declaredcarries out the removal the roadmap and the pull request record made possible for frozen historyNone

Bindings

Implementation binding: present

  • impl:protocol.roadmap-practice · realizes the roadmap handbook and its current-record gate · test/check-self-hosting-gates.test.ts:52 · role validator

Design reference: none

Verifier binding: present

  • test:protocol.roadmap-practice · anchored · test/check-self-hosting-gates.test.ts:59 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

49. Roadmap views read releases, baselines and phases from git and the graph

spec:consumers.projections-model.roadmap-views

Roadmap views read releases, baselines and phases from git and the graph

spec:consumers.projections-model.roadmap-viewsDomain Model · storyscoped floor scoped

Next rung defined waits on 1 unmet clause:

  • no-blocking-open-questions · Spec has no blocking open question in intent.openQuestions.

Packs: pack:roadmaps-and-slices-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/projections-model.roadmap-views.sdp.md

1 open question and 1 blocking question; implementation binding none, verifier binding none, and expected-outcome oracle none.

Release, baseline and roadmap vocabulary belongs to optional projections that wait until a reader needs them. The owner, choosing what the next pull requests take up, is the reader the roadmap view waited for, and the roadmap reading answers it: a Pack whose manifest states a priority order, read with what each entry still needs, shown on the Studio's roadmap page and rendered as a pull request's forward section. Release and baseline views still wait for a reader of their own.

Intent
outcome
Name the release, baseline and roadmap views a delivery reader may want, as optional projections that never gate or sequence work.

Open questions

  • blocking · question.releaseReader line 22 · specs/consumers/projections-model.roadmap-views.sdp.md:22 · Does a reader need release or baseline views that the roadmap, the recipes and git tags do not serve?Decider: ownerProvisional: Keep release and baseline views deferred; the trigger opens this question and does not authorize either view's build.Trigger: the first published release
Model
release line 29 · specs/consumers/projections-model.roadmap-views.sdp.md:29
A tagged set surfaced as a git-tag projection.
baseline line 30 · specs/consumers/projections-model.roadmap-views.sdp.md:30
A named approved snapshot whose signed git tag is the approval artifact, with approval remaining outside the authored model.
roadmap line 31 · specs/consumers/projections-model.roadmap-views.sdp.md:31
A Pack whose manifest states a priority order, read with what each entry still needs next; its order is an advisory preference, never a schedule or a gate.
phase / iteration / milestone line 32 · specs/consumers/projections-model.roadmap-views.sdp.md:32
Descriptive words a roadmap's framing may use, never an entry field, a date, a gate or an enforced sequence.
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.
Requirement drawing for spec:consumers.projections-model.roadmap-views

Arrows: refines (declared).

Requirement drawing for spec:consumers.projections-model.roadmap-viewsIntended Specsspec:consumers.projections-model.roadmap-viewsRoadmap views readreleases, baselines andphases from git and thegraph…projections-model.roadmap-viewsdeclared Spec · no satisfyingbindingOutside the selected setspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…projections-modeldeclared Spec
The diagram as text
  • spec:consumers.projections-model.roadmap-views: Roadmap views read releases, baselines and phases from git and the graph · declared Spec · no satisfying binding
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • spec:consumers.projections-model.roadmap-views refines spec:consumers.projections-model · 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

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:consumers.projections-model.roadmap-views
Relations of spec:consumers.projections-model.roadmap-viewsrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…projections-modelOutgoing dependsOnspec:consumers.roadmapA roadmap orders the nextbodies of work, and thegraph says what each stillneeds…roadmapSubjectspec:consumers.projections-model.roadmap-viewsRoadmap views readreleases, baselines andphases from git and thegraph…projections-model.roadmap-views
The diagram as text
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.projections-model.roadmap-views: Roadmap views read releases, baselines and phases from git and the graph
  • spec:consumers.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • spec:consumers.projections-model.roadmap-views dependsOn spec:consumers.roadmap · declared — the roadmap view the owner asked for is the roadmap reading, its page and its memo
  • spec:consumers.projections-model.roadmap-views refines spec:consumers.projections-model · 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.projections-model · stated ready, floor ready
  • dependsOn · spec:consumers.roadmap · stated ready, floor ready

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingA roadmap orders the next bodies of work, and the graph says what each still needs
spec:consumers.roadmap · resolves
declaredthe roadmap view the owner asked for is the roadmap reading, its page and its memoNone
refines · outgoingspec:consumers.projections-model
spec:consumers.projections-model · resolves
declaredNoneNone

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.