Design management

pack:design-management-v1specs/design-management.pack.sdp.md

Exported from the Spec Studio

pack:design-management-v1

Where the design stands

  • 24 members in authored reading order; no unresolved members.
  • 2 members held below their stated next rung: A reference projection serves a reader outside the repository (1 unmet clause), Mermaid diagrams can be rooted at code units (1 unmet clause).
  • No members waiting only for their author's statement.
  • 108 design entries and 52 pinned declarations.
  • 5 open questions and 2 blocking questions.
  • 21 members with an implementation binding.
  • 4 members with a design reference.
  • 42 outside Specs the Pack rests on; 69 outside Specs rest on the Pack; 31 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 Design managementFloor reached →Stated readiness ↓noneideascopeddefinedreadyideascopeddefinedreadystated idea, floor idea: 1 member1stated scoped, floor scoped: 1 member1stated ready, floor ready: 22 members22
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—1———
stated scoped——1——
stated defined—————
stated ready————22
stated idea, floor idea · 1 member
stated scoped, floor scoped · 1 member
stated ready, floor ready · 22 members
Mermaid source

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

Framing

The design-management arc, in review order: the Pack page and the reader assembly it renders; entry locations, recipe parameters and shipped recipe files; the recipes used in design work; the engine build identity and the authoring watch loop. The remaining Specs capture promises of the original design across the model, consumers, validation and observation. Pack design shows each member's stated next rung, design columns and code bindings.

Vocabulary: spec:model.design-maturity

Members

1. The Design Review's Pack page presents the Pack's designdecision · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding none

spec:decisions.pack-design-page

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: present

  • impl:protocol.pack-design-page · renders the Pack page from the Pack design · src/projections/design-review-pages.ts:120 · role projection · component component:protocol.projections · layer edge · context protocol

Verifier binding: none

2. The Pack context carries the Pack's designbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.pack-design

Design

No design entries · no pinned declarations

Decisions

  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

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

3. A Pack page shows where the Pack's design standsbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

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

Design

No design entries · no pinned declarations

Decisions

Open questions

None.

Implementation binding: present

  • impl:protocol.pack-design-page · renders the Pack page from the Pack design · src/projections/design-review-pages.ts:120 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: present

  • impl:protocol.pack-design-sections · renders the Pack page's next-rung, boundary, question and code sections · src/projections/design-review-pack-sections.ts:19 · role projection · component component:protocol.projections · layer edge · context protocol

Verifier binding: present

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

4. The graph records where each addressable entry is writtenbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:extraction.entry-locations

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.entry-location-recipes · asserts realization of the entry lines the entry search and address resolution recipes return · test/recipes.test.ts:5979
  • impl:protocol.entry-locations · builds the carrier entry location table · src/extract/derive.ts:78 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.reader · typed graph queries, entry adapters and context joins · src/reader/reader.ts:687 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Verifier binding: present

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

5. Recipes take parameters as data and ship as runnable filesbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.agent-surface.recipe-parameters

Design

2 design entries · 2 pinned declarations

Decisions

  • spec:decisions.agent-front-door · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182 · role publisher · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.parameter-codec · decodes recipe parameters and refuses duplicate keys · src/cli/params.ts:121 · role codec · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.query-params · reads --params as JSON data and injects it as the sink's fourth binding, params · src/cli/q-command.ts:71 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.recipe-parameters-catalog · asserts realization of the catalog recipes that read their parameter from params · test/recipes.test.ts:4405

Design reference: none

Verifier binding: present

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

6. Design work reads its answers from catalog recipesbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.agent-surface.design-recipes

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.design-recipes · asserts realization of the shipped design recipes · test/recipes.test.ts:4769

Design reference: none

Verifier binding: present

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

7. Example spaces report which values their examples coverbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

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

Design

7 design entries · 5 pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.example-space-coverage-recipe · asserts realization of shipped recipe 44 · test/studio-s1.test.ts:856
  • impl:protocol.example-space-decoding · shared example-space interpretation for contracts and reader contexts · src/notation/example-space.ts:473 · role codec · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

2 verifiers, 2 enabled · 2 verifying examples, 2 enabled

8. The CLI names the engine that produced a resultbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.engine-provenance

Design

1 design entry · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182 · role publisher · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.engine-provenance-cli · prints sdp version and the commit parsed from the build-info file beside the compiled CLI · src/cli/sdp.ts:102 · role projection · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

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

9. Validation re-runs while an author edits carriersbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.validate-watch

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591 · role service · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

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

10. What a Spec's design carries is derived, beside its readinessmodel · ready floor ready · 1 open, 0 blocking questions · implementation binding present · verifier binding present

spec:model.design-maturity

Design

No design entries · no pinned declarations

Open questions

  • non-blocking · question.designColumnsSufficiency · line 20 · specs/model/design-maturity.sdp.md:20 · If the first adopter's design passes show that the design columns cannot distinguish settled design from intent alone, should this representation be revisited?Decider: ownerProvisional: derive what design a Spec carries beside readiness without a new rung, floor clause or delivery fact

Implementation binding: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

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

11. Components are designed ahead of their codemodel · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:model.planned-architecture

Design

6 design entries · 1 pinned declaration

Decisions

  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.planned-components-recipe · asserts realization of the shipped planned against realized components recipe · test/architecture-recipes.test.ts:16

Design reference: present

  • impl:protocol.curation-recipe · asserts the curation report over external inferred imports · test/curation-recipes.test.ts:32

Verifier binding: present

3 verifiers, 3 enabled · 3 verifying examples, 3 enabled

12. An open question may name who decides it, its links, a provisional reading and a re-entry triggerrule · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:model.open-question-fields

Design

7 design entries · 1 pinned declaration

Decisions

  • spec:decisions.adopt-the-nouns · stated ready
  • spec:decisions.planning-truths-placement · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

3 verifiers, 3 enabled · 1 verifying example, 1 enabled

13. A rule or flow entry may carry a key that addresses itrule · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:model.rule-keys

Design

10 design entries · 6 pinned declarations

Decisions

  • spec:decisions.checked-mentions · stated ready
  • spec:decisions.shipped-projections-frozen · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol
  • impl:protocol.rule-exercises · checks the keys named by declared verifies relations · src/validate/validators.ts:1479 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

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

14. An authored relation may carry its reasonrule · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:model.relation-reasons

Design

5 design entries · no pinned declarations

Decisions

  • spec:decisions.prose-ownership · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

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

15. A Pack is read from a named perspectivebehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.review-perspectives

Design

4 design entries · 1 pinned declaration

Open questions

None.

Implementation binding: present

  • impl:protocol.perspective-filter-recipe · realizes the perspective filter in the shipped recipe catalog · test/iteration-recipes.test.ts:753 · role projection

Design reference: none

Verifier binding: present

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

16. A context bundle is composed per invocation within a stated budgetbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.context-bundle

Design

17 design entries · 7 pinned declarations

Decisions

  • spec:decisions.agent-front-door · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.context-bundle-recipe · realizes the context bundle in the shipped recipe catalog · test/iteration-recipes.test.ts:765 · role projection

Design reference: none

Verifier binding: present

3 verifiers, 3 enabled · 2 verifying examples, 2 enabled

17. Designs are compared between a base commit and the working tree at entry grainbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.design-diff

Design

8 design entries · 4 pinned declarations

Decisions

  • spec:decisions.roadmap-priority · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.design-diff-recipe · realizes the design diff in the shipped recipe catalog · test/iteration-recipes.test.ts:27 · role projection

Design reference: none

Verifier binding: present

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

18. A change proposal is addressed, based and checked before it landscontract · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:consumers.intent-composition.proposal

Design

7 design entries · 2 pinned declarations

Open questions

None.

Implementation binding: present

  • impl:protocol.proposal-schema-and-recipe · realizes the shipped proposal schema and proposal check in the recipe catalog · test/iteration-recipes.test.ts:1510 · role contract
  • impl:protocol.studio-proposal-contract · browser proposal shape and schema checks · src/studio-elements/proposal.ts:1 · role contract · component component:protocol.studio-elements · layer edge · context protocol

Design reference: none

Verifier binding: present

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

19. A reference projection serves a reader outside the repositorybehavior · idea floor idea · next rung scoped: waits on 1 unmet clause · 2 open, 1 blocking questions · implementation binding none · verifier binding none

spec:consumers.reference-projection

Next rung scoped waits on 1 unmet clause:

  • kind-evidence-present · The kind's natural evidence is present (per-kind evidence table).

Design

No design entries · no pinned declarations

Open questions

  • blocking · question.namedOutsideReader · line 17 · specs/consumers/reference-projection.sdp.md:17 · Does a human reader outside the repository need a reference projection the four shipped roots do not serve? The taxonomy row is not that reader.Decider: ownerTrigger: a named consumer outside the repository, with a way to measure that demand inside the arc that builds the projection
  • non-blocking · question.referenceSource · line 20 · specs/consumers/reference-projection.sdp.md:20 · Would the reference read pinned declarations, contract-kind Specs or api: code anchors, and does any of them hold enough to document an interface?

Implementation binding: none

Design reference: none

Verifier binding: none

20. Mermaid diagrams can be rooted at code unitsbehavior · scoped floor scoped · next rung defined: waits on 1 unmet clause · 1 open, 1 blocking questions · implementation binding none · verifier binding none

spec:consumers.structural-mermaid

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

Decisions

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

Open questions

  • blocking · question.namedStructuralReader · line 21 · specs/consumers/structural-mermaid.sdp.md:21 · Does a reader need diagrams rooted at code units, which census tables and Spec-rooted one-hop Mermaid do not serve?Decider: ownerTrigger: a named reader with that need, plus a decision that refines spec:decisions.shipped-projections-frozen for the affected Mermaid rendering or supersedes that ruling whole

Implementation binding: none

Design reference: none

Verifier binding: none

21. A Spec shaped by a superseded decision warnsrule · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:validation.superseded-decision-signal

Design

10 design entries · 7 pinned declarations

Decisions

  • spec:decisions.planning-truths-placement · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.superseded-decision-signal · walks decision replacements to surface stale shaping relations · src/validate/validators.ts:1817 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

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

22. Declared architecture rules are checked against anchored structurerule · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:validation.architecture-constraints

Design

6 design entries · 3 pinned declarations

Decisions

  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.architecture-walk-recipe · asserts realization of the shipped architecture walk recipe · test/architecture-recipes.test.ts:10

Design reference: none

Verifier binding: present

3 verifiers, 3 enabled · 3 verifying examples, 3 enabled

23. Corpus-authored rules run on the one validation pathbehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding present · verifier binding present

spec:validation.corpus-rules

Design

11 design entries · 7 pinned declarations

Decisions

  • spec:decisions.architectural-annotation · stated ready

Open questions

None.

Implementation binding: present

  • impl:protocol.corpus-rule-runner · runs selected corpus rules and separates their failures · src/cli/corpus-rules.ts:65 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.corpus-rules · runs copied rule bodies after Protocol validation and composes the separate corpus report, output and exit · src/cli/validate-view-command.ts:79 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591 · role service · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

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

24. CI run records are joined to verifiers in a viewbehavior · ready floor ready · 1 open, 0 blocking questions · implementation binding present · verifier binding present

spec:observation.run-evidence

Design

7 design entries · 5 pinned declarations

Decisions

  • spec:decisions.binding-not-liveness · stated ready

Open questions

  • non-blocking · question.freshness · line 28 · specs/observation/run-evidence.sdp.md:28 · How does a view say a run is stale: by its commit against the commit being read, or by whether the bound files changed between the two?Decider: ownerProvisional: Display the run and source commit identifiers when they differ, as the differing-commit rule requires; whether freshness also follows changes to bound files remains open.

Implementation binding: present

  • impl:protocol.run-evidence-recipe · asserts realization of Run evidence in docs/agent-surface/recipes.md · test/recipes.test.ts:7277
  • impl:protocol.studio-runs-page · renders readable CTRF inputs, file results, unjoined records and diagnostics · src/projections/studio/pages/runs-page.ts:6 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

2 verifiers, 2 enabled · 2 verifying examples, 2 enabled

Boundary

Rests on (42)
SpecStated rungImplementation bindingJoined members
spec:carrier.slot-notation
spec:carrier.slot-notation
readypresentdependsOn: spec:consumers.agent-surface.example-space-coverage
spec:consumers.adopter-on-ramp
spec:consumers.adopter-on-ramp
readypresentdependsOn: spec:consumers.engine-provenance
spec:consumers.agent-surface
spec:consumers.agent-surface
readypresentrefines: spec:consumers.agent-surface.recipe-parameters, spec:consumers.context-bundle, spec:validation.corpus-rules
dependsOn: spec:validation.corpus-rules
spec:consumers.agent-surface.address-and-cycle-recipes
spec:consumers.agent-surface.address-and-cycle-recipes
readypresentdependsOn: spec:consumers.intent-composition.proposal
spec:consumers.agent-surface.evaluation-sink
spec:consumers.agent-surface.evaluation-sink
readypresentdependsOn: spec:validation.corpus-rules
spec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes
readypresentrefines: spec:consumers.agent-surface.design-recipes
spec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp
readypresentrefines: spec:consumers.validate-watch
spec:consumers.binding-language-views
spec:consumers.binding-language-views
readypresentdependsOn: spec:consumers.design-review.pack-design-page
spec:consumers.command-line
spec:consumers.command-line
readypresentrefines: spec:consumers.engine-provenance
spec:consumers.derived-readiness-banner
spec:consumers.derived-readiness-banner
readypresentdependsOn: spec:consumers.design-review.pack-design-page
spec:consumers.design-review
spec:consumers.design-review
readypresentrefines: spec:consumers.design-review.pack-design-page
spec:consumers.edit-model
spec:consumers.edit-model
readynonedependsOn: spec:consumers.intent-composition.proposal
spec:consumers.intent-composition
spec:consumers.intent-composition
readynonerefines: spec:consumers.intent-composition.proposal
spec:consumers.projections-model
spec:consumers.projections-model
readypresentrefines: spec:consumers.review-perspectives, spec:consumers.design-diff, spec:consumers.reference-projection, spec:consumers.structural-mermaid, spec:observation.run-evidence
spec:consumers.reader
spec:consumers.reader
readypresentrefines: spec:consumers.pack-design
spec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture
readypresentdependsOn: spec:consumers.structural-mermaid
spec:decisions.adopt-the-nouns
spec:decisions.adopt-the-nouns
readynonedecidedBy: spec:model.open-question-fields
spec:decisions.agent-front-door
spec:decisions.agent-front-door
readynonedecidedBy: spec:consumers.agent-surface.recipe-parameters, spec:consumers.context-bundle
spec:decisions.architectural-annotation
spec:decisions.architectural-annotation
readynonedecidedBy: spec:consumers.pack-design, spec:model.planned-architecture, spec:validation.architecture-constraints, spec:validation.corpus-rules
spec:decisions.binding-not-liveness
spec:decisions.binding-not-liveness
readynonedecidedBy: spec:observation.run-evidence
spec:decisions.checked-mentions
spec:decisions.checked-mentions
readynonedecidedBy: spec:model.rule-keys
spec:decisions.one-validation-path
spec:decisions.one-validation-path
readynonedependsOn: spec:consumers.validate-watch
spec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement
readynonedecidedBy: spec:model.open-question-fields, spec:validation.superseded-decision-signal
spec:decisions.prose-ownership
spec:decisions.prose-ownership
readynonedecidedBy: spec:model.relation-reasons
spec:decisions.roadmap-priority
spec:decisions.roadmap-priority
readynonedecidedBy: spec:consumers.design-diff
spec:decisions.shipped-projections-frozen
spec:decisions.shipped-projections-frozen
readynonerefines: spec:decisions.pack-design-page
decidedBy: spec:model.rule-keys, spec:consumers.structural-mermaid
spec:extraction.contract-declarations
spec:extraction.contract-declarations
readypresentdependsOn: spec:consumers.pack-design
spec:extraction.delivery-facts
spec:extraction.delivery-facts
readypresentdependsOn: spec:observation.run-evidence
spec:extraction.derive-graph
spec:extraction.derive-graph
readypresentrefines: spec:extraction.entry-locations
spec:extraction.determinism
spec:extraction.determinism
readypresentconstrainedBy: spec:extraction.entry-locations, spec:consumers.engine-provenance, spec:consumers.design-diff
spec:extraction.excludes
spec:extraction.excludes
readypresentdependsOn: spec:consumers.validate-watch
spec:extraction.executable-contracts
spec:extraction.executable-contracts
readypresentdependsOn: spec:consumers.agent-surface.example-space-coverage
spec:extraction.pack-member-order
spec:extraction.pack-member-order
readypresentdependsOn: spec:consumers.pack-design
spec:model.anchors
spec:model.anchors
readypresentdependsOn: spec:model.planned-architecture, spec:validation.architecture-constraints
spec:model.core-model
spec:model.core-model
readypresentrefines: spec:model.design-maturity, spec:model.planned-architecture
spec:model.open-question-keys
spec:model.open-question-keys
readypresentrefines: spec:model.open-question-fields
dependsOn: spec:extraction.entry-locations, spec:model.rule-keys
spec:model.relations
spec:model.relations
readypresentrefines: spec:model.relation-reasons
dependsOn: spec:validation.superseded-decision-signal
spec:model.spec-sections
spec:model.spec-sections
readypresentrefines: spec:model.rule-keys
spec:validation.diagnostic-rendering
spec:validation.diagnostic-rendering
readypresentdependsOn: spec:validation.corpus-rules
spec:validation.next-rung-floor
spec:validation.next-rung-floor
readypresentdependsOn: spec:consumers.pack-design
spec:validation.two-check-families
spec:validation.two-check-families
readypresentconstrainedBy: spec:validation.corpus-rules
spec:validation.warn-level-signals
spec:validation.warn-level-signals
readypresentrefines: spec:validation.superseded-decision-signal
Rested on by (69)
SpecStated rungImplementation bindingJoined members
spec:carrier.envelope-contract
spec:carrier.envelope-contract
readypresentdependsOn: spec:model.rule-keys, spec:model.relation-reasons
spec:carrier.gherkin-authoring
spec:carrier.gherkin-authoring
readypresentdependsOn: spec:model.rule-keys
spec:carrier.markdown-body-grammar
spec:carrier.markdown-body-grammar
readypresentdependsOn: spec:model.open-question-fields, spec:model.rule-keys
spec:carrier.prose-ownership-rule
spec:carrier.prose-ownership-rule
readypresentdependsOn: spec:model.open-question-fields, spec:model.relation-reasons
spec:consumers.agent-surface.address-and-cycle-recipes
spec:consumers.agent-surface.address-and-cycle-recipes
readypresentdependsOn: spec:consumers.agent-surface.recipe-parameters, spec:model.rule-keys
spec:consumers.agent-surface.answer-shapes
spec:consumers.agent-surface.answer-shapes
readypresentdependsOn: spec:consumers.agent-surface.design-recipes
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable
readynonerefines: spec:consumers.agent-surface.example-space-coverage
spec:consumers.agent-surface.example-space-coverage.uncovered-literal
spec:consumers.agent-surface.example-space-coverage.uncovered-literal
readynonerefines: spec:consumers.agent-surface.example-space-coverage
spec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes
readypresentdependsOn: spec:extraction.entry-locations, spec:model.open-question-fields, spec:model.rule-keys, spec:model.relation-reasons
spec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp
readypresentdependsOn: spec:model.open-question-fields, spec:model.rule-keys, spec:model.relation-reasons
spec:consumers.context-bundle.oversized-member-named
spec:consumers.context-bundle.oversized-member-named
readynonerefines: spec:consumers.context-bundle
spec:consumers.context-bundle.parts-cover-the-pack
spec:consumers.context-bundle.parts-cover-the-pack
readynonerefines: spec:consumers.context-bundle
spec:consumers.delivery-session-on-ramp
spec:consumers.delivery-session-on-ramp
readypresentdependsOn: spec:consumers.review-perspectives, spec:consumers.context-bundle, spec:consumers.design-diff, spec:consumers.intent-composition.proposal
spec:consumers.design-slice
spec:consumers.design-slice
readypresentrefines: spec:consumers.pack-design
dependsOn: spec:consumers.agent-surface.design-recipes, spec:model.planned-architecture, spec:model.open-question-fields, spec:model.rule-keys, spec:consumers.review-perspectives, spec:consumers.context-bundle
spec:consumers.graph-first-planning
spec:consumers.graph-first-planning
readypresentdependsOn: spec:model.open-question-fields
spec:consumers.impact-graph.curation-assist
spec:consumers.impact-graph.curation-assist
readypresentdependsOn: spec:model.planned-architecture
spec:consumers.intent-composition.proposal.memo
spec:consumers.intent-composition.proposal.memo
readypresentrefines: spec:consumers.intent-composition.proposal
spec:consumers.obsidian-vault.bases
spec:consumers.obsidian-vault.bases
readypresentdependsOn: spec:consumers.pack-design
spec:consumers.obsidian-vault.iteration
spec:consumers.obsidian-vault.iteration
readypresentdependsOn: spec:consumers.validate-watch, spec:consumers.intent-composition.proposal
spec:consumers.readiness-planner
spec:consumers.readiness-planner
readypresentdependsOn: spec:model.open-question-fields
spec:consumers.roadmap
spec:consumers.roadmap
readypresentdependsOn: spec:model.open-question-fields
spec:consumers.spec-studio.data
spec:consumers.spec-studio.data
readypresentdependsOn: spec:consumers.pack-design, spec:extraction.entry-locations
spec:consumers.spec-studio.data.inputs
spec:consumers.spec-studio.data.inputs
readypresentdependsOn: spec:consumers.design-diff, spec:observation.run-evidence
spec:consumers.spec-studio.diagram-kinds.scoped-architecture
spec:consumers.spec-studio.diagram-kinds.scoped-architecture
readypresentdependsOn: spec:model.planned-architecture
spec:consumers.spec-studio.diff-page
spec:consumers.spec-studio.diff-page
readypresentdependsOn: spec:consumers.design-diff
spec:consumers.spec-studio.intent-panel
spec:consumers.spec-studio.intent-panel
readypresentdependsOn: spec:consumers.intent-composition.proposal
spec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture
readypresentdependsOn: spec:model.planned-architecture
spec:consumers.spec-studio.lenses.tests
spec:consumers.spec-studio.lenses.tests
readypresentdependsOn: spec:consumers.agent-surface.example-space-coverage, spec:model.rule-keys, spec:observation.run-evidence
spec:consumers.spec-studio.pack-page
spec:consumers.spec-studio.pack-page
readypresentdependsOn: spec:consumers.pack-design, spec:model.open-question-fields
spec:consumers.spec-studio.publisher.watch
spec:consumers.spec-studio.publisher.watch
readypresentdependsOn: spec:consumers.validate-watch
spec:consumers.spec-studio.registers
spec:consumers.spec-studio.registers
readypresentdependsOn: spec:consumers.agent-surface.design-recipes
spec:consumers.spec-studio.runs-page
spec:consumers.spec-studio.runs-page
readypresentdependsOn: spec:observation.run-evidence
spec:consumers.spec-studio.sharing
spec:consumers.spec-studio.sharing
readypresentdependsOn: spec:consumers.engine-provenance
spec:consumers.spec-studio.slice-page
spec:consumers.spec-studio.slice-page
readypresentdependsOn: spec:model.open-question-fields
spec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page
readypresentdependsOn: spec:consumers.pack-design, spec:extraction.entry-locations, spec:model.open-question-fields, spec:model.rule-keys, spec:model.relation-reasons
spec:consumers.spec-studio.spec-page.core
spec:consumers.spec-studio.spec-page.core
readypresentdependsOn: spec:extraction.entry-locations, spec:model.open-question-fields, spec:model.rule-keys, spec:model.relation-reasons
spec:consumers.spec-studio.verification-panels
spec:consumers.spec-studio.verification-panels
readypresentdependsOn: spec:consumers.agent-surface.example-space-coverage, spec:model.rule-keys, spec:observation.run-evidence
spec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption
readypresentdependsOn: spec:model.planned-architecture, spec:model.open-question-fields, spec:model.rule-keys, spec:model.relation-reasons, spec:consumers.review-perspectives
spec:consumers.upgrade-kit.rule-key-proposal
spec:consumers.upgrade-kit.rule-key-proposal
readypresentdependsOn: spec:extraction.entry-locations, spec:model.rule-keys, spec:consumers.intent-composition.proposal
spec:extraction.entry-citations
spec:extraction.entry-citations
readypresentdependsOn: spec:extraction.entry-locations
spec:model.open-question-fields.dropped-list-warns
spec:model.open-question-fields.dropped-list-warns
readynonerefines: spec:model.open-question-fields
spec:model.planned-architecture.differing-layer-and-uses
spec:model.planned-architecture.differing-layer-and-uses
readynonerefines: spec:model.planned-architecture
spec:model.planned-architecture.matching-design
spec:model.planned-architecture.matching-design
readynonerefines: spec:model.planned-architecture
spec:model.planned-architecture.unrealized-design
spec:model.planned-architecture.unrealized-design
readynonerefines: spec:model.planned-architecture
spec:model.term-addresses
spec:model.term-addresses
readypresentdependsOn: spec:extraction.entry-locations, spec:model.rule-keys
spec:observation.run-evidence.absolute-path-joins
spec:observation.run-evidence.absolute-path-joins
readynonerefines: spec:observation.run-evidence
spec:observation.run-evidence.unanchored-file-unjoined
spec:observation.run-evidence.unanchored-file-unjoined
readynonerefines: spec:observation.run-evidence
spec:protocol.roadmap-replaces-plans
spec:protocol.roadmap-replaces-plans
readypresentdependsOn: spec:consumers.intent-composition.proposal, spec:observation.run-evidence
spec:validation.architecture-constraints.forbidden-layer-pair
spec:validation.architecture-constraints.forbidden-layer-pair
readynonerefines: spec:validation.architecture-constraints
spec:validation.architecture-constraints.isolated-context-as-rule
spec:validation.architecture-constraints.isolated-context-as-rule
readynonerefines: spec:validation.architecture-constraints
spec:validation.architecture-constraints.unstated-layer-unclassified
spec:validation.architecture-constraints.unstated-layer-unclassified
readynonerefines: spec:validation.architecture-constraints
spec:validation.corpus-rules.copies-contain-changes
spec:validation.corpus-rules.copies-contain-changes
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.error-finding-fails
spec:validation.corpus-rules.error-finding-fails
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.malformed-finding-fails
spec:validation.corpus-rules.malformed-finding-fails
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.params-edit-starts-a-cycle
spec:validation.corpus-rules.params-edit-starts-a-cycle
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.rules-edit-starts-a-cycle
spec:validation.corpus-rules.rules-edit-starts-a-cycle
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.unreadable-params-fail-one-file
spec:validation.corpus-rules.unreadable-params-fail-one-file
readynonerefines: spec:validation.corpus-rules
spec:validation.corpus-rules.warning-finding-informs
spec:validation.corpus-rules.warning-finding-informs
readynonerefines: spec:validation.corpus-rules
spec:validation.external-registers
spec:validation.external-registers
readypresentrefines: spec:validation.corpus-rules
dependsOn: spec:consumers.agent-surface.recipe-parameters, spec:validation.corpus-rules
spec:validation.prose-mentions
spec:validation.prose-mentions
readypresentdependsOn: spec:model.open-question-fields
spec:validation.superseded-decision-signal.branch-names-every-end
spec:validation.superseded-decision-signal.branch-names-every-end
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.chain-end-named
spec:validation.superseded-decision-signal.chain-end-named
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.closed-chain-named
spec:validation.superseded-decision-signal.closed-chain-named
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.dependency-unread
spec:validation.superseded-decision-signal.dependency-unread
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.end-and-loop-named
spec:validation.superseded-decision-signal.end-and-loop-named
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.live-replacement-warns
spec:validation.superseded-decision-signal.live-replacement-warns
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.replaced-ruling-warns
spec:validation.superseded-decision-signal.replaced-ruling-warns
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.replacement-below-ready-named
spec:validation.superseded-decision-signal.replacement-below-ready-named
readynonerefines: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.superseded-subject-silent
spec:validation.superseded-decision-signal.superseded-subject-silent
readynonerefines: spec:validation.superseded-decision-signal
Verified by (31)
SpecStated rungImplementation bindingJoined members
spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run
spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run
readynoneverifies: spec:validation.corpus-rules
spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run
spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run
readynoneverifies: spec:validation.corpus-rules
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable
readynoneverifies: spec:consumers.agent-surface.example-space-coverage
spec:consumers.agent-surface.example-space-coverage.uncovered-literal
spec:consumers.agent-surface.example-space-coverage.uncovered-literal
readynoneverifies: spec:consumers.agent-surface.example-space-coverage
spec:consumers.context-bundle.oversized-member-named
spec:consumers.context-bundle.oversized-member-named
readynoneverifies: spec:consumers.context-bundle
spec:consumers.context-bundle.parts-cover-the-pack
spec:consumers.context-bundle.parts-cover-the-pack
readynoneverifies: spec:consumers.context-bundle
spec:model.open-question-fields.dropped-list-warns
spec:model.open-question-fields.dropped-list-warns
readynoneverifies: spec:model.open-question-fields
spec:model.planned-architecture.differing-layer-and-uses
spec:model.planned-architecture.differing-layer-and-uses
readynoneverifies: spec:model.planned-architecture
spec:model.planned-architecture.matching-design
spec:model.planned-architecture.matching-design
readynoneverifies: spec:model.planned-architecture
spec:model.planned-architecture.unrealized-design
spec:model.planned-architecture.unrealized-design
readynoneverifies: spec:model.planned-architecture
spec:observation.run-evidence.absolute-path-joins
spec:observation.run-evidence.absolute-path-joins
readynoneverifies: spec:observation.run-evidence
spec:observation.run-evidence.unanchored-file-unjoined
spec:observation.run-evidence.unanchored-file-unjoined
readynoneverifies: spec:observation.run-evidence
spec:validation.architecture-constraints.forbidden-layer-pair
spec:validation.architecture-constraints.forbidden-layer-pair
readynoneverifies: spec:validation.architecture-constraints
spec:validation.architecture-constraints.isolated-context-as-rule
spec:validation.architecture-constraints.isolated-context-as-rule
readynoneverifies: spec:validation.architecture-constraints
spec:validation.architecture-constraints.unstated-layer-unclassified
spec:validation.architecture-constraints.unstated-layer-unclassified
readynoneverifies: spec:validation.architecture-constraints
spec:validation.corpus-rules.copies-contain-changes
spec:validation.corpus-rules.copies-contain-changes
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.error-finding-fails
spec:validation.corpus-rules.error-finding-fails
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.malformed-finding-fails
spec:validation.corpus-rules.malformed-finding-fails
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.params-edit-starts-a-cycle
spec:validation.corpus-rules.params-edit-starts-a-cycle
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.rules-edit-starts-a-cycle
spec:validation.corpus-rules.rules-edit-starts-a-cycle
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.unreadable-params-fail-one-file
spec:validation.corpus-rules.unreadable-params-fail-one-file
readynoneverifies: spec:validation.corpus-rules
spec:validation.corpus-rules.warning-finding-informs
spec:validation.corpus-rules.warning-finding-informs
readynoneverifies: spec:validation.corpus-rules
spec:validation.superseded-decision-signal.branch-names-every-end
spec:validation.superseded-decision-signal.branch-names-every-end
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.chain-end-named
spec:validation.superseded-decision-signal.chain-end-named
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.closed-chain-named
spec:validation.superseded-decision-signal.closed-chain-named
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.dependency-unread
spec:validation.superseded-decision-signal.dependency-unread
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.end-and-loop-named
spec:validation.superseded-decision-signal.end-and-loop-named
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.live-replacement-warns
spec:validation.superseded-decision-signal.live-replacement-warns
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.replaced-ruling-warns
spec:validation.superseded-decision-signal.replaced-ruling-warns
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.replacement-below-ready-named
spec:validation.superseded-decision-signal.replacement-below-ready-named
readynoneverifies: spec:validation.superseded-decision-signal
spec:validation.superseded-decision-signal.superseded-subject-silent
spec:validation.superseded-decision-signal.superseded-subject-silent
readynoneverifies: spec:validation.superseded-decision-signal
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 Design Review's Pack page presents the Pack's design

spec:decisions.pack-design-page

The Design Review's Pack page presents the Pack's design

spec:decisions.pack-design-pageDecision Record · featureready floor ready

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

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

Findings: no errors, no warnings

specs/decisions/pack-design-page.sdp.md

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

Intent
outcome
Let a person working in the repository read where a Pack's design stands, what holds each member below its stated next rung, what the Pack rests on, and which code answers to it, on the page the Protocol already generates.
Decision
context
The Design Review's Pack page lists the members with their readiness and bindings, and the verifier gaps. The first adopter designs whole capabilities ahead of their code as Packs and generates its own page beside the Design Review, walking the readiness floor one rung above the stated rung, reading what the members rest on outside the Pack, joining the open questions, and re-parsing carrier files for entry lines. Its design passes read that page first. The shipped projections are frozen, so the Pack page cannot change until a decision narrows the freeze for it.
decision
The Design Review's Pack page renders the Pack design that spec:consumers.pack-design assembles: a member table in authored order with each member's stated rung, floor reached, the rung above the stated rung with the clause that holds it there, its design columns and its bindings; a section naming what holds each member below its stated next rung; the Specs outside the Pack that members rest on and that rest on members; each member's open questions with their entry addresses and source lines; and each member's realizing and referencing code units with their roles and their components' layers and contexts. The verifier gaps and findings stay. The freeze on the four shipped projections stands for everything else, the Spec page and the index included.
rationale
  • The assembly already exists as graph data and reader values, and an adopter that rebuilds it by hand evaluates the floor a second way, which can disagree with the reader's. One assembly in the reader, rendered on the page the Protocol ships, gives a reviewer the design as it stands and leaves the adopter's script nothing to recompute.
alternatives
  • Starting the Spec Studio with an HTML Pack page is closer to the original design, but the Studio is a later arc, and the Pack design data serves it unchanged.
  • Shipping the assembly as data only keeps every projection frozen and leaves rendering to each adopter, which is the burden this record removes.
consequences
  • Line links on the page point into carrier files through the graph's location table, so the page stays a function of the graph alone.
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.pack-design-page
Requirement drawing for spec:decisions.pack-design-pagereferences · anchoredrefines · declaredrefines · declaredIntended Specsspec:decisions.pack-design-pageThe Design Review's Packpage presents the Pack'sdesign…decisions.pack-design-pagedeclared SpecSatisfying or referencingunitsimpl:protocol.pack-design-pagerenders the Pack page fromthe Pack design…protocol.pack-design-pageanchored codeOutside the selected setspec:consumers.design-review.pack-design-pageA Pack page shows where thePack's design stands…consumers.design-review.pack-design-pagedeclared Specspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozendeclared Spec
The diagram as text
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design · declared Spec
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands · declared Spec
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen · declared Spec
  • impl:protocol.pack-design-page: renders the Pack page from the Pack design · anchored code · src/projections/design-review-pages.ts:120
  • spec:decisions.pack-design-page refines spec:consumers.design-review.pack-design-page · declared
  • spec:decisions.pack-design-page refines spec:decisions.shipped-projections-frozen · declared — carves out the Pack page, which renders the Pack design
  • impl:protocol.pack-design-page references spec:decisions.pack-design-page · 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.pack-design-page
Relations of spec:decisions.pack-design-pagedecidedBy · declaredrefines · declareddependsOn · declaredrefines · declaredOutgoing refinesspec:consumers.design-review.pack-design-pageA Pack page shows where thePack's design stands…consumers.design-review.pack-design-pagespec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozenOutgoing dependsOnspec:consumers.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designSubjectspec:decisions.pack-design-pageThe Design Review's Packpage presents the Pack'sdesign…decisions.pack-design-page
The diagram as text
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen
  • spec:decisions.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:decisions.pack-design-page refines spec:consumers.design-review.pack-design-page · declared
  • spec:decisions.pack-design-page refines spec:decisions.shipped-projections-frozen · declared — carves out the Pack page, which renders the Pack design
  • spec:consumers.design-review.pack-design-page decidedBy spec:decisions.pack-design-page · 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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
refines · outgoingA Pack page shows where the Pack's design stands
spec:consumers.design-review.pack-design-page · resolves
declaredNoneNone
refines · outgoingspec:decisions.shipped-projections-frozen
spec:decisions.shipped-projections-frozen · resolves
declaredcarves out the Pack page, which renders the Pack designNone
decidedBy · incomingA Pack page shows where the Pack's design stands
spec:consumers.design-review.pack-design-page · resolves
declaredNoneNone

Bindings

Implementation binding: none

Design reference: present

  • impl:protocol.pack-design-page · renders the Pack page from the Pack design · src/projections/design-review-pages.ts:120 · role projection · component component:protocol.projections · layer edge · context protocol

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

2. The Pack context carries the Pack's design

spec:consumers.pack-design

The Pack context carries the Pack's design

spec:consumers.pack-designUse Case / Behavior · featureready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/pack-design.sdp.md

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

A capability designed ahead of its code is read as a Pack: its members in reading order, how far each has matured, what design each carries, what it rests on, and which code answers to it. The reader holds every one of those facts. This Spec assembles them once on the Pack context so a page, a recipe and an adopter's script read one answer.

Intent
problem
Reading a Pack's design means joining member readiness, the floor one rung above the stated rung, design entries, decisions, open questions, code bindings with their components, and the Specs outside the Pack, and every consumer that joins them by hand reads the floor or the boundary a different way.
outcome
Give each Pack member its design columns and give the Pack its boundary on the Pack context, so the Design Review, a recipe and an adopter's page read the design from one assembly.
Behavior
rule line 28 · specs/consumers/pack-design.sdp.md:28
One helper derives a Spec's design columns; the Spec context carries them as designColumns and each resolved Pack member carries the same value as design, while the Pack context carries the boundary.
rule line 29 · specs/consumers/pack-design.sdp.md:29
A member's stated next rung is the rung above its stated rung, none when it states ready. Its unmet clauses come from the one floor evaluator with that rung as the target, each failure with its targets when it has them. The list is empty when the floor already holds the stated next rung, so the rung waits for its author's statement, never a promotion. The floor reached and the failures at the rung above it are separate readings.
rule line 30 · specs/consumers/pack-design.sdp.md:30
A member's design columns count its keyed design and ui entries other than description, its pinned declarations under the contract-declarations rule, and its open questions with how many block. They list each question with its zero-based authored index, text, blocking flag, optional key, decider, links, provisional and trigger as present, and optional source line from the location table. They list the decisions it names through decidedBy, each with its stated rung or unresolved when the target is no Spec. The columns are counts and lists read from the graph, never a score or a rung.
rule line 31 · specs/consumers/pack-design.sdp.md:31
A member lists the code units that satisfy it and those that reference it as code unit bindings; each binding carries codeId and claim, plus label, file, line and role when recorded. A component unit carries its own optional layer and context; a memberOf edge adds its component's id and optional layer and context. The Spec context carries the same bindings.
rule line 32 · specs/consumers/pack-design.sdp.md:32
A member counts its verifiers and enabled verifiers, and the example Specs that declare verifies on it with how many are enabled, using the reader's verifier decoding.
rule line 33 · specs/consumers/pack-design.sdp.md:33
The Pack's boundary lists the Specs outside the Pack joined to a member by an authored relation. A Spec a member relates to by refines, dependsOn, constrainedBy or decidedBy is one the Pack rests on; a Spec that relates to a member by the same four relations is one that rests on the Pack. The boundary lists inbound verifies separately as verifiedBy and inbound supersedes as supersededBy, with the same row shape. Each row carries the outside Spec's id, title, stated rung and whether it carries implemented, and for each relation type the members it joins, the types in the closed relation list's order and the members in authored order. A relation whose target is not a Spec in the graph is left to referential integrity and does not appear.
rule line 34 · specs/consumers/pack-design.sdp.md:34
Members keep the manifest's authored order, unresolved members carry their unresolved row without design columns, and boundary rows sort by id in code-unit order.
rule line 35 · specs/consumers/pack-design.sdp.md:35
The assembly is a pure function of the graph: it reads no carrier file, records nothing, and confers no delivery fact or readiness.

8 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test anchor binding present · test/pack-design.test.ts:18
Design view

Requirement drawing

Requirement drawing for spec:consumers.pack-design

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.pack-designrefines, verifies · declaredsatisfies · anchoredsatisfies · anchoredreferences · 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.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designdeclared 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.pack-designthe Pack design helpers andthe Pack context assemblythey serveimpl:protocol.pack-designanchored codeimpl:protocol.studio-slice-answerfull design slice answerconsumed by the page anddrawings…protocol.studio-slice-answeranchored 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.pack-designthe Pack context carrieseach member's design andthe Pack's boundarytest:protocol.pack-designanchored test binding ·binding presentOutside the selected setspec:consumers.readerThe reader bridges agententry points to composablegraph context…consumers.readerdeclared Specspec:consumers.spec-studio.slice-pageA slice page shows a Pack'sdesign as one whole…consumers.spec-studio.slice-pagedeclared Spec
The diagram as text
  • spec:consumers.pack-design: The Pack context carries the Pack's 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
  • 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.reader: The reader bridges agent entry points to composable graph context · declared Spec
  • spec:consumers.spec-studio.slice-page: A slice page shows a Pack's design as one whole · 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.pack-design: the Pack design helpers and the Pack context assembly they serve · anchored code · src/reader/reader.ts:499
  • impl:protocol.studio-slice-answer: full design slice answer consumed by the page and drawings · anchored code · src/projections/studio/slice-answer.ts:1
  • 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.pack-design: the Pack context carries each member's design and the Pack's boundary · anchored test binding · binding present · test/pack-design.test.ts:18
  • 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.pack-design refines spec:consumers.reader · declared
  • spec:consumers.spec-studio.slice-page refines spec:consumers.design-slice · declared — the page is the design slice's reading for a person
  • impl:protocol.design-slice-recipe satisfies spec:consumers.design-slice · anchored
  • impl:protocol.pack-design satisfies spec:consumers.pack-design · anchored
  • impl:protocol.studio-slice-answer references spec:consumers.design-slice · 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.pack-design verifies spec:consumers.pack-design · 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.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
  • component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499

    Component: component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · 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:consumers.pack-design
Relations of spec:consumers.pack-designrefines · declareddependsOn · declaredrefines · declareddecidedBy · declareddependsOn · declaredOutgoing refinesspec:consumers.readerThe reader bridges agententry points to composablegraph context…consumers.readerOutgoing dependsOnspec:consumers.pack-design.fold.Outgoing.dependsOn5 Outgoing dependsOn, folded…consumers.pack-design.fold.Outgoing.dependsOnOutgoing decidedByspec:decisions.architectural-annotationArchitectural significanceis annotated where it isrealized…decisions.architectural-annotationSubjectspec:consumers.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designIncoming refinesspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-sliceIncoming dependsOnspec:consumers.pack-design.fold.Incoming.dependsOn9 Incoming dependsOn, folded…consumers.pack-design.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands
  • 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.obsidian-vault.bases: A Pack's members and the standing queries are tables over the reader's values
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:consumers.reader: The reader bridges agent entry points to composable graph context
  • spec:consumers.review-perspectives: A Pack is read from a named perspective
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.pack-page: A Pack page shows the Pack's design as one card per member
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design
  • spec:extraction.contract-declarations: Pinned declarations give an adopter a derived module to typecheck
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:extraction.pack-member-order: A Pack node keeps its members in authored order
  • spec:model.design-maturity: What a Spec's design carries is derived, beside its readiness
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger
  • spec:validation.next-rung-floor: The floor names what blocks the floor's next rung
  • spec:consumers.pack-design decidedBy spec:decisions.architectural-annotation · declared — a code unit binding carries the role, layer and context its anchors state
  • spec:consumers.pack-design dependsOn spec:extraction.contract-declarations · declared
  • spec:consumers.pack-design dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.pack-design dependsOn spec:extraction.pack-member-order · declared
  • spec:consumers.pack-design dependsOn spec:model.open-question-fields · declared — each listed open question carries its fields
  • spec:consumers.pack-design dependsOn spec:validation.next-rung-floor · declared
  • spec:consumers.pack-design refines spec:consumers.reader · declared
  • spec:consumers.agent-surface.design-recipes dependsOn spec:consumers.pack-design · declared
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:consumers.obsidian-vault.bases dependsOn spec:consumers.pack-design · declared — a Pack's Base shows the members, rungs and design columns the Pack design assembles
  • spec:consumers.review-perspectives dependsOn spec:consumers.pack-design · declared
  • spec:consumers.spec-studio.data dependsOn spec:consumers.pack-design · declared
  • spec:consumers.spec-studio.pack-page dependsOn spec:consumers.pack-design · declared — the page renders the Pack design the Pack context carries
  • spec:consumers.spec-studio.spec-page dependsOn spec:consumers.pack-design · declared
  • spec:decisions.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:model.design-maturity dependsOn spec:consumers.pack-design · declared
  • 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
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.reader · stated ready, floor ready
  • dependsOn · spec:extraction.contract-declarations · stated ready, floor ready
  • dependsOn · spec:extraction.entry-locations · stated ready, floor ready
  • dependsOn · spec:extraction.pack-member-order · stated ready, floor ready
  • dependsOn · spec:model.open-question-fields · stated ready, floor ready
  • dependsOn · spec:validation.next-rung-floor · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

Distance 1

  • 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.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.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.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.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: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 2

  • 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.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.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-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.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.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.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

  • 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

    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

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.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.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.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.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.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.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.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

    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.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

  • 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

Distance 4

  • 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.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.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.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.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

Distance 5

  • 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.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 6

  • 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 7

  • 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 · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declareda code unit binding carries the role, layer and context its anchors stateNone
dependsOn · outgoingspec:extraction.contract-declarations
spec:extraction.contract-declarations · resolves
declaredNoneNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredNoneNone
dependsOn · outgoingspec:extraction.pack-member-order
spec:extraction.pack-member-order · resolves
declaredNoneNone
dependsOn · outgoingAn open question may name who decides it, its links, a provisional reading and a re-entry trigger
spec:model.open-question-fields · resolves
declaredeach listed open question carries its fieldsNone
dependsOn · outgoingspec:validation.next-rung-floor
spec:validation.next-rung-floor · resolves
declaredNoneNone
refines · outgoingspec:consumers.reader
spec:consumers.reader · resolves
declaredNoneNone
dependsOn · incomingDesign work reads its answers from catalog recipes
spec:consumers.agent-surface.design-recipes · resolves
declaredNoneNone
dependsOn · incomingA Pack page shows where the Pack's design stands
spec:consumers.design-review.pack-design-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.obsidian-vault.bases
spec:consumers.obsidian-vault.bases · resolves
declareda Pack's Base shows the members, rungs and design columns the Pack design assemblesNone
dependsOn · incomingA Pack is read from a named perspective
spec:consumers.review-perspectives · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.data
spec:consumers.spec-studio.data · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.pack-page
spec:consumers.spec-studio.pack-page · resolves
declaredthe page renders the Pack design the Pack context carriesNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingThe Design Review's Pack page presents the Pack's design
spec:decisions.pack-design-page · resolves
declaredNoneNone
dependsOn · incomingWhat a Spec's design carries is derived, beside its readiness
spec:model.design-maturity · resolves
declaredNoneNone
refines · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declareda slice reads a Pack's design as one whole, with its architecture and open decisions beside itNone

Bindings

Implementation binding: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test/pack-design.test.ts:18 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

3. A Pack page shows where the Pack's design stands

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

A Pack page shows where the Pack's design stands

spec:consumers.design-review.pack-design-pageUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/design-review.pack-design-page.sdp.md

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

Intent
outcome
Render a Pack's design assembly as one deterministic Markdown page a reviewer reads before a design pass, between iterations and before stating readiness.
Behavior
rule line 21 · specs/consumers/design-review.pack-design-page.sdp.md:21
The page keeps its title line, framing and vocabulary references, then renders, in this order: the member table, what holds each member below its stated next rung, the Pack's boundary, the open questions, the code, the verifier coverage gaps, and the findings.
rule line 22 · specs/consumers/design-review.pack-design-page.sdp.md:22
The member table has one row per member in authored order: the linked Spec with its position from 1 and its title, kind, altitude, stated rung, floor reached, the stated next rung with nothing blocks when its unmet clauses are empty and the first unmet clause otherwise, the design columns as counts (entries, declarations, questions with the blocking count), the decisions it names, and the implementation and verifier binding columns with the present and none values spec:consumers.binding-language-views fixes for every aggregate table, beside a design-reference column that reads present when a code unit references the member and none otherwise. Unit counts stay off the table, which offers existence and never a degree. An unresolved member keeps a row that says so, and the later sections skip it, because the graph holds none of its data.
rule line 23 · specs/consumers/design-review.pack-design-page.sdp.md:23
The section for the stated next rung lists each member with unmet clauses at its stated next rung, every clause with the targets it names and their stated rungs. A member whose floor already holds its stated next rung is listed apart as waiting for its author's statement, which the page never presents as approval.
rule line 24 · specs/consumers/design-review.pack-design-page.sdp.md:24
The boundary section lists, in order, Rests on, Rested on by, Verified by and Superseded by, from restsOn, restedOnBy, verifiedBy and supersededBy. Each empty list reads None.; otherwise a table gives each row with the linked Spec, its stated rung, its implementation binding, present or none, and the members it joins under each relation type.
rule line 25 · specs/consumers/design-review.pack-design-page.sdp.md:25
The open-questions section groups questions by member in authored order. Each question shows its blocking flag, its entry address when it carries a key, its text, and a link to its line in the carrier file when the location table records one.
rule line 26 · specs/consumers/design-review.pack-design-page.sdp.md:26
The code section lists, per member, each realizing and each referencing unit with its id, a link to its file and line, its role, and its component with that component's layer and context, under the binding-language headings the Design Review already uses. A member with no unit says so in one line.
rule line 27 · specs/consumers/design-review.pack-design-page.sdp.md:27
A line link is a relative link from the page to the carrier or source file with a #L<line> fragment, encoded as spec:consumers.design-review states.

7 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.pack-design-page · the Pack page renders the Pack design in its fixed order · anchored · test anchor binding present · test/design-review-pack-page.test.ts:8
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.design-review.pack-design-page
Requirement drawing for spec:consumers.design-review.pack-design-pagesatisfies · anchoredreferences · anchoredreferences · anchoredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredIntended Specsspec:consumers.design-review.pack-design-pageA Pack page shows where thePack's design stands…consumers.design-review.pack-design-pagedeclared Specspec:decisions.pack-design-pageThe Design Review's Packpage presents the Pack'sdesign…decisions.pack-design-pagedeclared SpecSatisfying or referencingunitsimpl:protocol.pack-design-pagerenders the Pack page fromthe Pack designimpl:protocol.pack-design-pageanchored codeimpl:protocol.pack-design-sectionsrenders the Pack page'snext-rung, boundary,question and code sections…protocol.pack-design-sectionsanchored codeTest or oracle bindingstest:protocol.pack-design-pagethe Pack page renders thePack design in its fixedordertest:protocol.pack-design-pageanchored test binding ·binding presentOutside the selected setspec:consumers.design-reviewDesign Review renders graphcontext without becoming agate…consumers.design-reviewdeclared Specspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozendeclared Spec
The diagram as text
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands · declared Spec
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design · declared Spec
  • spec:consumers.design-review: Design Review renders graph context without becoming a gate · declared Spec
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen · declared Spec
  • impl:protocol.pack-design-page: renders the Pack page from the Pack design · anchored code · src/projections/design-review-pages.ts:120
  • impl:protocol.pack-design-sections: renders the Pack page's next-rung, boundary, question and code sections · anchored code · src/projections/design-review-pack-sections.ts:19
  • test:protocol.pack-design-page: the Pack page renders the Pack design in its fixed order · anchored test binding · binding present · test/design-review-pack-page.test.ts:8
  • spec:consumers.design-review.pack-design-page refines spec:consumers.design-review · declared
  • spec:decisions.pack-design-page refines spec:consumers.design-review.pack-design-page · declared
  • spec:decisions.pack-design-page refines spec:decisions.shipped-projections-frozen · declared — carves out the Pack page, which renders the Pack design
  • impl:protocol.pack-design-page satisfies spec:consumers.design-review.pack-design-page · anchored
  • impl:protocol.pack-design-page references spec:decisions.pack-design-page · anchored
  • impl:protocol.pack-design-sections references spec:consumers.design-review.pack-design-page · anchored
  • test:protocol.pack-design-page verifies spec:consumers.design-review.pack-design-page · 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

  • The Design Review's Pack page presents the Pack's design

    The Design Review's Pack page renders the Pack design that spec:consumers.pack-design assembles: a member table in authored order with each member's stated rung, floor reached, the rung above the stated rung with the clause that holds it there, its design columns and its bindings; a section naming what holds each member below its stated next rung; the Specs outside the Pack that members rest on and that rest on members; each member's open questions with their entry addresses and source lines; and each member's realizing and referencing code units with their roles and their components' layers and contexts. The verifier gaps and findings stay. The freeze on the four shipped projections stands for everything else, the Spec page and the index included.

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.pack-design-page · renders the Pack page from the Pack design · src/projections/design-review-pages.ts:120

    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.design-review.pack-design-page
Relations of spec:consumers.design-review.pack-design-pagedependsOn · declareddependsOn · declaredrefines · declareddependsOn · declareddecidedBy · declaredrefines · declaredOutgoing refinesspec:consumers.design-reviewDesign Review renders graphcontext without becoming agate…consumers.design-reviewOutgoing 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.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designSubjectspec:consumers.design-review.pack-design-pageA Pack page shows where thePack's design stands…consumers.design-review.pack-design-pageIncoming refinesspec:decisions.pack-design-pageThe Design Review's Packpage presents the Pack'sdesign…decisions.pack-design-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-review: Design Review renders graph context without becoming a gate
  • spec:consumers.design-review.pack-design-page: A Pack page shows where the Pack's design stands
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:decisions.pack-design-page: The Design Review's Pack page presents the Pack's design
  • spec:consumers.design-review.pack-design-page decidedBy spec:decisions.pack-design-page · declared
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.binding-language-views · declared
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.derived-readiness-banner · declared — the member table renders the stated rung and floor reached as this rule specifies
  • spec:consumers.design-review.pack-design-page dependsOn spec:consumers.pack-design · declared
  • spec:consumers.design-review.pack-design-page refines spec:consumers.design-review · declared
  • spec:decisions.pack-design-page refines spec:consumers.design-review.pack-design-page · 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-review · 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.pack-design · stated ready, floor ready
  • decidedBy · spec:decisions.pack-design-page · stated ready, floor ready

Rested on by

Distance 1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingThe Design Review's Pack page presents the Pack's design
spec:decisions.pack-design-page · resolves
declaredNoneNone
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
declaredthe member table renders the stated rung and floor reached as this rule specifiesNone
dependsOn · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
refines · outgoingspec:consumers.design-review
spec:consumers.design-review · resolves
declaredNoneNone
refines · incomingThe Design Review's Pack page presents the Pack's design
spec:decisions.pack-design-page · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.pack-design-page · renders the Pack page from the Pack design · src/projections/design-review-pages.ts:120 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: present

  • impl:protocol.pack-design-sections · renders the Pack page's next-rung, boundary, question and code sections · src/projections/design-review-pack-sections.ts:19 · role projection · component component:protocol.projections · layer edge · context protocol

Verifier binding: present

  • test:protocol.pack-design-page · the Pack page renders the Pack design in its fixed order · anchored · test/design-review-pack-page.test.ts:8 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

4. The graph records where each addressable entry is written

spec:extraction.entry-locations

The graph records where each addressable entry is written

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

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

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

Findings: no errors, no warnings

specs/extraction/entry-locations.sdp.md

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

An entry address names one keyed Design or UI entry, one keyed rule or flow, one keyed open question, or one keyed Model term. A reader following an address needs its recorded source line.

Intent
problem
The graph records the file of a Spec and the line of every anchor, but not the line of an entry inside a Spec, so a page that links an address to its text, or a review that cites one, re-reads carrier syntax the extractor already parsed.
outcome
Record source lines for Design and UI entries, rules and flows, Model terms, open questions and their optional fields, and authored relation targets beside the graph's nodes, so consumers locate text without parsing carriers.
Behavior
rule line 20 · specs/extraction/entry-locations.sdp.md:20
The graph carries a location table beside its nodes and edges. Each row names a Spec id, carrier file, entry and 1-based source line. Entries are design.<key> or ui.<key> for keys other than description, rule[<i>] or flow[<i>] for entries of the primary behavior owner, term[<i>] for a Model term, question[<i>] for an open question, question[<i>].decider, question[<i>].links, question[<i>].provisional or question[<i>].trigger for each of those optional fields present, and relation.<type>.<target> for an authored relation target. Indexes count from 0 within their authored lists, a term's among the Spec's terms in authored order. A rule, flow, term or question row carries key when that entry has one.
rule line 21 · specs/extraction/entry-locations.sdp.md:21
Primitive and Pack nodes stay free of lines, so a comparison of nodes and edges is unchanged by an edit that only moves an entry, and carrier parity compares nodes and edges and never the location table, whose lines differ by carrier by nature.
rule line 22 · specs/extraction/entry-locations.sdp.md:22
Markdown and TypeScript record the entry forms their syntax carries. TypeScript questions are located at the question property or string literal. Gherkin records its Rule lines and authored or defaulted relation sites; it carries no Design, UI or Model section, open question or question field. A missing row means not located, never absent.
rule line 23 · specs/extraction/entry-locations.sdp.md:23
An authored relation target has a location row whose entry is relation.<type>.<target>, at its carrier's recorded relation site. A defaulted Gherkin relation uses the Scenario identity line when no explicit relation tag locates it.
rule line 24 · specs/extraction/entry-locations.sdp.md:24
Rows sort by Spec id, then by entry, in code-unit order. The table is a deterministic function of the carriers at the extracted commit, as every other part of the graph is.
rule line 25 · specs/extraction/entry-locations.sdp.md:25
A location names where an entry is written and nothing else: it is not an identity, never an anchor target or a binding, and an edit above an entry moves its line.
rule line 26 · specs/extraction/entry-locations.sdp.md:26
The reader's Spec context carries the Spec's rows as its entry locations. Address resolution (recipe 25) adds the entry's value, file and line to each resolving row, and entry search (recipe 23) adds the line to each entry it matches.

7 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.entry-locations · anchored · test anchor binding present · test/entry-locations.test.ts:14
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:extraction.entry-locations
The diagram as text
  • spec:extraction.entry-locations: The graph records where each addressable entry is written · declared Spec
  • spec:extraction.derive-graph: Carrier reification derives the one graph · declared Spec
  • impl:protocol.entry-location-recipes: asserts realization of the entry lines the entry search and address resolution recipes return · anchored code · test/recipes.test.ts:5979
  • impl:protocol.entry-locations: builds the carrier entry location table · anchored code · src/extract/derive.ts:78
  • impl:protocol.pack-design: the Pack design helpers and the Pack context assembly they serve · anchored code · src/reader/reader.ts:499
  • impl:protocol.reader: typed graph queries, entry adapters and context joins · anchored code · src/reader/reader.ts:687
  • test:protocol.entry-locations: test:protocol.entry-locations · anchored test binding · binding present · test/entry-locations.test.ts:14
  • spec:extraction.entry-locations refines spec:extraction.derive-graph · declared
  • impl:protocol.entry-location-recipes satisfies spec:extraction.entry-locations · anchored
  • impl:protocol.entry-locations satisfies spec:extraction.entry-locations · anchored
  • impl:protocol.pack-design references spec:extraction.entry-locations · anchored
  • impl:protocol.reader satisfies spec:extraction.entry-locations · anchored
  • test:protocol.entry-locations verifies spec:extraction.entry-locations · 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
  • component:protocol.extract · the carrier and source pipeline · src/extract/index.ts:192 · layer application · context protocol

    Uses

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.entry-location-recipes · asserts realization of the entry lines the entry search and address resolution recipes return · test/recipes.test.ts:5979

    Uses

    None.

  • impl:protocol.entry-locations · builds the carrier entry location table · src/extract/derive.ts:78

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

    Uses

    None.

  • impl:protocol.reader · typed graph queries, entry adapters and context joins · src/reader/reader.ts:687

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

    Uses

    • impl:protocol.delivery-facts · computes delivery facts from resolving binding edges · src/graph/delivery-facts.ts:65
    • impl:protocol.next-rung-floor · evaluates the floor for a target rung and names the targets that break a dependency · src/validate/readiness-floor.ts:603

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:extraction.entry-locations
Relations of spec:extraction.entry-locationsrefines · declaredconstrainedBy · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:extraction.derive-graphCarrier reification derivesthe one graph…extraction.derive-graphOutgoing dependsOnspec:model.open-question-keysAn open question may carrya key that addresses it…model.open-question-keysOutgoing constrainedByspec:extraction.determinismCommitted source derivesbyte-identical output…extraction.determinismSubjectspec:extraction.entry-locationsThe graph records whereeach addressable entry iswritten…extraction.entry-locationsIncoming dependsOnspec:extraction.entry-locations.fold.Incoming.dependsOn11 Incoming dependsOn,folded…extraction.entry-locations.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:consumers.spec-studio.data: The Studio renders from the reader's values and embeds only what its script reads
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:consumers.upgrade-kit.rule-key-proposal: The rule-key proposal keys every unkeyed rule as a change proposal
  • spec:extraction.derive-graph: Carrier reification derives the one graph
  • spec:extraction.determinism: Committed source derives byte-identical output
  • spec:extraction.entry-citations: The graph records where anchored source cites an entry address
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • 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.open-question-keys: An open question may carry a key that addresses it
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it
  • spec:model.term-addresses: A Model term may carry a key that addresses it
  • spec:validation.superseded-decision-signal: A Spec shaped by a superseded decision warns
  • spec:extraction.entry-locations constrainedBy spec:extraction.determinism · declared
  • spec:extraction.entry-locations dependsOn spec:model.open-question-keys · declared
  • spec:extraction.entry-locations refines spec:extraction.derive-graph · declared
  • spec:consumers.agent-surface.register-recipes dependsOn spec:extraction.entry-locations · declared — the key-family register gives each row the line the location table records
  • spec:consumers.pack-design dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.spec-studio.data dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.spec-studio.spec-page.core dependsOn spec:extraction.entry-locations · declared
  • spec:consumers.upgrade-kit.rule-key-proposal dependsOn spec:extraction.entry-locations · declared — each change names the file and line the location table records for its entry
  • spec:extraction.entry-citations dependsOn spec:extraction.entry-locations · declared — the citation table is the location table's sibling, and a resolving citation names an entry it locates
  • spec:model.open-question-fields dependsOn spec:extraction.entry-locations · declared — adds rows to the location table
  • spec:model.rule-keys dependsOn spec:extraction.entry-locations · declared — adds rows to the location table
  • spec:model.term-addresses dependsOn spec:extraction.entry-locations · declared — adds a row per Model term to the location table
  • spec:validation.superseded-decision-signal dependsOn spec:extraction.entry-locations · declared — the warning takes its line from the location row of the decidedBy target it names
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:extraction.derive-graph · stated ready, floor ready
  • dependsOn · spec:model.open-question-keys · stated ready, floor ready
  • constrainedBy · spec:extraction.determinism · stated ready, floor ready

Rested on by

Distance 1

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

    Implementing units

    • impl:protocol.register-recipes · test/recipes.test.ts:2057

    Referencing units

    None.

    Enabled verifiers: test:protocol.register-recipes

    Packs: 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.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.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.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:extraction.entry-citations

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.entry-citation-reader · src/reader/entry-citations.ts:19
    • impl:protocol.entry-citation-recipe · test/recipes.test.ts:7008
    • impl:protocol.entry-citation-scan · src/extract/entry-citations.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation

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

  • spec:model.open-question-fields

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-fields.dropped-list-warns, test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

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

  • spec:model.rule-keys

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8
    • impl:protocol.rule-exercises · src/validate/validators.ts:1479

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

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

  • spec:model.term-addresses

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138
    • impl:protocol.stable-ids · src/ids.ts:173

    Referencing units

    None.

    Enabled verifiers: spec:model.term-addresses.keyed-term-resolves, spec:model.term-addresses.malformed-term-marker-refused, spec:model.term-addresses.repeated-term-key-refused, spec:model.term-addresses.typescript-term-imports-keyed, spec:model.term-addresses.unknown-term-key-refused, test:protocol.keyed-content

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

  • spec:validation.superseded-decision-signal

    Implementing units

    • impl:protocol.superseded-decision-signal · src/validate/validators.ts:1817

    Referencing units

    None.

    Enabled verifiers: spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent

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

Distance 2

  • spec:carrier.envelope-contract

    Implementing units

    • impl:protocol.envelope-contract · src/extract/markdown-frontmatter.ts:33
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33

    Referencing units

    None.

    Enabled verifiers: test:protocol.envelope-contract

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring

    Implementing units

    • impl:protocol.gherkin-authoring · src/extract/gherkin.ts:1323
    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120
    • impl:protocol.markdown-content · src/extract/markdown-body-content.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-body-grammar.continuation-line-refused, spec:carrier.markdown-body-grammar.foreign-fence-refused, spec:carrier.markdown-body-grammar.h3-refused, spec:carrier.markdown-body-grammar.integer-term-refused, spec:carrier.markdown-body-grammar.keyed-bullet-refused, spec:carrier.markdown-body-grammar.ordered-list-refused, spec:carrier.markdown-body-grammar.plain-bullet-refused, spec:carrier.markdown-body-grammar.raw-html-refused, spec:carrier.markdown-body-grammar.repeated-field-refused, spec:carrier.markdown-body-grammar.second-primary-owner-refused, spec:carrier.markdown-body-grammar.shared-description-refused, spec:carrier.markdown-body-grammar.table-refused, spec:carrier.markdown-body-grammar.trailing-prose-refused, spec:carrier.markdown-body-grammar.unrecognized-heading-refused, spec:validation.kind-evidence.second-entry-untargeted

    Packs: pack:self-hosting-v1

  • spec:carrier.prose-ownership-rule

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120

    Referencing units

    None.

    Enabled verifiers: test:protocol.prose-ownership

    Packs: pack:self-hosting-v1

  • 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.address-and-cycle-recipes

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, 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, test:protocol.address-and-cycle-recipes

    Packs: pack:adopter-speed-v1, 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.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.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.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.notes

    Implementing units

    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sections · src/projections/vault/sections.ts:10
    • impl:protocol.vault-text · src/projections/vault/text.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.notes.case-collision-refused, spec:consumers.obsidian-vault.notes.entry-address-link, spec:consumers.obsidian-vault.notes.term-address-link, spec:consumers.obsidian-vault.notes.unresolved-mention-stays, test:protocol.vault-priority

    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.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.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.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.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.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.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.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.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.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.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.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.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

    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.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: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:extraction.entry-citations.code-comment-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.code-comment-cites-declaration

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

  • spec:extraction.entry-citations.test-title-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.test-title-cites-declaration

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

  • spec:extraction.entry-citations.unanchored-file-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unanchored-file-unread

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

  • spec:extraction.entry-citations.unresolved-citation

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unresolved-citation

    Packs: pack:adopter-speed-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:model.open-question-fields.dropped-list-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-fields.dropped-list-warns

    Packs: pack:self-hosting-v1

  • spec:model.term-addresses.keyed-term-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.keyed-term-resolves

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

  • spec:model.term-addresses.malformed-term-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.malformed-term-marker-refused

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

  • spec:model.term-addresses.repeated-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.repeated-term-key-refused

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

  • spec:model.term-addresses.typescript-term-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.typescript-term-imports-keyed

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

  • spec:model.term-addresses.unknown-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.unknown-term-key-refused

    Packs: pack:adopter-speed-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

  • spec:validation.prose-mentions

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-locations, test:protocol.prose-mentions

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.branch-names-every-end

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.branch-names-every-end

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.chain-end-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.chain-end-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.closed-chain-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.closed-chain-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.dependency-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.dependency-unread

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.end-and-loop-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.end-and-loop-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.live-replacement-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.live-replacement-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replaced-ruling-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replaced-ruling-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replacement-below-ready-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replacement-below-ready-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.superseded-subject-silent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.superseded-subject-silent

    Packs: pack:self-hosting-v1

Distance 3

  • spec:carrier.gherkin-authoring.authored-fact-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.authored-fact-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.contract-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.contract-parity

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.description-location-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.description-location-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.duplicate-surface-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.duplicate-surface-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.example-space-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.example-space-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.malformed-relation-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.malformed-relation-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.missing-id-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.missing-id-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.multi-finding-bounded

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.multi-finding-bounded

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.parent-child-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.parent-child-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.step-less-scenario-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.step-less-scenario-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unbound-ready-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unbound-ready-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unknown-tag-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unknown-tag-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unsupported-construct-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans

    Implementing units

    • impl:protocol.inline-code-spans · src/extract/markdown-inline-code.ts:4

    Referencing units

    None.

    Enabled verifiers: spec:carrier.inline-code-spans.description, spec:carrier.inline-code-spans.list, spec:carrier.inline-code-spans.narrative, spec:carrier.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.continuation-line-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.continuation-line-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.foreign-fence-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.foreign-fence-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.h3-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.h3-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.integer-term-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.integer-term-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.keyed-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.keyed-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.ordered-list-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.ordered-list-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.plain-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.plain-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.raw-html-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.raw-html-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.repeated-field-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.repeated-field-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.second-primary-owner-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.second-primary-owner-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.shared-description-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.shared-description-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.table-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.table-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.trailing-prose-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.trailing-prose-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.unrecognized-heading-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.unrecognized-heading-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-parser

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-parser.bounded-parity, test:protocol.markdown-parser

    Packs: pack:self-hosting-v1

  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

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

  • 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.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-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

    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.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.notes.case-collision-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.case-collision-refused

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

  • spec:consumers.obsidian-vault.notes.entry-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.entry-address-link

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

  • spec:consumers.obsidian-vault.notes.term-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.term-address-link

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

  • spec:consumers.obsidian-vault.notes.unresolved-mention-stays

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.unresolved-mention-stays

    Packs: pack:obsidian-vault-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.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.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.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.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.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.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.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.register-input

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-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

    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.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

  • 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: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.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: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:decisions.envelope-grammar-posture

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.prose-ownership

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys

    Implementing units

    • impl:protocol.open-question-keys · src/extract/markdown-body-owner-behavior.ts:38
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.stable-ids · src/ids.ts:173
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-keys.keyed-question-resolves, spec:model.open-question-keys.renamed-key-breaks, spec:model.open-question-keys.repeated-key-refused

    Packs: 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.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

Distance 4

  • spec:carrier.inline-code-spans.description

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.description

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.list

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.list

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.narrative

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.narrative

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-authoring

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-authoring

    Packs: pack:self-hosting-v1

  • 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:carrier.markdown-parser.bounded-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-parser.bounded-parity

    Packs: pack:self-hosting-v1

  • 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.gherkin-view

    Implementing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6
    • impl:protocol.gherkin-view · src/projections/gherkin-view.ts:19
    • impl:protocol.gherkin-view-cli · src/cli/gherkin-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-view

    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.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.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.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.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:decisions.carrier-universality

    Implementing units

    None.

    Referencing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.question-key-rendering

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-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:model.open-question-keys.keyed-question-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.keyed-question-resolves

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.renamed-key-breaks

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.repeated-key-refused

    Packs: pack:self-hosting-v1

  • spec:model.relation-reasons

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

    Packs: pack:design-iteration-v1, pack:design-management-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

  • 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

  • spec:validation.duplicate-ids

    Implementing units

    • impl:protocol.duplicate-id-exclusion · src/extract/index.ts:93
    • impl:protocol.duplicate-ids · src/validate/validators.ts:263

    Referencing units

    None.

    Enabled verifiers: spec:validation.duplicate-ids.dual-carrier

    Packs: pack:self-hosting-v1

Distance 5

  • 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:carrier.sdp-import

    Implementing units

    • component:protocol.import · src/import/import.ts:45
    • impl:protocol.import-fidelity · src/import/markdown-fidelity.ts:102
    • impl:protocol.sdp-import · src/cli/import-command.ts:71
    • impl:protocol.sdp-import-core · src/import/import.ts:58
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.sdp-import-publish · src/cli/import-publish.ts:23
    • impl:protocol.sdp-import-scan · src/cli/import-scan.ts:62

    Referencing units

    None.

    Enabled verifiers: spec:carrier.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation

    Implementing units

    • component:protocol.notation · src/notation/slots.ts:261
    • impl:protocol.slot-notation · src/notation/slots.ts:269

    Referencing units

    None.

    Enabled verifiers: spec:carrier.slot-notation.one-literal-binding, spec:carrier.slot-notation.refused-guess, spec:carrier.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • spec:consumers.design-review

    Implementing units

    • impl:protocol.design-review · src/projections/design-review.ts:44
    • impl:protocol.design-review-codec · src/projections/design-review-markdown.ts:3

    Referencing units

    None.

    Enabled verifiers: spec:consumers.design-review.pure-projection

    Packs: 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.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.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:decisions.carrier-ruling

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-ts-extension

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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.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

  • spec:protocol.self-hosting

    Implementing units

    • impl:protocol.self-hosting · test/self-hosting-graph.test.ts:136

    Referencing units

    None.

    Enabled verifiers: test:protocol.self-hosting

    Packs: 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.duplicate-ids.dual-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.duplicate-ids.dual-carrier

    Packs: pack:self-hosting-v1

Distance 6

  • spec:carrier.sdp-import.feature-adapter

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:carrier.sdp-import.round-trip

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.one-literal-binding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.one-literal-binding

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.refused-guess

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.refused-guess

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.typed-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • spec:carrier.step-keys

    Implementing units

    • impl:protocol.example-runner · src/runner/index.ts:108
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473
    • impl:protocol.executable-contracts · src/codegen/contracts.ts:647
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138

    Referencing units

    None.

    Enabled verifiers: spec:carrier.step-keys.conflicting-example-key-withheld, spec:carrier.step-keys.gherkin-keyed-step-stays-bound, spec:carrier.step-keys.key-equal-to-a-skeleton-withheld, spec:carrier.step-keys.malformed-marker-refused, spec:carrier.step-keys.renamed-key-breaks, spec:carrier.step-keys.repeated-key-refused, spec:carrier.step-keys.reworded-keyed-step-stays-bound, spec:carrier.step-keys.reworded-unkeyed-step-breaks, spec:carrier.step-keys.two-keys-on-one-step-refused, spec:carrier.step-keys.typescript-keyed-step-imports-keyed, test:protocol.keyed-content

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

  • spec:consumers.binding-language-views

    Implementing units

    • impl:protocol.binding-language-index-table · src/projections/design-review-pages.ts:201
    • impl:protocol.binding-language-spec-page · src/projections/design-review-context.ts:95

    Referencing units

    None.

    Enabled verifiers: spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner

    Implementing units

    • impl:protocol.derived-readiness-banner · src/projections/design-review-context.ts:18

    Referencing units

    None.

    Enabled verifiers: spec:consumers.derived-readiness-banner.dishonest-divergence, spec:consumers.derived-readiness-banner.honest-headroom, test:protocol.derived-readiness-banner.idea-floor-unmet

    Packs: pack:self-hosting-v1

  • spec:consumers.design-review.pure-projection

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-review.pure-projection

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.wholesale-view-rewrite · src/cli/validate-view-command.ts:128

    Referencing units

    None.

    Enabled verifiers: spec:consumers.wholesale-view-rewrite.build-invalidates-view, spec:consumers.wholesale-view-rewrite.failed-run-view-removed, spec:consumers.wholesale-view-rewrite.late-stale-page, spec:consumers.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.adopt-the-nouns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.authored-entry-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.concept-docs-dissolve

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.executable-meta-model

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.gherkin-carrier-option

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.pack-markdown-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.plain-language-references

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.protocol-naming

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-gherkin-extension

    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.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

  • spec:protocol.structural-self-binding

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

    Packs: pack:self-hosting-v1

  • 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.diagnostic-rendering

    Implementing units

    • impl:protocol.diagnostic-rendering-cli · src/cli/output.ts:23
    • impl:protocol.diagnostic-rendering-design-review · src/projections/design-review-context.ts:208
    • impl:protocol.validate-summary · src/cli/validate-view-command.ts:23
    • impl:protocol.validation-contracts · src/validate/contracts.ts:5

    Referencing units

    None.

    Enabled verifiers: spec:validation.diagnostic-rendering.composed-location, spec:validation.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

Distance 7

  • spec:carrier.step-keys.conflicting-example-key-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.conflicting-example-key-withheld

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

  • spec:carrier.step-keys.gherkin-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.gherkin-keyed-step-stays-bound

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

  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.key-equal-to-a-skeleton-withheld

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

  • spec:carrier.step-keys.malformed-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.malformed-marker-refused

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

  • spec:carrier.step-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.renamed-key-breaks

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

  • spec:carrier.step-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.repeated-key-refused

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

  • spec:carrier.step-keys.reworded-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-keyed-step-stays-bound

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

  • spec:carrier.step-keys.reworded-unkeyed-step-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-unkeyed-step-breaks

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

  • spec:carrier.step-keys.two-keys-on-one-step-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.two-keys-on-one-step-refused

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

  • spec:carrier.step-keys.typescript-keyed-step-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.typescript-keyed-step-imports-keyed

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

  • spec:consumers.binding-language-views.bound-spec-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.bound-spec-page

    Packs: pack:self-hosting-v1

  • spec:consumers.binding-language-views.pack-member-table

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.census-page

    Implementing units

    • impl:protocol.census-page · src/projections/census.ts:21
    • impl:protocol.census-page-cli · src/cli/census-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.census-page

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.dishonest-divergence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.dishonest-divergence

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.honest-headroom

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.honest-headroom

    Packs: pack:self-hosting-v1

  • spec:consumers.mermaid-view

    Implementing units

    • impl:protocol.mermaid-view · src/projections/mermaid.ts:14
    • impl:protocol.mermaid-view-cli · src/cli/mermaid-command.ts:82

    Referencing units

    None.

    Enabled verifiers: test:protocol.mermaid-view

    Packs: pack:self-hosting-v1

  • spec:consumers.obsidian-vault

    Implementing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.changed-note-refused, spec:consumers.obsidian-vault.failed-extraction-keeps-notes, spec:consumers.obsidian-vault.failed-extraction-recovered, spec:consumers.obsidian-vault.fresh-vault, spec:consumers.obsidian-vault.hidden-file-refused, spec:consumers.obsidian-vault.interrupted-run-recovered, spec:consumers.obsidian-vault.person-notes-survive, spec:consumers.obsidian-vault.unknown-note-refused, spec:consumers.obsidian-vault.vault-in-build-path-refused

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

  • spec:consumers.wholesale-view-rewrite.build-invalidates-view

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.build-invalidates-view

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.failed-run-view-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.failed-run-view-removed

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.late-stale-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.late-stale-page

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.stale-page-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.roadmap-priority

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-aggregate · src/model/pack.ts:23
    • impl:protocol.pack-member-order · src/extract/derive.ts:153

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, 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

  • 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

  • spec:protocol.role-vocabulary

    Implementing units

    • impl:protocol.role-vocabulary · test/self-hosting-graph.test.ts:143

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:protocol.significant-units-review

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

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

  • spec:validation.diagnostic-rendering.composed-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.composed-location

    Packs: pack:self-hosting-v1

  • spec:validation.diagnostic-rendering.table-cell-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

Distance 8

  • 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.obsidian-vault.changed-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.changed-note-refused

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

  • spec:consumers.obsidian-vault.failed-extraction-keeps-notes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-keeps-notes

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

  • spec:consumers.obsidian-vault.failed-extraction-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-recovered

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

  • spec:consumers.obsidian-vault.fresh-vault

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.fresh-vault

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

  • spec:consumers.obsidian-vault.hidden-file-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.hidden-file-refused

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

  • spec:consumers.obsidian-vault.interrupted-run-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.interrupted-run-recovered

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

  • spec:consumers.obsidian-vault.person-notes-survive

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.person-notes-survive

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

  • spec:consumers.obsidian-vault.unknown-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.unknown-note-refused

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

  • spec:consumers.obsidian-vault.vault-in-build-path-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.vault-in-build-path-refused

    Packs: pack:obsidian-vault-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:decisions.roadmap-over-plans

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:decisions.vault-owned-folder

    Implementing units

    None.

    Referencing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Enabled verifiers: None

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

  • 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.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: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 9

  • spec:decisions.pack-reified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    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: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 10

  • 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

Relations

Relation and directionOther endClaimReasonExercised keys
constrainedBy · outgoingspec:extraction.determinism
spec:extraction.determinism · resolves
declaredNoneNone
dependsOn · outgoingspec:model.open-question-keys
spec:model.open-question-keys · resolves
declaredNoneNone
refines · outgoingspec:extraction.derive-graph
spec:extraction.derive-graph · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredthe key-family register gives each row the line the location table recordsNone
dependsOn · incomingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.data
spec:consumers.spec-studio.data · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page.core
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.upgrade-kit.rule-key-proposal
spec:consumers.upgrade-kit.rule-key-proposal · resolves
declaredeach change names the file and line the location table records for its entryNone
dependsOn · incomingspec:extraction.entry-citations
spec:extraction.entry-citations · resolves
declaredthe citation table is the location table's sibling, and a resolving citation names an entry it locatesNone
dependsOn · incomingAn open question may name who decides it, its links, a provisional reading and a re-entry trigger
spec:model.open-question-fields · resolves
declaredadds rows to the location tableNone
dependsOn · incomingA rule or flow entry may carry a key that addresses it
spec:model.rule-keys · resolves
declaredadds rows to the location tableNone
dependsOn · incomingspec:model.term-addresses
spec:model.term-addresses · resolves
declaredadds a row per Model term to the location tableNone
dependsOn · incomingA Spec shaped by a superseded decision warns
spec:validation.superseded-decision-signal · resolves
declaredthe warning takes its line from the location row of the decidedBy target it namesNone

Bindings

Implementation binding: present

  • impl:protocol.entry-location-recipes · asserts realization of the entry lines the entry search and address resolution recipes return · test/recipes.test.ts:5979
  • impl:protocol.entry-locations · builds the carrier entry location table · src/extract/derive.ts:78 · role extractor · component component:protocol.extract · layer application · context protocol
  • impl:protocol.reader · typed graph queries, entry adapters and context joins · src/reader/reader.ts:687 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Verifier binding: present

  • test:protocol.entry-locations · anchored · test/entry-locations.test.ts:14 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

5. Recipes take parameters as data and ship as runnable files

spec:consumers.agent-surface.recipe-parameters

Recipes take parameters as data and ship as runnable files

spec:consumers.agent-surface.recipe-parametersUse Case / Behavior · storyready floor ready

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

Design: 2 design entries · 2 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/agent-surface.recipe-parameters.sdp.md

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

A body reads its parameters by name, so a name it does not read would be dropped without a word, and a recipe with a sample would answer for the sample: a misspelled name would look like a successful call. A recipe therefore answers a name it does not take with that name and the names it does take, and nothing else. A body cannot import and the reader holds no recipe metadata, so each body declares its own names in its first statement, and the recipe check holds that declaration to the catalog.

Intent
problem
A recipe that takes its input in its own source makes a caller rewrite the body for each input, a long list included, and a script that runs a recipe must first cut its body out of the Markdown catalog.
outcome
Pass a recipe's parameter as data through the one evaluation sink, and ship every catalog body as a file a caller runs as written.
Behavior
rule line 19 · specs/consumers/agent-surface.recipe-parameters.sdp.md:19
sdp q takes --params with a JSON object, or --params @PATH with a file holding one, the path resolved from the working directory, and injects it as a fourth binding, params, beside g, graph and report. Without the flag params is an empty object. In these two forms, a value that is not valid JSON, JSON that is not an object (null, an array, a string, a number or a boolean), or a file that cannot be read is refused before the body runs, with exit 1, one line on stderr and no output on stdout.
rule line 20 · specs/consumers/agent-surface.recipe-parameters.sdp.md:20
--params is repeatable in three forms: a JSON object, @PATH naming a file that holds one, and KEY=@PATH binding the JSON value in the file, of any type, to params.KEY, with KEY on the lower-camel grammar. Objects merge at the top level from left to right, and a key given twice by any form is refused before the body runs, with exit 1, one line on stderr and no output on stdout, so a recipe takes a large file such as a base graph beside its other parameters.
rule line 21 · specs/consumers/agent-surface.recipe-parameters.sdp.md:21
The bindings g, graph and report keep their names and meaning beside params. The sink evaluates one operator-supplied body and adds no query vocabulary: a parameter is input to a body, never a verb.
rule line 22 · specs/consumers/agent-surface.recipe-parameters.sdp.md:22
Every recipe reads its parameters under the names the catalog states. A parameter with a documented sample falls back to it when absent, so each body runs as written; a required input with no sample, such as a base graph, a proposal or an imports file, returns diagnostics when absent. Recipe 4 reads its changed files from params.files.
rule.declaredNames line 23 · specs/consumers/agent-surface.recipe-parameters.sdp.md:23
Each catalog body opens by declaring the parameter names it takes, in the order the catalog's index lists them, and checks params against that list before it reads anything else; a recipe that takes no parameter declares an empty list.

no example exercises it

rule.unknownNames line 24 · specs/consumers/agent-surface.recipe-parameters.sdp.md:24
A recipe given a parameter name it does not take returns { unknownParams, accepts } as its whole answer, and sdp q exits 0; it never answers for its sample, for an empty input or for the names it does take in that case.

no example exercises it

rule.namesChecked line 25 · specs/consumers/agent-surface.recipe-parameters.sdp.md:25
The recipe check holds each body's declared names to the catalog's index and to the params names the body reads, and runs each body with a name it does not take.

no example exercises it

rule line 26 · specs/consumers/agent-surface.recipe-parameters.sdp.md:26
The package build writes each catalog body to dist/recipes/<NN>-<slug>.js, where NN is the two-digit recipe number and the slug is the recipe's heading in lower kebab case, and the package ships that directory. The catalog stays the one owner of the bodies; the files are derived, and the recipe test checks that each file equals its catalog body byte for byte.

5 unkeyed rules.

Design
acceptsPreamble line 30 · specs/consumers/agent-surface.recipe-parameters.sdp.md:30
const accepts = [...]; const unknownParams = Object.keys(params).filter((name) => !accepts.includes(name)); if (unknownParams.length > 0) return { unknownParams, accepts }; opens every catalog body as three statements on three lines, with the recipe's names in the brackets as double-quoted strings.

no citation recorded

unknownAnswer line 31 · specs/consumers/agent-surface.recipe-parameters.sdp.md:31
{ unknownParams, accepts } is the whole answer for a name a recipe does not take, where unknownParams lists every such name in the order params holds them, and accepts repeats the recipe's declared names.

no citation recorded

Verification

Verifier bindings

  • test:protocol.query-answer-shapes · anchored · test anchor binding present · test/cli-q.test.ts:730
  • test:protocol.query-params · front-door checks verify --params as the fourth binding and its refusals · anchored · test anchor binding present · test/cli-q.test.ts:509
  • test:protocol.recipe-parameters · recipe checks verify parameters passed as data and the shipped recipe files · anchored · test anchor binding present · test/recipes.test.ts:4411
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.agent-surface.recipe-parameters
Requirement drawing for spec:consumers.agent-surface.recipe-parameterssatisfies · anchoredsatisfies · anchoredsatisfies · anchoredsatisfies · anchoredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.agent-surface.recipe-parametersRecipes take parameters asdata and ship as runnablefiles…consumers.agent-surface.recipe-parametersdeclared SpecSatisfying or referencingunitsimpl:protocol.build-artifactsthe build step that writeseach catalog recipe todist/recipes and recordsthe build commit beside theCLI…protocol.build-artifactsanchored codeimpl:protocol.parameter-codecdecodes recipe parametersand refuses duplicate keys…protocol.parameter-codecanchored codeimpl:protocol.query-paramsreads --params as JSON dataand injects it as thesink's fourth binding,paramsimpl:protocol.query-paramsanchored codeimpl:protocol.recipe-parameters-catalogasserts realization of thecatalog recipes that readtheir parameter from params…protocol.recipe-parameters-cataloganchored codeTest or oracle bindingstest:protocol.query-answer-shapestest:protocol.query-answer-shapes…protocol.query-answer-shapesanchored test binding ·binding presenttest:protocol.query-paramsfront-door checks verify--params as the fourthbinding and its refusalstest:protocol.query-paramsanchored test binding ·binding presenttest:protocol.recipe-parametersrecipe checks verifyparameters passed as dataand the shipped recipe files…protocol.recipe-parametersanchored test binding ·binding presentOutside the selected setspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfacedeclared Spec
The diagram as text
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files · declared Spec
  • spec:consumers.agent-surface: Agents script a visible typed graph · declared Spec
  • impl:protocol.build-artifacts: the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · anchored code · src/cli/build-artifacts.ts:182
  • impl:protocol.parameter-codec: decodes recipe parameters and refuses duplicate keys · anchored code · src/cli/params.ts:121
  • impl:protocol.query-params: reads --params as JSON data and injects it as the sink's fourth binding, params · anchored code · src/cli/q-command.ts:71
  • impl:protocol.recipe-parameters-catalog: asserts realization of the catalog recipes that read their parameter from params · anchored code · test/recipes.test.ts:4405
  • test:protocol.query-answer-shapes: test:protocol.query-answer-shapes · anchored test binding · binding present · test/cli-q.test.ts:730
  • test:protocol.query-params: front-door checks verify --params as the fourth binding and its refusals · anchored test binding · binding present · test/cli-q.test.ts:509
  • test:protocol.recipe-parameters: recipe checks verify parameters passed as data and the shipped recipe files · anchored test binding · binding present · test/recipes.test.ts:4411
  • spec:consumers.agent-surface.recipe-parameters refines spec:consumers.agent-surface · declared
  • impl:protocol.build-artifacts satisfies spec:consumers.agent-surface.recipe-parameters · anchored
  • impl:protocol.parameter-codec satisfies spec:consumers.agent-surface.recipe-parameters · anchored
  • impl:protocol.query-params satisfies spec:consumers.agent-surface.recipe-parameters · anchored
  • impl:protocol.recipe-parameters-catalog satisfies spec:consumers.agent-surface.recipe-parameters · anchored
  • test:protocol.query-answer-shapes verifies spec:consumers.agent-surface.recipe-parameters · anchored
  • test:protocol.query-params verifies spec:consumers.agent-surface.recipe-parameters · anchored
  • test:protocol.recipe-parameters verifies spec:consumers.agent-surface.recipe-parameters · 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.agent-front-door

    The front door is two entrances over one seam: the package exports the reader constructor, and the CLI carries a single evaluation sink that derives the graph in process, injects that same reader, and prints the body's pre-shaped return.

Runtime
  • component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol
    • component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · layer application · context protocol
    • 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.import · canonical conversion with a fidelity boundary · src/import/import.ts:45 · layer application · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • 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
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.parameter-codec · decodes recipe parameters and refuses duplicate keys · src/cli/params.ts:121

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.query-params · reads --params as JSON data and injects it as the sink's fourth binding, params · src/cli/q-command.ts:71

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.recipe-parameters-catalog · asserts realization of the catalog recipes that read their parameter from params · test/recipes.test.ts:4405

    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.agent-surface.recipe-parameters
Relations of spec:consumers.agent-surface.recipe-parametersdependsOn · declareddependsOn · declaredrefines · declareddecidedBy · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfaceOutgoing decidedByspec:decisions.agent-front-doorThe agent front door is oneevaluation sink over theexported reader…decisions.agent-front-doorSubjectspec:consumers.agent-surface.recipe-parametersRecipes take parameters asdata and ship as runnablefiles…consumers.agent-surface.recipe-parametersIncoming dependsOnspec:consumers.agent-surface.address-and-cycle-recipesAddress resolution anddependency cycles stayexecutable graph recipes…consumers.agent-surface.address-and-cycle-recipesspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…consumers.agent-surface.design-recipesspec:consumers.design-diffDesigns are comparedbetween a base commit andthe working tree at entrygrain…consumers.design-diffspec:observation.run-evidenceCI run records are joinedto verifiers in a view…observation.run-evidencespec:validation.corpus-rulesCorpus-authored rules runon the one validation path…validation.corpus-rulesspec:validation.external-registersA corpus checks theregister tokens its prosecites…validation.external-registers
The diagram as text
  • spec:consumers.agent-surface: Agents script a visible typed graph
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files
  • spec:consumers.design-diff: Designs are compared between a base commit and the working tree at entry grain
  • spec:decisions.agent-front-door: The agent front door is one evaluation sink over the exported reader
  • spec:observation.run-evidence: CI run records are joined to verifiers in a view
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:validation.external-registers: A corpus checks the register tokens its prose cites
  • spec:consumers.agent-surface.recipe-parameters decidedBy spec:decisions.agent-front-door · declared
  • spec:consumers.agent-surface.recipe-parameters refines spec:consumers.agent-surface · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes dependsOn spec:consumers.agent-surface.recipe-parameters · declared — address resolution reads its addresses from params
  • spec:consumers.agent-surface.design-recipes dependsOn spec:consumers.agent-surface.recipe-parameters · declared
  • spec:consumers.design-diff dependsOn spec:consumers.agent-surface.recipe-parameters · declared — the base graph is supplied as recipe-parameter data, including the KEY=@PATH file form
  • spec:observation.run-evidence dependsOn spec:consumers.agent-surface.recipe-parameters · declared — the caller passes run records to the recipe as data
  • spec:validation.corpus-rules dependsOn spec:consumers.agent-surface.recipe-parameters · declared — validate takes `--params` in the sink's grammar
  • spec:validation.external-registers dependsOn spec:consumers.agent-surface.recipe-parameters · declared — the register arrives as data through `--params register=@PATH`
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.agent-surface · stated ready, floor ready
  • decidedBy · spec:decisions.agent-front-door · stated ready, floor ready

Rested on by

Distance 1

  • spec:consumers.agent-surface.address-and-cycle-recipes

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, 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, test:protocol.address-and-cycle-recipes

    Packs: pack:adopter-speed-v1, 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-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:observation.run-evidence

    Implementing units

    • impl:protocol.run-evidence-recipe · test/recipes.test.ts:7277
    • impl:protocol.studio-runs-page · src/projections/studio/pages/runs-page.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:observation.run-evidence.absolute-path-joins, spec:observation.run-evidence.unanchored-file-unjoined

    Packs: pack:design-management-v1, pack:self-hosting-v1, pack:spec-studio-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

  • 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 2

  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

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

  • 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.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.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-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.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.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.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.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.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.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:observation.run-evidence.absolute-path-joins

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-absolute

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

  • spec:observation.run-evidence.unanchored-file-unjoined

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-unjoined

    Packs: pack:self-hosting-v1, pack:spec-studio-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.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.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

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.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.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.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.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.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

    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.cited-line-text

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, 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.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.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.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.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.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.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.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.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

  • 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

  • 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

  • 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

Distance 4

  • 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.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.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.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.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.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.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.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.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.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: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

Distance 5

  • 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.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.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.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

Distance 6

  • 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.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.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.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.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

Distance 7

  • 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.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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

Distance 8

  • 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
decidedBy · outgoingspec:decisions.agent-front-door
spec:decisions.agent-front-door · resolves
declaredNoneNone
refines · outgoingspec:consumers.agent-surface
spec:consumers.agent-surface · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.address-and-cycle-recipes
spec:consumers.agent-surface.address-and-cycle-recipes · resolves
declaredaddress resolution reads its addresses from paramsNone
dependsOn · incomingDesign work reads its answers from catalog recipes
spec:consumers.agent-surface.design-recipes · resolves
declaredNoneNone
dependsOn · incomingDesigns are compared between a base commit and the working tree at entry grain
spec:consumers.design-diff · resolves
declaredthe base graph is supplied as recipe-parameter data, including the KEY=@PATH file formNone
dependsOn · incomingCI run records are joined to verifiers in a view
spec:observation.run-evidence · resolves
declaredthe caller passes run records to the recipe as dataNone
dependsOn · incomingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredvalidate takes --params in the sink's grammarNone
dependsOn · incomingspec:validation.external-registers
spec:validation.external-registers · resolves
declaredthe register arrives as data through --params register=@PATHNone

Bindings

Implementation binding: present

  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182 · role publisher · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.parameter-codec · decodes recipe parameters and refuses duplicate keys · src/cli/params.ts:121 · role codec · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.query-params · reads --params as JSON data and injects it as the sink's fourth binding, params · src/cli/q-command.ts:71 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.recipe-parameters-catalog · asserts realization of the catalog recipes that read their parameter from params · test/recipes.test.ts:4405

Design reference: none

Verifier binding: present

  • test:protocol.query-answer-shapes · anchored · test/cli-q.test.ts:730 · test anchor
  • test:protocol.query-params · front-door checks verify --params as the fourth binding and its refusals · anchored · test/cli-q.test.ts:509 · test anchor
  • test:protocol.recipe-parameters · recipe checks verify parameters passed as data and the shipped recipe files · anchored · test/recipes.test.ts:4411 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

6. Design work reads its answers from catalog recipes

spec:consumers.agent-surface.design-recipes

Design work reads its answers from catalog recipes

spec:consumers.agent-surface.design-recipesUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/agent-surface.design-recipes.sdp.md

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

Intent
problem
Iterating on a design asks questions no recipe answers in one body: where a Pack's design stands, what a change to a Spec asks to follow, which decisions shape what, and which component dependencies cross a context or a layer. The first adopter answers each with its own script.
outcome
Answer each of those questions with a catalog recipe that runs as written, so design work reads them from the graph.
Behavior
rule line 19 · specs/consumers/agent-surface.design-recipes.sdp.md:19
The build backlog (recipe 1) gives each listed Spec its design columns, read from its Spec context.
rule line 20 · specs/consumers/agent-surface.design-recipes.sdp.md:20
Pack design (recipe 29) takes a Pack id in params.pack and returns the Pack context's design assembly as data, with members in authored order and the Pack's boundary. It returns a summary by default, full rows with detail: true, or mixed full and summary rows when detail lists member ids, in the shapes the answer-shapes Spec states. It returns found: false for an id that is no Pack.
rule line 21 · specs/consumers/agent-surface.design-recipes.sdp.md:21
Design-change impact (recipe 30) takes Spec ids in params.specs and returns every Spec that rests on them, transitively, through inbound refines, dependsOn, constrainedBy or decidedBy edges, each with the relation path that reaches it and its distance. For the changed Specs and every dependent it lists the units that satisfy it, the units that reference it, its enabled verifiers and its Packs. A references edge counts as a unit to notify and confers nothing.
rule line 22 · specs/consumers/agent-surface.design-recipes.sdp.md:22
Decision register (recipe 31) takes no parameter and returns one row per decision Spec, sorted by id: its title, stated rung, the decisions it supersedes and the decisions that supersede it, the decision-kind Specs it refines as refines and those that refine it as refinedBy, the reasons its relations state, the Specs that name it through decidedBy, its keyed open questions, and its Packs. It reads the graph alone; the ratified names stay in the decision registry document. Whether a refinement narrows a decision is that decision's own text or its relation's reason, never the field name.
rule line 23 · specs/consumers/agent-surface.design-recipes.sdp.md:23
Architecture crossings (recipe 32) takes no parameter and returns every uses edge whose two ends, each resolved to its own component directly or through memberOf, have components that both state a context and differ in it, or both state a layer and differ in it. Each row names both units, both components and what differs, and the totals tally the crossings by context pair and by layer pair, from -> to, so a corpus reads the direction of its dependencies at a glance. It reports and never refuses: a corpus gates its own architecture rule, as the architectural annotation decision leaves it. The totals also carry sameLayer and sameContext for resolved uses edges between distinct components that state the same layer or context, and bySameLayer per layer; edges within one component count in neither.
rule line 24 · specs/consumers/agent-surface.design-recipes.sdp.md:24
Each recipe body lives in the catalog and runs as written in the recipe test, and each reads its parameter as the recipe-parameters Spec states.

6 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.design-recipes · recipe checks verify the design recipes · anchored · test anchor binding present · test/recipes.test.ts:4775
Design view

Requirement drawing

Requirement drawing for spec:consumers.agent-surface.design-recipes
  • E10: refines, verifies · declared
Requirement drawing for spec:consumers.agent-surface.design-recipessatisfies · anchoredsatisfies · anchoredverifies · anchoredverifies · anchoredverifies · anchoredmodels · anchoredrefines · declaredrefines · declaredrefines, verifies · declaredE10Intended Specsspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…consumers.agent-surface.design-recipesdeclared Specspec:consumers.agent-surface.example-space-coverageExample spaces report whichvalues their examples cover…consumers.agent-surface.example-space-coveragedeclared SpecDeclared verifying examplesspec:consumers.agent-surface.example-space-coverage.number-not-enumerableA number slot is notenumerable and reports nouncovered value…consumers.agent-surface.example-space-coverage.number-not-enumerabledeclared Specspec:consumers.agent-surface.example-space-coverage.uncovered-literalA literal no example bindsis reported uncovered, andan unbound child is named…consumers.agent-surface.example-space-coverage.uncovered-literaldeclared SpecSatisfying or referencingunits3 satisfying units · anchored, folded3 satisfying units ·anchoredTest or oracle bindings3 test bindings · anchored, folded3 test bindings · anchoredoracle:protocol.studio-coverageoracle:protocol.studio-coverage…protocol.studio-coverageanchored oracle bindingOutside the selected setspec:consumers.agent-surface.register-recipesRegister questions stayexecutable graph recipes…consumers.agent-surface.register-recipesdeclared Spec
The diagram as text
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes · declared Spec
  • spec:consumers.agent-surface.example-space-coverage: Example spaces report which values their examples cover · declared Spec
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable: A number slot is not enumerable and reports no uncovered value · declared Spec
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal: A literal no example binds is reported uncovered, and an unbound child is named · declared Spec
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes · declared Spec
  • impl:protocol.design-recipes: asserts realization of the shipped design recipes · anchored code · test/recipes.test.ts:4769
  • impl:protocol.example-space-coverage-recipe: asserts realization of shipped recipe 44 · anchored code · test/studio-s1.test.ts:856
  • impl:protocol.example-space-decoding: shared example-space interpretation for contracts and reader contexts · anchored code · src/notation/example-space.ts:473
  • oracle:protocol.studio-coverage: oracle:protocol.studio-coverage · anchored oracle binding · test/studio-s1.test.ts:834
  • test:protocol.design-recipes: recipe checks verify the design recipes · anchored test binding · binding present · test/recipes.test.ts:4775
  • test:protocol.studio-coverage-literal: test:protocol.studio-coverage-literal · anchored test binding · binding present · test/studio-s1.test.ts:938
  • test:protocol.studio-coverage-number: test:protocol.studio-coverage-number · anchored test binding · binding present · test/studio-s1.test.ts:944
  • spec:consumers.agent-surface.design-recipes refines spec:consumers.agent-surface.register-recipes · declared
  • spec:consumers.agent-surface.example-space-coverage refines spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable verifies spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal verifies spec:consumers.agent-surface.example-space-coverage · declared
  • impl:protocol.design-recipes satisfies spec:consumers.agent-surface.design-recipes · anchored
  • impl:protocol.example-space-coverage-recipe satisfies spec:consumers.agent-surface.example-space-coverage · anchored
  • impl:protocol.example-space-decoding satisfies spec:consumers.agent-surface.example-space-coverage · anchored
  • oracle:protocol.studio-coverage models spec:consumers.agent-surface.example-space-coverage · anchored
  • test:protocol.design-recipes verifies spec:consumers.agent-surface.design-recipes · anchored
  • test:protocol.studio-coverage-literal verifies spec:consumers.agent-surface.example-space-coverage.uncovered-literal · anchored
  • test:protocol.studio-coverage-number verifies spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

Runtime
  • impl:protocol.design-recipes · asserts realization of the shipped design recipes · test/recipes.test.ts:4769

    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.agent-surface.design-recipes
Relations of spec:consumers.agent-surface.design-recipesdependsOn · declareddependsOn · declaredrefines · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.agent-surface.register-recipesRegister questions stayexecutable graph recipes…agent-surface.register-recipesOutgoing dependsOnspec:consumers.agent-surface.recipe-parametersRecipes take parameters asdata and ship as runnablefiles…agent-surface.recipe-parametersspec:consumers.pack-designThe Pack context carriesthe Pack's design…pack-designSubjectspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…agent-surface.design-recipesIncoming refinesspec:consumers.agent-surface.example-space-coverageExample spaces report whichvalues their examples cover…agent-surface.example-space-coverageIncoming dependsOnspec:consumers.agent-surface.answer-shapesRecipe answers fit anagent's context and explaintheir misses…agent-surface.answer-shapesspec:consumers.context-bundleA context bundle iscomposed per invocationwithin a stated budget…context-bundlespec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…design-slicespec:consumers.spec-studio.registersThe corpus's registers arepages a reviewer opens froma link…spec-studio.registers
The diagram as text
  • spec:consumers.agent-surface.answer-shapes: Recipe answers fit an agent's context and explain their misses
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.agent-surface.example-space-coverage: Example spaces report which values their examples cover
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph 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.pack-design: The Pack context carries the Pack's design
  • spec:consumers.spec-studio.registers: The corpus's registers are pages a reviewer opens from a link
  • spec:consumers.agent-surface.design-recipes dependsOn spec:consumers.agent-surface.recipe-parameters · declared
  • spec:consumers.agent-surface.design-recipes dependsOn spec:consumers.pack-design · declared
  • spec:consumers.agent-surface.design-recipes refines spec:consumers.agent-surface.register-recipes · declared
  • spec:consumers.agent-surface.answer-shapes dependsOn spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.context-bundle dependsOn spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.design-slice dependsOn spec:consumers.agent-surface.design-recipes · declared — decisions in scope read the decision register's rows
  • spec:consumers.spec-studio.registers dependsOn spec:consumers.agent-surface.design-recipes · declared — the decisions page renders the decision register
  • spec:consumers.agent-surface.example-space-coverage refines spec:consumers.agent-surface.design-recipes · 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: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.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

    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.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

Distance 2

  • 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.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.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-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.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.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.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.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.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.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.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.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.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.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

Distance 4

  • 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

Distance 5

  • 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.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.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: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 6

  • 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.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 7

  • 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 · outgoingRecipes take parameters as data and ship as runnable files
spec:consumers.agent-surface.recipe-parameters · resolves
declaredNoneNone
dependsOn · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
refines · outgoingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.answer-shapes
spec:consumers.agent-surface.answer-shapes · resolves
declaredNoneNone
dependsOn · incomingA context bundle is composed per invocation within a stated budget
spec:consumers.context-bundle · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declareddecisions in scope read the decision register's rowsNone
dependsOn · incomingspec:consumers.spec-studio.registers
spec:consumers.spec-studio.registers · resolves
declaredthe decisions page renders the decision registerNone
refines · incomingExample spaces report which values their examples cover
spec:consumers.agent-surface.example-space-coverage · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.design-recipes · asserts realization of the shipped design recipes · test/recipes.test.ts:4769

Design reference: none

Verifier binding: present

  • test:protocol.design-recipes · recipe checks verify the design recipes · anchored · test/recipes.test.ts:4775 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

7. Example spaces report which values their examples cover

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

Example spaces report which values their examples cover

spec:consumers.agent-surface.example-space-coverageUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/agent-surface.example-space-coverage.sdp.md

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

The original design rendered a coverage heatmap from each example space: which combinations of its typed slots an example witnesses and which none does (docs/lineage/v0-design/04-authoring-surfaces.md §4 and §4.1, 06-extraction-and-validation.md §8). This Spec reports slot-value coverage; the glossary keeps witness for an example in an outcome class. Coverage is per slot value: no design pass has yet asked which combinations of slots no example exercises, and a combination grid grows with the product of the slots' sizes.

Intent
problem
The graph carries example spaces and bound points, but no reader value or recipe reports which literal slot values example children bind.
outcome
Report each literal slot value with the example children that bind it, and each value no child binds, before code exists.
Behavior
rule.decodedOnce line 22 · specs/consumers/agent-surface.example-space-coverage.sdp.md:22
The engine decodes each Spec's example space into its typed slots, and each example child's steps into its bound point, once, through the notation module that writes the space contracts, and the reader carries both on the Spec context; no recipe or projection parses slot notation a second time.

no example exercises it

rule.catalogRecipe line 23 · specs/consumers/agent-surface.example-space-coverage.sdp.md:23
Slot-value coverage is a catalog recipe, recipe 44, over the decoded reader values, listing each literal-union value with the example children that bind it and each value no child binds.

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

rule.literalUnions line 24 · specs/consumers/agent-surface.example-space-coverage.sdp.md:24
The recipe enumerates slots typed as closed unions of quoted literals. It reports every other slot type, a boolean included, as not enumerable by this recipe, never as covered or as missing a value.

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

rule.perSlotOnly line 25 · specs/consumers/agent-surface.example-space-coverage.sdp.md:25
Coverage is reported per slot value; the recipe reports no combination of two or more slots until a design pass asks which combinations no example exercises.

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

rule.eligibleChildren line 26 · specs/consumers/agent-surface.example-space-coverage.sdp.md:26
The examples counted are the children its space contract collects.

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

rule.unboundSlot line 27 · specs/consumers/agent-surface.example-space-coverage.sdp.md:27
An example that binds no value for a slot is listed under that slot as unbound, never as covering a value of it.

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

rule.confersNothing line 28 · specs/consumers/agent-surface.example-space-coverage.sdp.md:28
Slot-value coverage reports and confers nothing: it moves no readiness, records no verdict and emits no validation finding.

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

0 unkeyed rules.

Verifying examples

spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · ready floor ready

Executable Spec

Given an example space that declares the slot {slot: "quantity"} as {declared: "number"}
Given its example children bind {bound: "2; 5"}
When recipe 44 reports the space's coverage
Then the slot is enumerable: {enumerable: false}
Then the values no example binds are {uncovered: ""}
Then the examples that leave the slot unbound are {unbound: ""}

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

spec:consumers.agent-surface.example-space-coverage.uncovered-literal · spec:consumers.agent-surface.example-space-coverage.uncovered-literal · ready floor ready

Executable Spec

Given an example space that declares the slot {slot: "availability"} as {declared: "in stock|out of stock|backordered"}
Given its example children bind {bound: "in stock; in stock; none"}
When recipe 44 reports the space's coverage
Then the slot is enumerable: {enumerable: true}
Then the values no example binds are {uncovered: "out of stock, backordered"}
Then the examples that leave the slot unbound are {unbound: "spec:probe.parent.c3"}

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

Example space

Given an example space that declares the slot {slot:string} as {declared:string}
Given its example children bind {bound:string}
When recipe 44 reports the space's coverage
Then the slot is enumerable: {enumerable:boolean}
Then the values no example binds are {uncovered:string}
Then the examples that leave the slot unbound are {unbound:string}
Design
readerSpace line 31 · specs/consumers/agent-surface.example-space-coverage.sdp.md:31
the Spec context of a Spec that owns an example space carries exampleSpace: { slots: ExampleSlot[]; points: BoundPoint[] }, and a Spec that owns none carries no exampleSpace.
exampleSlot line 32 · specs/consumers/agent-surface.example-space-coverage.sdp.md:32
{ name: string; type: "number" | "string" | "boolean" | "enum"; values?: string[]; step: string }, one per slot the space's given and when steps declare, in the order the space contract's dimensions take, values the quoted literals in authored order when type is enum, and step the skeleton of the first step declaring the slot.

no citation recorded

boundPoint line 33 · specs/consumers/agent-surface.example-space-coverage.sdp.md:33
{ example: string; values: Record<string, string | number | boolean> }, one per eligible child in id order, values holding the first value the child binds for each slot, the values the space contract holds for it.

no citation recorded

coverageRecipe line 34 · specs/consumers/agent-surface.example-space-coverage.sdp.md:34
recipe 44, example-space coverage, takes params.spec or params.pack, at most one, and without either reads every Spec that owns an example space; it returns { scope, totals, spaces }, and { diagnostics: [{ parameter, problem }] } alone when the scope names no Spec or Pack, names both, or names a Spec that owns no example space.
coverageSpace line 35 · specs/consumers/agent-surface.example-space-coverage.sdp.md:35
{ spec: string; examples: string[]; slots: CoverageSlot[] }, one per space in Spec id order, examples the eligible children in id order.

no citation recorded

coverageSlot line 36 · specs/consumers/agent-surface.example-space-coverage.sdp.md:36
{ name: string; type: string; step: string; enumerable: boolean; values: { value: string | number | boolean; examples: string[] }[]; unbound: string[] }: for an enumerable slot one value row per declared literal in authored order, a row with no example being an uncovered value; for any other slot one row per distinct value its examples bind, in the order they are first bound; unbound the examples that bind no value for the slot.

no citation recorded

coverageTotals line 37 · specs/consumers/agent-surface.example-space-coverage.sdp.md:37
{ spaces: number; slots: number; enumerable: number; values: number; uncovered: number }, values counting the declared literals of the enumerable slots and uncovered those no example binds.

no citation recorded

Verification

Verifier bindings

  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · A number slot is not enumerable and reports no uncovered value · declared · example enabled · specs/consumers/agent-surface.example-space-coverage.number-not-enumerable.sdp.md
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal · A literal no example binds is reported uncovered, and an unbound child is named · declared · example enabled · specs/consumers/agent-surface.example-space-coverage.uncovered-literal.sdp.md

Example space

  • slot · string · declared by an example space that declares the slot {slot} as {declared}
  • declared · string · declared by an example space that declares the slot {slot} as {declared}
  • bound · string · declared by its example children bind {bound}

Bound points

Exampleslotdeclaredbound
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable"quantity""number""2; 5"
spec:consumers.agent-surface.example-space-coverage.uncovered-literal"availability""in stock|out of stock|backordered""in stock; in stock; none"

Oracle binding: present · oracle:protocol.studio-coverage · test/studio-s1.test.ts:834

Coverage

slot: "quantity" · spec:consumers.agent-surface.example-space-coverage.number-not-enumerable; "availability" · spec:consumers.agent-surface.example-space-coverage.uncovered-literal · not enumerable

declared: "number" · spec:consumers.agent-surface.example-space-coverage.number-not-enumerable; "in stock|out of stock|backordered" · spec:consumers.agent-surface.example-space-coverage.uncovered-literal · not enumerable

bound: "2; 5" · spec:consumers.agent-surface.example-space-coverage.number-not-enumerable; "in stock; in stock; none" · spec:consumers.agent-surface.example-space-coverage.uncovered-literal · not enumerable

Unbound

  • slot: None
  • declared: None
  • bound: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.agent-surface.example-space-coverage
  • E6: refines, verifies · declared
Requirement drawing for spec:consumers.agent-surface.example-space-coveragesatisfies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines, verifies · declaredE6verifies · anchoredverifies · anchoredIntended Specsspec:consumers.agent-surface.example-space-coverageExample spaces report whichvalues their examples cover…consumers.agent-surface.example-space-coveragedeclared SpecDeclared verifying examplesspec:consumers.agent-surface.example-space-coverage.number-not-enumerableA number slot is notenumerable and reports nouncovered value…consumers.agent-surface.example-space-coverage.number-not-enumerabledeclared Specspec:consumers.agent-surface.example-space-coverage.uncovered-literalA literal no example bindsis reported uncovered, andan unbound child is named…consumers.agent-surface.example-space-coverage.uncovered-literaldeclared SpecSatisfying or referencingunitsimpl:protocol.example-space-coverage-recipeasserts realization ofshipped recipe 44…protocol.example-space-coverage-recipeanchored codeimpl:protocol.example-space-decodingshared example-spaceinterpretation forcontracts and readercontexts…protocol.example-space-decodinganchored codeTest or oracle bindingsoracle:protocol.studio-coverageoracle:protocol.studio-coverage…protocol.studio-coverageanchored oracle bindingtest:protocol.studio-coverage-literaltest:protocol.studio-coverage-literal…protocol.studio-coverage-literalanchored test binding ·binding presenttest:protocol.studio-coverage-numbertest:protocol.studio-coverage-number…protocol.studio-coverage-numberanchored test binding ·binding presentOutside the selected setspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…consumers.agent-surface.design-recipesdeclared Spec
The diagram as text
  • spec:consumers.agent-surface.example-space-coverage: Example spaces report which values their examples cover · declared Spec
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable: A number slot is not enumerable and reports no uncovered value · declared Spec
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal: A literal no example binds is reported uncovered, and an unbound child is named · declared Spec
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes · declared Spec
  • impl:protocol.example-space-coverage-recipe: asserts realization of shipped recipe 44 · anchored code · test/studio-s1.test.ts:856
  • impl:protocol.example-space-decoding: shared example-space interpretation for contracts and reader contexts · anchored code · src/notation/example-space.ts:473
  • oracle:protocol.studio-coverage: oracle:protocol.studio-coverage · anchored oracle binding · test/studio-s1.test.ts:834
  • test:protocol.studio-coverage-literal: test:protocol.studio-coverage-literal · anchored test binding · binding present · test/studio-s1.test.ts:938
  • test:protocol.studio-coverage-number: test:protocol.studio-coverage-number · anchored test binding · binding present · test/studio-s1.test.ts:944
  • spec:consumers.agent-surface.example-space-coverage refines spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable verifies spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal verifies spec:consumers.agent-surface.example-space-coverage · declared
  • impl:protocol.example-space-coverage-recipe satisfies spec:consumers.agent-surface.example-space-coverage · anchored
  • impl:protocol.example-space-decoding satisfies spec:consumers.agent-surface.example-space-coverage · anchored
  • oracle:protocol.studio-coverage models spec:consumers.agent-surface.example-space-coverage · anchored
  • test:protocol.studio-coverage-literal verifies spec:consumers.agent-surface.example-space-coverage.uncovered-literal · anchored
  • test:protocol.studio-coverage-number verifies spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.example-space-coverage-recipe · asserts realization of shipped recipe 44 · test/studio-s1.test.ts:856

    Uses

    None.

  • impl:protocol.example-space-decoding · shared example-space interpretation for contracts and reader contexts · src/notation/example-space.ts:473

    Component: component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · 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:consumers.agent-surface.example-space-coverage
Relations of spec:consumers.agent-surface.example-space-coveragedependsOn · declaredrefines · declareddependsOn · declaredrefines · declaredverifies · declaredrefines · declaredverifies · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…consumers.agent-surface.design-recipesOutgoing dependsOnspec:carrier.slot-notationSlot notation declares,binds, and refuses to guess…carrier.slot-notationspec:extraction.executable-contractsThe build derives step andspace contracts from graphexamples…extraction.executable-contractsSubjectspec:consumers.agent-surface.example-space-coverageExample spaces report whichvalues their examples cover…consumers.agent-surface.example-space-coverageIncoming refinesspec:consumers.agent-surface.example-space-coverage.number-not-enumerableA number slot is notenumerable and reports nouncovered value…consumers.agent-surface.example-space-coverage.number-not-enumerablespec:consumers.agent-surface.example-space-coverage.uncovered-literalA literal no example bindsis reported uncovered, andan unbound child is named…consumers.agent-surface.example-space-coverage.uncovered-literalIncoming dependsOnspec:consumers.spec-studio.lenses.testsThe tests lens shows howfar each Spec'sverification reaches…consumers.spec-studio.lenses.testsspec:consumers.spec-studio.verification-panelsThe panels for examples,targets, verifiers andevidence…consumers.spec-studio.verification-panels
The diagram as text
  • spec:carrier.slot-notation: Slot notation declares, binds, and refuses to guess
  • spec:consumers.agent-surface.design-recipes: Design work reads its answers from catalog recipes
  • spec:consumers.agent-surface.example-space-coverage: Example spaces report which values their examples cover
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable: A number slot is not enumerable and reports no uncovered value
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal: A literal no example binds is reported uncovered, and an unbound child is named
  • spec:consumers.spec-studio.lenses.tests: The tests lens shows how far each Spec's verification reaches
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence
  • spec:extraction.executable-contracts: The build derives step and space contracts from graph examples
  • spec:consumers.agent-surface.example-space-coverage dependsOn spec:carrier.slot-notation · declared
  • spec:consumers.agent-surface.example-space-coverage dependsOn spec:extraction.executable-contracts · declared — its decoded slots and bound points reuse the space-contract interpretation
  • spec:consumers.agent-surface.example-space-coverage refines spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.spec-studio.lenses.tests dependsOn spec:consumers.agent-surface.example-space-coverage · declared — a row reads its example space's uncovered values from recipe 44
  • spec:consumers.spec-studio.verification-panels dependsOn spec:consumers.agent-surface.example-space-coverage · declared — the grid renders recipe 44's per-slot coverage
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal refines spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable verifies spec:consumers.agent-surface.example-space-coverage · declared
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal verifies spec:consumers.agent-surface.example-space-coverage · 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.agent-surface.design-recipes · stated ready, floor ready
  • dependsOn · spec:carrier.slot-notation · stated ready, floor ready
  • dependsOn · spec:extraction.executable-contracts · stated ready, floor ready

Rested on by

Distance 1

  • 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.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.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 2

  • 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.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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:carrier.slot-notation
spec:carrier.slot-notation · resolves
declaredNoneNone
dependsOn · outgoingspec:extraction.executable-contracts
spec:extraction.executable-contracts · resolves
declaredits decoded slots and bound points reuse the space-contract interpretationNone
refines · outgoingDesign work reads its answers from catalog recipes
spec:consumers.agent-surface.design-recipes · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.lenses.tests
spec:consumers.spec-studio.lenses.tests · resolves
declareda row reads its example space's uncovered values from recipe 44None
dependsOn · incomingspec:consumers.spec-studio.verification-panels
spec:consumers.spec-studio.verification-panels · resolves
declaredthe grid renders recipe 44's per-slot coverageNone
refines · incomingspec:consumers.agent-surface.example-space-coverage.number-not-enumerable
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · resolves
declaredNoneNone
refines · incomingspec:consumers.agent-surface.example-space-coverage.uncovered-literal
spec:consumers.agent-surface.example-space-coverage.uncovered-literal · resolves
declaredNoneNone
verifies · incomingspec:consumers.agent-surface.example-space-coverage.number-not-enumerable
spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · resolves
declaredNoneliteralUnions, perSlotOnly, confersNothing
verifies · incomingspec:consumers.agent-surface.example-space-coverage.uncovered-literal
spec:consumers.agent-surface.example-space-coverage.uncovered-literal · resolves
declaredNonecatalogRecipe, literalUnions, eligibleChildren, unboundSlot

Bindings

Implementation binding: present

  • impl:protocol.example-space-coverage-recipe · asserts realization of shipped recipe 44 · test/studio-s1.test.ts:856
  • impl:protocol.example-space-decoding · shared example-space interpretation for contracts and reader contexts · src/notation/example-space.ts:473 · role codec · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

  • spec:consumers.agent-surface.example-space-coverage.number-not-enumerable · A number slot is not enumerable and reports no uncovered value · declared · specs/consumers/agent-surface.example-space-coverage.number-not-enumerable.sdp.md · example enabled
  • spec:consumers.agent-surface.example-space-coverage.uncovered-literal · A literal no example binds is reported uncovered, and an unbound child is named · declared · specs/consumers/agent-surface.example-space-coverage.uncovered-literal.sdp.md · example enabled

Expected-outcome oracle: present

  • oracle:protocol.studio-coverage · test/studio-s1.test.ts:834

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

8. The CLI names the engine that produced a result

spec:consumers.engine-provenance

The CLI names the engine that produced a result

spec:consumers.engine-provenanceUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/engine-provenance.sdp.md

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

Intent
problem
An adopter pinned to a build of the Protocol needs to name that build: the package version alone does not change between commits, so when a check changes with no Spec changed, nothing tells the engine moving from the corpus moving.
outcome
Let sdp --version name the package version and the commit the build came from, without putting either into the graph.
Behavior
rule line 22 · specs/consumers/engine-provenance.sdp.md:22
sdp --version prints one line, sdp <version> (<commit>), and exits 0. The version is the package's own version; the commit is the full hash the build was made from, or unknown when the build could not read one; a build from a checkout with uncommitted changes names the commit checked out when it ran.
rule line 23 · specs/consumers/engine-provenance.sdp.md:23
The build records the commit in a file beside the compiled CLI, and the CLI reads that file; it never runs git at run time.
rule line 24 · specs/consumers/engine-provenance.sdp.md:24
The build reads the commit from git first. When git gives no full commit, it reads the archive's substituted commit file; a full commit there names the archived revision, and an absent, unsubstituted or malformed file leaves the commit unknown.
rule line 25 · specs/consumers/engine-provenance.sdp.md:25
Neither the version nor the commit enters the graph, a projection or a generated contract, so a derived artifact stays a function of the corpus alone.

4 unkeyed rules.

Design
archiveCommit line 28 · specs/consumers/engine-provenance.sdp.md:28
.git-archive-commit contains $Format:%H$ in a checkout and is marked export-subst in .gitattributes, so git archives carry their full commit. The build reads the trimmed file only as a full Git object name, never as a command or an abbreviated hash.

no citation recorded

Verification

Verifier bindings

  • test:protocol.engine-provenance · version checks verify the engine provenance line and the build's commit record · anchored · test anchor binding present · test/cli.test.ts:2371
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.engine-provenance
The diagram as text
  • spec:consumers.engine-provenance: The CLI names the engine that produced a result · declared Spec
  • spec:consumers.command-line: Every verb answers --help, and one verb writes every projection root · declared Spec
  • impl:protocol.build-artifacts: the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · anchored code · src/cli/build-artifacts.ts:182
  • impl:protocol.engine-provenance-cli: prints sdp version and the commit parsed from the build-info file beside the compiled CLI · anchored code · src/cli/sdp.ts:102
  • test:protocol.engine-provenance: version checks verify the engine provenance line and the build's commit record · anchored test binding · binding present · test/cli.test.ts:2371
  • spec:consumers.engine-provenance refines spec:consumers.command-line · declared — the version flag is one more answer the command line gives an adopter
  • impl:protocol.build-artifacts satisfies spec:consumers.engine-provenance · anchored
  • impl:protocol.engine-provenance-cli satisfies spec:consumers.engine-provenance · anchored
  • test:protocol.engine-provenance verifies spec:consumers.engine-provenance · 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.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol
    • component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · layer application · context protocol
    • 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.import · canonical conversion with a fidelity boundary · src/import/import.ts:45 · layer application · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • 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
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.engine-provenance-cli · prints sdp version and the commit parsed from the build-info file beside the compiled CLI · src/cli/sdp.ts:102

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · 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.engine-provenance
  • E3: constrainedBy · declared
Relations of spec:consumers.engine-provenancedependsOn · declaredrefines · declaredE3dependsOn · declaredOutgoing refinesspec:consumers.command-lineEvery verb answers --help,and one verb writes everyprojection root…consumers.command-lineOutgoing dependsOnspec:consumers.adopter-on-rampAn adopter learns graphhomes, carrier grammar andshipped paths from theon-ramps…consumers.adopter-on-rampOutgoing constrainedByspec:extraction.determinismCommitted source derivesbyte-identical output…extraction.determinismSubjectspec:consumers.engine-provenanceThe CLI names the enginethat produced a result…consumers.engine-provenanceIncoming dependsOnspec:consumers.spec-studio.sharingA Studio build is stampedand shared from a statichost…consumers.spec-studio.sharing
The diagram as text
  • spec:consumers.adopter-on-ramp: An adopter learns graph homes, carrier grammar and shipped paths from the on-ramps
  • spec:consumers.command-line: Every verb answers --help, and one verb writes every projection root
  • spec:consumers.engine-provenance: The CLI names the engine that produced a result
  • spec:consumers.spec-studio.sharing: A Studio build is stamped and shared from a static host
  • spec:extraction.determinism: Committed source derives byte-identical output
  • spec:consumers.engine-provenance constrainedBy spec:extraction.determinism · declared
  • spec:consumers.engine-provenance dependsOn spec:consumers.adopter-on-ramp · declared — an adopter pinned to a build asks the CLI the adopter on-ramp points it to which build it runs
  • spec:consumers.engine-provenance refines spec:consumers.command-line · declared — the version flag is one more answer the command line gives an adopter
  • spec:consumers.spec-studio.sharing dependsOn spec:consumers.engine-provenance · 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.command-line · stated ready, floor ready
  • dependsOn · spec:consumers.adopter-on-ramp · stated ready, floor ready
  • constrainedBy · spec:extraction.determinism · stated ready, floor ready

Rested on by

Distance 1

  • 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

Distance 2

  • 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.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.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 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.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.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

    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.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.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.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.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.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.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.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.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.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.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

Relations

Relation and directionOther endClaimReasonExercised keys
constrainedBy · outgoingspec:extraction.determinism
spec:extraction.determinism · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.adopter-on-ramp
spec:consumers.adopter-on-ramp · resolves
declaredan adopter pinned to a build asks the CLI the adopter on-ramp points it to which build it runsNone
refines · outgoingspec:consumers.command-line
spec:consumers.command-line · resolves
declaredthe version flag is one more answer the command line gives an adopterNone
dependsOn · incomingspec:consumers.spec-studio.sharing
spec:consumers.spec-studio.sharing · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.build-artifacts · the build step that writes each catalog recipe to dist/recipes and records the build commit beside the CLI · src/cli/build-artifacts.ts:182 · role publisher · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.engine-provenance-cli · prints sdp version and the commit parsed from the build-info file beside the compiled CLI · src/cli/sdp.ts:102 · role projection · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.engine-provenance · version checks verify the engine provenance line and the build's commit record · anchored · test/cli.test.ts:2371 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

9. Validation re-runs while an author edits carriers

spec:consumers.validate-watch

Validation re-runs while an author edits carriers

spec:consumers.validate-watchUse Case / Behavior · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/validate-watch.sdp.md

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

Intent
problem
An author editing a Spec re-runs sdp validate by hand after every save.
outcome
Let sdp validate --watch re-run the one validation path on every carrier change and stay alive after findings, as a loop for authoring and never a second validation path.
Behavior
rule line 19 · specs/consumers/validate-watch.sdp.md:19
sdp validate --watch [root] installs its watcher first, then runs the same validate path sdp validate runs, from scratch, once at start and again after every carrier create, change, delete or rename under the root.
rule line 20 · specs/consumers/validate-watch.sdp.md:20
A carrier ends in .sdp.md, .sdp.gherkin or .sdp.ts. The watcher ignores the directories discovery skips, the configured exclusion prefixes and every non-carrier path other than the rules files and parameter files --rules names, which it watches wherever they live, as spec:validation.corpus-rules#rule.watchReruns and spec:validation.corpus-rules#rule.watchedParams state; a removed watched directory and an event with no filename each schedule a run because their affected carriers cannot be named.
rule line 21 · specs/consumers/validate-watch.sdp.md:21
Events that arrive while a run is in progress coalesce into one pending run.
rule.operatorStop line 22 · specs/consumers/validate-watch.sdp.md:22
Findings print as sdp validate prints them and the process stays alive; operator SIGINT terminates the process with exit 0 even while a rules body is active, without waiting for it. No further rules file runs or output is written after the stop.

no example exercises it

rule line 23 · specs/consumers/validate-watch.sdp.md:23
For sdp validate, --watch cannot combine with --check-clean, and it re-runs on carrier edits and on edits to the files --rules names, and never on source edits, so an author re-runs validation after editing an anchor. This rule restricts no other verb's --watch, which its own Spec states.

4 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.validate-watch · watch-loop checks verify the validate --watch authoring loop · anchored · test anchor binding present · test/cli.test.ts:1670
  • test:protocol.validate-watch-rules · process checks verify operator stop during active corpus rules · anchored · test anchor binding present · test/corpus-rules.test.ts:343
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.validate-watch
The diagram as text
  • spec:consumers.validate-watch: Validation re-runs while an author edits carriers · declared Spec
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence · declared Spec
  • impl:protocol.validate-watch: watches carrier directories and coalesces events into a pending validation rerun · anchored code · src/cli/validate-watch.ts:591
  • test:protocol.validate-watch: watch-loop checks verify the validate --watch authoring loop · anchored test binding · binding present · test/cli.test.ts:1670
  • test:protocol.validate-watch-rules: process checks verify operator stop during active corpus rules · anchored test binding · binding present · test/corpus-rules.test.ts:343
  • spec:consumers.validate-watch refines spec:consumers.authoring-on-ramp · declared
  • impl:protocol.validate-watch satisfies spec:consumers.validate-watch · anchored
  • test:protocol.validate-watch verifies spec:consumers.validate-watch · anchored
  • test:protocol.validate-watch-rules verifies spec:consumers.validate-watch · 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.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol
    • component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · layer application · context protocol
    • 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.import · canonical conversion with a fidelity boundary · src/import/import.ts:45 · layer application · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • 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
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · 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.validate-watch
Relations of spec:consumers.validate-watchdependsOn · declareddependsOn · declaredrefines · declareddependsOn · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.authoring-on-rampAuthors move one Spec fromintent to reviewed evidence…consumers.authoring-on-rampOutgoing dependsOnspec:decisions.one-validation-pathValidation follows one graph…decisions.one-validation-pathspec:extraction.excludesExtraction exclusions arestrict consumer input…extraction.excludesSubjectspec:consumers.validate-watchValidation re-runs while anauthor edits carriers…consumers.validate-watchIncoming dependsOnspec:consumers.obsidian-vault.iterationA design pass is followedand answered from the vault…consumers.obsidian-vault.iterationspec:consumers.spec-studio.publisher.watchsdp studio --watch rebuildsthe page set on eachcarrier change…consumers.spec-studio.publisher.watchspec:validation.corpus-rulesCorpus-authored rules runon the one validation path…validation.corpus-rules
The diagram as text
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence
  • spec:consumers.obsidian-vault.iteration: A design pass is followed and answered from the vault
  • spec:consumers.spec-studio.publisher.watch: sdp studio --watch rebuilds the page set on each carrier change
  • spec:consumers.validate-watch: Validation re-runs while an author edits carriers
  • spec:decisions.one-validation-path: Validation follows one graph
  • spec:extraction.excludes: Extraction exclusions are strict consumer input
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:consumers.validate-watch dependsOn spec:decisions.one-validation-path · declared
  • spec:consumers.validate-watch dependsOn spec:extraction.excludes · declared
  • spec:consumers.validate-watch refines spec:consumers.authoring-on-ramp · declared
  • spec:consumers.obsidian-vault.iteration dependsOn spec:consumers.validate-watch · declared — the vault's watch runs the same loop over carriers and anchored source files
  • spec:consumers.spec-studio.publisher.watch dependsOn spec:consumers.validate-watch · declared — the watch reruns on the carrier events validate's watch follows
  • spec:validation.corpus-rules dependsOn spec:consumers.validate-watch · declared — the watch loop reruns the named rules in each cycle
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.authoring-on-ramp · stated ready, floor ready
  • dependsOn · spec:decisions.one-validation-path · stated ready, floor ready
  • dependsOn · spec:extraction.excludes · stated ready, floor ready

Rested on by

Distance 1

  • 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.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: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 2

  • 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.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.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.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 3

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

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • 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
dependsOn · outgoingspec:decisions.one-validation-path
spec:decisions.one-validation-path · resolves
declaredNoneNone
dependsOn · outgoingspec:extraction.excludes
spec:extraction.excludes · resolves
declaredNoneNone
refines · outgoingspec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.obsidian-vault.iteration
spec:consumers.obsidian-vault.iteration · resolves
declaredthe vault's watch runs the same loop over carriers and anchored source filesNone
dependsOn · incomingspec:consumers.spec-studio.publisher.watch
spec:consumers.spec-studio.publisher.watch · resolves
declaredthe watch reruns on the carrier events validate's watch followsNone
dependsOn · incomingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredthe watch loop reruns the named rules in each cycleNone

Bindings

Implementation binding: present

  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591 · role service · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.validate-watch · watch-loop checks verify the validate --watch authoring loop · anchored · test/cli.test.ts:1670 · test anchor
  • test:protocol.validate-watch-rules · process checks verify operator stop during active corpus rules · anchored · test/corpus-rules.test.ts:343 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

10. What a Spec's design carries is derived, beside its readiness

spec:model.design-maturity

What a Spec's design carries is derived, beside its readiness

spec:model.design-maturityDomain Model · featureready floor ready

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

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

Findings: no errors, no warnings

specs/model/design-maturity.sdp.md

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

The original design's designed stage meant a Spec's key concepts were settled before code (docs/lineage/v0-design/01-core-primitives.md §1.4 and §8). The Protocol's readiness describes the maturity of intent. The graph therefore derives what design a Spec carries beside readiness, without adding a rung, floor clause or delivery fact. A new rung would change the locked readiness values, a floor clause reading Design would close that section's shape, and a design fact would mix design with realization signals.

Intent
problem
A reviewer or an implementer cannot tell from readiness alone which Specs carry a settled design and which carry only intent, and the first adopter's owner asked for Specs whose key concepts are designed as stubs before code.
outcome
Show what design a Spec carries in values the graph derives, so the backlog and a review can tell a designed Spec from one that states only its intent.
assumptions
  • The design columns tell a Spec with pinned declarations and keyed entries from one that states only its intent.

Open questions

  • non-blocking · question.designColumnsSufficiency line 20 · specs/model/design-maturity.sdp.md:20 · If the first adopter's design passes show that the design columns cannot distinguish settled design from intent alone, should this representation be revisited?Decider: ownerProvisional: derive what design a Spec carries beside readiness without a new rung, floor clause or delivery fact
Model
design columns line 25 · specs/model/design-maturity.sdp.md:25
The counts and lists the reader derives for a Spec beside its readiness under spec:consumers.pack-design; they are read on every pass and never stated.
designed stage line 26 · specs/model/design-maturity.sdp.md:26
The original design's readiness stage for a Spec whose key concepts were settled; it is not a Protocol rung.
Verification

Verifier bindings

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test anchor binding present · test/pack-design.test.ts:18
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:model.design-maturity
Requirement drawing for spec:model.design-maturitysatisfies · anchoredrefines · declaredverifies · anchoredIntended Specsspec:model.design-maturityWhat a Spec's designcarries is derived, besideits readiness…model.design-maturitydeclared SpecSatisfying or referencingunitsimpl:protocol.pack-designthe Pack design helpers andthe Pack context assemblythey serveimpl:protocol.pack-designanchored codeTest or oracle bindingstest:protocol.pack-designthe Pack context carrieseach member's design andthe Pack's boundarytest:protocol.pack-designanchored test binding ·binding presentOutside the selected setspec:model.core-modelThe Protocol modelsdelivery with oneenrichable Spec…model.core-modeldeclared Spec
The diagram as text
  • spec:model.design-maturity: What a Spec's design carries is derived, beside its readiness · declared Spec
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec · declared Spec
  • impl:protocol.pack-design: the Pack design helpers and the Pack context assembly they serve · anchored code · src/reader/reader.ts:499
  • test:protocol.pack-design: the Pack context carries each member's design and the Pack's boundary · anchored test binding · binding present · test/pack-design.test.ts:18
  • spec:model.design-maturity refines spec:model.core-model · declared
  • impl:protocol.pack-design satisfies spec:model.design-maturity · anchored
  • test:protocol.pack-design verifies spec:model.design-maturity · 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.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · layer application · context protocol

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499

    Component: component:protocol.reader · the typed graph contract and body evaluator · src/reader/reader.ts:671 · 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:model.design-maturity
Relations of spec:model.design-maturitydependsOn · declaredrefines · declaredOutgoing refinesspec:model.core-modelThe Protocol modelsdelivery with oneenrichable Spec…model.core-modelOutgoing dependsOnspec:consumers.pack-designThe Pack context carriesthe Pack's design…consumers.pack-designSubjectspec:model.design-maturityWhat a Spec's designcarries is derived, besideits readiness…model.design-maturity
The diagram as text
  • spec:consumers.pack-design: The Pack context carries the Pack's design
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec
  • spec:model.design-maturity: What a Spec's design carries is derived, beside its readiness
  • spec:model.design-maturity dependsOn spec:consumers.pack-design · declared
  • spec:model.design-maturity refines spec:model.core-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

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
refines · outgoingspec:model.core-model
spec:model.core-model · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.pack-design · the Pack design helpers and the Pack context assembly they serve · src/reader/reader.ts:499 · role reader · component component:protocol.reader · layer application · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.pack-design · the Pack context carries each member's design and the Pack's boundary · anchored · test/pack-design.test.ts:18 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

11. Components are designed ahead of their code

spec:model.planned-architecture

Components are designed ahead of their code

spec:model.planned-architectureDomain Model · featureready floor ready

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

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

Findings: no errors, no warnings

specs/model/planned-architecture.sdp.md

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

The original design declared a component before its code, as a Component node with a layer, a bounded context and a capability, kept in an architecture folder and reconciled with its code anchors and the Specs (docs/lineage/v0-design/03-graph-metamodel.md §2.5; 04-authoring-surfaces.md §7). Its runtime chapter separated what a unit requires from the provider that supplies it, the provider a composition root selects and the one a test puts in its place, and gave one mechanism the ownership of runtime composition (05-runtime-anchors.md §1, §3.3, §7).

The Protocol records the architecture the code realizes. A component: anchor states its layer and context, and anchored memberOf and uses edges join the code units. Under the architectural annotation decision, a component no code realizes is a Spec, and the graph holds no node for it until an anchor exists. The first adopter states its component list and its context rule in prose (libar-platform/design/PLAN.md §2.1) and checks context isolation over anchored uses in its own script (libar-platform/design/tools/check.py). The owner ruled that the architectural annotation decision stands: a component designed before its code is a component design Spec, and the component: anchor that later realizes it satisfies that Spec, which is the join a comparison reads.

Choosing a provider stays prose. The original's distinctions between the interface a unit requires, the providers that supply it, the one a composition root selects and the one a test substitutes help a reader, and none of them needs graph structure beyond uses to be compared. Keeping one composition mechanism per application is a corpus's own architecture rule when the corpus wants it, stated in a constraint Spec and checked by its own corpus rule. A component design names its component with the keys a component anchor uses, so the comparison reads the same words on both sides, and a key the design leaves out is not compared, so a design states only what it has decided; a design that has decided its component uses nothing says none, which a left-out key cannot say.

Intent
problem
A design ahead of its code cannot state the components it adds, their layer and context and what they use, in a form the graph compares with the components the code later anchors.
outcome
Let a design name the components it will add, with their layer, context and uses, and compare that design with the anchored components once code exists.
risks
  • A planned component kept apart from its realization is a second place for the component to drift, which is why the architectural annotation decision refused a separate architecture file and why the design lives in a Spec the realizing anchor satisfies.
Behavior

0 unkeyed rules.

Verifying examples

spec:model.planned-architecture.differing-layer-and-uses · spec:model.planned-architecture.differing-layer-and-uses · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "satisfies the design"}
Given that anchor states the layer {realizedLayer: "application"} and its member uses {realizedUses: "component:probe.audit"}
When the realization comparison runs
Then the comparison lists {unrealized: 0} unrealized designs, {matching: 0} matching designs and {differing: 2} differing rows
Then the differing fields are {fields: "layer, uses"}

spec:model.planned-architecture.differing-layer-and-uses

spec:model.planned-architecture.matching-design · spec:model.planned-architecture.matching-design · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "satisfies the design"}
Given that anchor states the layer {realizedLayer: "domain"} and its member uses {realizedUses: "component:probe.kernel"}
When the realization comparison runs
Then the comparison lists {unrealized: 0} unrealized designs, {matching: 1} matching designs and {differing: 0} differing rows
Then the differing fields are {fields: ""}

spec:model.planned-architecture.matching-design

spec:model.planned-architecture.unrealized-design · spec:model.planned-architecture.unrealized-design · ready floor ready

Executable Spec

Given a component design for {componentId: "component:probe.history"} that plans the layer {plannedLayer: "domain"} and uses {plannedUses: "component:probe.kernel"}
Given the component anchor for that design {anchor: "is absent"}
Given that anchor states the layer {realizedLayer: "absent"} and its member uses {realizedUses: ""}
When the realization comparison runs
Then the comparison lists {unrealized: 1} unrealized designs, {matching: 0} matching designs and {differing: 0} differing rows
Then the differing fields are {fields: ""}

spec:model.planned-architecture.unrealized-design

Example space

Given a component design for {componentId:string} that plans the layer {plannedLayer:"domain"|"application"} and uses {plannedUses:string}
Given the component anchor for that design {anchor:"is absent"|"satisfies the design"}
Given that anchor states the layer {realizedLayer:"domain"|"application"|"absent"} and its member uses {realizedUses:string}
When the realization comparison runs
Then the comparison lists {unrealized:number} unrealized designs, {matching:number} matching designs and {differing:number} differing rows
Then the differing fields are {fields:string}
Model
component design line 29 · specs/model/planned-architecture.sdp.md:29
A Spec that states a component the code does not yet realize and what it is for. Its Design entries are keyed as the anchor's attributes are named: id for the planned component: anchor's own id, layer, context, uses for the components it will use, and optionally role. The keys are a convention recipes read; the Protocol closes no Design shape, and the Spec confers nothing and mints no code unit.
planned component line 30 · specs/model/planned-architecture.sdp.md:30
The component a component design names. It stays intent until a component: anchor realizes it, and that anchor satisfies the component design; the graph holds no component node before the anchor exists.
realization comparison line 31 · specs/model/planned-architecture.sdp.md:31
Recipe 43, planned against realized components, which reads each component design beside the component: anchor that satisfies it, resolving members through memberOf as recipe 32 does, and lists a design no anchor satisfies yet, a layer, context or role that differs, and a uses named on one side only. It reports and refuses nothing.
provider line 32 · specs/model/planned-architecture.sdp.md:32
A code unit that supplies an interface another unit requires; a composition selects one provider for each requirement, and a test may select another. A component design names its providers and that selection in prose, and none of them earns graph structure beyond uses.
Design
componentDesign line 35 · specs/model/planned-architecture.sdp.md:35
a Spec is a component design when its Design id value, bare or in the code span that opens it, is a component: id; the curation report and the realization comparison select designs this way, and no validator reads the convention.
designKeys line 36 · specs/model/planned-architecture.sdp.md:36
the comparison reads five Design keys, id, layer, context, role and uses, and no other; layer takes one of the five layers, context and role one token on the role grammar, and uses either none for the empty list or component: ids separated by commas, each trimmed, read as the set of distinct ids; each value is read bare when it is the whole value, or from the code span that opens it, with prose after the span free to say why.
comparisonRecipe line 37 · specs/model/planned-architecture.sdp.md:37
recipe 43, planned against realized components, takes no parameter, so any parameter name returns { unknownParams, accepts: [] } alone, as every catalog recipe answers a name it does not take; otherwise it returns { totals, unrealized, differing, unreadable }, where totals is { designs, realized, matching, unrealized, differing, unreadable }, matching counts the realized designs with neither a differing row nor an unreadable row, and differing counts rows.
realizedWhen line 38 · specs/model/planned-architecture.sdp.md:38
a design is realized when its component: CodeNode is anchored and has an anchored satisfies edge to the design, as the curation report reads it; a design whose component exists without that edge stays unrealized, with anchorExists: true.
comparedFields line 39 · specs/model/planned-architecture.sdp.md:39
for a realized design, each of layer, context, role and uses the design states is compared with the anchored component, and a key the design leaves out is not compared; the realized uses are the components other than its own that an anchored uses edge from the component or one of its members reaches, each end resolved to its component as recipe 32 resolves it.
comparisonRows line 40 · specs/model/planned-architecture.sdp.md:40
unrealized rows are { spec, componentId, anchorExists, layer, context, role, uses } with the planned values, null when unstated, and uses an empty list when the design states none; differing rows are { spec, componentId, field, planned, realized }, one for each differing field, where layer, context and role carry the two values or null and uses carries the two sorted lists of components named on that side only; unreadable rows are { spec, key, value } for a value outside its key's form, and that key is not compared; rows sort by spec, then by field or key.

no citation recorded

Verification

Verifier bindings

  • spec:model.planned-architecture.differing-layer-and-uses · A realized component that differs from its design gives one row per field · declared · example enabled · specs/model/planned-architecture.differing-layer-and-uses.sdp.md
  • spec:model.planned-architecture.matching-design · A realized component that matches its design gives no row · declared · example enabled · specs/model/planned-architecture.matching-design.sdp.md
  • spec:model.planned-architecture.unrealized-design · A component design no anchor satisfies is listed as unrealized · declared · example enabled · specs/model/planned-architecture.unrealized-design.sdp.md

Example space

  • componentId · string · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • plannedLayer · "domain" | "application" · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • plannedUses · string · declared by a component design for {componentId} that plans the layer {plannedLayer} and uses {plannedUses}
  • anchor · "is absent" | "satisfies the design" · declared by the component anchor for that design {anchor}
  • realizedLayer · "domain" | "application" | "absent" · declared by that anchor states the layer {realizedLayer} and its member uses {realizedUses}
  • realizedUses · string · declared by that anchor states the layer {realizedLayer} and its member uses {realizedUses}

Bound points

ExamplecomponentIdplannedLayerplannedUsesanchorrealizedLayerrealizedUses
spec:model.planned-architecture.differing-layer-and-uses"component:probe.history""domain""component:probe.kernel""satisfies the design""application""component:probe.audit"
spec:model.planned-architecture.matching-design"component:probe.history""domain""component:probe.kernel""satisfies the design""domain""component:probe.kernel"
spec:model.planned-architecture.unrealized-design"component:probe.history""domain""component:probe.kernel""is absent""absent"""

Oracle binding: none

Coverage

componentId: "component:probe.history" · spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design · not enumerable

plannedLayer
Declared valueExamples
"domain"spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design
"application"no example

plannedUses: "component:probe.kernel" · spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design, spec:model.planned-architecture.unrealized-design · not enumerable

anchor
Declared valueExamples
"is absent"spec:model.planned-architecture.unrealized-design
"satisfies the design"spec:model.planned-architecture.differing-layer-and-uses, spec:model.planned-architecture.matching-design
realizedLayer
Declared valueExamples
"domain"spec:model.planned-architecture.matching-design
"application"spec:model.planned-architecture.differing-layer-and-uses
"absent"spec:model.planned-architecture.unrealized-design

realizedUses: "component:probe.audit" · spec:model.planned-architecture.differing-layer-and-uses; "component:probe.kernel" · spec:model.planned-architecture.matching-design; "" · spec:model.planned-architecture.unrealized-design · not enumerable

Unbound

  • componentId: None
  • plannedLayer: None
  • plannedUses: None
  • anchor: None
  • realizedLayer: None
  • realizedUses: None
Design view

Requirement drawing

Requirement drawing for spec:model.planned-architecture
Requirement drawing for spec:model.planned-architecturereferences · anchoredsatisfies · anchoredrefines · declaredrefines, verifies · declaredrefines, verifies · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:model.planned-architectureComponents are designedahead of their code…model.planned-architecturedeclared SpecDeclared verifying examplesspec:model.planned-architecture.differing-layer-and-usesA realized component thatdiffers from its designgives one row per field…model.planned-architecture.differing-layer-and-usesdeclared Specspec:model.planned-architecture.matching-designA realized component thatmatches its design gives norow…model.planned-architecture.matching-designdeclared Specspec:model.planned-architecture.unrealized-designA component design noanchor satisfies is listedas unrealized…model.planned-architecture.unrealized-designdeclared SpecSatisfying or referencingunitsimpl:protocol.curation-recipeasserts the curation reportover external inferredimports…protocol.curation-recipeanchored codeimpl:protocol.planned-components-recipeasserts realization of theshipped planned againstrealized components recipe…protocol.planned-components-recipeanchored codeTest or oracle bindingstest:protocol.model.planned-architecture.differing-layer-and-usestest:protocol.model.planned-architecture.differing-layer-and-uses…protocol.model.planned-architecture.differing-layer-and-usesanchored test binding ·binding presenttest:protocol.model.planned-architecture.matching-designtest:protocol.model.planned-architecture.matching-design…protocol.model.planned-architecture.matching-designanchored test binding ·binding presenttest:protocol.model.planned-architecture.unrealized-designtest:protocol.model.planned-architecture.unrealized-design…protocol.model.planned-architecture.unrealized-designanchored test binding ·binding presentOutside the selected setspec:model.core-modelThe Protocol modelsdelivery with oneenrichable Spec…model.core-modeldeclared Spec
The diagram as text
  • spec:model.planned-architecture: Components are designed ahead of their code · declared Spec
  • spec:model.planned-architecture.differing-layer-and-uses: A realized component that differs from its design gives one row per field · declared Spec
  • spec:model.planned-architecture.matching-design: A realized component that matches its design gives no row · declared Spec
  • spec:model.planned-architecture.unrealized-design: A component design no anchor satisfies is listed as unrealized · declared Spec
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec · declared Spec
  • impl:protocol.curation-recipe: asserts the curation report over external inferred imports · anchored code · test/curation-recipes.test.ts:32
  • impl:protocol.planned-components-recipe: asserts realization of the shipped planned against realized components recipe · anchored code · test/architecture-recipes.test.ts:16
  • test:protocol.model.planned-architecture.differing-layer-and-uses: test:protocol.model.planned-architecture.differing-layer-and-uses · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:367
  • test:protocol.model.planned-architecture.matching-design: test:protocol.model.planned-architecture.matching-design · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:374
  • test:protocol.model.planned-architecture.unrealized-design: test:protocol.model.planned-architecture.unrealized-design · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:381
  • spec:model.planned-architecture refines spec:model.core-model · declared — planned components enrich Specs before code binds them
  • spec:model.planned-architecture.differing-layer-and-uses refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design verifies spec:model.planned-architecture · declared
  • impl:protocol.curation-recipe references spec:model.planned-architecture · anchored
  • impl:protocol.planned-components-recipe satisfies spec:model.planned-architecture · anchored
  • test:protocol.model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture.differing-layer-and-uses · anchored
  • test:protocol.model.planned-architecture.matching-design verifies spec:model.planned-architecture.matching-design · anchored
  • test:protocol.model.planned-architecture.unrealized-design verifies spec:model.planned-architecture.unrealized-design · 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

  • 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.planned-components-recipe · asserts realization of the shipped planned against realized components recipe · test/architecture-recipes.test.ts:16

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:model.planned-architecture
  • E6: verifies · declared (3 unit edges)
Relations of spec:model.planned-architecturedecidedBy · declareddependsOn · declaredrefines · declareddependsOn · declaredrefines · declaredE6Outgoing refinesspec:model.core-modelThe Protocol modelsdelivery with oneenrichable Spec…model.core-modelOutgoing dependsOnspec:model.anchorsSource anchors bind codewithout carrying intent…model.anchorsOutgoing decidedByspec:decisions.architectural-annotationArchitectural significanceis annotated where it isrealized…decisions.architectural-annotationSubjectspec:model.planned-architectureComponents are designedahead of their code…model.planned-architectureIncoming refinesspec:model.planned-architecture.fold.Incoming.refines3 Incoming refines, folded…model.planned-architecture.fold.Incoming.refinesIncoming dependsOnspec:model.planned-architecture.fold.Incoming.dependsOn5 Incoming dependsOn, folded…model.planned-architecture.fold.Incoming.dependsOn
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.impact-graph.curation-assist: File-level imports show where curation is missing
  • 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.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:model.core-model: The Protocol models delivery with one enrichable Spec
  • spec:model.planned-architecture: Components are designed ahead of their code
  • spec:model.planned-architecture.differing-layer-and-uses: A realized component that differs from its design gives one row per field
  • spec:model.planned-architecture.matching-design: A realized component that matches its design gives no row
  • spec:model.planned-architecture.unrealized-design: A component design no anchor satisfies is listed as unrealized
  • spec:model.planned-architecture decidedBy spec:decisions.architectural-annotation · declared
  • spec:model.planned-architecture dependsOn spec:model.anchors · declared — a planned component is realized by a component anchor that satisfies its design
  • spec:model.planned-architecture refines spec:model.core-model · declared — planned components enrich Specs before code binds them
  • spec:consumers.design-slice dependsOn spec:model.planned-architecture · declared — planned components and differing designs come from the realization comparison
  • spec:consumers.impact-graph.curation-assist dependsOn spec:model.planned-architecture · declared — the report uses the component-design convention to identify unrealized planned components
  • spec:consumers.spec-studio.diagram-kinds.scoped-architecture dependsOn spec:model.planned-architecture · declared
  • spec:consumers.spec-studio.lenses.architecture dependsOn spec:model.planned-architecture · declared — planned components come from the component designs recipe 43 reads
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:model.planned-architecture · declared — component designs are selected by the convention that Spec states
  • spec:model.planned-architecture.differing-layer-and-uses refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design refines spec:model.planned-architecture · declared
  • spec:model.planned-architecture.differing-layer-and-uses verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.matching-design verifies spec:model.planned-architecture · declared
  • spec:model.planned-architecture.unrealized-design verifies spec:model.planned-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:model.core-model · stated ready, floor ready
  • dependsOn · spec:model.anchors · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

Distance 1

  • 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.impact-graph.curation-assist

    Implementing units

    • impl:protocol.build-imports · src/cli/build-command.ts:243
    • impl:protocol.curation-recipe · test/curation-recipes.test.ts:32
    • impl:protocol.typescript-imports · src/adapters/typescript-imports.ts:7

    Referencing units

    None.

    Enabled verifiers: test:protocol.curation-imports, test:protocol.curation-recipe

    Packs: pack:design-iteration-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.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.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:model.planned-architecture.differing-layer-and-uses

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.model.planned-architecture.differing-layer-and-uses

    Packs: pack:corpus-checks-v1, pack:self-hosting-v1

  • spec:model.planned-architecture.matching-design

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.model.planned-architecture.matching-design

    Packs: pack:corpus-checks-v1, pack:self-hosting-v1

  • spec:model.planned-architecture.unrealized-design

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.model.planned-architecture.unrealized-design

    Packs: pack:corpus-checks-v1, pack:self-hosting-v1

Distance 2

  • 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.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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declaredNoneNone
dependsOn · outgoingspec:model.anchors
spec:model.anchors · resolves
declareda planned component is realized by a component anchor that satisfies its designNone
refines · outgoingspec:model.core-model
spec:model.core-model · resolves
declaredplanned components enrich Specs before code binds themNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declaredplanned components and differing designs come from the realization comparisonNone
dependsOn · incomingspec:consumers.impact-graph.curation-assist
spec:consumers.impact-graph.curation-assist · resolves
declaredthe report uses the component-design convention to identify unrealized planned componentsNone
dependsOn · incomingspec:consumers.spec-studio.diagram-kinds.scoped-architecture
spec:consumers.spec-studio.diagram-kinds.scoped-architecture · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture · resolves
declaredplanned components come from the component designs recipe 43 readsNone
dependsOn · incomingspec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredcomponent designs are selected by the convention that Spec statesNone
refines · incomingspec:model.planned-architecture.differing-layer-and-uses
spec:model.planned-architecture.differing-layer-and-uses · resolves
declaredNoneNone
refines · incomingspec:model.planned-architecture.matching-design
spec:model.planned-architecture.matching-design · resolves
declaredNoneNone
refines · incomingspec:model.planned-architecture.unrealized-design
spec:model.planned-architecture.unrealized-design · resolves
declaredNoneNone
verifies · incomingspec:model.planned-architecture.differing-layer-and-uses
spec:model.planned-architecture.differing-layer-and-uses · resolves
declaredNoneNone
verifies · incomingspec:model.planned-architecture.matching-design
spec:model.planned-architecture.matching-design · resolves
declaredNoneNone
verifies · incomingspec:model.planned-architecture.unrealized-design
spec:model.planned-architecture.unrealized-design · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.planned-components-recipe · asserts realization of the shipped planned against realized components recipe · test/architecture-recipes.test.ts:16

Design reference: present

  • impl:protocol.curation-recipe · asserts the curation report over external inferred imports · test/curation-recipes.test.ts:32

Verifier binding: present

  • spec:model.planned-architecture.differing-layer-and-uses · A realized component that differs from its design gives one row per field · declared · specs/model/planned-architecture.differing-layer-and-uses.sdp.md · example enabled
  • spec:model.planned-architecture.matching-design · A realized component that matches its design gives no row · declared · specs/model/planned-architecture.matching-design.sdp.md · example enabled
  • spec:model.planned-architecture.unrealized-design · A component design no anchor satisfies is listed as unrealized · declared · specs/model/planned-architecture.unrealized-design.sdp.md · example enabled

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

12. An open question may name who decides it, its links, a provisional reading and a re-entry trigger

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.open-question-fieldsBusiness Rule · storyready floor ready

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

Design: 7 design entries · 1 pinned declaration · 2 decisions

Findings: no errors, no warnings

specs/model/open-question-fields.sdp.md

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

The original design gave an open question an owner and a list of links to decision records, discussions and tickets, beside its text and its blocking flag (docs/lineage/v0-design/01-core-primitives.md §2.1). A question key gives a question an address and nothing more, so the first adopter keeps the rest beside the graph. Its decision register (libar-platform/design/decisions/register.json, described in design/advisors/register.md) records for each open decision its sources, who decides it as a class (tactical, delegated or owner) and an advisor lens, the provisional reading the design proceeds on, and a lean. It also records a status, the work unit it blocks, dates and who checked the lean. This Spec captures the part that states something about the question and leaves the work record outside.

A TypeScript open-question list that cannot be read statically drops whole, blocking questions included. A failure under one of the four fields is an error, because the fields arrived with no carrier relying on a lossy reading; a failure in a question's text, its blocking flag or the list itself keeps the warning every other non-static TypeScript section property gives.

Intent
problem
A question's text and blocking flag do not say who settles it, what it rests on, or what the design assumes until it is settled, so an adopter keeps a register beside the graph that repeats each question.
outcome
Let an open question carry who decides it, the sources it rests on, the reading the design proceeds on and, on a deferral, what brings it back, without a status.
risks
  • A field for who decides invites fields for when and for what state the question is in, which would rebuild a workflow tracker inside the Spec.
Rule

The world writes one TypeScript carrier for a story-altitude rule Spec stating idea, with a title, an Intent outcome, one rule and an open-question list holding one blocking question. Every value is static apart from the construct the point names: a question text or blocking flag written as a function call, or a spread of another list beside the question.

rule line 29 · specs/model/open-question-fields.sdp.md:29
An open question may carry four optional fields beside its text, flag and key, namely who decides it, the links it rests on, its provisional reading and its re-entry trigger; a question without them stays lawful.
rule line 30 · specs/model/open-question-fields.sdp.md:30
Who decides a question names the person, role or body whose ruling settles it. It authorizes nothing, gates no edit, and no validator compares it with the author of a change.
rule line 31 · specs/model/open-question-fields.sdp.md:31
Who decides a question is one lowercase kebab token the corpus owns, on the grammar a role uses, such as owner or delegated. The graph holds no person or role to point at, so the value references nothing, and the Protocol ships no list of values.
rule line 32 · specs/model/open-question-fields.sdp.md:32
In the Markdown carrier the four fields ride labelled sub-items indented under the question's own line, decider:, links:, provisional: and trigger:, each at most once and each one line, so the question line stays as authored. They are the only indented field lines the body grammar admits, and the TypeScript carrier carries the same four fields on the question object.
rule.fieldFailureError line 33 · specs/model/open-question-fields.sdp.md:33
In the TypeScript carrier, a value under any of the four fields that cannot be read statically is an extraction error at that field, and the Spec's whole open-question list drops with it.

no example exercises it

rule.droppedListWarning line 34 · specs/model/open-question-fields.sdp.md:34
In the TypeScript carrier, a question text or blocking flag that cannot be read statically, or a spread in the list, drops the Spec's whole open-question list, blocking questions included, with the lossy warning extract/non-static-section; only a failure under the four fields is an error.

spec:model.open-question-fields.dropped-list-warns · enabled

rule line 35 · specs/model/open-question-fields.sdp.md:35
A link is a Spec id or an entry address the question rests on, and nothing else. Each is checked as a mention is: a missing target or entry is an error, and a target with no declared relation either way raises the conformance/prose-mentions warning for that pair. A link mints no relation, and a document outside the graph is named in the question's text as prose, because the graph holds no identity for it to resolve.
rule line 36 · specs/model/open-question-fields.sdp.md:36
The provisional reading is one line stating what the design assumes while the question is open. It is intent, never a ruling.
rule line 37 · specs/model/open-question-fields.sdp.md:37
A question carries at most one provisional line. A worked proposal for settling it is a decision Spec whose Decision section holds its decision, context, rationales, alternatives and consequences, stated at the rung its record earns. Each shaped Spec names it through decidedBy, so a decision below defined holds that Spec below ready under the typed-dependency floor.
rule line 38 · specs/model/open-question-fields.sdp.md:38
A re-entry trigger is one line naming what brings a deferred Spec back, such as a named reader the shipped views do not serve. It sits on the blocking question that holds the deferral, and the open-question register reports questions that carry one apart from design holds, so no reader tells the two apart by their wording.
rule line 39 · specs/model/open-question-fields.sdp.md:39
An open question carries no status, date, blocked work unit or record of who checked it. A settled question leaves the Spec, a ruling that passes the ADR three-part test lands as a decision Spec the shaped Specs name through decidedBy, and the rest of the history stays in git and in the adopter's own records.
rule line 40 · specs/model/open-question-fields.sdp.md:40
Whether a question holds the readiness floor stays its [blocking] flag alone; none of the four fields moves a floor.

10 unkeyed rules.

Verifying examples

spec:model.open-question-fields.dropped-list-warns · spec:model.open-question-fields.dropped-list-warns · ready floor ready

Executable Spec

Given a TypeScript Spec carrier whose blocking open question meets {construct: "a non-static question text"}
When the extractor reifies the carrier
Then the extractor reports {findingId: "extract/non-static-section"} at severity {severity: "warning"}
Then the Spec stays in the graph with {questionCount: 0} open questions

spec:model.open-question-fields.dropped-list-warns

Example space

Given a TypeScript Spec carrier whose blocking open question meets {construct:"a non-static question text"|"a non-static blocking flag"|"a spread in the list"}
When the extractor reifies the carrier
Then the extractor reports {findingId:string} at severity {severity:"warning"|"error"}
Then the Spec stays in the graph with {questionCount:number} open questions
Design
subItemLine line 54 · specs/model/open-question-fields.sdp.md:54
a field is one line of exactly two spaces, - , a label from decider, links, provisional and trigger, a colon, a space and the value, directly under its question's line or a sibling field; any other indented line stays refused, as is a field under an entry that is not an open question.
questionObject line 55 · specs/model/open-question-fields.sdp.md:55
the open question object carries optional decider, links as a list of strings in authored order, provisional and trigger fields, each absent when the author wrote none; the TypeScript carrier writes the same fields.
linksValue line 56 · specs/model/open-question-fields.sdp.md:56
links: takes a comma-separated list, as an anchor comment's target tags do, non-empty and with no repeat.

no citation recorded

fieldFindings line 57 · specs/model/open-question-fields.sdp.md:57
an unknown or repeated label, an empty value, a decider off the token grammar, and a trigger on a non-blocking question are conformance errors at the field's line.
fieldLocations line 58 · specs/model/open-question-fields.sdp.md:58
each carrier that records entry lines records a row per field present, question[<i>].decider, question[<i>].links, question[<i>].provisional or question[<i>].trigger; a link finding reads the links row, and a line the carrier did not record stays absent.
linkResolution line 59 · specs/model/open-question-fields.sdp.md:59
each link is checked as a mention is, at the field's line, by the same validator and with the same two findings.
registerColumns line 60 · specs/model/open-question-fields.sdp.md:60
the open-question register (recipe 20) reports the four fields on each row, marks a question carrying a trigger as a deferral, and counts deferrals and holds apart.
Verification

Verifier bindings

  • spec:model.open-question-fields.dropped-list-warns · A TypeScript question list that cannot be read drops whole with a warning · declared · example enabled · specs/model/open-question-fields.dropped-list-warns.sdp.md
  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test anchor binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test anchor binding present · test/recipes.test.ts:6587

Example space

  • construct · "a non-static question text" | "a non-static blocking flag" | "a spread in the list" · declared by a TypeScript Spec carrier whose blocking open question meets {construct}

Bound points

Exampleconstruct
spec:model.open-question-fields.dropped-list-warns"a non-static question text"

Oracle binding: present · oracle:protocol.open-question-fields · test/self-hosting-carrier.test.ts:342

Coverage

construct
Declared valueExamples
"a non-static question text"spec:model.open-question-fields.dropped-list-warns
"a non-static blocking flag"no example
"a spread in the list"no example

Unbound

  • construct: None
Design view

Requirement drawing

Requirement drawing for spec:model.open-question-fields
Requirement drawing for spec:model.open-question-fieldsverifies · anchoredverifies · anchoredsatisfies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines, verifies · declaredIntended Specsspec:model.open-question-fieldsAn open question may namewho decides it, its links,a provisional reading and are-entry trigger…model.open-question-fieldsdeclared SpecDeclared verifying examplesspec:model.open-question-fields.dropped-list-warnsA TypeScript question listthat cannot be read dropswhole with a warning…model.open-question-fields.dropped-list-warnsdeclared SpecSatisfying or referencingunitsimpl:protocol.authoring-grammar-recipesasserts the authoringgrammar's realization indocs/agent-surface/recipes.md…protocol.authoring-grammar-recipesanchored codeimpl:protocol.authoring-normalizationnormalizes rule markers andquestion fields aftercarrier reification…protocol.authoring-normalizationanchored codeTest or oracle bindings3 test bindings · anchored, folded3 test bindings · anchoredoracle:protocol.open-question-fieldsoracle:protocol.open-question-fields…protocol.open-question-fieldsanchored oracle bindingOutside the selected setspec:model.open-question-keysAn open question may carrya key that addresses it…model.open-question-keysdeclared Spec
The diagram as text
  • spec:model.open-question-fields: An open question may name who decides it, its links, a provisional reading and a re-entry trigger · declared Spec
  • spec:model.open-question-fields.dropped-list-warns: A TypeScript question list that cannot be read drops whole with a warning · declared Spec
  • spec:model.open-question-keys: An open question may carry a key that addresses it · declared Spec
  • impl:protocol.authoring-grammar-recipes: asserts the authoring grammar's realization in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization: normalizes rule markers and question fields after carrier reification · anchored code · src/extract/authoring-normalization.ts:8
  • oracle:protocol.open-question-fields: oracle:protocol.open-question-fields · anchored oracle binding · test/self-hosting-carrier.test.ts:342
  • test:protocol.authoring-grammar: checks rule keys, question fields and relation reasons across the carriers · anchored test binding · binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes: executes the shipped question, mention, entry, address and rule coverage recipes · anchored test binding · binding present · test/recipes.test.ts:6587
  • test:protocol.open-question-fields.dropped-list-warns: test:protocol.open-question-fields.dropped-list-warns · anchored test binding · binding present · test/self-hosting-carrier.test.ts:367
  • spec:model.open-question-fields refines spec:model.open-question-keys · declared
  • spec:model.open-question-fields.dropped-list-warns refines spec:model.open-question-fields · declared
  • spec:model.open-question-fields.dropped-list-warns verifies spec:model.open-question-fields · declared
  • impl:protocol.authoring-grammar-recipes satisfies spec:model.open-question-fields · anchored
  • impl:protocol.authoring-normalization satisfies spec:model.open-question-fields · anchored
  • oracle:protocol.open-question-fields models spec:model.open-question-fields · anchored
  • test:protocol.authoring-grammar verifies spec:model.open-question-fields · anchored
  • test:protocol.authoring-grammar-recipes verifies spec:model.open-question-fields · anchored
  • test:protocol.open-question-fields.dropped-list-warns verifies spec:model.open-question-fields.dropped-list-warns · 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

  • spec:decisions.adopt-the-nouns

    The Protocol adopts established delivery nouns and rejects process state-machine and lifecycle gating.

  • spec:decisions.planning-truths-placement

    Each planning-truth type lives in its ruled home. Work-item dependency truth rides dependsOn edges, with independence as absence of the edge and scheduling phrases never authored. Decision gates live on decision-kind Specs, linked by decidedBy. Do-not-reopen rows split by what they carry: a tradeoff refusal becomes a decision-kind Spec, which a later decision that supersedes it replaces whole and a later decision that refines it narrows for one case, either under the ADR three-part test; a row that restates a behavior guarantee already homed on a carrying Spec stays on that Spec and changes by ordinary Spec revision; a hold stays a blocking open question on its own Spec and is never minted as a decision. A lawful non-decision stays in the plan record as evidence. A deferral carries its re-entry trigger in the trigger field of its own blocking open question, and declares dependsOn separately when a true precondition exists. Exclusive ownership is one Spec identity per deliverable with consumers depending on it. Selection-pressure heuristics are advisory only, carried as behavior rules on the graph-first planning Spec or in recipes. Session law splits separately, across behavior rules on the graph-first planning Spec, the delivery-session on-ramp's handoff rule, and the plan file. The briefs index shape is retired as a carrier of law.

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597

    Uses

    None.

  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8

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

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:model.open-question-fields
Relations of spec:model.open-question-fieldsdecidedBy · declareddecidedBy · declareddependsOn · declaredrefines · declaredrefines · declaredverifies · declareddependsOn · declaredOutgoing refinesspec:model.open-question-keysAn open question may carrya key that addresses it…model.open-question-keysOutgoing dependsOnspec:extraction.entry-locationsThe graph records whereeach addressable entry iswritten…extraction.entry-locationsOutgoing decidedByspec:decisions.adopt-the-nounsDelivery nouns remainfamiliar without workflowgates…decisions.adopt-the-nounsspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…decisions.planning-truths-placementSubjectspec:model.open-question-fieldsAn open question may namewho decides it, its links,a provisional reading and are-entry trigger…model.open-question-fieldsIncoming refinesspec:model.open-question-fields.dropped-list-warnsA TypeScript question listthat cannot be read dropswhole with a warning…model.open-question-fields.dropped-list-warnsIncoming dependsOnspec:model.open-question-fields.fold.Incoming.dependsOn15 Incoming dependsOn,folded…model.open-question-fields.fold.Incoming.dependsOn
The diagram as text
  • spec:carrier.markdown-body-grammar: The Markdown body accepts one closed form per section
  • spec:carrier.prose-ownership-rule: Every prose value has one typed owner
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence
  • 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.graph-first-planning: The next body of work is planned from the graph, not from a prose index
  • 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.roadmap: A roadmap orders the next bodies of work, and the graph says what each still needs
  • 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:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:decisions.adopt-the-nouns: Delivery nouns remain familiar without workflow gates
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • 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.open-question-fields.dropped-list-warns: A TypeScript question list that cannot be read drops whole with a warning
  • spec:model.open-question-keys: An open question may carry a key that addresses it
  • spec:validation.prose-mentions: Every Spec id written in prose resolves
  • spec:model.open-question-fields decidedBy spec:decisions.adopt-the-nouns · declared — question fields describe the question without adding workflow state or gates
  • spec:model.open-question-fields decidedBy spec:decisions.planning-truths-placement · declared — a deferral's re-entry trigger rides its own blocking question, the home that decision rules
  • spec:model.open-question-fields dependsOn spec:extraction.entry-locations · declared — adds rows to the location table
  • spec:model.open-question-fields refines spec:model.open-question-keys · declared
  • spec:carrier.markdown-body-grammar dependsOn spec:model.open-question-fields · declared
  • spec:carrier.prose-ownership-rule dependsOn spec:model.open-question-fields · declared
  • spec:consumers.agent-surface.register-recipes dependsOn spec:model.open-question-fields · declared — the open-question register lists each question's fields
  • spec:consumers.authoring-on-ramp dependsOn spec:model.open-question-fields · declared
  • spec:consumers.design-slice dependsOn spec:model.open-question-fields · declared — each question in scope carries its fields
  • spec:consumers.graph-first-planning dependsOn spec:model.open-question-fields · declared — the placement rule uses the question's explicit re-entry trigger field
  • spec:consumers.pack-design dependsOn spec:model.open-question-fields · declared — each listed open question carries its fields
  • spec:consumers.readiness-planner dependsOn spec:model.open-question-fields · declared — the owner's questions are selected by their decider field
  • spec:consumers.roadmap dependsOn spec:model.open-question-fields · declared — the questions waiting on a person are selected by their decider field
  • spec:consumers.spec-studio.pack-page dependsOn spec:model.open-question-fields · declared
  • spec:consumers.spec-studio.slice-page dependsOn spec:model.open-question-fields · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.open-question-fields · declared
  • spec:consumers.spec-studio.spec-page.core dependsOn spec:model.open-question-fields · declared
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:model.open-question-fields · declared — question keys and fields are counted where open questions are
  • spec:validation.prose-mentions dependsOn spec:model.open-question-fields · declared — the links field it checks whole is defined by the open-question field grammar
  • spec:model.open-question-fields.dropped-list-warns refines spec:model.open-question-fields · declared
  • spec:model.open-question-fields.dropped-list-warns verifies spec:model.open-question-fields · 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:model.open-question-keys · stated ready, floor ready
  • dependsOn · spec:extraction.entry-locations · stated ready, floor ready
  • decidedBy · spec:decisions.adopt-the-nouns · stated ready, floor ready
  • decidedBy · spec:decisions.planning-truths-placement · stated ready, floor ready

Rested on by

Distance 1

  • spec:carrier.markdown-body-grammar

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120
    • impl:protocol.markdown-content · src/extract/markdown-body-content.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-body-grammar.continuation-line-refused, spec:carrier.markdown-body-grammar.foreign-fence-refused, spec:carrier.markdown-body-grammar.h3-refused, spec:carrier.markdown-body-grammar.integer-term-refused, spec:carrier.markdown-body-grammar.keyed-bullet-refused, spec:carrier.markdown-body-grammar.ordered-list-refused, spec:carrier.markdown-body-grammar.plain-bullet-refused, spec:carrier.markdown-body-grammar.raw-html-refused, spec:carrier.markdown-body-grammar.repeated-field-refused, spec:carrier.markdown-body-grammar.second-primary-owner-refused, spec:carrier.markdown-body-grammar.shared-description-refused, spec:carrier.markdown-body-grammar.table-refused, spec:carrier.markdown-body-grammar.trailing-prose-refused, spec:carrier.markdown-body-grammar.unrecognized-heading-refused, spec:validation.kind-evidence.second-entry-untargeted

    Packs: pack:self-hosting-v1

  • spec:carrier.prose-ownership-rule

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120

    Referencing units

    None.

    Enabled verifiers: test:protocol.prose-ownership

    Packs: pack:self-hosting-v1

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

    Implementing units

    • impl:protocol.register-recipes · test/recipes.test.ts:2057

    Referencing units

    None.

    Enabled verifiers: test:protocol.register-recipes

    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.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.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.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.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.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

  • 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.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:model.open-question-fields.dropped-list-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-fields.dropped-list-warns

    Packs: pack:self-hosting-v1

  • spec:validation.prose-mentions

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-locations, test:protocol.prose-mentions

    Packs: pack:self-hosting-v1

Distance 2

  • spec:carrier.inline-code-spans

    Implementing units

    • impl:protocol.inline-code-spans · src/extract/markdown-inline-code.ts:4

    Referencing units

    None.

    Enabled verifiers: spec:carrier.inline-code-spans.description, spec:carrier.inline-code-spans.list, spec:carrier.inline-code-spans.narrative, spec:carrier.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.continuation-line-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.continuation-line-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.foreign-fence-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.foreign-fence-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.h3-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.h3-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.integer-term-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.integer-term-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.keyed-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.keyed-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.ordered-list-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.ordered-list-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.plain-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.plain-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.raw-html-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.raw-html-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.repeated-field-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.repeated-field-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.second-primary-owner-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.second-primary-owner-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.shared-description-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.shared-description-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.table-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.table-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.trailing-prose-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.trailing-prose-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.unrecognized-heading-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.unrecognized-heading-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-parser

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-parser.bounded-parity, test:protocol.markdown-parser

    Packs: pack:self-hosting-v1

  • 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.address-and-cycle-recipes

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, 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, test:protocol.address-and-cycle-recipes

    Packs: pack:adopter-speed-v1, 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.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.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.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.notes

    Implementing units

    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sections · src/projections/vault/sections.ts:10
    • impl:protocol.vault-text · src/projections/vault/text.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.notes.case-collision-refused, spec:consumers.obsidian-vault.notes.entry-address-link, spec:consumers.obsidian-vault.notes.term-address-link, spec:consumers.obsidian-vault.notes.unresolved-mention-stays, test:protocol.vault-priority

    Packs: pack:obsidian-vault-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.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.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.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.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.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.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.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.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.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.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.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.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

    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: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.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:decisions.prose-ownership

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:extraction.entry-citations

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.entry-citation-reader · src/reader/entry-citations.ts:19
    • impl:protocol.entry-citation-recipe · test/recipes.test.ts:7008
    • impl:protocol.entry-citation-scan · src/extract/entry-citations.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation

    Packs: pack:adopter-speed-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:model.open-question-keys

    Implementing units

    • impl:protocol.open-question-keys · src/extract/markdown-body-owner-behavior.ts:38
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.stable-ids · src/ids.ts:173
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-keys.keyed-question-resolves, spec:model.open-question-keys.renamed-key-breaks, spec:model.open-question-keys.repeated-key-refused

    Packs: 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.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 3

  • spec:carrier.gherkin-authoring

    Implementing units

    • impl:protocol.gherkin-authoring · src/extract/gherkin.ts:1323
    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.description

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.description

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.list

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.list

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.narrative

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.narrative

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-authoring

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-authoring

    Packs: pack:self-hosting-v1

  • 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:carrier.markdown-parser.bounded-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-parser.bounded-parity

    Packs: pack:self-hosting-v1

  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

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

  • 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.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.gherkin-view

    Implementing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6
    • impl:protocol.gherkin-view · src/projections/gherkin-view.ts:19
    • impl:protocol.gherkin-view-cli · src/cli/gherkin-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-view

    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.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

    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.obsidian-vault.notes.case-collision-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.case-collision-refused

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

  • spec:consumers.obsidian-vault.notes.entry-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.entry-address-link

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

  • spec:consumers.obsidian-vault.notes.term-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.term-address-link

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

  • spec:consumers.obsidian-vault.notes.unresolved-mention-stays

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.unresolved-mention-stays

    Packs: pack:obsidian-vault-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.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.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.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.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.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

    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.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.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.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.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

  • 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.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:decisions.carrier-universality

    Implementing units

    None.

    Referencing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.question-key-rendering

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-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.entry-citations.code-comment-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.code-comment-cites-declaration

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

  • spec:extraction.entry-citations.test-title-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.test-title-cites-declaration

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

  • spec:extraction.entry-citations.unanchored-file-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unanchored-file-unread

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

  • spec:extraction.entry-citations.unresolved-citation

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unresolved-citation

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

  • spec:extraction.entry-locations

    Implementing units

    • impl:protocol.entry-location-recipes · test/recipes.test.ts:5979
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.reader · src/reader/reader.ts:687

    Referencing units

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

    Enabled verifiers: test:protocol.entry-locations

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

  • spec:model.open-question-keys.keyed-question-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.keyed-question-resolves

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.renamed-key-breaks

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.repeated-key-refused

    Packs: pack:self-hosting-v1

  • spec:model.relation-reasons

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

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

  • spec:model.rule-keys

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8
    • impl:protocol.rule-exercises · src/validate/validators.ts:1479

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

    Packs: pack:design-iteration-v1, pack:design-management-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

  • 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

  • spec:validation.duplicate-ids

    Implementing units

    • impl:protocol.duplicate-id-exclusion · src/extract/index.ts:93
    • impl:protocol.duplicate-ids · src/validate/validators.ts:263

    Referencing units

    None.

    Enabled verifiers: spec:validation.duplicate-ids.dual-carrier

    Packs: 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

Distance 4

  • spec:carrier.envelope-contract

    Implementing units

    • impl:protocol.envelope-contract · src/extract/markdown-frontmatter.ts:33
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33

    Referencing units

    None.

    Enabled verifiers: test:protocol.envelope-contract

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.authored-fact-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.authored-fact-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.contract-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.contract-parity

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.description-location-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.description-location-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.duplicate-surface-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.duplicate-surface-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.example-space-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.example-space-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.malformed-relation-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.malformed-relation-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.missing-id-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.missing-id-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.multi-finding-bounded

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.multi-finding-bounded

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.parent-child-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.parent-child-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.step-less-scenario-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.step-less-scenario-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unbound-ready-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unbound-ready-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unknown-tag-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unknown-tag-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unsupported-construct-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • 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:carrier.sdp-import

    Implementing units

    • component:protocol.import · src/import/import.ts:45
    • impl:protocol.import-fidelity · src/import/markdown-fidelity.ts:102
    • impl:protocol.sdp-import · src/cli/import-command.ts:71
    • impl:protocol.sdp-import-core · src/import/import.ts:58
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.sdp-import-publish · src/cli/import-publish.ts:23
    • impl:protocol.sdp-import-scan · src/cli/import-scan.ts:62

    Referencing units

    None.

    Enabled verifiers: spec:carrier.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation

    Implementing units

    • component:protocol.notation · src/notation/slots.ts:261
    • impl:protocol.slot-notation · src/notation/slots.ts:269

    Referencing units

    None.

    Enabled verifiers: spec:carrier.slot-notation.one-literal-binding, spec:carrier.slot-notation.refused-guess, spec:carrier.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • 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.design-review

    Implementing units

    • impl:protocol.design-review · src/projections/design-review.ts:44
    • impl:protocol.design-review-codec · src/projections/design-review-markdown.ts:3

    Referencing units

    None.

    Enabled verifiers: spec:consumers.design-review.pure-projection

    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.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.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.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.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.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.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.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.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

    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.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:decisions.carrier-ruling

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-ts-extension

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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.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

  • spec:model.term-addresses

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138
    • impl:protocol.stable-ids · src/ids.ts:173

    Referencing units

    None.

    Enabled verifiers: spec:model.term-addresses.keyed-term-resolves, spec:model.term-addresses.malformed-term-marker-refused, spec:model.term-addresses.repeated-term-key-refused, spec:model.term-addresses.typescript-term-imports-keyed, spec:model.term-addresses.unknown-term-key-refused, test:protocol.keyed-content

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

  • spec:protocol.self-hosting

    Implementing units

    • impl:protocol.self-hosting · test/self-hosting-graph.test.ts:136

    Referencing units

    None.

    Enabled verifiers: test:protocol.self-hosting

    Packs: 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.duplicate-ids.dual-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.duplicate-ids.dual-carrier

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal

    Implementing units

    • impl:protocol.superseded-decision-signal · src/validate/validators.ts:1817

    Referencing units

    None.

    Enabled verifiers: spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent

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

Distance 5

  • spec:carrier.sdp-import.feature-adapter

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:carrier.sdp-import.round-trip

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.one-literal-binding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.one-literal-binding

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.refused-guess

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.refused-guess

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.typed-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • spec:carrier.step-keys

    Implementing units

    • impl:protocol.example-runner · src/runner/index.ts:108
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473
    • impl:protocol.executable-contracts · src/codegen/contracts.ts:647
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138

    Referencing units

    None.

    Enabled verifiers: spec:carrier.step-keys.conflicting-example-key-withheld, spec:carrier.step-keys.gherkin-keyed-step-stays-bound, spec:carrier.step-keys.key-equal-to-a-skeleton-withheld, spec:carrier.step-keys.malformed-marker-refused, spec:carrier.step-keys.renamed-key-breaks, spec:carrier.step-keys.repeated-key-refused, spec:carrier.step-keys.reworded-keyed-step-stays-bound, spec:carrier.step-keys.reworded-unkeyed-step-breaks, spec:carrier.step-keys.two-keys-on-one-step-refused, spec:carrier.step-keys.typescript-keyed-step-imports-keyed, test:protocol.keyed-content

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

  • spec:consumers.binding-language-views

    Implementing units

    • impl:protocol.binding-language-index-table · src/projections/design-review-pages.ts:201
    • impl:protocol.binding-language-spec-page · src/projections/design-review-context.ts:95

    Referencing units

    None.

    Enabled verifiers: spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner

    Implementing units

    • impl:protocol.derived-readiness-banner · src/projections/design-review-context.ts:18

    Referencing units

    None.

    Enabled verifiers: spec:consumers.derived-readiness-banner.dishonest-divergence, spec:consumers.derived-readiness-banner.honest-headroom, test:protocol.derived-readiness-banner.idea-floor-unmet

    Packs: pack:self-hosting-v1

  • spec:consumers.design-review.pure-projection

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-review.pure-projection

    Packs: 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.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.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.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.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.wholesale-view-rewrite

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.wholesale-view-rewrite · src/cli/validate-view-command.ts:128

    Referencing units

    None.

    Enabled verifiers: spec:consumers.wholesale-view-rewrite.build-invalidates-view, spec:consumers.wholesale-view-rewrite.failed-run-view-removed, spec:consumers.wholesale-view-rewrite.late-stale-page, spec:consumers.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.adopt-the-nouns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.authored-entry-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.concept-docs-dissolve

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.envelope-grammar-posture

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.executable-meta-model

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.gherkin-carrier-option

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.pack-markdown-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.plain-language-references

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.protocol-naming

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-gherkin-extension

    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:model.term-addresses.keyed-term-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.keyed-term-resolves

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

  • spec:model.term-addresses.malformed-term-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.malformed-term-marker-refused

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

  • spec:model.term-addresses.repeated-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.repeated-term-key-refused

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

  • spec:model.term-addresses.typescript-term-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.typescript-term-imports-keyed

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

  • spec:model.term-addresses.unknown-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.unknown-term-key-refused

    Packs: pack:adopter-speed-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

  • spec:protocol.structural-self-binding

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

    Packs: pack:self-hosting-v1

  • 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.diagnostic-rendering

    Implementing units

    • impl:protocol.diagnostic-rendering-cli · src/cli/output.ts:23
    • impl:protocol.diagnostic-rendering-design-review · src/projections/design-review-context.ts:208
    • impl:protocol.validate-summary · src/cli/validate-view-command.ts:23
    • impl:protocol.validation-contracts · src/validate/contracts.ts:5

    Referencing units

    None.

    Enabled verifiers: spec:validation.diagnostic-rendering.composed-location, spec:validation.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.branch-names-every-end

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.branch-names-every-end

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.chain-end-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.chain-end-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.closed-chain-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.closed-chain-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.dependency-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.dependency-unread

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.end-and-loop-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.end-and-loop-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.live-replacement-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.live-replacement-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replaced-ruling-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replaced-ruling-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replacement-below-ready-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replacement-below-ready-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.superseded-subject-silent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.superseded-subject-silent

    Packs: pack:self-hosting-v1

Distance 6

  • spec:carrier.step-keys.conflicting-example-key-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.conflicting-example-key-withheld

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

  • spec:carrier.step-keys.gherkin-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.gherkin-keyed-step-stays-bound

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

  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.key-equal-to-a-skeleton-withheld

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

  • spec:carrier.step-keys.malformed-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.malformed-marker-refused

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

  • spec:carrier.step-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.renamed-key-breaks

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

  • spec:carrier.step-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.repeated-key-refused

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

  • spec:carrier.step-keys.reworded-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-keyed-step-stays-bound

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

  • spec:carrier.step-keys.reworded-unkeyed-step-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-unkeyed-step-breaks

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

  • spec:carrier.step-keys.two-keys-on-one-step-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.two-keys-on-one-step-refused

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

  • spec:carrier.step-keys.typescript-keyed-step-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.typescript-keyed-step-imports-keyed

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

  • spec:consumers.binding-language-views.bound-spec-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.bound-spec-page

    Packs: pack:self-hosting-v1

  • spec:consumers.binding-language-views.pack-member-table

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.census-page

    Implementing units

    • impl:protocol.census-page · src/projections/census.ts:21
    • impl:protocol.census-page-cli · src/cli/census-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.census-page

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.dishonest-divergence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.dishonest-divergence

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.honest-headroom

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.honest-headroom

    Packs: pack:self-hosting-v1

  • spec:consumers.mermaid-view

    Implementing units

    • impl:protocol.mermaid-view · src/projections/mermaid.ts:14
    • impl:protocol.mermaid-view-cli · src/cli/mermaid-command.ts:82

    Referencing units

    None.

    Enabled verifiers: test:protocol.mermaid-view

    Packs: pack:self-hosting-v1

  • spec:consumers.obsidian-vault

    Implementing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.changed-note-refused, spec:consumers.obsidian-vault.failed-extraction-keeps-notes, spec:consumers.obsidian-vault.failed-extraction-recovered, spec:consumers.obsidian-vault.fresh-vault, spec:consumers.obsidian-vault.hidden-file-refused, spec:consumers.obsidian-vault.interrupted-run-recovered, spec:consumers.obsidian-vault.person-notes-survive, spec:consumers.obsidian-vault.unknown-note-refused, spec:consumers.obsidian-vault.vault-in-build-path-refused

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

  • spec:consumers.wholesale-view-rewrite.build-invalidates-view

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.build-invalidates-view

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.failed-run-view-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.failed-run-view-removed

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.late-stale-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.late-stale-page

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.stale-page-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.roadmap-priority

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-aggregate · src/model/pack.ts:23
    • impl:protocol.pack-member-order · src/extract/derive.ts:153

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, 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

  • 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

  • spec:protocol.role-vocabulary

    Implementing units

    • impl:protocol.role-vocabulary · test/self-hosting-graph.test.ts:143

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:protocol.significant-units-review

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

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

  • spec:validation.diagnostic-rendering.composed-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.composed-location

    Packs: pack:self-hosting-v1

  • spec:validation.diagnostic-rendering.table-cell-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

Distance 7

  • 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.obsidian-vault.changed-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.changed-note-refused

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

  • spec:consumers.obsidian-vault.failed-extraction-keeps-notes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-keeps-notes

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

  • spec:consumers.obsidian-vault.failed-extraction-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-recovered

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

  • spec:consumers.obsidian-vault.fresh-vault

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.fresh-vault

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

  • spec:consumers.obsidian-vault.hidden-file-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.hidden-file-refused

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

  • spec:consumers.obsidian-vault.interrupted-run-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.interrupted-run-recovered

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

  • spec:consumers.obsidian-vault.person-notes-survive

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.person-notes-survive

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

  • spec:consumers.obsidian-vault.unknown-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.unknown-note-refused

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

  • spec:consumers.obsidian-vault.vault-in-build-path-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.vault-in-build-path-refused

    Packs: pack:obsidian-vault-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:decisions.roadmap-over-plans

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:decisions.vault-owned-folder

    Implementing units

    None.

    Referencing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Enabled verifiers: None

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

  • 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.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: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 8

  • spec:decisions.pack-reified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    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: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 9

  • 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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.adopt-the-nouns
spec:decisions.adopt-the-nouns · resolves
declaredquestion fields describe the question without adding workflow state or gatesNone
decidedBy · outgoingspec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement · resolves
declareda deferral's re-entry trigger rides its own blocking question, the home that decision rulesNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredadds rows to the location tableNone
refines · outgoingspec:model.open-question-keys
spec:model.open-question-keys · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.markdown-body-grammar
spec:carrier.markdown-body-grammar · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.prose-ownership-rule
spec:carrier.prose-ownership-rule · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredthe open-question register lists each question's fieldsNone
dependsOn · incomingspec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declaredeach question in scope carries its fieldsNone
dependsOn · incomingspec:consumers.graph-first-planning
spec:consumers.graph-first-planning · resolves
declaredthe placement rule uses the question's explicit re-entry trigger fieldNone
dependsOn · incomingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredeach listed open question carries its fieldsNone
dependsOn · incomingspec:consumers.readiness-planner
spec:consumers.readiness-planner · resolves
declaredthe owner's questions are selected by their decider fieldNone
dependsOn · incomingspec:consumers.roadmap
spec:consumers.roadmap · resolves
declaredthe questions waiting on a person are selected by their decider fieldNone
dependsOn · incomingspec:consumers.spec-studio.pack-page
spec:consumers.spec-studio.pack-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.slice-page
spec:consumers.spec-studio.slice-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page.core
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredquestion keys and fields are counted where open questions areNone
dependsOn · incomingspec:validation.prose-mentions
spec:validation.prose-mentions · resolves
declaredthe links field it checks whole is defined by the open-question field grammarNone
refines · incomingspec:model.open-question-fields.dropped-list-warns
spec:model.open-question-fields.dropped-list-warns · resolves
declaredNoneNone
verifies · incomingspec:model.open-question-fields.dropped-list-warns
spec:model.open-question-fields.dropped-list-warns · resolves
declaredNonedroppedListWarning

Bindings

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

  • spec:model.open-question-fields.dropped-list-warns · A TypeScript question list that cannot be read drops whole with a warning · declared · specs/model/open-question-fields.dropped-list-warns.sdp.md · example enabled
  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test/authoring-grammar.test.ts:24 · test anchor
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test/recipes.test.ts:6587 · test anchor

Expected-outcome oracle: present

  • oracle:protocol.open-question-fields · test/self-hosting-carrier.test.ts:342

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

13. A rule or flow entry may carry a key that addresses it

spec:model.rule-keys

A rule or flow entry may carry a key that addresses it

spec:model.rule-keysBusiness Rule · storyready floor ready

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

Design: 10 design entries · 6 pinned declarations · 2 decisions

Findings: no errors, no warnings

specs/model/rule-keys.sdp.md

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

The original design gave a behavior rule an optional id, so the rule could later be promoted to a Spec of its own, and an optional rationale (docs/lineage/v0-design/01-core-primitives.md §2.2). The Protocol kept promotion and dropped the id. An unkeyed rule has no address, so a review finding, a register row or an example cannot name it; a key gives it an address. Open questions carry optional keys on the entry-address key grammar; this Spec follows that pattern for rules.

Intent
problem
An inline rule has no identity but its position and its text, so anything outside the Spec that cites one rule breaks silently when the rules above it move or the rule is reworded.
outcome
Let an author key a rule or flow entry, so a review, a register row or an example can name the entry it is about.
Rule
rule line 27 · specs/model/rule-keys.sdp.md:27
Every entry of a Spec's primary behavior owner may carry an optional key on the open-question key grammar: the rule: and flow: entries of Behavior, the entries of Rule and Contract, and the entries and rule: entries of Workflow. One Spec keeps one key namespace across them, unique among its keyed entries, and an unkeyed entry stays lawful and has no address.
rule line 28 · specs/model/rule-keys.sdp.md:28
A key sits in a marker at the start of the entry's text, after the rule: or flow: label where the entry has one, as in - rule: [#graphOnly] The Studio is a projection. and - [#oneFamily] Every validator belongs to one family., the shape an open question's marker uses, so one form serves labelled and plain entries.
rule line 29 · specs/model/rule-keys.sdp.md:29
Every keyed entry is addressed as spec:<id>#rule.<key> whatever its section, because a Spec uses one primary behavior owner. The address resolves while the Spec carries an entry with that key and fails validation in every Spec that names it once the key is renamed or removed.
rule line 30 · specs/model/rule-keys.sdp.md:30
A rule address is refused in every id slot, as every entry address is, so no anchor targets a rule and no delivery fact attaches to one.
rule line 31 · specs/model/rule-keys.sdp.md:31
An example names the keyed rules it exercises on its verifies relation: the target is an object with target and exercises, a list of the verified Spec's rule keys, beside an optional reason. A key the verified Spec does not carry is a conformance error at the relation, as a missing entry address is. The list mints no edge and confers no delivery fact, so verifies stays whole-Spec, and a rule-coverage recipe reads it to report which keyed rules a bound example exercises and which none does.
rule line 32 · specs/model/rule-keys.sdp.md:32
A keyed entry carries its key and its text and nothing else; why a rule holds is the Spec's narrative, or a decision Spec named through decidedBy when the why passes the ADR three-part test.
rule line 33 · specs/model/rule-keys.sdp.md:33
A keyed rule promoted to a Spec of its own leaves its address behind, because promotion moves the content out, and every mention of that address fails until it names the new Spec.

7 unkeyed rules.

Design
keyMarker line 37 · specs/model/rule-keys.sdp.md:37
[#<key>] and one space open the entry's text, after rule: or flow: where the entry has a label, with the key on the open-question key grammar, ^[a-z][A-Za-z0-9]*$; text that opens with [# and does not match is refused at its line, and a marker later in the text is plain text.

no citation recorded

ruleKeysField line 38 · specs/model/rule-keys.sdp.md:38
behavior.rules and behavior.flows are lists of strings with the marker removed, and behavior.ruleKeys maps each key to the entry it names, rules[<i>] or flows[<i>], in authored order; a Spec with no keyed entry carries no ruleKeys, and the frozen projections read the rule text unchanged.

no citation recorded

carrierSpelling line 39 · specs/model/rule-keys.sdp.md:39
the TypeScript carrier writes the same marker at the start of a rule or flow string, and the Gherkin carrier at the start of a Rule: line's text, so one normalization after reification reads all three carriers.
duplicateKey line 40 · specs/model/rule-keys.sdp.md:40
a key repeated across one Spec's rules and flows is a conformance error at each site, as a repeated question key is; rule keys and question keys address different sections, so the two namespaces stay apart.
ruleLocations line 41 · specs/model/rule-keys.sdp.md:41
the location table records every rule and flow entry, keyed or not, as rule[<i>] or flow[<i>] with key beside a keyed entry, from each carrier that records its line.
exercisesValidator line 42 · specs/model/rule-keys.sdp.md:42
conformance/rule-exercises, a conformance error for an off-contract exercises list or a rule key absent from the verified Spec.

no citation recorded

exercisesAttribute line 43 · specs/model/rule-keys.sdp.md:43
verifies: { target: <spec id>, exercises: [<key>] }, with an optional reason, is lawful on a declared verifies only; the graph's declared verifies edge carries exercises in authored order, an anchored verifies from a test anchor carries none, and exercises on any other relation type is refused.

no citation recorded

gherkinExercises line 44 · specs/model/rule-keys.sdp.md:44
@exercises.<key> on an ordinary Scenario names a rule of the Spec the Scenario verifies, by default its Feature, once per key; a Scenario that verifies more than one Spec and exercises a rule is authored in Markdown.

no citation recorded

ruleCoverage line 45 · specs/model/rule-keys.sdp.md:45
recipe 34, rule coverage, takes params.spec or params.pack and returns { totals: { keyedRules, exercised, unexercised, unkeyedRules }, rows }, one row per keyed rule { address, line, exercisedBy: [{ example, enabled }] }, with an empty exercisedBy for a rule no example exercises.
ruleAddress line 46 · specs/model/rule-keys.sdp.md:46
spec:<id>#rule.<key> resolves through ruleKeys; address resolution (recipe 25) reads rule as a fourth section and returns the entry's text, file and line, and entry search (recipe 23) matches rule keys as it matches Design keys.

no citation recorded

Verification

Verifier bindings

  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test anchor binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test anchor binding present · test/recipes.test.ts:6587
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:model.rule-keys
The diagram as text
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it · declared Spec
  • spec:model.spec-sections: Spec sections carry typed detail and direct verifier semantics · declared Spec
  • impl:protocol.authoring-grammar-recipes: asserts the authoring grammar's realization in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization: normalizes rule markers and question fields after carrier reification · anchored code · src/extract/authoring-normalization.ts:8
  • impl:protocol.rule-exercises: checks the keys named by declared verifies relations · anchored code · src/validate/validators.ts:1479
  • test:protocol.authoring-grammar: checks rule keys, question fields and relation reasons across the carriers · anchored test binding · binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes: executes the shipped question, mention, entry, address and rule coverage recipes · anchored test binding · binding present · test/recipes.test.ts:6587
  • spec:model.rule-keys refines spec:model.spec-sections · declared
  • impl:protocol.authoring-grammar-recipes satisfies spec:model.rule-keys · anchored
  • impl:protocol.authoring-normalization satisfies spec:model.rule-keys · anchored
  • impl:protocol.rule-exercises satisfies spec:model.rule-keys · anchored
  • test:protocol.authoring-grammar verifies spec:model.rule-keys · anchored
  • test:protocol.authoring-grammar-recipes verifies spec:model.rule-keys · 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.checked-mentions

    A Spec id in narrative or section text, outside gwt and gwt-vocabulary fences, is a mention. A mention that does not resolve is a conformance error. A mention of another Spec that shares no declared relation with the mentioning Spec, in either direction, is one warning per mentioning Spec and target Spec pair, whatever the number of locations; an address on the mentioning Spec's own id is checked for its entry and never warned. An entry address is a Spec id followed by #, the section name design, ui, question, rule, or term, a dot, and the entry's lower-camel ASCII key, as in spec:<id>#design.<key> or spec:<id>#question.<key>. A design or ui address resolves when the Spec exists and that section holds the key as its own key, other than description; a question address resolves when the Spec exists and one of its open questions carries that key; a term address resolves when the Spec exists and one of its Model terms carries that key. The # sub-part is reserved for the entry address in every namespace: a Spec's own id, a relation target, a Pack member or model reference, an anchor id or target, and the specId and ref builders all refuse it. A mention mints no edge, and the reader gains no join.

  • 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.

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

    Uses

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597

    Uses

    None.

  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8

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

    Uses

    None.

  • impl:protocol.rule-exercises · checks the keys named by declared verifies relations · src/validate/validators.ts:1479

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

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:model.rule-keys
Relations of spec:model.rule-keysdecidedBy · declareddecidedBy · declareddependsOn · declareddependsOn · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:model.spec-sectionsSpec sections carry typeddetail and direct verifiersemantics…model.spec-sectionsOutgoing dependsOnspec:extraction.entry-locationsThe graph records whereeach addressable entry iswritten…extraction.entry-locationsspec:model.open-question-keysAn open question may carrya key that addresses it…model.open-question-keysOutgoing decidedByspec:decisions.checked-mentionsA Spec id written in proseis a checked mention…decisions.checked-mentionsspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozenSubjectspec:model.rule-keysA rule or flow entry maycarry a key that addressesit…model.rule-keysIncoming dependsOnspec:model.rule-keys.fold.Incoming.dependsOn14 Incoming dependsOn,folded…model.rule-keys.fold.Incoming.dependsOn
The diagram as text
  • spec:carrier.envelope-contract: The Markdown envelope is explicit and bounded
  • spec:carrier.gherkin-authoring: Gherkin authoring enters the one graph
  • spec:carrier.markdown-body-grammar: The Markdown body accepts one closed form per section
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence
  • 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.lenses.tests: The tests lens shows how far each Spec's verification reaches
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:consumers.upgrade-kit.rule-key-proposal: The rule-key proposal keys every unkeyed rule as a change proposal
  • spec:decisions.checked-mentions: A Spec id written in prose is a checked mention
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:model.open-question-keys: An open question may carry a key that addresses it
  • spec:model.rule-keys: A rule or flow entry may carry a key that addresses it
  • spec:model.spec-sections: Spec sections carry typed detail and direct verifier semantics
  • spec:model.term-addresses: A Model term may carry a key that addresses it
  • spec:model.rule-keys decidedBy spec:decisions.checked-mentions · declared — rule addresses join the address law it rules
  • spec:model.rule-keys decidedBy spec:decisions.shipped-projections-frozen · declared — keys stay off the frozen projections, which read the rule text unchanged
  • spec:model.rule-keys dependsOn spec:extraction.entry-locations · declared — adds rows to the location table
  • spec:model.rule-keys dependsOn spec:model.open-question-keys · declared
  • spec:model.rule-keys refines spec:model.spec-sections · declared
  • spec:carrier.envelope-contract dependsOn spec:model.rule-keys · declared
  • spec:carrier.gherkin-authoring dependsOn spec:model.rule-keys · declared
  • spec:carrier.markdown-body-grammar dependsOn spec:model.rule-keys · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes dependsOn spec:model.rule-keys · declared — a rule address resolves through the Spec's rule keys
  • spec:consumers.agent-surface.register-recipes dependsOn spec:model.rule-keys · declared — entry search and the mention audit read rule addresses
  • spec:consumers.authoring-on-ramp dependsOn spec:model.rule-keys · declared
  • spec:consumers.design-slice dependsOn spec:model.rule-keys · declared — each member's rule count is the count rule coverage reports
  • spec:consumers.spec-studio.lenses.tests dependsOn spec:model.rule-keys · declared — rule coverage counts the keyed rules examples exercise
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.rule-keys · declared
  • spec:consumers.spec-studio.spec-page.core dependsOn spec:model.rule-keys · declared
  • spec:consumers.spec-studio.verification-panels dependsOn spec:model.rule-keys · declared
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:model.rule-keys · declared — rule keys and `exercises` are two of the capabilities it counts
  • spec:consumers.upgrade-kit.rule-key-proposal dependsOn spec:model.rule-keys · declared — a coined key follows the rule-key grammar and marker
  • spec:model.term-addresses dependsOn spec:model.rule-keys · declared — the term-key design follows the rule-entry address pattern
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:model.spec-sections · stated ready, floor ready
  • dependsOn · spec:extraction.entry-locations · stated ready, floor ready
  • dependsOn · spec:model.open-question-keys · stated ready, floor ready
  • decidedBy · spec:decisions.checked-mentions · stated ready, floor ready
  • decidedBy · spec:decisions.shipped-projections-frozen · stated ready, floor ready

Rested on by

Distance 1

  • spec:carrier.envelope-contract

    Implementing units

    • impl:protocol.envelope-contract · src/extract/markdown-frontmatter.ts:33
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33

    Referencing units

    None.

    Enabled verifiers: test:protocol.envelope-contract

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring

    Implementing units

    • impl:protocol.gherkin-authoring · src/extract/gherkin.ts:1323
    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120
    • impl:protocol.markdown-content · src/extract/markdown-body-content.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-body-grammar.continuation-line-refused, spec:carrier.markdown-body-grammar.foreign-fence-refused, spec:carrier.markdown-body-grammar.h3-refused, spec:carrier.markdown-body-grammar.integer-term-refused, spec:carrier.markdown-body-grammar.keyed-bullet-refused, spec:carrier.markdown-body-grammar.ordered-list-refused, spec:carrier.markdown-body-grammar.plain-bullet-refused, spec:carrier.markdown-body-grammar.raw-html-refused, spec:carrier.markdown-body-grammar.repeated-field-refused, spec:carrier.markdown-body-grammar.second-primary-owner-refused, spec:carrier.markdown-body-grammar.shared-description-refused, spec:carrier.markdown-body-grammar.table-refused, spec:carrier.markdown-body-grammar.trailing-prose-refused, spec:carrier.markdown-body-grammar.unrecognized-heading-refused, spec:validation.kind-evidence.second-entry-untargeted

    Packs: pack:self-hosting-v1

  • spec:consumers.agent-surface.address-and-cycle-recipes

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, 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, test:protocol.address-and-cycle-recipes

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

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

    Implementing units

    • impl:protocol.register-recipes · test/recipes.test.ts:2057

    Referencing units

    None.

    Enabled verifiers: test:protocol.register-recipes

    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.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.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.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.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

    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:model.term-addresses

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138
    • impl:protocol.stable-ids · src/ids.ts:173

    Referencing units

    None.

    Enabled verifiers: spec:model.term-addresses.keyed-term-resolves, spec:model.term-addresses.malformed-term-marker-refused, spec:model.term-addresses.repeated-term-key-refused, spec:model.term-addresses.typescript-term-imports-keyed, spec:model.term-addresses.unknown-term-key-refused, test:protocol.keyed-content

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

Distance 2

  • spec:carrier.gherkin-authoring.authored-fact-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.authored-fact-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.contract-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.contract-parity

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.description-location-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.description-location-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.duplicate-surface-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.duplicate-surface-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.example-space-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.example-space-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.malformed-relation-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.malformed-relation-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.missing-id-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.missing-id-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.multi-finding-bounded

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.multi-finding-bounded

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.parent-child-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.parent-child-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.step-less-scenario-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.step-less-scenario-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unbound-ready-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unbound-ready-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unknown-tag-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unknown-tag-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unsupported-construct-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans

    Implementing units

    • impl:protocol.inline-code-spans · src/extract/markdown-inline-code.ts:4

    Referencing units

    None.

    Enabled verifiers: spec:carrier.inline-code-spans.description, spec:carrier.inline-code-spans.list, spec:carrier.inline-code-spans.narrative, spec:carrier.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.continuation-line-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.continuation-line-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.foreign-fence-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.foreign-fence-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.h3-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.h3-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.integer-term-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.integer-term-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.keyed-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.keyed-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.ordered-list-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.ordered-list-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.plain-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.plain-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.raw-html-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.raw-html-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.repeated-field-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.repeated-field-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.second-primary-owner-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.second-primary-owner-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.shared-description-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.shared-description-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.table-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.table-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.trailing-prose-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.trailing-prose-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.unrecognized-heading-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.unrecognized-heading-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-parser

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-parser.bounded-parity, test:protocol.markdown-parser

    Packs: pack:self-hosting-v1

  • spec:carrier.prose-ownership-rule

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120

    Referencing units

    None.

    Enabled verifiers: test:protocol.prose-ownership

    Packs: pack:self-hosting-v1

  • 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.address-and-cycle-recipes.chain-reports-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Packs: pack:adopter-speed-v1, 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.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-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.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.obsidian-vault.notes

    Implementing units

    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sections · src/projections/vault/sections.ts:10
    • impl:protocol.vault-text · src/projections/vault/text.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.notes.case-collision-refused, spec:consumers.obsidian-vault.notes.entry-address-link, spec:consumers.obsidian-vault.notes.term-address-link, spec:consumers.obsidian-vault.notes.unresolved-mention-stays, test:protocol.vault-priority

    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.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.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.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.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.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.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.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.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.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

    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: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.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.envelope-grammar-posture

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys

    Implementing units

    • impl:protocol.open-question-keys · src/extract/markdown-body-owner-behavior.ts:38
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.stable-ids · src/ids.ts:173
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-keys.keyed-question-resolves, spec:model.open-question-keys.renamed-key-breaks, spec:model.open-question-keys.repeated-key-refused

    Packs: pack:self-hosting-v1

  • spec:model.term-addresses.keyed-term-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.keyed-term-resolves

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

  • spec:model.term-addresses.malformed-term-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.malformed-term-marker-refused

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

  • spec:model.term-addresses.repeated-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.repeated-term-key-refused

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

  • spec:model.term-addresses.typescript-term-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.typescript-term-imports-keyed

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

  • spec:model.term-addresses.unknown-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.unknown-term-key-refused

    Packs: pack:adopter-speed-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

  • spec:validation.prose-mentions

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-locations, test:protocol.prose-mentions

    Packs: pack:self-hosting-v1

Distance 3

  • spec:carrier.inline-code-spans.description

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.description

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.list

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.list

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.narrative

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.narrative

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-authoring

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-authoring

    Packs: pack:self-hosting-v1

  • 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:carrier.markdown-parser.bounded-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-parser.bounded-parity

    Packs: pack:self-hosting-v1

  • 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.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

    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.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.obsidian-vault.notes.case-collision-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.case-collision-refused

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

  • spec:consumers.obsidian-vault.notes.entry-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.entry-address-link

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

  • spec:consumers.obsidian-vault.notes.term-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.term-address-link

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

  • spec:consumers.obsidian-vault.notes.unresolved-mention-stays

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.unresolved-mention-stays

    Packs: pack:obsidian-vault-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

    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.cited-line-text

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, 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.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

    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.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.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.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.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.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.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.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:decisions.prose-ownership

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.question-key-rendering

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-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.entry-citations

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.entry-citation-reader · src/reader/entry-citations.ts:19
    • impl:protocol.entry-citation-recipe · test/recipes.test.ts:7008
    • impl:protocol.entry-citation-scan · src/extract/entry-citations.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation

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

  • spec:extraction.entry-locations

    Implementing units

    • impl:protocol.entry-location-recipes · test/recipes.test.ts:5979
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.reader · src/reader/reader.ts:687

    Referencing units

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

    Enabled verifiers: test:protocol.entry-locations

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

  • spec:model.open-question-fields

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-fields.dropped-list-warns, test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

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

  • spec:model.open-question-keys.keyed-question-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.keyed-question-resolves

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.renamed-key-breaks

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.repeated-key-refused

    Packs: 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.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

  • spec:validation.duplicate-ids

    Implementing units

    • impl:protocol.duplicate-id-exclusion · src/extract/index.ts:93
    • impl:protocol.duplicate-ids · src/validate/validators.ts:263

    Referencing units

    None.

    Enabled verifiers: spec:validation.duplicate-ids.dual-carrier

    Packs: 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

Distance 4

  • 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:carrier.sdp-import

    Implementing units

    • component:protocol.import · src/import/import.ts:45
    • impl:protocol.import-fidelity · src/import/markdown-fidelity.ts:102
    • impl:protocol.sdp-import · src/cli/import-command.ts:71
    • impl:protocol.sdp-import-core · src/import/import.ts:58
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.sdp-import-publish · src/cli/import-publish.ts:23
    • impl:protocol.sdp-import-scan · src/cli/import-scan.ts:62

    Referencing units

    None.

    Enabled verifiers: spec:carrier.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation

    Implementing units

    • component:protocol.notation · src/notation/slots.ts:261
    • impl:protocol.slot-notation · src/notation/slots.ts:269

    Referencing units

    None.

    Enabled verifiers: spec:carrier.slot-notation.one-literal-binding, spec:carrier.slot-notation.refused-guess, spec:carrier.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • 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.design-review

    Implementing units

    • impl:protocol.design-review · src/projections/design-review.ts:44
    • impl:protocol.design-review-codec · src/projections/design-review-markdown.ts:3

    Referencing units

    None.

    Enabled verifiers: spec:consumers.design-review.pure-projection

    Packs: pack:self-hosting-v1

  • spec:consumers.gherkin-view

    Implementing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6
    • impl:protocol.gherkin-view · src/projections/gherkin-view.ts:19
    • impl:protocol.gherkin-view-cli · src/cli/gherkin-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-view

    Packs: 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.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.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.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.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

    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.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.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.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

    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.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.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.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.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:decisions.carrier-ruling

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.carrier-universality

    Implementing units

    None.

    Referencing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-ts-extension

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:extraction.entry-citations.code-comment-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.code-comment-cites-declaration

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

  • spec:extraction.entry-citations.test-title-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.test-title-cites-declaration

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

  • spec:extraction.entry-citations.unanchored-file-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unanchored-file-unread

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

  • spec:extraction.entry-citations.unresolved-citation

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unresolved-citation

    Packs: pack:adopter-speed-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.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

  • spec:model.open-question-fields.dropped-list-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-fields.dropped-list-warns

    Packs: pack:self-hosting-v1

  • spec:model.relation-reasons

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

    Packs: pack:design-iteration-v1, pack:design-management-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

  • spec:protocol.self-hosting

    Implementing units

    • impl:protocol.self-hosting · test/self-hosting-graph.test.ts:136

    Referencing units

    None.

    Enabled verifiers: test:protocol.self-hosting

    Packs: 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.duplicate-ids.dual-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.duplicate-ids.dual-carrier

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal

    Implementing units

    • impl:protocol.superseded-decision-signal · src/validate/validators.ts:1817

    Referencing units

    None.

    Enabled verifiers: spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent

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

Distance 5

  • spec:carrier.sdp-import.feature-adapter

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:carrier.sdp-import.round-trip

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.one-literal-binding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.one-literal-binding

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.refused-guess

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.refused-guess

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.typed-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • spec:carrier.step-keys

    Implementing units

    • impl:protocol.example-runner · src/runner/index.ts:108
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473
    • impl:protocol.executable-contracts · src/codegen/contracts.ts:647
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138

    Referencing units

    None.

    Enabled verifiers: spec:carrier.step-keys.conflicting-example-key-withheld, spec:carrier.step-keys.gherkin-keyed-step-stays-bound, spec:carrier.step-keys.key-equal-to-a-skeleton-withheld, spec:carrier.step-keys.malformed-marker-refused, spec:carrier.step-keys.renamed-key-breaks, spec:carrier.step-keys.repeated-key-refused, spec:carrier.step-keys.reworded-keyed-step-stays-bound, spec:carrier.step-keys.reworded-unkeyed-step-breaks, spec:carrier.step-keys.two-keys-on-one-step-refused, spec:carrier.step-keys.typescript-keyed-step-imports-keyed, test:protocol.keyed-content

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

  • spec:consumers.binding-language-views

    Implementing units

    • impl:protocol.binding-language-index-table · src/projections/design-review-pages.ts:201
    • impl:protocol.binding-language-spec-page · src/projections/design-review-context.ts:95

    Referencing units

    None.

    Enabled verifiers: spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner

    Implementing units

    • impl:protocol.derived-readiness-banner · src/projections/design-review-context.ts:18

    Referencing units

    None.

    Enabled verifiers: spec:consumers.derived-readiness-banner.dishonest-divergence, spec:consumers.derived-readiness-banner.honest-headroom, test:protocol.derived-readiness-banner.idea-floor-unmet

    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-review.pure-projection

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-review.pure-projection

    Packs: 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.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

    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.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.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.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.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.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.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.wholesale-view-rewrite

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.wholesale-view-rewrite · src/cli/validate-view-command.ts:128

    Referencing units

    None.

    Enabled verifiers: spec:consumers.wholesale-view-rewrite.build-invalidates-view, spec:consumers.wholesale-view-rewrite.failed-run-view-removed, spec:consumers.wholesale-view-rewrite.late-stale-page, spec:consumers.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.adopt-the-nouns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.authored-entry-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.concept-docs-dissolve

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.executable-meta-model

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.gherkin-carrier-option

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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:decisions.pack-markdown-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.plain-language-references

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.protocol-naming

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-gherkin-extension

    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: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: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

  • spec:protocol.structural-self-binding

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

    Packs: pack:self-hosting-v1

  • 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.diagnostic-rendering

    Implementing units

    • impl:protocol.diagnostic-rendering-cli · src/cli/output.ts:23
    • impl:protocol.diagnostic-rendering-design-review · src/projections/design-review-context.ts:208
    • impl:protocol.validate-summary · src/cli/validate-view-command.ts:23
    • impl:protocol.validation-contracts · src/validate/contracts.ts:5

    Referencing units

    None.

    Enabled verifiers: spec:validation.diagnostic-rendering.composed-location, spec:validation.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.branch-names-every-end

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.branch-names-every-end

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.chain-end-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.chain-end-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.closed-chain-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.closed-chain-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.dependency-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.dependency-unread

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.end-and-loop-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.end-and-loop-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.live-replacement-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.live-replacement-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replaced-ruling-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replaced-ruling-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replacement-below-ready-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replacement-below-ready-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.superseded-subject-silent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.superseded-subject-silent

    Packs: pack:self-hosting-v1

Distance 6

  • spec:carrier.step-keys.conflicting-example-key-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.conflicting-example-key-withheld

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

  • spec:carrier.step-keys.gherkin-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.gherkin-keyed-step-stays-bound

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

  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.key-equal-to-a-skeleton-withheld

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

  • spec:carrier.step-keys.malformed-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.malformed-marker-refused

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

  • spec:carrier.step-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.renamed-key-breaks

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

  • spec:carrier.step-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.repeated-key-refused

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

  • spec:carrier.step-keys.reworded-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-keyed-step-stays-bound

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

  • spec:carrier.step-keys.reworded-unkeyed-step-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-unkeyed-step-breaks

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

  • spec:carrier.step-keys.two-keys-on-one-step-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.two-keys-on-one-step-refused

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

  • spec:carrier.step-keys.typescript-keyed-step-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.typescript-keyed-step-imports-keyed

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

  • spec:consumers.binding-language-views.bound-spec-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.bound-spec-page

    Packs: pack:self-hosting-v1

  • spec:consumers.binding-language-views.pack-member-table

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.census-page

    Implementing units

    • impl:protocol.census-page · src/projections/census.ts:21
    • impl:protocol.census-page-cli · src/cli/census-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.census-page

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.dishonest-divergence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.dishonest-divergence

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.honest-headroom

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.honest-headroom

    Packs: pack:self-hosting-v1

  • spec:consumers.mermaid-view

    Implementing units

    • impl:protocol.mermaid-view · src/projections/mermaid.ts:14
    • impl:protocol.mermaid-view-cli · src/cli/mermaid-command.ts:82

    Referencing units

    None.

    Enabled verifiers: test:protocol.mermaid-view

    Packs: pack:self-hosting-v1

  • spec:consumers.obsidian-vault

    Implementing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.changed-note-refused, spec:consumers.obsidian-vault.failed-extraction-keeps-notes, spec:consumers.obsidian-vault.failed-extraction-recovered, spec:consumers.obsidian-vault.fresh-vault, spec:consumers.obsidian-vault.hidden-file-refused, spec:consumers.obsidian-vault.interrupted-run-recovered, spec:consumers.obsidian-vault.person-notes-survive, spec:consumers.obsidian-vault.unknown-note-refused, spec:consumers.obsidian-vault.vault-in-build-path-refused

    Packs: pack:obsidian-vault-v1, 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.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.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.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.wholesale-view-rewrite.build-invalidates-view

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.build-invalidates-view

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.failed-run-view-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.failed-run-view-removed

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.late-stale-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.late-stale-page

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.stale-page-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.roadmap-priority

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-aggregate · src/model/pack.ts:23
    • impl:protocol.pack-member-order · src/extract/derive.ts:153

    Enabled verifiers: None

    Packs: pack:roadmaps-and-slices-v1, 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

  • 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

  • spec:protocol.role-vocabulary

    Implementing units

    • impl:protocol.role-vocabulary · test/self-hosting-graph.test.ts:143

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:protocol.significant-units-review

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

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

  • spec:validation.diagnostic-rendering.composed-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.composed-location

    Packs: pack:self-hosting-v1

  • spec:validation.diagnostic-rendering.table-cell-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

Distance 7

  • 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.obsidian-vault.changed-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.changed-note-refused

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

  • spec:consumers.obsidian-vault.failed-extraction-keeps-notes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-keeps-notes

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

  • spec:consumers.obsidian-vault.failed-extraction-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-recovered

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

  • spec:consumers.obsidian-vault.fresh-vault

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.fresh-vault

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

  • spec:consumers.obsidian-vault.hidden-file-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.hidden-file-refused

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

  • spec:consumers.obsidian-vault.interrupted-run-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.interrupted-run-recovered

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

  • spec:consumers.obsidian-vault.person-notes-survive

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.person-notes-survive

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

  • spec:consumers.obsidian-vault.unknown-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.unknown-note-refused

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

  • spec:consumers.obsidian-vault.vault-in-build-path-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.vault-in-build-path-refused

    Packs: pack:obsidian-vault-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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-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:decisions.roadmap-over-plans

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:decisions.vault-owned-folder

    Implementing units

    None.

    Referencing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Enabled verifiers: None

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

  • 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.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: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 8

  • spec:decisions.pack-reified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    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: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 9

  • 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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.checked-mentions
spec:decisions.checked-mentions · resolves
declaredrule addresses join the address law it rulesNone
decidedBy · outgoingspec:decisions.shipped-projections-frozen
spec:decisions.shipped-projections-frozen · resolves
declaredkeys stay off the frozen projections, which read the rule text unchangedNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredadds rows to the location tableNone
dependsOn · outgoingspec:model.open-question-keys
spec:model.open-question-keys · resolves
declaredNoneNone
refines · outgoingspec:model.spec-sections
spec:model.spec-sections · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.envelope-contract
spec:carrier.envelope-contract · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.gherkin-authoring
spec:carrier.gherkin-authoring · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.markdown-body-grammar
spec:carrier.markdown-body-grammar · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.address-and-cycle-recipes
spec:consumers.agent-surface.address-and-cycle-recipes · resolves
declareda rule address resolves through the Spec's rule keysNone
dependsOn · incomingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredentry search and the mention audit read rule addressesNone
dependsOn · incomingspec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declaredeach member's rule count is the count rule coverage reportsNone
dependsOn · incomingspec:consumers.spec-studio.lenses.tests
spec:consumers.spec-studio.lenses.tests · resolves
declaredrule coverage counts the keyed rules examples exerciseNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page.core
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.verification-panels
spec:consumers.spec-studio.verification-panels · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredrule keys and exercises are two of the capabilities it countsNone
dependsOn · incomingspec:consumers.upgrade-kit.rule-key-proposal
spec:consumers.upgrade-kit.rule-key-proposal · resolves
declareda coined key follows the rule-key grammar and markerNone
dependsOn · incomingspec:model.term-addresses
spec:model.term-addresses · resolves
declaredthe term-key design follows the rule-entry address patternNone

Bindings

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol
  • impl:protocol.rule-exercises · checks the keys named by declared verifies relations · src/validate/validators.ts:1479 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test/authoring-grammar.test.ts:24 · test anchor
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test/recipes.test.ts:6587 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

14. An authored relation may carry its reason

spec:model.relation-reasons

An authored relation may carry its reason

spec:model.relation-reasonsBusiness Rule · storyready floor ready

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

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

Findings: no errors, no warnings

specs/model/relation-reasons.sdp.md

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

The original design let a relation say why it holds: a rationale on refines, a strength on dependsOn, an aspect on constrainedBy and a reason on supersedes (docs/lineage/v0-design/01-core-primitives.md §4; 04-authoring-surfaces.md §1.3). The Protocol's relations carry a type, a target and a claim; a relation without a reason leaves the explanation of why a Spec rests on another in narrative prose a reader has to find. The prose-ownership decision gives free prose a typed owner; this Spec gives a relation's reason its home on that relation.

The first adopter meets the reverse case. When its mention audit reported Spec pairs named in prose with no relation behind them, it declared the relations that were missing dependencies and kept the rest as prose, each listed with a one-line reason no typed relation fits (libar-platform/docs/feedback/sdp-feedback-01.md, "The mention warnings were mostly missing edges"; libar-platform/design/tools/prose-mentions.json). A reason on a relation says why an edge holds; a listed mention reason says why none does.

Intent
problem
A reviewer reading a relation cannot see why it holds, and a reviewer reading a mention left as prose cannot tell an intended pointer from a forgotten dependency without a list kept outside the graph.
outcome
Let an author say in one line why a Spec refines, depends on, is constrained by, is decided by or supersedes another, beside the relation itself.
Rule
rule line 23 · specs/model/relation-reasons.sdp.md:23
An authored relation may carry one optional reason, a single line of prose owned by that relation from that Spec to that target.
rule line 24 · specs/model/relation-reasons.sdp.md:24
One optional reason serves every relation type. No strength, aspect or other attribute rides a relation, except the rule keys an example's verifies lists, which the rule-coverage recipe reads.
rule line 25 · specs/model/relation-reasons.sdp.md:25
A reason is intent, as its relation is; it confers no delivery fact, moves no readiness floor and changes nothing its edge confers, and a relation without one stays lawful.
rule line 26 · specs/model/relation-reasons.sdp.md:26
In the envelope a relation target is a plain Spec id or an object with target and optional reason; a declared verifies object may also carry exercises. A target-only object reads as the plain id, plain ids and objects may mix in one relation, and no target is written twice. The TypeScript carrier passes the same reason beside the target.
rule line 27 · specs/model/relation-reasons.sdp.md:27
A reason on supersedes says what the newer decision replaces, and a reason on a refines from one decision to another says which part of the older decision the newer one narrows.
rule line 28 · specs/model/relation-reasons.sdp.md:28
A reason reaches readers with its relation through the graph, so a projection or a recipe reads it from the edge and never from the carrier.
rule line 29 · specs/model/relation-reasons.sdp.md:29
A mention left as prose carries no reason in the Spec. A corpus may keep the mentions it intends as rows of from, to and reason beside its Specs and pass them to the mention audit as a parameter; the audit reports the pairs a row matches apart from the rest, each with its reason, and lists the rows that match no current pair, while the validator reads no such list and its warning stands.

7 unkeyed rules.

Design
envelopeTarget line 33 · specs/model/relation-reasons.sdp.md:33
a relation target is a Spec id or { target: <spec id>, reason: <one line> }, the two mixing in one list and a single target taking either form; a declared verifies object may also carry exercises, and an object with another key, an empty reason, or a reason on two lines is refused; an object carrying only target reads as the plain id.
builderArgument line 34 · specs/model/relation-reasons.sdp.md:34
each TypeScript relation builder takes an optional second argument, dependsOn(target, { reason }), with verifies(target, { reason, exercises }) also taking the rule keys, and a builder called without it writes a plain declared relation.
edgeReason line 35 · specs/model/relation-reasons.sdp.md:35
an authored graph edge carries an optional reason, and the reader's relation ends carry it; the guarantees recipe (3), dependency footing (21), the planning slice (19) and the decision register (31) show it beside the relation.
gherkinRelations line 36 · specs/model/relation-reasons.sdp.md:36
no Gherkin form is invented for a relation reason, because relation tags carry no prose; a Spec that needs one is authored in Markdown or TypeScript.
intendedMentions line 37 · specs/model/relation-reasons.sdp.md:37
the mention audit (recipe 22) takes params.intended, rows { from, to, reason } keyed by Spec ids, and returns intended, the unbacked pairs a row matches with its reason, kept apart from the remaining pairs, and staleIntended, the rows that match no current pair.
Verification

Verifier bindings

  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test anchor binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test anchor binding present · test/recipes.test.ts:6587
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:model.relation-reasons
The diagram as text
  • spec:model.relation-reasons: An authored relation may carry its reason · declared Spec
  • spec:model.relations: Specs declare typed directed relations · declared Spec
  • impl:protocol.authoring-grammar-recipes: asserts the authoring grammar's realization in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization: normalizes rule markers and question fields after carrier reification · anchored code · src/extract/authoring-normalization.ts:8
  • test:protocol.authoring-grammar: checks rule keys, question fields and relation reasons across the carriers · anchored test binding · binding present · test/authoring-grammar.test.ts:24
  • test:protocol.authoring-grammar-recipes: executes the shipped question, mention, entry, address and rule coverage recipes · anchored test binding · binding present · test/recipes.test.ts:6587
  • spec:model.relation-reasons refines spec:model.relations · declared
  • impl:protocol.authoring-grammar-recipes satisfies spec:model.relation-reasons · anchored
  • impl:protocol.authoring-normalization satisfies spec:model.relation-reasons · anchored
  • test:protocol.authoring-grammar verifies spec:model.relation-reasons · anchored
  • test:protocol.authoring-grammar-recipes verifies spec:model.relation-reasons · 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.prose-ownership

    Free prose is stored as a narrative or a description on its typed owner; unowned prose is refused.

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597

    Uses

    None.

  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8

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

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:model.relation-reasons
Relations of spec:model.relation-reasonsdependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddependsOn · declareddecidedBy · declaredrefines · declaredOutgoing refinesspec:model.relationsSpecs declare typeddirected relations…model.relationsOutgoing decidedByspec:decisions.prose-ownershipProse belongs to typedgraph owners…decisions.prose-ownershipSubjectspec:model.relation-reasonsAn authored relation maycarry its reason…model.relation-reasonsIncoming dependsOnspec:carrier.envelope-contractThe Markdown envelope isexplicit and bounded…carrier.envelope-contractspec:carrier.prose-ownership-ruleEvery prose value has onetyped owner…carrier.prose-ownership-rulespec:consumers.agent-surface.register-recipesRegister questions stayexecutable graph recipes…consumers.agent-surface.register-recipesspec:consumers.authoring-on-rampAuthors move one Spec fromintent to reviewed evidence…consumers.authoring-on-rampspec:consumers.spec-studio.spec-pageA Spec page shows one Specin collapsible panels, in afixed order…consumers.spec-studio.spec-pagespec:consumers.spec-studio.spec-page.coreA Spec page's core showsthe whole Spec, with ananchor for every entry…consumers.spec-studio.spec-page.corespec:consumers.upgrade-kit.capability-adoptionCapability adoption countswhere each capability isused and where it couldapply…consumers.upgrade-kit.capability-adoption
The diagram as text
  • spec:carrier.envelope-contract: The Markdown envelope is explicit and bounded
  • spec:carrier.prose-ownership-rule: Every prose value has one typed owner
  • spec:consumers.agent-surface.register-recipes: Register questions stay executable graph recipes
  • spec:consumers.authoring-on-ramp: Authors move one Spec from intent to reviewed evidence
  • spec:consumers.spec-studio.spec-page: A Spec page shows one Spec in collapsible panels, in a fixed order
  • spec:consumers.spec-studio.spec-page.core: A Spec page's core shows the whole Spec, with an anchor for every entry
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:decisions.prose-ownership: Prose belongs to typed graph owners
  • spec:model.relation-reasons: An authored relation may carry its reason
  • spec:model.relations: Specs declare typed directed relations
  • spec:model.relation-reasons decidedBy spec:decisions.prose-ownership · declared — the relation owns its reason as typed prose
  • spec:model.relation-reasons refines spec:model.relations · declared
  • spec:carrier.envelope-contract dependsOn spec:model.relation-reasons · declared
  • spec:carrier.prose-ownership-rule dependsOn spec:model.relation-reasons · declared
  • spec:consumers.agent-surface.register-recipes dependsOn spec:model.relation-reasons · declared — the mention audit reads a caller's intended mentions with their reasons
  • spec:consumers.authoring-on-ramp dependsOn spec:model.relation-reasons · declared
  • spec:consumers.spec-studio.spec-page dependsOn spec:model.relation-reasons · declared
  • spec:consumers.spec-studio.spec-page.core dependsOn spec:model.relation-reasons · declared
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:model.relation-reasons · declared — relation reasons are counted where authored relations are
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:model.relations · stated ready, floor ready
  • decidedBy · spec:decisions.prose-ownership · stated ready, floor ready

Rested on by

Distance 1

  • spec:carrier.envelope-contract

    Implementing units

    • impl:protocol.envelope-contract · src/extract/markdown-frontmatter.ts:33
    • impl:protocol.markdown-yaml-policy · src/extract/markdown-yaml-policy.ts:33

    Referencing units

    None.

    Enabled verifiers: test:protocol.envelope-contract

    Packs: pack:self-hosting-v1

  • spec:carrier.prose-ownership-rule

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120

    Referencing units

    None.

    Enabled verifiers: test:protocol.prose-ownership

    Packs: pack:self-hosting-v1

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

    Implementing units

    • impl:protocol.register-recipes · test/recipes.test.ts:2057

    Referencing units

    None.

    Enabled verifiers: test:protocol.register-recipes

    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.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.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

Distance 2

  • spec:carrier.markdown-parser

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-parser.bounded-parity, test:protocol.markdown-parser

    Packs: pack:self-hosting-v1

  • 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.address-and-cycle-recipes

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568

    Referencing units

    None.

    Enabled verifiers: spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing, 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, test:protocol.address-and-cycle-recipes

    Packs: pack:adopter-speed-v1, 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.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.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.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.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.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.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.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

    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: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.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.envelope-grammar-posture

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.prose-ownership

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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 3

  • spec:carrier.gherkin-authoring

    Implementing units

    • impl:protocol.gherkin-authoring · src/extract/gherkin.ts:1323
    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-authoring

    Implementing units

    • impl:protocol.markdown-parser · src/extract/markdown.ts:37

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-authoring

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar

    Implementing units

    • impl:protocol.markdown-body-grammar · src/extract/markdown-body.ts:120
    • impl:protocol.markdown-content · src/extract/markdown-body-content.ts:7

    Referencing units

    None.

    Enabled verifiers: spec:carrier.markdown-body-grammar.continuation-line-refused, spec:carrier.markdown-body-grammar.foreign-fence-refused, spec:carrier.markdown-body-grammar.h3-refused, spec:carrier.markdown-body-grammar.integer-term-refused, spec:carrier.markdown-body-grammar.keyed-bullet-refused, spec:carrier.markdown-body-grammar.ordered-list-refused, spec:carrier.markdown-body-grammar.plain-bullet-refused, spec:carrier.markdown-body-grammar.raw-html-refused, spec:carrier.markdown-body-grammar.repeated-field-refused, spec:carrier.markdown-body-grammar.second-primary-owner-refused, spec:carrier.markdown-body-grammar.shared-description-refused, spec:carrier.markdown-body-grammar.table-refused, spec:carrier.markdown-body-grammar.trailing-prose-refused, spec:carrier.markdown-body-grammar.unrecognized-heading-refused, spec:validation.kind-evidence.second-entry-untargeted

    Packs: pack:self-hosting-v1

  • 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:carrier.markdown-parser.bounded-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-parser.bounded-parity

    Packs: pack:self-hosting-v1

  • spec:consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.chain-reports-nothing

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run

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

  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run

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

  • 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

    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.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.gherkin-view

    Implementing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6
    • impl:protocol.gherkin-view · src/projections/gherkin-view.ts:19
    • impl:protocol.gherkin-view-cli · src/cli/gherkin-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-view

    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.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.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.cited-line-text

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, 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.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.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.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.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

  • 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:decisions.carrier-universality

    Implementing units

    None.

    Referencing units

    • impl:protocol.gherkin-kind-policy · src/extract/gherkin-kind-honesty.ts:6

    Enabled verifiers: None

    Packs: 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.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

  • spec:validation.duplicate-ids

    Implementing units

    • impl:protocol.duplicate-id-exclusion · src/extract/index.ts:93
    • impl:protocol.duplicate-ids · src/validate/validators.ts:263

    Referencing units

    None.

    Enabled verifiers: spec:validation.duplicate-ids.dual-carrier

    Packs: 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

Distance 4

  • spec:carrier.gherkin-authoring.authored-fact-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.authored-fact-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.contract-parity

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.contract-parity

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.description-location-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.description-location-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.duplicate-surface-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.duplicate-surface-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.example-space-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.example-space-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.malformed-relation-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.malformed-relation-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.missing-id-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.missing-id-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.multi-finding-bounded

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.multi-finding-bounded

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.parent-child-extraction

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.parent-child-extraction

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.step-less-scenario-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.step-less-scenario-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unbound-ready-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unbound-ready-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unknown-tag-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unknown-tag-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.gherkin-authoring.unsupported-construct-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.gherkin-authoring.unsupported-construct-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans

    Implementing units

    • impl:protocol.inline-code-spans · src/extract/markdown-inline-code.ts:4

    Referencing units

    None.

    Enabled verifiers: spec:carrier.inline-code-spans.description, spec:carrier.inline-code-spans.list, spec:carrier.inline-code-spans.narrative, spec:carrier.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.continuation-line-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.continuation-line-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.foreign-fence-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.foreign-fence-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.h3-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.h3-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.integer-term-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.integer-term-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.keyed-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.keyed-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.ordered-list-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.ordered-list-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.plain-bullet-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.plain-bullet-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.raw-html-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.raw-html-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.repeated-field-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.repeated-field-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.second-primary-owner-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.second-primary-owner-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.shared-description-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.shared-description-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.table-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.table-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.trailing-prose-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.trailing-prose-refused

    Packs: pack:self-hosting-v1

  • spec:carrier.markdown-body-grammar.unrecognized-heading-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.markdown-body-grammar.unrecognized-heading-refused

    Packs: pack:self-hosting-v1

  • 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:carrier.sdp-import

    Implementing units

    • component:protocol.import · src/import/import.ts:45
    • impl:protocol.import-fidelity · src/import/markdown-fidelity.ts:102
    • impl:protocol.sdp-import · src/cli/import-command.ts:71
    • impl:protocol.sdp-import-core · src/import/import.ts:58
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.sdp-import-publish · src/cli/import-publish.ts:23
    • impl:protocol.sdp-import-scan · src/cli/import-scan.ts:62

    Referencing units

    None.

    Enabled verifiers: spec:carrier.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation

    Implementing units

    • component:protocol.notation · src/notation/slots.ts:261
    • impl:protocol.slot-notation · src/notation/slots.ts:269

    Referencing units

    None.

    Enabled verifiers: spec:carrier.slot-notation.one-literal-binding, spec:carrier.slot-notation.refused-guess, spec:carrier.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • 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.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.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.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.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.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.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.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.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.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.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.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.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

    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.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:decisions.carrier-ruling

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-ts-extension

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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.open-question-keys

    Implementing units

    • impl:protocol.open-question-keys · src/extract/markdown-body-owner-behavior.ts:38
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.stable-ids · src/ids.ts:173
    • impl:protocol.static-reification · src/extract/reify.ts:2139

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-keys.keyed-question-resolves, spec:model.open-question-keys.renamed-key-breaks, spec:model.open-question-keys.repeated-key-refused

    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.self-hosting

    Implementing units

    • impl:protocol.self-hosting · test/self-hosting-graph.test.ts:136

    Referencing units

    None.

    Enabled verifiers: test:protocol.self-hosting

    Packs: 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.duplicate-ids.dual-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.duplicate-ids.dual-carrier

    Packs: pack:self-hosting-v1

Distance 5

  • spec:carrier.inline-code-spans.description

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.description

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.list

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.list

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.narrative

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.narrative

    Packs: pack:self-hosting-v1

  • spec:carrier.inline-code-spans.pack

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.inline-code-spans.pack

    Packs: pack:self-hosting-v1

  • spec:carrier.sdp-import.feature-adapter

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:carrier.sdp-import.round-trip

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.sdp-import.round-trip

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.one-literal-binding

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.one-literal-binding

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.refused-guess

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.refused-guess

    Packs: pack:self-hosting-v1

  • spec:carrier.slot-notation.typed-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.slot-notation.typed-declaration

    Packs: pack:self-hosting-v1

  • spec:carrier.step-keys

    Implementing units

    • impl:protocol.example-runner · src/runner/index.ts:108
    • impl:protocol.example-space-decoding · src/notation/example-space.ts:473
    • impl:protocol.executable-contracts · src/codegen/contracts.ts:647
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138

    Referencing units

    None.

    Enabled verifiers: spec:carrier.step-keys.conflicting-example-key-withheld, spec:carrier.step-keys.gherkin-keyed-step-stays-bound, spec:carrier.step-keys.key-equal-to-a-skeleton-withheld, spec:carrier.step-keys.malformed-marker-refused, spec:carrier.step-keys.renamed-key-breaks, spec:carrier.step-keys.repeated-key-refused, spec:carrier.step-keys.reworded-keyed-step-stays-bound, spec:carrier.step-keys.reworded-unkeyed-step-breaks, spec:carrier.step-keys.two-keys-on-one-step-refused, spec:carrier.step-keys.typescript-keyed-step-imports-keyed, test:protocol.keyed-content

    Packs: pack:adopter-speed-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.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.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

    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.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.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.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.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.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.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:decisions.adopt-the-nouns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.concept-docs-dissolve

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.executable-meta-model

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.gherkin-carrier-option

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.pack-markdown-carrier

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.plain-language-references

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.protocol-naming

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.question-key-rendering

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.sdp-gherkin-extension

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-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.entry-locations

    Implementing units

    • impl:protocol.entry-location-recipes · test/recipes.test.ts:5979
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.reader · src/reader/reader.ts:687

    Referencing units

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

    Enabled verifiers: test:protocol.entry-locations

    Packs: pack:design-management-v1, 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:model.open-question-fields

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8

    Referencing units

    None.

    Enabled verifiers: spec:model.open-question-fields.dropped-list-warns, test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

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

  • spec:model.open-question-keys.keyed-question-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.keyed-question-resolves

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.renamed-key-breaks

    Packs: pack:self-hosting-v1

  • spec:model.open-question-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-keys.repeated-key-refused

    Packs: pack:self-hosting-v1

  • spec:model.rule-keys

    Implementing units

    • impl:protocol.authoring-grammar-recipes · test/recipes.test.ts:6597
    • impl:protocol.authoring-normalization · src/extract/authoring-normalization.ts:8
    • impl:protocol.rule-exercises · src/validate/validators.ts:1479

    Referencing units

    None.

    Enabled verifiers: test:protocol.authoring-grammar, test:protocol.authoring-grammar-recipes

    Packs: pack:design-iteration-v1, pack:design-management-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

  • spec:protocol.structural-self-binding

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

    Packs: pack:self-hosting-v1

  • 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

Distance 6

  • spec:carrier.step-keys.conflicting-example-key-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.conflicting-example-key-withheld

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

  • spec:carrier.step-keys.gherkin-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.gherkin-keyed-step-stays-bound

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

  • spec:carrier.step-keys.key-equal-to-a-skeleton-withheld

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.key-equal-to-a-skeleton-withheld

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

  • spec:carrier.step-keys.malformed-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.malformed-marker-refused

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

  • spec:carrier.step-keys.renamed-key-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.renamed-key-breaks

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

  • spec:carrier.step-keys.repeated-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.repeated-key-refused

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

  • spec:carrier.step-keys.reworded-keyed-step-stays-bound

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-keyed-step-stays-bound

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

  • spec:carrier.step-keys.reworded-unkeyed-step-breaks

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.reworded-unkeyed-step-breaks

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

  • spec:carrier.step-keys.two-keys-on-one-step-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.two-keys-on-one-step-refused

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

  • spec:carrier.step-keys.typescript-keyed-step-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.step-keys.typescript-keyed-step-imports-keyed

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

  • spec:consumers.design-review

    Implementing units

    • impl:protocol.design-review · src/projections/design-review.ts:44
    • impl:protocol.design-review-codec · src/projections/design-review-markdown.ts:3

    Referencing units

    None.

    Enabled verifiers: spec:consumers.design-review.pure-projection

    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.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.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.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.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.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.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.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

    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.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: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:decisions.roadmap-priority

    Implementing units

    None.

    Referencing units

    • impl:protocol.pack-aggregate · src/model/pack.ts:23
    • impl:protocol.pack-member-order · src/extract/derive.ts:153

    Enabled verifiers: None

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

  • spec:extraction.entry-citations

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.entry-citation-reader · src/reader/entry-citations.ts:19
    • impl:protocol.entry-citation-recipe · test/recipes.test.ts:7008
    • impl:protocol.entry-citation-scan · src/extract/entry-citations.ts:6

    Referencing units

    None.

    Enabled verifiers: spec:extraction.entry-citations.code-comment-cites-declaration, spec:extraction.entry-citations.test-title-cites-declaration, spec:extraction.entry-citations.unanchored-file-unread, spec:extraction.entry-citations.unresolved-citation

    Packs: pack:adopter-speed-v1, 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

  • 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

  • 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: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

  • spec:model.open-question-fields.dropped-list-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.open-question-fields.dropped-list-warns

    Packs: pack:self-hosting-v1

  • spec:model.term-addresses

    Implementing units

    • impl:protocol.address-and-cycle-recipes · test/recipes.test.ts:3568
    • impl:protocol.entry-locations · src/extract/derive.ts:78
    • impl:protocol.key-markers · src/extract/key-markers.ts:136
    • impl:protocol.open-section-order · src/extract/serialize.ts:105
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370
    • impl:protocol.register-recipes · test/recipes.test.ts:2057
    • impl:protocol.sdp-import-markdown-emit · src/import/emit-markdown.ts:253
    • impl:protocol.spec-sections · src/model/sections.ts:138
    • impl:protocol.stable-ids · src/ids.ts:173

    Referencing units

    None.

    Enabled verifiers: spec:model.term-addresses.keyed-term-resolves, spec:model.term-addresses.malformed-term-marker-refused, spec:model.term-addresses.repeated-term-key-refused, spec:model.term-addresses.typescript-term-imports-keyed, spec:model.term-addresses.unknown-term-key-refused, test:protocol.keyed-content

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

  • spec:protocol.role-vocabulary

    Implementing units

    • impl:protocol.role-vocabulary · test/self-hosting-graph.test.ts:143

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:protocol.significant-units-review

    Implementing units

    • impl:protocol.structural-self-binding · test/self-hosting-oracle/structural-edges.ts:76

    Referencing units

    None.

    Enabled verifiers: test:protocol.structural-self-binding

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

  • spec:validation.prose-mentions

    Implementing units

    • impl:protocol.entry-address-resolution · src/graph/entry-address.ts:6
    • impl:protocol.prose-mentions · src/validate/validators.ts:1370

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-locations, test:protocol.prose-mentions

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal

    Implementing units

    • impl:protocol.superseded-decision-signal · src/validate/validators.ts:1817

    Referencing units

    None.

    Enabled verifiers: spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent

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

Distance 7

  • spec:consumers.binding-language-views

    Implementing units

    • impl:protocol.binding-language-index-table · src/projections/design-review-pages.ts:201
    • impl:protocol.binding-language-spec-page · src/projections/design-review-context.ts:95

    Referencing units

    None.

    Enabled verifiers: spec:consumers.binding-language-views.bound-spec-page, spec:consumers.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner

    Implementing units

    • impl:protocol.derived-readiness-banner · src/projections/design-review-context.ts:18

    Referencing units

    None.

    Enabled verifiers: spec:consumers.derived-readiness-banner.dishonest-divergence, spec:consumers.derived-readiness-banner.honest-headroom, test:protocol.derived-readiness-banner.idea-floor-unmet

    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.design-review.pure-projection

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.design-review.pure-projection

    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.obsidian-vault.notes

    Implementing units

    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sections · src/projections/vault/sections.ts:10
    • impl:protocol.vault-text · src/projections/vault/text.ts:30

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.notes.case-collision-refused, spec:consumers.obsidian-vault.notes.entry-address-link, spec:consumers.obsidian-vault.notes.term-address-link, spec:consumers.obsidian-vault.notes.unresolved-mention-stays, test:protocol.vault-priority

    Packs: pack:obsidian-vault-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.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.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.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.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.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.wholesale-view-rewrite

    Implementing units

    • impl:protocol.build-pipeline-emit · src/cli/build-command.ts:251
    • impl:protocol.wholesale-view-rewrite · src/cli/validate-view-command.ts:128

    Referencing units

    None.

    Enabled verifiers: spec:consumers.wholesale-view-rewrite.build-invalidates-view, spec:consumers.wholesale-view-rewrite.failed-run-view-removed, spec:consumers.wholesale-view-rewrite.late-stale-page, spec:consumers.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.adopted-registrars-committed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:self-hosting-v1

  • spec:decisions.authored-entry-order

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: 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.entry-citations.code-comment-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.code-comment-cites-declaration

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

  • spec:extraction.entry-citations.test-title-cites-declaration

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.test-title-cites-declaration

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

  • spec:extraction.entry-citations.unanchored-file-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unanchored-file-unread

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

  • spec:extraction.entry-citations.unresolved-citation

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.entry-citations.unresolved-citation

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

  • 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.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: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

  • spec:model.term-addresses.keyed-term-resolves

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.keyed-term-resolves

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

  • spec:model.term-addresses.malformed-term-marker-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.malformed-term-marker-refused

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

  • spec:model.term-addresses.repeated-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.repeated-term-key-refused

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

  • spec:model.term-addresses.typescript-term-imports-keyed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.typescript-term-imports-keyed

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

  • spec:model.term-addresses.unknown-term-key-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.term-addresses.unknown-term-key-refused

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

  • spec:validation.diagnostic-rendering

    Implementing units

    • impl:protocol.diagnostic-rendering-cli · src/cli/output.ts:23
    • impl:protocol.diagnostic-rendering-design-review · src/projections/design-review-context.ts:208
    • impl:protocol.validate-summary · src/cli/validate-view-command.ts:23
    • impl:protocol.validation-contracts · src/validate/contracts.ts:5

    Referencing units

    None.

    Enabled verifiers: spec:validation.diagnostic-rendering.composed-location, spec:validation.diagnostic-rendering.table-cell-location

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.branch-names-every-end

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.branch-names-every-end

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.chain-end-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.chain-end-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.closed-chain-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.closed-chain-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.dependency-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.dependency-unread

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.end-and-loop-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.end-and-loop-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.live-replacement-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.live-replacement-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replaced-ruling-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replaced-ruling-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replacement-below-ready-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replacement-below-ready-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.superseded-subject-silent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.superseded-subject-silent

    Packs: pack:self-hosting-v1

Distance 8

  • spec:consumers.binding-language-views.bound-spec-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.bound-spec-page

    Packs: pack:self-hosting-v1

  • spec:consumers.binding-language-views.pack-member-table

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.binding-language-views.pack-member-table

    Packs: pack:self-hosting-v1

  • spec:consumers.census-page

    Implementing units

    • impl:protocol.census-page · src/projections/census.ts:21
    • impl:protocol.census-page-cli · src/cli/census-command.ts:66

    Referencing units

    None.

    Enabled verifiers: test:protocol.census-page

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.dishonest-divergence

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.dishonest-divergence

    Packs: pack:self-hosting-v1

  • spec:consumers.derived-readiness-banner.honest-headroom

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.derived-readiness-banner.honest-headroom

    Packs: pack:self-hosting-v1

  • spec:consumers.mermaid-view

    Implementing units

    • impl:protocol.mermaid-view · src/projections/mermaid.ts:14
    • impl:protocol.mermaid-view-cli · src/cli/mermaid-command.ts:82

    Referencing units

    None.

    Enabled verifiers: test:protocol.mermaid-view

    Packs: pack:self-hosting-v1

  • spec:consumers.obsidian-vault

    Implementing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-notes · src/projections/vault/notes.ts:45
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Referencing units

    None.

    Enabled verifiers: spec:consumers.obsidian-vault.changed-note-refused, spec:consumers.obsidian-vault.failed-extraction-keeps-notes, spec:consumers.obsidian-vault.failed-extraction-recovered, spec:consumers.obsidian-vault.fresh-vault, spec:consumers.obsidian-vault.hidden-file-refused, spec:consumers.obsidian-vault.interrupted-run-recovered, spec:consumers.obsidian-vault.person-notes-survive, spec:consumers.obsidian-vault.unknown-note-refused, spec:consumers.obsidian-vault.vault-in-build-path-refused

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

  • spec:consumers.obsidian-vault.notes.case-collision-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.case-collision-refused

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

  • spec:consumers.obsidian-vault.notes.entry-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.entry-address-link

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

  • spec:consumers.obsidian-vault.notes.term-address-link

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.term-address-link

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

  • spec:consumers.obsidian-vault.notes.unresolved-mention-stays

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.notes.unresolved-mention-stays

    Packs: pack:obsidian-vault-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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • spec:consumers.wholesale-view-rewrite.build-invalidates-view

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.build-invalidates-view

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.failed-run-view-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.failed-run-view-removed

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.late-stale-page

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.late-stale-page

    Packs: pack:self-hosting-v1

  • spec:consumers.wholesale-view-rewrite.stale-page-removed

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.wholesale-view-rewrite.stale-page-removed

    Packs: pack:self-hosting-v1

  • spec:decisions.pack-reified

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    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:validation.diagnostic-rendering.composed-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.composed-location

    Packs: pack:self-hosting-v1

  • spec:validation.diagnostic-rendering.table-cell-location

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.diagnostic-rendering.table-cell-location

    Packs: 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 9

  • spec:consumers.obsidian-vault.changed-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.changed-note-refused

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

  • spec:consumers.obsidian-vault.failed-extraction-keeps-notes

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-keeps-notes

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

  • spec:consumers.obsidian-vault.failed-extraction-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.failed-extraction-recovered

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

  • spec:consumers.obsidian-vault.fresh-vault

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.fresh-vault

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

  • spec:consumers.obsidian-vault.hidden-file-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.hidden-file-refused

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

  • spec:consumers.obsidian-vault.interrupted-run-recovered

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.interrupted-run-recovered

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

  • spec:consumers.obsidian-vault.person-notes-survive

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.person-notes-survive

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

  • spec:consumers.obsidian-vault.unknown-note-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.unknown-note-refused

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

  • spec:consumers.obsidian-vault.vault-in-build-path-refused

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.consumers.obsidian-vault.vault-in-build-path-refused

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

  • spec:decisions.vault-owned-folder

    Implementing units

    None.

    Referencing units

    • impl:protocol.vault-command · src/cli/vault-command.ts:191
    • impl:protocol.vault-sync · src/projections/vault/sync.ts:98

    Enabled verifiers: None

    Packs: pack:obsidian-vault-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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.prose-ownership
spec:decisions.prose-ownership · resolves
declaredthe relation owns its reason as typed proseNone
refines · outgoingspec:model.relations
spec:model.relations · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.envelope-contract
spec:carrier.envelope-contract · resolves
declaredNoneNone
dependsOn · incomingspec:carrier.prose-ownership-rule
spec:carrier.prose-ownership-rule · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.agent-surface.register-recipes
spec:consumers.agent-surface.register-recipes · resolves
declaredthe mention audit reads a caller's intended mentions with their reasonsNone
dependsOn · incomingspec:consumers.authoring-on-ramp
spec:consumers.authoring-on-ramp · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.spec-page.core
spec:consumers.spec-studio.spec-page.core · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredrelation reasons are counted where authored relations areNone

Bindings

Implementation binding: present

  • impl:protocol.authoring-grammar-recipes · asserts the authoring grammar's realization in docs/agent-surface/recipes.md · test/recipes.test.ts:6597
  • impl:protocol.authoring-normalization · normalizes rule markers and question fields after carrier reification · src/extract/authoring-normalization.ts:8 · role codec · component component:protocol.extract · layer application · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.authoring-grammar · checks rule keys, question fields and relation reasons across the carriers · anchored · test/authoring-grammar.test.ts:24 · test anchor
  • test:protocol.authoring-grammar-recipes · executes the shipped question, mention, entry, address and rule coverage recipes · anchored · test/recipes.test.ts:6587 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

15. A Pack is read from a named perspective

spec:consumers.review-perspectives

A Pack is read from a named perspective

spec:consumers.review-perspectivesUse Case / Behavior · featureready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/review-perspectives.sdp.md

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

The original design gave every reader one reading surface, each reading from their own concern: the analyst, the domain engineer, the architect, the tester, the designer and the agent (docs/lineage/v0-design/04-authoring-surfaces.md §6). The first adopter iterates each capability's design through advisor lenses, its runtime platform, the domain, operations and the product, each a written list of the questions its field asks, run over the same Pack by the same pass brief (libar-platform/design/advisors/lenses/, libar-platform/design/advisors/task-pass.md). It asks for a lens to be a filter over the same capability that reorders and emphasizes questions, entries, examples and constraints and opens the same Specs, with no new Spec kind and no compulsory sequence of stages (libar-platform/docs/feedback/sdp-feedback-02.md, item 28). The Protocol takes the member filter and the order and leaves each member's content whole; emphasis inside a member stays the reader's.

The owner ruled the word: perspective. The Spec Studio keeps lens for its graph views, its Packs, capabilities, architecture, tests and evidence views, and discipline stays the filter by kind or section. The adopter's advisor lens is a reader's concern, not a view of the graph, so in the Protocol's terms it is a perspective.

Intent
actor
A reviewer or an agent who reads a Pack for one concern, such as the domain model, operations or the runtime platform.
problem
Every reading of a Pack shows every member in the same order with the same emphasis, so a reader with one concern sorts it by hand, and an adopter keeps its perspectives as prose briefs the graph cannot apply.
outcome
Let a reviewer read the same Pack from one perspective at a time, filtered and ordered for that perspective, without a new kind or a stage.
Behavior
rule.contentIntact line 22 · specs/consumers/review-perspectives.sdp.md:22
A perspective filters and orders a Pack's members and leaves each selected member's content intact; every row opens the same Spec, and the whole Pack stays one step away.

no example exercises it

rule line 23 · specs/consumers/review-perspectives.sdp.md:23
A perspective adds no kind, readiness, stage or sequence; reading a Pack from one perspective records nothing, and no perspective is required before another or before ready is stated.
rule line 24 · specs/consumers/review-perspectives.sdp.md:24
The corpus owns its perspectives and their questions; the Protocol supplies the filter and ships no list of perspectives.
rule line 25 · specs/consumers/review-perspectives.sdp.md:25
A perspective is corpus data: a JSON object the corpus keeps beside its briefs and passes to the perspective filter, a catalog recipe, through --params. The reader loads no perspective file, and no validator lists or checks perspectives, so no registry forms.
rule line 26 · specs/consumers/review-perspectives.sdp.md:26
A perspective selects members by Spec id or id prefix, kind, section presence, Design key with an optional value, question key, and authored relation type with a stated direction; it selects component layer or context only through the member's code unit bindings, satisfying or referencing, that the perspective names; it infers nothing from prose, paths or imports.
rule line 27 · specs/consumers/review-perspectives.sdp.md:27
A member selected by a Design key, including the layer and context keys a component design states, is selected on declared intent; a member selected through a binding's component is selected on anchored structure; each row names which, and the two are never merged into one architecture answer.
rule line 28 · specs/consumers/review-perspectives.sdp.md:28
Values within one selector are alternatives and different selectors combine as requirements; an unsupported selector is a diagnostic in the result, and a valid selector that matches nothing is an explicit empty result.
rule line 29 · specs/consumers/review-perspectives.sdp.md:29
Members keep the manifest's authored order unless the perspective gives an explicit priority order, authored order breaking ties; every selected member's blocking questions stay visible whatever else the perspective filters out.

7 unkeyed rules.

Design
perspectiveObject line 33 · specs/consumers/review-perspectives.sdp.md:33
{ "name": "models", "select": { "kinds": ["model"] } } selects the members of kind model. A perspective is { name, select, order } with select and order optional, and its selectors are ids, idPrefixes, kinds, sections, designKeys, questionKeys, relations and bindings, each optional; different selectors combine as requirements. An absent selector imposes no requirement, a present empty list matches no member, and an absent or empty select object selects every member. A designKeys item is { key, value } with value optional; a relations item is { type, direction, target } with direction out or in and target optional; bindings is { via, layers, contexts }, where via is required and lists satisfies or references, and absent layers or contexts impose no restriction. order lists Spec ids by priority, authored order breaking ties.

no citation recorded

perspectiveRecipe line 34 · specs/consumers/review-perspectives.sdp.md:34
recipe 37, the perspective filter, takes params.pack and params.perspective and returns { pack, perspective, totals: { members, selected }, diagnostics, selected, notSelected }.
perspectiveRows line 35 · specs/consumers/review-perspectives.sdp.md:35
each selected row is { id, matchedOn: [{ selector, value, claim }], blockingQuestions: [{ address, question }] } in the perspective's order and then authored order; claim is declared for a match on authored intent and anchored for a match through a binding; notSelected lists the remaining member ids in authored order.
perspectiveDiagnostics line 36 · specs/consumers/review-perspectives.sdp.md:36
an unknown selector, a value of the wrong type or a bindings selector with no via is a diagnostic row { selector, problem }, and the recipe still applies the selectors it understood.
Verification

Verifier bindings

  • test:protocol.perspective-filter-recipe · anchored · test anchor binding present · test/iteration-recipes.test.ts:760
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.review-perspectives
Requirement drawing for spec:consumers.review-perspectivessatisfies · anchoredrefines · declaredverifies · anchoredIntended Specsspec:consumers.review-perspectivesA Pack is read from a namedperspective…consumers.review-perspectivesdeclared SpecSatisfying or referencingunitsimpl:protocol.perspective-filter-reciperealizes the perspectivefilter in the shippedrecipe catalogimpl:protocol.perspective-filter-recipeanchored codeTest or oracle bindingstest:protocol.perspective-filter-recipetest:protocol.perspective-filter-recipetest:protocol.perspective-filter-recipeanchored test binding ·binding presentOutside the selected setspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modeldeclared Spec
The diagram as text
  • spec:consumers.review-perspectives: A Pack is read from a named perspective · declared Spec
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • impl:protocol.perspective-filter-recipe: realizes the perspective filter in the shipped recipe catalog · anchored code · test/iteration-recipes.test.ts:753
  • test:protocol.perspective-filter-recipe: test:protocol.perspective-filter-recipe · anchored test binding · binding present · test/iteration-recipes.test.ts:760
  • spec:consumers.review-perspectives refines spec:consumers.projections-model · declared
  • impl:protocol.perspective-filter-recipe satisfies spec:consumers.review-perspectives · anchored
  • test:protocol.perspective-filter-recipe verifies spec:consumers.review-perspectives · 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
  • impl:protocol.perspective-filter-recipe · realizes the perspective filter in the shipped recipe catalog · test/iteration-recipes.test.ts:753

    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.review-perspectives
Relations of spec:consumers.review-perspectivesdependsOn · declareddependsOn · declareddependsOn · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…projections-modelOutgoing dependsOnspec:consumers.pack-designThe Pack context carriesthe Pack's design…pack-designSubjectspec:consumers.review-perspectivesA Pack is read from a namedperspective…review-perspectivesIncoming dependsOnspec:consumers.delivery-session-on-rampDelivery sessions routework from current graphstate…delivery-session-on-rampspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…design-slicespec:consumers.upgrade-kit.capability-adoptionCapability adoption countswhere each capability isused and where it couldapply…upgrade-kit.capability-adoption
The diagram as text
  • spec:consumers.delivery-session-on-ramp: Delivery sessions route work from current graph state
  • 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.pack-design: The Pack context carries the Pack's design
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.review-perspectives: A Pack is read from a named perspective
  • spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
  • spec:consumers.review-perspectives dependsOn spec:consumers.pack-design · declared
  • spec:consumers.review-perspectives refines spec:consumers.projections-model · declared
  • spec:consumers.delivery-session-on-ramp dependsOn spec:consumers.review-perspectives · declared — the design loop narrows a Pack to one perspective's members
  • spec:consumers.design-slice dependsOn spec:consumers.review-perspectives · declared — a slice read for one concern takes the members a perspective selects
  • spec:consumers.upgrade-kit.capability-adoption dependsOn spec:consumers.review-perspectives · declared — perspectives are counted from the objects the caller passes
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.pack-design · stated ready, floor ready

Rested on by

Distance 1

  • 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-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.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

Distance 2

  • 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.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.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.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.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

Distance 3

  • 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

Distance 4

  • 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.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.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: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 5

  • 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.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 6

  • 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 · outgoingThe Pack context carries the Pack's design
spec:consumers.pack-design · resolves
declaredNoneNone
refines · outgoingspec:consumers.projections-model
spec:consumers.projections-model · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.delivery-session-on-ramp
spec:consumers.delivery-session-on-ramp · resolves
declaredthe design loop narrows a Pack to one perspective's membersNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declareda slice read for one concern takes the members a perspective selectsNone
dependsOn · incomingspec:consumers.upgrade-kit.capability-adoption
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredperspectives are counted from the objects the caller passesNone

Bindings

Implementation binding: present

  • impl:protocol.perspective-filter-recipe · realizes the perspective filter in the shipped recipe catalog · test/iteration-recipes.test.ts:753 · role projection

Design reference: none

Verifier binding: present

  • test:protocol.perspective-filter-recipe · anchored · test/iteration-recipes.test.ts:760 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

16. A context bundle is composed per invocation within a stated budget

spec:consumers.context-bundle

A context bundle is composed per invocation within a stated budget

spec:consumers.context-bundleUse Case / Behavior · featureready floor ready

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

Design: 17 design entries · 7 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/context-bundle.sdp.md

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

The original design precomputed graph slices for different reading scopes and a prompt bundle for one Spec. The Protocol keeps context bundle for the reading material of one design pass, composed on demand.

The first adopter's design passes assemble the same reading material by hand: the Pack design, member questions, dependency footing, pinned declarations and carrying Spec text where the graph answer falls short. Its perspectives read the same Pack for different concerns. The agent front door composes a bundle on each invocation; the bundle is never a committed answer in the graph's name. It builds on Pack design.

At an adopter's scale a bundle is mostly structure, so its shape is compact. Each member and each example row names its carrier file once. A cut entry without an entry address keeps only its line, since its row and its place in the bundle already name it. A question, a pinned value or a member example's steps appears in one place. Pinned declarations stay whole by default, because a builder and a test author hold to them. A caller whose scope still does not fit may let the bundle cut them to their entry addresses, and then reads each one in its Spec when the pass needs it. A partial bundle stays refused, because a bundle missing members would read as the whole scope.

A scope can hold more design than one budget allows after every cut, as the first adopter's largest Packs do. A caller then reads the bundle in parts: the same bundle, split between members into ordered parts that each fit the budget, whose members together are the whole scope. In parts a cut is taken only when an item, a member or the boundary, does not fit a part by itself, so a part keeps the design a single bundle would have cut. A repeated header that exceeds the budget alone is named as one oversized item; otherwise each item that exceeds the budget alone is named. No part is returned in either case.

Intent
actor
An agent starting one design pass over a Pack or an ordered list of Specs.
problem
Each pass assembles the same reading material by running the same recipes and joining their answers by hand, and nothing bounds what it hands the model.
outcome
Give an agent the reading material for one design pass in one composed slice of the graph within a stated budget, so no session hand-assembles it.
Behavior
rule line 27 · specs/consumers/context-bundle.sdp.md:27
A bundle is a catalog recipe that takes its scope and its budget as recipe parameters; it adds no entrance and no query verb.
rule line 28 · specs/consumers/context-bundle.sdp.md:28
A bundle is composed from the graph on each invocation by the reader every recipe uses; nothing is precomputed, saved or committed, and two invocations over the same graph with the same parameters compose the same bundle.
rule line 29 · specs/consumers/context-bundle.sdp.md:29
A bundle takes one scope: pack, a Pack id, or specs, an ordered list of Spec ids. For specs the members are the listed Specs in the given order and the boundary is each member's one-hop neighbors through the four typed relations both ways, with verifies and supersedes apart, as the Pack boundary is built. Both scopes or neither is a diagnostic result. A changeset fills specs from the impacted Spec ids changed-file impact reports, and a Pack's open questions are read from the Pack bundle, not from a third scope.
rule line 30 · specs/consumers/context-bundle.sdp.md:30
With pack, a bundle may take members, an ordered subset of the Pack's member ids, which the perspective filter returns; it keeps the Pack's framing and boundary, lists only those members in that order, and states that it is a subset, so one filter implementation serves both recipes.
rule line 31 · specs/consumers/context-bundle.sdp.md:31
A bundle for a Pack carries the Pack design assembly, its members in authored order with their design columns and its boundary, then each member's open questions with their addresses and lines, its dependency footing, its pinned declarations and its examples.
rule line 32 · specs/consumers/context-bundle.sdp.md:32
The budget is a hard limit on a successful bundle, counted in UTF-16 code units, the length a recipe body reads, of the compact JSON.stringify of the value the recipe returns, its scope, budget and left-out statement included; sdp q --json prints a longer indented form, and the budget never measures printed text. The bundle also reports a token estimate labeled as an estimate, so no model's tokenizer binds the Protocol.
rule.oneCopy line 33 · specs/consumers/context-bundle.sdp.md:33
A bundle carries a member's open questions only in its questions, a pinned declaration's value only in its member's Design section, and an example's steps only in its own member row when the example is a member of the bundle; an example outside the bundle keeps its steps in the row of each member it refines or verifies.

no example exercises it

rule.cutOrder line 34 · specs/consumers/context-bundle.sdp.md:34
When the scope exceeds the budget, the bundle cuts in a fixed order and stops at the first cut after which it fits: boundary rows down to their ids, footing rows down to their ids, member narrative, example step text, non-blocking question text, remaining section values other than pinned declarations, then, only when the caller allows it, pinned declarations down to their entry addresses. It never cuts member ids, the stated rung, the floor reached, the stated next rung, blocking questions or entry addresses, and it cuts nothing else.

no example exercises it

rule.declarationAddresses line 35 · specs/consumers/context-bundle.sdp.md:35
A caller allows the last cut by passing declarations: "addresses"; without it, or with declarations: "whole", pinned declarations stay whole, and any other value is a diagnostic result.

no example exercises it

rule line 36 · specs/consumers/context-bundle.sdp.md:36
Without part, when the protected content alone exceeds the budget after every permitted cut, the recipe returns a budget-exceeded result as data and no partial bundle: the requested scope, the budget, and the minimum count the protected content needs in the same unit; sdp q exits 0, because the result is the body's return and not a refusal.
rule line 37 · specs/consumers/context-bundle.sdp.md:37
A bundle gives the file and line of an entry or a binding in place of a source excerpt, because the reader never reads source.
rule line 38 · specs/consumers/context-bundle.sdp.md:38
A bundle states its scope, its budget and what it left out to stay within the budget, so a reader knows what to read in the Specs themselves.
rule line 39 · specs/consumers/context-bundle.sdp.md:39
A bundle carries facts from the graph and no instructions of its own; the brief that tells an agent what to look for stays the corpus's own text.
rule.parts line 40 · specs/consumers/context-bundle.sdp.md:40
With part, the 1-based index of the part to return, a bundle comes in ordered parts, each within the budget, and the members of its parts, read in part order, are the bundle's members in order, each once.

spec:consumers.context-bundle.parts-cover-the-pack · enabled

rule.partBoundaries line 41 · specs/consumers/context-bundle.sdp.md:41
A part boundary falls between items and never inside one: the boundary is the first item and each member is one item, in the scope's order, and each part holds the longest run of items after the part before it that fits the budget.

spec:consumers.context-bundle.parts-cover-the-pack · enabled

rule.partCuts line 42 · specs/consumers/context-bundle.sdp.md:42
In parts the bundle tries the cut order one cut at a time, starting from no cut, splits the scope at each stage and takes the first stage at which every part fits the budget, each part measured whole in the shape it returns: its repeated fields, its leftOut, the boundary in part 1 and the final part.of; every part takes that stage's cuts and lists them in leftOut.

spec:consumers.context-bundle.parts-cover-the-pack · enabled

rule.partHeader line 43 · specs/consumers/context-bundle.sdp.md:43
Every part repeats the scope, the budget, the declaration mode, the cuts taken, its own place among the parts and, for a Pack scope, the Pack's id, title and framing, so each part reads on its own; only the first part carries the boundary.

spec:consumers.context-bundle.parts-cover-the-pack · enabled

rule.sameParts line 44 · specs/consumers/context-bundle.sdp.md:44
The split depends on the graph and on every parameter but part, so a caller that asks for each part in turn over one graph reads one bundle.

spec:consumers.context-bundle.parts-cover-the-pack · enabled

rule.oversizedItem line 45 · specs/consumers/context-bundle.sdp.md:45
When the repeated part header alone exceeds the budget after every permitted cut, the recipe names "header" as its one oversized item and returns no part. Otherwise, when an item alone exceeds the budget after every permitted cut, the recipe names each such item with its length and returns no part. In both cases sdp q exits 0.

spec:consumers.context-bundle.oversized-member-named · enabled

10 unkeyed rules.

Verifying examples

spec:consumers.context-bundle.oversized-member-named · spec:consumers.context-bundle.oversized-member-named · ready floor ready

Executable Spec

Given a probe Pack of three members whose bundle exceeds the budget {budget: 10000} {sizes: "and one member carries a blocking question longer than the budget"}
When each part of its context bundle is requested in turn
Then the answer names the oversized items {oversizedItems: "spec:probe.two"}

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

spec:consumers.context-bundle.parts-cover-the-pack · spec:consumers.context-bundle.parts-cover-the-pack · ready floor ready

Executable Spec

Given a probe Pack of three members whose bundle exceeds the budget {budget: 10000} {sizes: "while each member fits a part alone"}
When each part of its context bundle is requested in turn
Then the bundle comes in {parts: 3} parts, each within the budget
Then the members of the parts, in part order, are the Pack's members in authored order, each once: {complete: true}

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

Example space

Given a probe Pack of three members whose bundle exceeds the budget {budget:number} {sizes:"while each member fits a part alone"|"and one member carries a blocking question longer than the budget"}
When each part of its context bundle is requested in turn
Then the bundle comes in {parts:number} parts, each within the budget
Then the members of the parts, in part order, are the Pack's members in authored order, each once: {complete:boolean}
Then the answer names the oversized items {oversizedItems:string}
Design
bundleRecipe line 49 · specs/consumers/context-bundle.sdp.md:49
recipe 36, the context bundle, takes exactly one scope, params.pack or params.specs, an optional params.members beside pack, params.budget, 100,000 code units by default, params.declarations, "whole" by default or "addresses", and an optional params.part; a missing, doubled or unknown scope, another declarations value, or a part that is not a positive integer returns { diagnostics } and no bundle.
bundleShape line 50 · specs/consumers/context-bundle.sdp.md:50
{ scope, budget, declarations, used, tokenEstimate: { value, method }, leftOut, pack, members, boundary }, where declarations is the mode in force, pack is { id, title, framing } for a Pack scope and null otherwise, and tokenEstimate.method reads UTF-16 code units divided by four, an estimate.

no citation recorded

memberShape line 51 · specs/consumers/context-bundle.sdp.md:51
{ id, file, title, specKind, altitude, statedReadiness, floorReached, statedNextRung, holds, narrative, sections, questions, footing, declarations, examples, design, decisions, implementedBy, referencedBy, verifiers }, with file the member's carrier path; sections as the graph holds them, without intent.openQuestions; questions one row per open question in authored order, { index, question, blocking, key, address, line } with its fields, key absent and address null when it has none; footing as dependency footing (recipe 21) reports it; declarations the keys of the member's pinned declarations in Design order; design the counts of entries, declarations, open questions and blocking questions; decisions the decisions its design columns name; implementedBy and referencedBy as { id, claim, file, line, role, component }; and verifiers as { id, claim, enabled, file, line }. holds lists the member's stated-next-rung failures as the reader returns them, each with its clauseId and description, and with targets on a typed-dependency failure.

no citation recorded

exampleRow line 52 · specs/consumers/context-bundle.sdp.md:52
{ id, member, file, statedReadiness, enabled, steps } lists one example that refines or verifies the member, in id order, with member true and steps null when the example is itself a member of the bundle, its steps then sitting in its own member row.

no citation recorded

pointer line 53 · specs/consumers/context-bundle.sdp.md:53
{ line } replaces a cut entry that has no entry address, line being the line the location table records for it, or null when it records none; the entry's Spec and file are those of the row that holds it, and its place in the bundle names its path. A cut entry whose text names other entry addresses becomes a list of them, led by its own address when it has one and otherwise ended by its pointer.

no citation recorded

boundaryRows line 54 · specs/consumers/context-bundle.sdp.md:54
a Pack scope's boundary is the Pack design's; a Spec-list scope's boundary is every Spec outside the list one authored relation away from a listed Spec, in the same row shape.
footingCut line 55 · specs/consumers/context-bundle.sdp.md:55
{ refines, dependsOn, constrainedBy, decidedBy } replaces a member's footing at the footing cut, each a list of target ids in code-unit order, with a type that has no target left out.

no citation recorded

narrativeCut line 56 · specs/consumers/context-bundle.sdp.md:56
The narrative cut replaces a member's narrative with the entry addresses written in it, in order of first appearance and joined by single spaces, or with null when it holds none.
exampleCut line 57 · specs/consumers/context-bundle.sdp.md:57
The example cut replaces each entry of a member's behavior.examples, and its behavior.exampleSpace, with its pointer, and each example row's steps that are not null with the pointer of that example's behavior.examples.
questionCut line 58 · specs/consumers/context-bundle.sdp.md:58
The question cut replaces each non-blocking question in questions with its address, or with its pointer when it has no key, and with { pointer, links } when it has links, pointer being that address or pointer; blocking questions stay whole.
sectionCut line 59 · specs/consumers/context-bundle.sdp.md:59
The section cut replaces each section entry other than a pinned declaration with its entry address when it has one, and otherwise with its pointer.
declarationCut line 60 · specs/consumers/context-bundle.sdp.md:60
The declaration cut, taken only under declarations: "addresses", replaces each pinned declaration in its member's Design section with its entry address, or with its pointer when its key has none; the member's declarations keeps the keys.
leftOutLines line 61 · specs/consumers/context-bundle.sdp.md:61
One fixed line per cut taken, in cut order, makes up leftOut: Boundary details; ids kept per direction., Footing details; ids kept per relation type., Member narrative., Example step text, including member sections and example-space vocabulary., Non-blocking question text; addresses and links kept., Section entry values other than pinned declarations; addresses and lines kept. and Pinned declaration text; entry addresses kept.
budgetExceeded line 62 · specs/consumers/context-bundle.sdp.md:62
{ scope, budget, declarations, budgetExceeded: true, protectedLength, leftOut } is the whole result when the protected content alone exceeds the budget after every permitted cut, with protectedLength in the budget's unit.

no citation recorded

partShape line 63 · specs/consumers/context-bundle.sdp.md:63
a part is the bundle shape with part: { index, of } after declarations, where of is the number of parts; its members hold its run of members, its boundary holds the scope's boundary in part 1 and is null in every later part, and its used and tokenEstimate measure the part.
partDiagnostic line 64 · specs/consumers/context-bundle.sdp.md:64
a part above the number of parts returns { diagnostics: [{ scope: "part", problem: "The bundle has <of> parts." }] }, in the { scope, problem } row the recipe's other diagnostics use.
partsExceeded line 65 · specs/consumers/context-bundle.sdp.md:65
{ scope, budget, declarations, part: { index, of: null }, budgetExceeded: true, oversized: [{ item, length }], leftOut } is the whole result when an item exceeds the budget alone after every permitted cut, where item is "header" alone when the repeated header exceeds the budget, and otherwise a member id or "boundary", in scope order. For "header", length counts the code units of a part with part: { index: 1, of: 1 }, no members and a null boundary after every permitted cut; otherwise it counts a part that holds that item alone.

no citation recorded

Verification

Verifier bindings

  • spec:consumers.context-bundle.oversized-member-named · A member larger than the budget is named, and no part is returned · declared · example enabled · specs/consumers/context-bundle.oversized-member-named.sdp.md
  • spec:consumers.context-bundle.parts-cover-the-pack · A Pack too large for one bundle reads whole in parts · declared · example enabled · specs/consumers/context-bundle.parts-cover-the-pack.sdp.md
  • test:protocol.context-bundle-recipe · anchored · test anchor binding present · test/iteration-recipes.test.ts:772

Example space

  • budget · number · declared by a probe Pack of three members whose bundle exceeds the budget {budget} {sizes}
  • sizes · "while each member fits a part alone" | "and one member carries a blocking question longer than the budget" · declared by a probe Pack of three members whose bundle exceeds the budget {budget} {sizes}

Bound points

Examplebudgetsizes
spec:consumers.context-bundle.oversized-member-named10000"and one member carries a blocking question longer than the budget"
spec:consumers.context-bundle.parts-cover-the-pack10000"while each member fits a part alone"

Oracle binding: present · oracle:protocol.context-bundle-parts · test/self-hosting-bundle-parts.test.ts:55

Coverage

budget: 10000 · spec:consumers.context-bundle.oversized-member-named, spec:consumers.context-bundle.parts-cover-the-pack · not enumerable

sizes
Declared valueExamples
"while each member fits a part alone"spec:consumers.context-bundle.parts-cover-the-pack
"and one member carries a blocking question longer than the budget"spec:consumers.context-bundle.oversized-member-named

Unbound

  • budget: None
  • sizes: None
Design view

Requirement drawing

Requirement drawing for spec:consumers.context-bundle
  • E8: refines, verifies · declared
Requirement drawing for spec:consumers.context-bundleverifies · anchoredverifies · anchoredverifies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines, verifies · declaredE8Intended Specsspec:consumers.context-bundleA context bundle iscomposed per invocationwithin a stated budget…consumers.context-bundledeclared SpecDeclared verifying examplesspec:consumers.context-bundle.oversized-member-namedA member larger than thebudget is named, and nopart is returned…consumers.context-bundle.oversized-member-nameddeclared Specspec:consumers.context-bundle.parts-cover-the-packA Pack too large for onebundle reads whole in parts…consumers.context-bundle.parts-cover-the-packdeclared SpecSatisfying or referencingunitsimpl:protocol.context-bundle-reciperealizes the context bundlein the shipped recipecatalog…protocol.context-bundle-recipeanchored codeTest or oracle bindings3 test bindings · anchored, folded3 test bindings · anchoredoracle:protocol.context-bundle-partsoracle:protocol.context-bundle-parts…protocol.context-bundle-partsanchored oracle bindingOutside the selected setspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfacedeclared Spec
The diagram as text
  • spec:consumers.context-bundle: A context bundle is composed per invocation within a stated budget · declared Spec
  • spec:consumers.context-bundle.oversized-member-named: A member larger than the budget is named, and no part is returned · declared Spec
  • spec:consumers.context-bundle.parts-cover-the-pack: A Pack too large for one bundle reads whole in parts · declared Spec
  • spec:consumers.agent-surface: Agents script a visible typed graph · declared Spec
  • impl:protocol.context-bundle-recipe: realizes the context bundle in the shipped recipe catalog · anchored code · test/iteration-recipes.test.ts:765
  • oracle:protocol.context-bundle-parts: oracle:protocol.context-bundle-parts · anchored oracle binding · test/self-hosting-bundle-parts.test.ts:55
  • test:protocol.context-bundle-recipe: test:protocol.context-bundle-recipe · anchored test binding · binding present · test/iteration-recipes.test.ts:772
  • test:protocol.context-bundle.oversized-member-named: test:protocol.context-bundle.oversized-member-named · anchored test binding · binding present · test/self-hosting-bundle-parts.test.ts:148
  • test:protocol.context-bundle.parts-cover-the-pack: test:protocol.context-bundle.parts-cover-the-pack · anchored test binding · binding present · test/self-hosting-bundle-parts.test.ts:115
  • spec:consumers.context-bundle refines spec:consumers.agent-surface · declared
  • spec:consumers.context-bundle.oversized-member-named refines spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.oversized-member-named verifies spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.parts-cover-the-pack refines spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.parts-cover-the-pack verifies spec:consumers.context-bundle · declared
  • impl:protocol.context-bundle-recipe satisfies spec:consumers.context-bundle · anchored
  • oracle:protocol.context-bundle-parts models spec:consumers.context-bundle · anchored
  • test:protocol.context-bundle-recipe verifies spec:consumers.context-bundle · anchored
  • test:protocol.context-bundle.oversized-member-named verifies spec:consumers.context-bundle.oversized-member-named · anchored
  • test:protocol.context-bundle.parts-cover-the-pack verifies spec:consumers.context-bundle.parts-cover-the-pack · 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

  • spec:decisions.agent-front-door

    The front door is two entrances over one seam: the package exports the reader constructor, and the CLI carries a single evaluation sink that derives the graph in process, injects that same reader, and prints the body's pre-shaped return.

Runtime
  • impl:protocol.context-bundle-recipe · realizes the context bundle in the shipped recipe catalog · test/iteration-recipes.test.ts:765

    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.context-bundle
Relations of spec:consumers.context-bundlerefines · declareddependsOn · declareddecidedBy · declaredrefines · declaredverifies · declareddependsOn · declareddependsOn · declaredOutgoing refinesspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfaceOutgoing dependsOnspec:consumers.agent-surface.design-recipesDesign work reads itsanswers from catalog recipes…consumers.agent-surface.design-recipesOutgoing decidedByspec:decisions.agent-front-doorThe agent front door is oneevaluation sink over theexported reader…decisions.agent-front-doorSubjectspec:consumers.context-bundleA context bundle iscomposed per invocationwithin a stated budget…consumers.context-bundleIncoming refinesspec:consumers.context-bundle.fold.Incoming.refines2 Incoming refines, folded…consumers.context-bundle.fold.Incoming.refinesIncoming dependsOnspec:consumers.delivery-session-on-rampDelivery sessions routework from current graphstate…consumers.delivery-session-on-rampspec:consumers.design-sliceA slice reads a Pack as onedesign, with thearchitecture it touches andwhat each member needs next…consumers.design-slice
The diagram as text
  • spec:consumers.agent-surface: Agents script a visible typed graph
  • 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.context-bundle.oversized-member-named: A member larger than the budget is named, and no part is returned
  • spec:consumers.context-bundle.parts-cover-the-pack: A Pack too large for one bundle reads whole in parts
  • spec:consumers.delivery-session-on-ramp: Delivery sessions route work from current graph state
  • spec:consumers.design-slice: A slice reads a Pack as one design, with the architecture it touches and what each member needs next
  • spec:decisions.agent-front-door: The agent front door is one evaluation sink over the exported reader
  • spec:consumers.context-bundle decidedBy spec:decisions.agent-front-door · declared
  • spec:consumers.context-bundle dependsOn spec:consumers.agent-surface.design-recipes · declared
  • spec:consumers.context-bundle refines spec:consumers.agent-surface · declared
  • spec:consumers.delivery-session-on-ramp dependsOn spec:consumers.context-bundle · declared — the design loop composes each pass's reading material as a context bundle
  • 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.context-bundle.oversized-member-named refines spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.parts-cover-the-pack refines spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.oversized-member-named verifies spec:consumers.context-bundle · declared
  • spec:consumers.context-bundle.parts-cover-the-pack verifies spec:consumers.context-bundle · 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.agent-surface · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.design-recipes · stated ready, floor ready
  • decidedBy · spec:decisions.agent-front-door · stated ready, floor ready

Rested on by

Distance 1

  • 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.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-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

Distance 2

  • 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.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.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.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

Distance 3

  • 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

Distance 4

  • 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.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.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: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 5

  • 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.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 6

  • 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 · outgoingspec:decisions.agent-front-door
spec:decisions.agent-front-door · resolves
declaredNoneNone
dependsOn · outgoingDesign work reads its answers from catalog recipes
spec:consumers.agent-surface.design-recipes · resolves
declaredNoneNone
refines · outgoingspec:consumers.agent-surface
spec:consumers.agent-surface · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.delivery-session-on-ramp
spec:consumers.delivery-session-on-ramp · resolves
declaredthe design loop composes each pass's reading material as a context bundleNone
dependsOn · incomingspec:consumers.design-slice
spec:consumers.design-slice · resolves
declareda slice takes its scope as the bundle does, and builds a Spec list's boundary the same wayNone
refines · incomingspec:consumers.context-bundle.oversized-member-named
spec:consumers.context-bundle.oversized-member-named · resolves
declaredNoneNone
refines · incomingspec:consumers.context-bundle.parts-cover-the-pack
spec:consumers.context-bundle.parts-cover-the-pack · resolves
declaredNoneNone
verifies · incomingspec:consumers.context-bundle.oversized-member-named
spec:consumers.context-bundle.oversized-member-named · resolves
declaredNoneoversizedItem
verifies · incomingspec:consumers.context-bundle.parts-cover-the-pack
spec:consumers.context-bundle.parts-cover-the-pack · resolves
declaredNoneparts, partBoundaries, partCuts, partHeader, sameParts

Bindings

Implementation binding: present

  • impl:protocol.context-bundle-recipe · realizes the context bundle in the shipped recipe catalog · test/iteration-recipes.test.ts:765 · role projection

Design reference: none

Verifier binding: present

  • spec:consumers.context-bundle.oversized-member-named · A member larger than the budget is named, and no part is returned · declared · specs/consumers/context-bundle.oversized-member-named.sdp.md · example enabled
  • spec:consumers.context-bundle.parts-cover-the-pack · A Pack too large for one bundle reads whole in parts · declared · specs/consumers/context-bundle.parts-cover-the-pack.sdp.md · example enabled
  • test:protocol.context-bundle-recipe · anchored · test/iteration-recipes.test.ts:772 · test anchor

Expected-outcome oracle: present

  • oracle:protocol.context-bundle-parts · test/self-hosting-bundle-parts.test.ts:55

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

17. Designs are compared between a base commit and the working tree at entry grain

spec:consumers.design-diff

Designs are compared between a base commit and the working tree at entry grain

spec:consumers.design-diffUse Case / Behavior · featureready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/design-diff.sdp.md

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

The original design compared graph snapshots. Comparison concerns the curated graph a design lives in and needs no symbol identity.

Iterating on a design asks what changed since the last reading. The first adopter asks for a comparison by Spec id, section and entry key that tells changed declaration text from changed prose, moved entries, readiness edits, relation edits and new or removed examples, and for what changed since a design pass, read against the commit that pass read (libar-platform/docs/feedback/sdp-feedback-02.md, items 30 and 31). Git shows the changed lines; this comparison shows the changed design.

Intent
actor
A reviewer or an agent starting the next design pass over a Pack, holding the commit the last pass read.
problem
A line diff of the carriers shows edits but not which Specs, entries, questions and relations changed, so each pass re-reads the whole Pack to find what moved.
outcome
Show what changed in a design between a base commit and the working tree, down to the Spec, section and keyed entry, so a reviewer reads what changed since the last pass.
Behavior
rule line 28 · specs/consumers/design-diff.sdp.md:28
The design diff compares a base graph with the current graph.
rule line 29 · specs/consumers/design-diff.sdp.md:29
A comparison is a catalog recipe that takes the graph sdp build wrote at the base commit as a recipe parameter and compares it with the graph the evaluation derives from the working tree, including uncommitted edits; it adds no verb or binding.
rule line 30 · specs/consumers/design-diff.sdp.md:30
The base graph is input the caller holds, derived from the repository alone at the base commit; it never answers in the graph's name, and the comparison writes nothing.
rule line 31 · specs/consumers/design-diff.sdp.md:31
The caller always names the base. The recipe reads no record of a design pass and keeps none, and a corpus that notes which commit a pass read keeps that note outside the graph.
rule line 32 · specs/consumers/design-diff.sdp.md:32
Two graphs written by different engine versions are compared on what both carry; the result reports each side's schema version, and a difference is a diagnostic in the result, never a refusal.
rule line 33 · specs/consumers/design-diff.sdp.md:33
It reports the Specs added and removed, and for a Spec present in both graphs the changes to its title, kind, altitude, stated readiness, relations, narrative and each section.
rule line 34 · specs/consumers/design-diff.sdp.md:34
Inside the Design and UI sections, the open questions and other keyed sections apart from rules and flows, it compares keyed entries by key and reports each as added, removed, changed in value or moved in order.
rule line 35 · specs/consumers/design-diff.sdp.md:35
Rule and flow entries match first by unchanged text, preferring the same key for repeated wording, then by retained key; remaining unkeyed base entries pair in list order, including an entry reworded while adding a key. An unmatched keyed base entry is removed, and an unmatched head entry is added. Other unkeyed entries have no identity across the two graphs and compare as part of their whole section.
rule line 36 · specs/consumers/design-diff.sdp.md:36
A rule or flow with unchanged text whose key was added, removed or changed is one keyed change naming its old and new address, or none; only a text change is changed. An unchanged entry moving between rules and flows is moved; when one graph keeps no order across rules and flows, keyed entries compare by order within each list and a ruleOrder diagnostic names the Spec.
rule line 37 · specs/consumers/design-diff.sdp.md:37
It reports changes to Pack membership, member order and what a Pack's order means, and to the code units, verifiers and delivery facts bound to each Spec, kept apart from the authored changes because they derive from anchors.
rule line 38 · specs/consumers/design-diff.sdp.md:38
A comparison states facts about the two graphs and confers nothing. It grants no approval, raises no staleness flag, moves no readiness and never records that a pass happened.

11 unkeyed rules.

Design
diffRecipe line 42 · specs/consumers/design-diff.sdp.md:42
recipe 35, the design diff, takes params.base, the graph object sdp build wrote at the base commit, an optional params.pack that limits the comparison to the Specs that are members of that Pack at either commit, and params.detail; it compares params.base with the graph binding and reads nothing else.
diffShape line 43 · specs/consumers/design-diff.sdp.md:43
{ base: { schemaVersion, specs }, head: { schemaVersion, specs }, diagnostics, totals, specs: { added: [id], removed: [id], changed }, packs, bindings, leftOut }, where totals counts each list and diagnostics lists schema-version differences, parts outside the common schema, a Pack absent from both graphs, and Specs compared without order across rules and flows; base.specs and head.specs count the Specs of the comparison scope present on each side, the scope being every Spec or, with pack, the Pack's members in either graph, while the top-level specs object carries the change lists.

no citation recorded

changedSpecRow line 44 · specs/consumers/design-diff.sdp.md:44
{ id, parts: [part] } in the summary and { id, parts: [{ part, change, from, to }] } with detail: true; change is added, removed, changed, moved or keyed. For keyed, from and to carry the old and new entry addresses, null meaning none; other changes carry the values on each side, a rule or flow value as { list, text }. A text change while adding a key is one changed entry.

no citation recorded

diffParts line 45 · specs/consumers/design-diff.sdp.md:45
a part is title, specKind, altitude, statedReadiness, narrative, relation.<type>:<target>, a keyed entry as design.<key>, ui.<key>, question.<key>, rule.<key> or term.<term>, an unkeyed rule or flow as behavior.rules[<index>] or behavior.flows[<index>], using its head index; a removed unkeyed entry uses its base index with a (base) mark, such as behavior.rules[1] (base), so it cannot share a name with a head entry at that index; an unkeyed question list as intent.openQuestions, and any other section as its name.
movedEntry line 46 · specs/consumers/design-diff.sdp.md:46
a keyed entry whose value is unchanged and whose position among the keyed entries of its section changed is moved; an entry whose value changed is changed whatever its position. For rules and flows, unchanged text with a different key takes keyed precedence, then a list change or relative order change among retained entries is moved; anonymous entries compare order within their list. Adding or removing a key alone moves no other entry.
packRows line 47 · specs/consumers/design-diff.sdp.md:47
packs rows are { id, change, membersAdded, membersRemoved, reordered, orderChanged, orderBefore, orderAfter } for each Pack added, removed or changed in membership, member order or order meaning; orderBefore and orderAfter are "reading" or "priority", null on a side where the Pack is absent, and orderChanged is true when both sides hold the Pack and the two differ. An absent order reads as "reading" in every schema version; a value the head's engine does not know is outside the common schema, listed in diagnostics and not compared; that Pack's membership and member order still compare, its orderChanged is false, and the side holding the unknown value reads null. membersAdded and membersRemoved keep their respective manifest order.

no citation recorded

bindingRows line 48 · specs/consumers/design-diff.sdp.md:48
bindings rows are { id, implementedBy, referencedBy, verifiers, deliveryFacts }, each an { added, removed } pair of ids or fact names, kept apart from specs because they derive from anchors.

no citation recorded

baseRecipe line 49 · specs/consumers/design-diff.sdp.md:49
The catalog shows how to derive the base graph in a worktree at the base commit with the corpus's exclusions. When constant-form anchors use relative engine imports, as in this repository, run the base worktree's own engine, then pass its generated/graph.json as base and remove the worktree.
Verification

Verifier bindings

  • test:protocol.design-diff-recipe · anchored · test anchor binding present · test/iteration-recipes.test.ts:34
  • test:protocol.roadmap-priority · checks Pack priority extraction, comparison and Studio change notes · anchored · test anchor binding present · test/roadmap-priority.test.ts:44
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.design-diff
The diagram as text
  • spec:consumers.design-diff: Designs are compared between a base commit and the working tree at entry grain · declared Spec
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • impl:protocol.design-diff-recipe: realizes the design diff in the shipped recipe catalog · anchored code · test/iteration-recipes.test.ts:27
  • test:protocol.design-diff-recipe: test:protocol.design-diff-recipe · anchored test binding · binding present · test/iteration-recipes.test.ts:34
  • test:protocol.roadmap-priority: checks Pack priority extraction, comparison and Studio change notes · anchored test binding · binding present · test/roadmap-priority.test.ts:44
  • spec:consumers.design-diff refines spec:consumers.projections-model · declared
  • impl:protocol.design-diff-recipe satisfies spec:consumers.design-diff · anchored
  • test:protocol.design-diff-recipe verifies spec:consumers.design-diff · anchored
  • test:protocol.roadmap-priority verifies spec:consumers.design-diff · 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.roadmap-priority

    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.design-diff-recipe · realizes the design diff in the shipped recipe catalog · test/iteration-recipes.test.ts:27

    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-diff
  • E4: constrainedBy · declared — equal sources derive equal graphs, so a difference records a source change
Relations of spec:consumers.design-diffdependsOn · declaredrefines · declareddecidedBy · declaredE4dependsOn · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modelOutgoing dependsOnspec:consumers.agent-surface.recipe-parametersRecipes take parameters asdata and ship as runnablefiles…consumers.agent-surface.recipe-parametersOutgoing constrainedByspec:extraction.determinismCommitted source derivesbyte-identical output…extraction.determinismOutgoing decidedByspec:decisions.roadmap-priorityA roadmap states advisorypriority in the graph…decisions.roadmap-prioritySubjectspec:consumers.design-diffDesigns are comparedbetween a base commit andthe working tree at entrygrain…consumers.design-diffIncoming dependsOnspec:consumers.design-diff.fold.Incoming.dependsOn4 Incoming dependsOn, folded…consumers.design-diff.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files
  • spec:consumers.delivery-session-on-ramp: Delivery sessions route work from current graph state
  • spec:consumers.design-diff: Designs are compared between a base commit and the working tree at entry grain
  • spec:consumers.intent-composition.proposal: A change proposal is addressed, based and checked before it lands
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.spec-studio.data.inputs: The Studio reads two named inputs beside the graph, a base graph and run records
  • spec:consumers.spec-studio.diff-page: The diff page shows what changed in the design since a base graph
  • spec:decisions.roadmap-priority: A roadmap states advisory priority in the graph
  • spec:extraction.determinism: Committed source derives byte-identical output
  • spec:consumers.design-diff constrainedBy spec:extraction.determinism · declared — equal sources derive equal graphs, so a difference records a source change
  • spec:consumers.design-diff decidedBy spec:decisions.roadmap-priority · declared
  • spec:consumers.design-diff dependsOn spec:consumers.agent-surface.recipe-parameters · declared — the base graph is supplied as recipe-parameter data, including the KEY=@PATH file form
  • spec:consumers.design-diff refines spec:consumers.projections-model · declared
  • spec:consumers.delivery-session-on-ramp dependsOn spec:consumers.design-diff · declared — the design loop starts from what changed since the last pass
  • spec:consumers.intent-composition.proposal dependsOn spec:consumers.design-diff · declared
  • spec:consumers.spec-studio.data.inputs dependsOn spec:consumers.design-diff · declared — the base graph input is the design diff's base
  • spec:consumers.spec-studio.diff-page dependsOn spec:consumers.design-diff · declared — the page renders the design diff between the base graph and the graph built
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.agent-surface.recipe-parameters · stated ready, floor ready
  • constrainedBy · spec:extraction.determinism · stated ready, floor ready
  • decidedBy · spec:decisions.roadmap-priority · stated ready, floor ready

Rested on by

Distance 1

  • 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.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

Distance 2

  • 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.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.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.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.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.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.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.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.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.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 3

  • 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.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.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.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.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.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.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.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.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

  • 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:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

Distance 4

  • 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.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.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.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.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.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.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.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.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

    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 5

  • 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.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.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.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.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.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.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.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

Distance 6

  • 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.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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-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

Distance 7

  • 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
constrainedBy · outgoingspec:extraction.determinism
spec:extraction.determinism · resolves
declaredequal sources derive equal graphs, so a difference records a source changeNone
decidedBy · outgoingspec:decisions.roadmap-priority
spec:decisions.roadmap-priority · resolves
declaredNoneNone
dependsOn · outgoingRecipes take parameters as data and ship as runnable files
spec:consumers.agent-surface.recipe-parameters · resolves
declaredthe base graph is supplied as recipe-parameter data, including the KEY=@PATH file formNone
refines · outgoingspec:consumers.projections-model
spec:consumers.projections-model · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.delivery-session-on-ramp
spec:consumers.delivery-session-on-ramp · resolves
declaredthe design loop starts from what changed since the last passNone
dependsOn · incomingA change proposal is addressed, based and checked before it lands
spec:consumers.intent-composition.proposal · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.spec-studio.data.inputs
spec:consumers.spec-studio.data.inputs · resolves
declaredthe base graph input is the design diff's baseNone
dependsOn · incomingspec:consumers.spec-studio.diff-page
spec:consumers.spec-studio.diff-page · resolves
declaredthe page renders the design diff between the base graph and the graph builtNone

Bindings

Implementation binding: present

  • impl:protocol.design-diff-recipe · realizes the design diff in the shipped recipe catalog · test/iteration-recipes.test.ts:27 · role projection

Design reference: none

Verifier binding: present

  • test:protocol.design-diff-recipe · anchored · test/iteration-recipes.test.ts:34 · test anchor
  • test:protocol.roadmap-priority · checks Pack priority extraction, comparison and Studio change notes · anchored · test/roadmap-priority.test.ts:44 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

18. A change proposal is addressed, based and checked before it lands

spec:consumers.intent-composition.proposal

A change proposal is addressed, based and checked before it lands

spec:consumers.intent-composition.proposalContract · storyready floor ready

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

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

Findings: no errors, no warnings

specs/consumers/intent-composition.proposal.sdp.md

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

The original design's patch loop made every change from a view reviewable and checked before it touched source. A patch named its target, the graph hash it was made against, a rationale, its operations and who proposed it; a CLI checked its schema and its base, applied it to a copy of the graph, ran the validators and only then rewrote the Spec files (docs/lineage/v0-design/02-system-architecture.md §2; 07-spec-studio-and-projections.md §6). The Protocol refused the patch and the codemod. A view composes scoped intent, an agent edits source as a person would, git records the edit and the same checks evaluate it. That edit model drops two things the patch loop gave: a proposed change a person can review before an agent applies it, and a guard against a proposal made against an older design.

The first adopter's agents already write proposals in that shape. A design pass returns findings that each name an entry address or a Spec section, state the gap, and propose exact text for a Spec with the entry it replaces or follows (libar-platform/design/advisors/task-pass.md), and its register tool applies a JSON patch only after checking all of it (libar-platform/design/advisors/register.md). This Spec states the reviewable half of the patch loop without the codemod. A proposal is a request that an agent applies as an ordinary edit, checked by sdp validate on a worktree before it merges. It also gives the Spec Studio's composing panel a shape to hand off.

Intent
problem
A proposed design change travels as free prose, so a reviewer cannot tell what it touches, which version of the design it read, or whether it still applies once the design has moved.
outcome
Give a proposed design change a reviewable shape: what it touches by Spec id or entry address, the commit it was read at, the change requested and why, checked on a worktree before merge.
Contract
rule line 25 · specs/consumers/intent-composition.proposal.sdp.md:25
A proposal is one JSON document on one schema, which a recipe takes as a parameter; a Markdown memo is a rendering of that document and never a second source of it.
rule line 26 · specs/consumers/intent-composition.proposal.sdp.md:26
A proposal names its scope as one or more Spec ids or entry addresses, each resolved before anything is applied: a Spec id through the reader's Spec context, an entry address through address resolution.
rule line 27 · specs/consumers/intent-composition.proposal.sdp.md:27
A proposal names the commit whose graph it was read against.
rule line 28 · specs/consumers/intent-composition.proposal.sdp.md:28
A proposal states the requested change in words an agent can apply, such as the exact text for an entry with the address it replaces or follows, a new open question with its flag, or a relation to declare or remove.
rule line 29 · specs/consumers/intent-composition.proposal.sdp.md:29
A proposal states its reason in one line.
rule line 30 · specs/consumers/intent-composition.proposal.sdp.md:30
The proposal check compares each change's scope between the proposal's base commit and the working tree through the design diff, entry by entry, and reports each change on its own row, so one changed scope never hides the state of another change; the check applies nothing and routes nothing.
rule line 31 · specs/consumers/intent-composition.proposal.sdp.md:31
Applying a proposal is an ordinary source edit by an agent or a person; no tool rewrites a carrier from it, and nothing is applied to a copy of the graph first.
rule line 32 · specs/consumers/intent-composition.proposal.sdp.md:32
A proposal carries no status, approval or verdict, and the graph records none; whether it was accepted is git history and the adopter's own record.
rule line 33 · specs/consumers/intent-composition.proposal.sdp.md:33
A proposal carries no proposer. Whoever hands it over is its author until it is applied, and then git authorship and co-author trailers are the record; the schema refuses the field.

9 unkeyed rules.

Design
proposalDocument line 37 · specs/consumers/intent-composition.proposal.sdp.md:37
{ "schema": "sdp-proposal/1", "base": "<commit>", "reason": "<one line>", "changes": [change] }, with schema, base, reason and a non-empty changes required and no other field.

no citation recorded

proposalChange line 38 · specs/consumers/intent-composition.proposal.sdp.md:38
{ "scope": ["<spec id or entry address>"], "request": "<words an agent can apply>", "text": "<exact entry text>", "replaces": "<entry address>", "follows": "<entry address>", "relation": { "action": "declare", "from": "<spec id>", "type": "dependsOn", "target": "<spec id>" }, "reason": "<one line>" }, with scope non-empty and request required, replaces and follows exclusive, action either declare or remove, from naming the relation's source Spec, and no other field.

no citation recorded

proposalSchemaFile line 39 · specs/consumers/intent-composition.proposal.sdp.md:39
the package ships the document's JSON Schema as schemas/sdp-proposal-1.schema.json, so an agent can use it as a structured-output schema; the check recipe validates the same shape itself, and a test holds the two to the same accepted and refused samples.
checkRecipe line 40 · specs/consumers/intent-composition.proposal.sdp.md:40
recipe 38, the proposal check, takes params.proposal and params.base, the base graph, and returns { schemaProblems: [{ path, problem }], base, diagnostics, totals: { changes, moved, unresolved }, changes }, with the design diff's diagnostics for the Specs it compares; when the document breaks the schema or the base graph is missing it returns the problems and no change rows.
checkedScope line 41 · specs/consumers/intent-composition.proposal.sdp.md:41
the check resolves and compares the deduplicated union of scope, replaces, follows and relation.from, and a change row's scope reports that union, so an entry a change replaces or follows cannot move unseen.
checkRows line 42 · specs/consumers/intent-composition.proposal.sdp.md:42
each change row is { index, scope: [{ ref, resolvesAtHead, resolvesAtBase, moved }], moved, relationTarget }; an item's moved is true when its Spec is added or removed between the two graphs, and otherwise, for an entry address, when the entry's value is added, removed or changed, an order-only move leaving it false, or, for a whole Spec, when any of its parts changed or moved in order; the row's moved is true when any item's is; relationTarget is { ref, resolvesAtHead } for a declared relation and null otherwise.
incomparableScope line 43 · specs/consumers/intent-composition.proposal.sdp.md:43
an item outside the common schema, or an otherwise unmoved whole-Spec item whose order across rules and flows one graph does not keep, carries comparable: false and a reason in place of moved; its row carries comparable: false and a null moved unless another item moved.
Verification

Verifier bindings

  • test:protocol.proposal-schema-and-recipe · anchored · test anchor binding present · test/iteration-recipes.test.ts:1517
Design view

Requirement drawing

Requirement drawing for spec:consumers.intent-composition.proposal
Requirement drawing for spec:consumers.intent-composition.proposalsatisfies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.intent-composition.proposalA change proposal isaddressed, based andchecked before it lands…consumers.intent-composition.proposaldeclared Specspec:consumers.intent-composition.proposal.memoRecipe 49 renders a changeproposal as the Markdownmemo a person reviews…consumers.intent-composition.proposal.memodeclared SpecDeclared verifying examplesspec:consumers.intent-composition.proposal.memo.sharedRecipe 49 and the composingpanel write one memo forone proposal…consumers.intent-composition.proposal.memo.shareddeclared SpecSatisfying or referencingunits4 satisfying units · anchored, folded4 satisfying units ·anchoredTest or oracle bindingsoracle:protocol.studio-memooracle:protocol.studio-memo…protocol.studio-memoanchored oracle bindingtest:protocol.proposal-schema-and-recipetest:protocol.proposal-schema-and-recipe…protocol.proposal-schema-and-recipeanchored test binding ·binding presenttest:protocol.studio-memo-sharedtest:protocol.studio-memo-shared…protocol.studio-memo-sharedanchored test binding ·binding presentOutside the selected setspec:consumers.intent-compositionComposed intent hands offon one proposal shape…consumers.intent-compositiondeclared Spec
The diagram as text
  • spec:consumers.intent-composition.proposal: A change proposal is addressed, based and checked before it lands · declared Spec
  • spec:consumers.intent-composition.proposal.memo: Recipe 49 renders a change proposal as the Markdown memo a person reviews · declared Spec
  • spec:consumers.intent-composition.proposal.memo.shared: Recipe 49 and the composing panel write one memo for one proposal · declared Spec
  • spec:consumers.intent-composition: Composed intent hands off on one proposal shape · declared Spec
  • impl:protocol.proposal-memo-recipe: realizes the catalog proposal memo through its verbatim body check · anchored code · test/recipes.test.ts:7298
  • impl:protocol.proposal-schema-and-recipe: realizes the shipped proposal schema and proposal check in the recipe catalog · anchored code · test/iteration-recipes.test.ts:1510
  • impl:protocol.studio-proposal-contract: browser proposal shape and schema checks · anchored code · src/studio-elements/proposal.ts:1
  • impl:protocol.studio-proposal-memo: renders proposal fields verbatim with fences that outgrow their content · anchored code · src/studio-elements/memo.ts:13
  • oracle:protocol.studio-memo: oracle:protocol.studio-memo · anchored oracle binding · test/studio-s5.test.ts:262
  • test:protocol.proposal-schema-and-recipe: test:protocol.proposal-schema-and-recipe · anchored test binding · binding present · test/iteration-recipes.test.ts:1517
  • test:protocol.studio-memo-shared: test:protocol.studio-memo-shared · anchored test binding · binding present · test/studio-s5.test.ts:272
  • spec:consumers.intent-composition.proposal refines spec:consumers.intent-composition · declared
  • spec:consumers.intent-composition.proposal.memo refines spec:consumers.intent-composition.proposal · declared
  • spec:consumers.intent-composition.proposal.memo.shared refines spec:consumers.intent-composition.proposal.memo · declared
  • spec:consumers.intent-composition.proposal.memo.shared verifies spec:consumers.intent-composition.proposal.memo · declared
  • impl:protocol.proposal-memo-recipe satisfies spec:consumers.intent-composition.proposal.memo · anchored
  • impl:protocol.proposal-schema-and-recipe satisfies spec:consumers.intent-composition.proposal · anchored
  • impl:protocol.studio-proposal-contract satisfies spec:consumers.intent-composition.proposal · anchored
  • impl:protocol.studio-proposal-memo satisfies spec:consumers.intent-composition.proposal.memo · anchored
  • oracle:protocol.studio-memo models spec:consumers.intent-composition.proposal.memo · anchored
  • test:protocol.proposal-schema-and-recipe verifies spec:consumers.intent-composition.proposal · anchored
  • test:protocol.studio-memo-shared verifies spec:consumers.intent-composition.proposal.memo.shared · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

No decision record named.

Runtime
  • component:protocol.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.proposal-schema-and-recipe · realizes the shipped proposal schema and proposal check in the recipe catalog · test/iteration-recipes.test.ts:1510

    Uses

    None.

  • impl:protocol.studio-proposal-contract · browser proposal shape and schema checks · src/studio-elements/proposal.ts:1

    Component: component:protocol.studio-elements · optional browser behavior and proposal handoff · src/studio-elements/index.ts:13 · 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.intent-composition.proposal
Relations of spec:consumers.intent-composition.proposaldependsOn · declareddependsOn · declareddependsOn · declaredrefines · declareddependsOn · declaredrefines · declaredOutgoing refinesspec:consumers.intent-compositionComposed intent hands offon one proposal shape…intent-compositionOutgoing dependsOnspec:consumers.agent-surface.address-and-cycle-recipesAddress resolution anddependency cycles stayexecutable graph recipes…agent-surface.address-and-cycle-recipesspec:consumers.design-diffDesigns are comparedbetween a base commit andthe working tree at entrygrain…design-diffspec:consumers.edit-modelViews compose scoped intentinstead of patchingcanonical source…edit-modelSubjectspec:consumers.intent-composition.proposalA change proposal isaddressed, based andchecked before it lands…intent-composition.proposalIncoming refinesspec:consumers.intent-composition.proposal.memoRecipe 49 renders a changeproposal as the Markdownmemo a person reviews…intent-composition.proposal.memoIncoming dependsOnspec:consumers.intent-composition.proposal.fold.Incoming.dependsOn5 Incoming dependsOn, folded…intent-composition.proposal.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes
  • spec:consumers.delivery-session-on-ramp: Delivery sessions route work from current graph state
  • spec:consumers.design-diff: Designs are compared between a base commit and the working tree at entry grain
  • spec:consumers.edit-model: Views compose scoped intent instead of patching canonical source
  • spec:consumers.intent-composition: Composed intent hands off on one proposal shape
  • 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.obsidian-vault.iteration: A design pass is followed and answered from the vault
  • spec:consumers.spec-studio.intent-panel: A composing panel on every page gathers scoped intent for an agent
  • spec:consumers.upgrade-kit.rule-key-proposal: The rule-key proposal keys every unkeyed rule as a change proposal
  • 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.intent-composition.proposal dependsOn spec:consumers.agent-surface.address-and-cycle-recipes · declared — the check resolves entry-address scopes through address resolution
  • spec:consumers.intent-composition.proposal dependsOn spec:consumers.design-diff · declared
  • spec:consumers.intent-composition.proposal dependsOn spec:consumers.edit-model · declared
  • spec:consumers.intent-composition.proposal refines spec:consumers.intent-composition · declared
  • spec:consumers.delivery-session-on-ramp dependsOn spec:consumers.intent-composition.proposal · declared — the design loop hands its findings back as a change proposal checked against its base
  • spec:consumers.obsidian-vault.iteration dependsOn spec:consumers.intent-composition.proposal · declared — intent composed in the vault hands off on the one proposal contract
  • spec:consumers.spec-studio.intent-panel dependsOn spec:consumers.intent-composition.proposal · declared — the panel hands off a change proposal
  • spec:consumers.upgrade-kit.rule-key-proposal dependsOn spec:consumers.intent-composition.proposal · declared — the recipe writes a change proposal in the shape the proposal check reads
  • 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:consumers.intent-composition.proposal.memo refines spec:consumers.intent-composition.proposal · 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.intent-composition · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.address-and-cycle-recipes · stated ready, floor ready
  • dependsOn · spec:consumers.design-diff · stated ready, floor ready
  • dependsOn · spec:consumers.edit-model · stated ready, floor ready

Rested on by

Distance 1

  • 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.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.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.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.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.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 2

  • 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.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.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.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.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.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.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.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.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:protocol.delivery-record-cleanup

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

Distance 3

  • 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.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.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.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.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

Distance 4

  • 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.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.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

    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.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.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.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.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.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

  • 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 5

  • 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.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.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.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.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.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.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.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.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.structural-mermaid

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:design-management-v1, pack:self-hosting-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

Distance 6

  • 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.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.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

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingspec:consumers.agent-surface.address-and-cycle-recipes
spec:consumers.agent-surface.address-and-cycle-recipes · resolves
declaredthe check resolves entry-address scopes through address resolutionNone
dependsOn · outgoingDesigns are compared between a base commit and the working tree at entry grain
spec:consumers.design-diff · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.edit-model
spec:consumers.edit-model · resolves
declaredNoneNone
refines · outgoingspec:consumers.intent-composition
spec:consumers.intent-composition · resolves
declaredNoneNone
dependsOn · incomingspec:consumers.delivery-session-on-ramp
spec:consumers.delivery-session-on-ramp · resolves
declaredthe design loop hands its findings back as a change proposal checked against its baseNone
dependsOn · incomingspec:consumers.obsidian-vault.iteration
spec:consumers.obsidian-vault.iteration · resolves
declaredintent composed in the vault hands off on the one proposal contractNone
dependsOn · incomingspec:consumers.spec-studio.intent-panel
spec:consumers.spec-studio.intent-panel · resolves
declaredthe panel hands off a change proposalNone
dependsOn · incomingspec:consumers.upgrade-kit.rule-key-proposal
spec:consumers.upgrade-kit.rule-key-proposal · resolves
declaredthe recipe writes a change proposal in the shape the proposal check readsNone
dependsOn · incomingspec:protocol.roadmap-replaces-plans
spec:protocol.roadmap-replaces-plans · resolves
declareda review's findings against Specs travel as a checked change proposalNone
refines · incomingspec:consumers.intent-composition.proposal.memo
spec:consumers.intent-composition.proposal.memo · resolves
declaredNoneNone

Bindings

Implementation binding: present

  • impl:protocol.proposal-schema-and-recipe · realizes the shipped proposal schema and proposal check in the recipe catalog · test/iteration-recipes.test.ts:1510 · role contract
  • impl:protocol.studio-proposal-contract · browser proposal shape and schema checks · src/studio-elements/proposal.ts:1 · role contract · component component:protocol.studio-elements · layer edge · context protocol

Design reference: none

Verifier binding: present

  • test:protocol.proposal-schema-and-recipe · anchored · test/iteration-recipes.test.ts:1517 · test anchor

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

19. A reference projection serves a reader outside the repository

spec:consumers.reference-projection

A reference projection serves a reader outside the repository

spec:consumers.reference-projectionUse Case / Behavior · featureidea floor idea

Next rung scoped waits on 1 unmet clause:

  • kind-evidence-present · The kind's natural evidence is present (per-kind evidence table).

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

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

Findings: no errors, no warnings

specs/consumers/reference-projection.sdp.md

2 open questions and 1 blocking question; implementation binding none, verifier binding none, and expected-outcome oracle none.

An interface and API reference is a deferred projection of the graph. The original design generated OpenAPI and AsyncAPI documents from route and schema nodes linked to their Specs. This capture keeps the reader and source questions open until a reader needs a reference the shipped projections do not provide.

Intent
outcome
Publish a current interface and API reference from the graph for a reader outside the repository, once such a reader is named.

Open questions

  • blocking · question.namedOutsideReader line 17 · specs/consumers/reference-projection.sdp.md:17 · Does a human reader outside the repository need a reference projection the four shipped roots do not serve? The taxonomy row is not that reader.Decider: ownerTrigger: a named consumer outside the repository, with a way to measure that demand inside the arc that builds the projection
  • non-blocking · question.referenceSource line 20 · specs/consumers/reference-projection.sdp.md:20 · Would the reference read pinned declarations, contract-kind Specs or api: code anchors, and does any of them hold enough to document an interface?
Behavior

0 unkeyed rules.

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.reference-projection

Arrows: refines (declared).

Requirement drawing for spec:consumers.reference-projectionIntended Specsspec:consumers.reference-projectionA reference projectionserves a reader outside therepository…reference-projectiondeclared 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.reference-projection: A reference projection serves a reader outside the repository · declared Spec · no satisfying binding
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • spec:consumers.reference-projection 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.reference-projection

Arrows: refines (declared).

Relations of spec:consumers.reference-projectionOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…projections-modelSubjectspec:consumers.reference-projectionA reference projectionserves a reader outside therepository…reference-projection
The diagram as text
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.reference-projection: A reference projection serves a reader outside the repository
  • spec:consumers.reference-projection 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

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
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.

20. Mermaid diagrams can be rooted at code units

spec:consumers.structural-mermaid

Mermaid diagrams can be rooted at code units

spec:consumers.structural-mermaidUse Case / Behavior · featurescoped 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:design-management-v1, pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/consumers/structural-mermaid.sdp.md

1 open question and 1 blocking question; implementation binding none, verifier binding none, and expected-outcome oracle none.

The shipped Mermaid projection draws bounded diagrams rooted at a Spec or a Pack. A Spec-rooted diagram within the bounds includes directly bound code units and test anchors; component membership and uses are read through the census and structural recipes. A view rooted at code units, grouping components by their context and layer, is now the Studio's architecture lens. Adding such a view to the shipped Mermaid root would still need a decision that narrows or replaces the projection freeze.

Intent
outcome
Draw component, membership and uses diagrams rooted at code units, once a reader needs them and the existing views do not serve it.

Open questions

  • blocking · question.namedStructuralReader line 21 · specs/consumers/structural-mermaid.sdp.md:21 · Does a reader need diagrams rooted at code units, which census tables and Spec-rooted one-hop Mermaid do not serve?Decider: ownerTrigger: a named reader with that need, plus a decision that refines spec:decisions.shipped-projections-frozen for the affected Mermaid rendering or supersedes that ruling whole
Behavior
rule.architectureLens line 26 · specs/consumers/structural-mermaid.sdp.md:26
A component diagram rooted at code units groups its components by context and orders them by layer, and the Studio's architecture lens, spec:consumers.spec-studio.lenses.architecture, draws it; the shipped Mermaid root draws none.

no example exercises it

0 unkeyed rules.

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.structural-mermaid

Arrows: refines (declared).

Requirement drawing for spec:consumers.structural-mermaidIntended Specsspec:consumers.structural-mermaidMermaid diagrams can berooted at code units…structural-mermaiddeclared 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.structural-mermaid: Mermaid diagrams can be rooted at code units · declared Spec · no satisfying binding
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • spec:consumers.structural-mermaid 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

  • 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.

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.structural-mermaid
Relations of spec:consumers.structural-mermaidrefines · declareddependsOn · declareddecidedBy · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modelOutgoing dependsOnspec:consumers.spec-studio.lenses.architectureThe architecture lens drawscomponents by context andlayer, the planned besidethe built…consumers.spec-studio.lenses.architectureOutgoing decidedByspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozenSubjectspec:consumers.structural-mermaidMermaid diagrams can berooted at code units…consumers.structural-mermaid
The diagram as text
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.spec-studio.lenses.architecture: The architecture lens draws components by context and layer, the planned beside the built
  • spec:consumers.structural-mermaid: Mermaid diagrams can be rooted at code units
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen
  • spec:consumers.structural-mermaid decidedBy spec:decisions.shipped-projections-frozen · declared
  • spec:consumers.structural-mermaid dependsOn spec:consumers.spec-studio.lenses.architecture · declared — the lens draws the component diagram rooted at code units this Spec asked for
  • spec:consumers.structural-mermaid 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.spec-studio.lenses.architecture · stated ready, floor ready
  • decidedBy · spec:decisions.shipped-projections-frozen · 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
dependsOn · outgoingspec:consumers.spec-studio.lenses.architecture
spec:consumers.spec-studio.lenses.architecture · resolves
declaredthe lens draws the component diagram rooted at code units this Spec asked forNone
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.

21. A Spec shaped by a superseded decision warns

spec:validation.superseded-decision-signal

A Spec shaped by a superseded decision warns

spec:validation.superseded-decision-signalBusiness Rule · storyready floor ready

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

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

Findings: no errors, no warnings

specs/validation/superseded-decision-signal.sdp.md

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

The original design checked lifecycle integrity. It flagged a superseded Spec that live Specs still depend on, and a deprecated decision still named by decidedBy (docs/lineage/v0-design/06-extraction-and-validation.md §6.3.4). A corpus may keep a replaced decision whose text still explains something a reader needs. Its supersedes edge and a shaped Spec's decidedBy edge then make a stale shaping relation visible in the graph, and this signal reads the two together.

Only decidedBy says that a ruling shapes a Spec now. A refines between decisions narrows a ruling for one case and stays true after the ruling it narrows is replaced, and a dependsOn that names a decision is not how a corpus says a ruling shapes it, so reading either would warn about relations that are not stale. When a replacement is itself replaced, the author needs the record at the end of the chain, so the warning names that record and leaves the steps between to the decision register.

Intent
problem
A Spec can stay shaped by a decision that a later decision replaced, and nothing tells its author that the ruling it rests on has moved.
outcome
Surface a live Spec that is still shaped by a decision another decision has superseded, as an informative warning.
Rule

Each world builds its graph in memory, and every probe Spec carries its kind's evidence, so only the signal moves the findings. Each probe's full id joins the probe family and its name, as probe.decision-a does. A live subject is the behavior Spec shaped in the file shaped.sdp.md, whose location table records its decidedBy row on line 7. A superseded subject is the decision decision-s, which decision-b supersedes, and a replacing subject is decision-b itself. The subject names the probe decision decision-a, and the replacing decisions are decision-b, decision-c and decision-d, which state the rung the point binds. One replacement is decision-b superseding decision-a; a chain of two adds decision-c superseding decision-b; two at once are decision-b and decision-c each superseding decision-a; a closed chain is decision-b superseding decision-a and decision-a superseding decision-b; an end and a loop at once are decision-b and decision-c each superseding decision-a, with decision-c and decision-d superseding each other. The named decisions are the ends and loop members the warnings name, full ids joined by a comma and a space in code-unit order, or nothing when no warning names any. The field and message steps read the one warning the point reports, and the message step fills the Design entry it names with that warning's ids.

rule.readsDecidedBy line 28 · specs/validation/superseded-decision-signal.sdp.md:28
The signal reads two kinds of authored edge and nothing else: decidedBy from a Spec to a decision, and supersedes between decisions. A refines, dependsOn or constrainedBy that names a superseded decision is never read, and neither is a refines between decisions.

spec:validation.superseded-decision-signal.dependency-unread · enabled, spec:validation.superseded-decision-signal.replaced-ruling-warns · enabled

rule.keptRecordLawful line 29 · specs/validation/superseded-decision-signal.sdp.md:29
A corpus may keep a replaced decision while its text explains something a reader still needs; keeping it is lawful, and a deleted decision leaves a dangling decidedBy that referential integrity reports and this signal does not read.

no example exercises it

rule.onePerPair line 30 · specs/validation/superseded-decision-signal.sdp.md:30
A live Spec that names through decidedBy a decision another decision supersedes carries one warning for that pair, with the shaped Spec as its subject and the superseded decision as its related Spec; a Spec shaped by two superseded decisions carries two warnings.

spec:validation.superseded-decision-signal.live-replacement-warns · enabled, spec:validation.superseded-decision-signal.replaced-ruling-warns · enabled

rule.chainEnd line 31 · specs/validation/superseded-decision-signal.sdp.md:31
The warning names the decision at the end of each replacement chain: from the superseded decision the walk follows supersedes to the decisions that replace it, and on from each of those, and a decision it reaches that no decision supersedes is an end. Where the chain branches, the warning names every end.

spec:validation.superseded-decision-signal.branch-names-every-end · enabled, spec:validation.superseded-decision-signal.chain-end-named · enabled, spec:validation.superseded-decision-signal.end-and-loop-named · enabled, spec:validation.superseded-decision-signal.replaced-ruling-warns · enabled

rule.closedChain line 32 · specs/validation/superseded-decision-signal.sdp.md:32
The walk visits each decision once. A loop is a set of decisions the walk reaches, the superseded decision included, that supersede one another in a cycle, or one decision that supersedes itself. When the walk reaches a loop, the warning says the chain of replacements closes on itself and names each decision in a loop it reaches, and no other decision it passes through; when it also reaches an end, it names the ends as well. A loop is never an error and is never followed twice.

spec:validation.superseded-decision-signal.closed-chain-named · enabled, spec:validation.superseded-decision-signal.end-and-loop-named · enabled

rule.anyRung line 33 · specs/validation/superseded-decision-signal.sdp.md:33
The signal reads every supersedes edge whatever rung either decision states, so a replacement still below ready is named as it stands and its rung is read where the reader looks it up.

spec:validation.superseded-decision-signal.replacement-below-ready-named · enabled

rule.liveSubjectsOnly line 34 · specs/validation/superseded-decision-signal.sdp.md:34
A Spec that a resolving supersedes edge targets is not live and carries no warning for the decisions it names. A decision that supersedes another stays live until it is itself superseded, so its own decidedBy relations warn as any live Spec's do, even when the walk from the decision it names reaches it.

spec:validation.superseded-decision-signal.live-replacement-warns · enabled, spec:validation.superseded-decision-signal.superseded-subject-silent · enabled

rule.informative line 35 · specs/validation/superseded-decision-signal.sdp.md:35
The warning never fails validation, as the orphan and gap signals never do; the Protocol fixes its severity and no setting changes it.

spec:validation.superseded-decision-signal.closed-chain-named · enabled, spec:validation.superseded-decision-signal.replaced-ruling-warns · enabled

rule.noSupersedesWarning line 36 · specs/validation/superseded-decision-signal.sdp.md:36
The supersedes edge itself is never warned, and a superseded decision is never warned for being superseded.

spec:validation.superseded-decision-signal.replaced-ruling-warns · enabled, spec:validation.superseded-decision-signal.superseded-subject-silent · enabled

rule.noContentJudgment line 37 · specs/validation/superseded-decision-signal.sdp.md:37
The signal judges no content: it never asks whether the newer ruling fits the shaped Spec, and moving the decidedBy to the end of the chain, or deleting the replaced record, is the author's edit.

no example exercises it

0 unkeyed rules.

Verifying examples

spec:validation.superseded-decision-signal.branch-names-every-end · spec:validation.superseded-decision-signal.branch-names-every-end · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "two decisions at once"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-b, spec:probe.decision-c"}
Then the warning message follows {template: "message"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.branch-names-every-end

spec:validation.superseded-decision-signal.chain-end-named · spec:validation.superseded-decision-signal.chain-end-named · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "a chain of two decisions"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-c"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.chain-end-named

spec:validation.superseded-decision-signal.closed-chain-named · spec:validation.superseded-decision-signal.closed-chain-named · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "a chain that closes on itself"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-a, spec:probe.decision-b"}
Then the warning message follows {template: "closedChainMessage"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.closed-chain-named

spec:validation.superseded-decision-signal.dependency-unread · spec:validation.superseded-decision-signal.dependency-unread · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "dependsOn"}
Given the probe decision is replaced by {replacement: "one decision"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 0} superseded-decision warnings
Then the warnings name {named: "nothing"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.dependency-unread

spec:validation.superseded-decision-signal.end-and-loop-named · spec:validation.superseded-decision-signal.end-and-loop-named · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "an end and a loop at once"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-b, spec:probe.decision-c, spec:probe.decision-d"}
Then the warning message follows {template: "mixedChainMessage"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.end-and-loop-named

spec:validation.superseded-decision-signal.live-replacement-warns · spec:validation.superseded-decision-signal.live-replacement-warns · ready floor ready

Executable Spec

Given a {subject: "replacing decision"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "one decision"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-b"}
Then the warning has the subject {subjectId: "spec:probe.decision-b"} and the related Spec {relatedId: "spec:probe.decision-a"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.live-replacement-warns

spec:validation.superseded-decision-signal.replaced-ruling-warns · spec:validation.superseded-decision-signal.replaced-ruling-warns · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "one decision"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-b"}
Then the warning is {validatorId: "conformance/superseded-decisions"} in the {family: "conformance"} family at severity {severity: "warning"}
Then the warning has the subject {subjectId: "spec:probe.shaped"} and the related Spec {relatedId: "spec:probe.decision-a"}
Then the warning sits at {path: "relation.decidedBy.spec:probe.decision-a"} in {file: "shaped.sdp.md"} on line {line: 7}
Then the warning message follows {template: "message"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.replaced-ruling-warns

spec:validation.superseded-decision-signal.replacement-below-ready-named · spec:validation.superseded-decision-signal.replacement-below-ready-named · ready floor ready

Executable Spec

Given a {subject: "live Spec"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "one decision"}
Given every replacing decision states {replacementRung: "idea"}
When the graph is validated
Then the report holds {warnings: 1} superseded-decision warnings
Then the warnings name {named: "spec:probe.decision-b"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.replacement-below-ready-named

spec:validation.superseded-decision-signal.superseded-subject-silent · spec:validation.superseded-decision-signal.superseded-subject-silent · ready floor ready

Executable Spec

Given a {subject: "superseded decision"} names the probe decision through {relation: "decidedBy"}
Given the probe decision is replaced by {replacement: "one decision"}
Given every replacing decision states {replacementRung: "ready"}
When the graph is validated
Then the report holds {warnings: 0} superseded-decision warnings
Then the warnings name {named: "nothing"}
Then the report holds {errorCount: 0} errors

spec:validation.superseded-decision-signal.superseded-subject-silent

Example space

Given a {subject:"live Spec"|"superseded decision"|"replacing decision"} names the probe decision through {relation:"decidedBy"|"dependsOn"}
Given the probe decision is replaced by {replacement:"no decision"|"one decision"|"a chain of two decisions"|"two decisions at once"|"a chain that closes on itself"|"an end and a loop at once"}
Given every replacing decision states {replacementRung:"idea"|"ready"}
When the graph is validated
Then the report holds {warnings:number} superseded-decision warnings
Then the warnings name {named:string}
Then the warning is {validatorId:string} in the {family:string} family at severity {severity:string}
Then the warning has the subject {subjectId:string} and the related Spec {relatedId:string}
Then the warning sits at {path:string} in {file:string} on line {line:number}
Then the warning message follows {template:"message"|"closedChainMessage"|"mixedChainMessage"}
Then the report holds {errorCount:number} errors
Design
validatorId line 40 · specs/validation/superseded-decision-signal.sdp.md:40
conformance/superseded-decisions, registered as supersededDecisions in graphValidatorIds; a new id, never a reused one.

no citation recorded

family line 41 · specs/validation/superseded-decision-signal.sdp.md:41
conformance: the signal reads whether a Spec's authored relations still reach a current ruling, as the orphan signal reads whether any relation reaches a Spec.

no citation recorded

severity line 42 · specs/validation/superseded-decision-signal.sdp.md:42
warning, fixed by the Protocol.

no citation recorded

warningFields line 43 · specs/validation/superseded-decision-signal.sdp.md:43
subjectId is the shaped Spec, relatedId the superseded decision it names, path is relation.decidedBy.<relatedId>, the location table's entry for that relation, file is the shaped Spec's file, and line is that row's line, present only when the carrier recorded one.

no citation recorded

message line 44 · specs/validation/superseded-decision-signal.sdp.md:44
Spec "<subjectId>" is decided by "<relatedId>", which a later decision supersedes; the chain of replacements ends at "<end>" (informative, never a gate)., with ends at "<end>", "<end>" when the chain branches.

no citation recorded

closedChainMessage line 45 · specs/validation/superseded-decision-signal.sdp.md:45
Spec "<subjectId>" is decided by "<relatedId>", whose chain of replacements closes on itself through "<loop-id>", "<loop-id>" (informative, never a gate)., used when the walk reaches no end, naming each decision in a loop it reaches.

no citation recorded

mixedChainMessage line 46 · specs/validation/superseded-decision-signal.sdp.md:46
Spec "<subjectId>" is decided by "<relatedId>", whose chain of replacements ends at "<end>" and also closes on itself through "<loop-id>", "<loop-id>" (informative, never a gate)., used when the walk reaches both, with every end and every loop member listed as the other two messages list them.

no citation recorded

chainWalk line 47 · specs/validation/superseded-decision-signal.sdp.md:47
read the resolving, declared supersedes edges whose source and target are both decision Specs, and index each by its target; from the superseded decision, visit each decision reachable along those edges from target to source once; an end is a reached decision other than the start that no such edge targets; a loop member is a reached decision, the start included, in a strongly connected component of two or more decisions or with an edge to itself; ends and loop members are collected apart.
idOrder line 48 · specs/validation/superseded-decision-signal.sdp.md:48
the ids a message lists sort in code-unit order, and the findings sort as every report's findings do.
skippedPairs line 49 · specs/validation/superseded-decision-signal.sdp.md:49
no warning for a decidedBy whose target does not resolve, is not a decision, or is targeted by no supersedes edge the walk reads, and none for a subject a resolving supersedes edge targets; a subject the walk reaches is still checked.
Verification

Verifier bindings

  • spec:validation.superseded-decision-signal.branch-names-every-end · A replacement chain that branches names every end · declared · example enabled · specs/validation/superseded-decision-signal.branch-names-every-end.sdp.md
  • spec:validation.superseded-decision-signal.chain-end-named · The warning names the decision at the end of a chain of replacements · declared · example enabled · specs/validation/superseded-decision-signal.chain-end-named.sdp.md
  • spec:validation.superseded-decision-signal.closed-chain-named · A chain of replacements that closes on itself is named and fails nothing · declared · example enabled · specs/validation/superseded-decision-signal.closed-chain-named.sdp.md
  • spec:validation.superseded-decision-signal.dependency-unread · A dependency on a replaced decision raises no warning · declared · example enabled · specs/validation/superseded-decision-signal.dependency-unread.sdp.md
  • spec:validation.superseded-decision-signal.end-and-loop-named · A chain of replacements that reaches an end and a loop names both · declared · example enabled · specs/validation/superseded-decision-signal.end-and-loop-named.sdp.md
  • spec:validation.superseded-decision-signal.live-replacement-warns · A decision still decided by the record it replaces warns · declared · example enabled · specs/validation/superseded-decision-signal.live-replacement-warns.sdp.md
  • spec:validation.superseded-decision-signal.replaced-ruling-warns · A Spec shaped by a replaced decision warns once and fails nothing · declared · example enabled · specs/validation/superseded-decision-signal.replaced-ruling-warns.sdp.md
  • spec:validation.superseded-decision-signal.replacement-below-ready-named · A replacement still below ready is named as it stands · declared · example enabled · specs/validation/superseded-decision-signal.replacement-below-ready-named.sdp.md
  • spec:validation.superseded-decision-signal.superseded-subject-silent · A superseded decision is not warned for the decision it names · declared · example enabled · specs/validation/superseded-decision-signal.superseded-subject-silent.sdp.md

Example space

  • subject · "live Spec" | "superseded decision" | "replacing decision" · declared by a {subject} names the probe decision through {relation}
  • relation · "decidedBy" | "dependsOn" · declared by a {subject} names the probe decision through {relation}
  • replacement · "no decision" | "one decision" | "a chain of two decisions" | "two decisions at once" | "a chain that closes on itself" | "an end and a loop at once" · declared by the probe decision is replaced by {replacement}
  • replacementRung · "idea" | "ready" · declared by every replacing decision states {replacementRung}

Bound points

ExamplesubjectrelationreplacementreplacementRung
spec:validation.superseded-decision-signal.branch-names-every-end"live Spec""decidedBy""two decisions at once""ready"
spec:validation.superseded-decision-signal.chain-end-named"live Spec""decidedBy""a chain of two decisions""ready"
spec:validation.superseded-decision-signal.closed-chain-named"live Spec""decidedBy""a chain that closes on itself""ready"
spec:validation.superseded-decision-signal.dependency-unread"live Spec""dependsOn""one decision""ready"
spec:validation.superseded-decision-signal.end-and-loop-named"live Spec""decidedBy""an end and a loop at once""ready"
spec:validation.superseded-decision-signal.live-replacement-warns"replacing decision""decidedBy""one decision""ready"
spec:validation.superseded-decision-signal.replaced-ruling-warns"live Spec""decidedBy""one decision""ready"
spec:validation.superseded-decision-signal.replacement-below-ready-named"live Spec""decidedBy""one decision""idea"
spec:validation.superseded-decision-signal.superseded-subject-silent"superseded decision""decidedBy""one decision""ready"

Oracle binding: present · oracle:protocol.superseded-decision-signal · test/self-hosting-validators.test.ts:1551

Coverage

subject
Declared valueExamples
"live Spec"spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named
"superseded decision"spec:validation.superseded-decision-signal.superseded-subject-silent
"replacing decision"spec:validation.superseded-decision-signal.live-replacement-warns
relation
Declared valueExamples
"decidedBy"spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent
"dependsOn"spec:validation.superseded-decision-signal.dependency-unread
replacement
Declared valueExamples
"no decision"no example
"one decision"spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.replacement-below-ready-named, spec:validation.superseded-decision-signal.superseded-subject-silent
"a chain of two decisions"spec:validation.superseded-decision-signal.chain-end-named
"two decisions at once"spec:validation.superseded-decision-signal.branch-names-every-end
"a chain that closes on itself"spec:validation.superseded-decision-signal.closed-chain-named
"an end and a loop at once"spec:validation.superseded-decision-signal.end-and-loop-named
replacementRung
Declared valueExamples
"idea"spec:validation.superseded-decision-signal.replacement-below-ready-named
"ready"spec:validation.superseded-decision-signal.branch-names-every-end, spec:validation.superseded-decision-signal.chain-end-named, spec:validation.superseded-decision-signal.closed-chain-named, spec:validation.superseded-decision-signal.dependency-unread, spec:validation.superseded-decision-signal.end-and-loop-named, spec:validation.superseded-decision-signal.live-replacement-warns, spec:validation.superseded-decision-signal.replaced-ruling-warns, spec:validation.superseded-decision-signal.superseded-subject-silent

Unbound

  • subject: None
  • relation: None
  • replacement: None
  • replacementRung: None
Design view

Requirement drawing

Requirement drawing for spec:validation.superseded-decision-signal
Requirement drawing for spec:validation.superseded-decision-signalrefines, verifies · declaredsatisfies · anchoredmodels · anchoredrefines · declaredIntended Specsspec:validation.superseded-decision-signalA Spec shaped by asuperseded decision warns…validation.superseded-decision-signaldeclared SpecDeclared verifying examples9 verifying examples · declared; 9 test bindings · anchored, folded9 verifying examples ·declared9 test bindings · anchored ·foldedSatisfying or referencingunitsimpl:protocol.superseded-decision-signalwalks decision replacementsto surface stale shapingrelationsimpl:protocol.superseded-decision-signalanchored codeTest or oracle bindingsoracle:protocol.superseded-decision-signaloracle:protocol.superseded-decision-signaloracle:protocol.superseded-decision-signalanchored oracle bindingOutside the selected setspec:validation.warn-level-signalsMissing connective evidencewarns without failing…validation.warn-level-signalsdeclared Spec
The diagram as text
  • spec:validation.superseded-decision-signal: A Spec shaped by a superseded decision warns · declared Spec
  • spec:validation.superseded-decision-signal.branch-names-every-end: A replacement chain that branches names every end · declared Spec
  • spec:validation.superseded-decision-signal.chain-end-named: The warning names the decision at the end of a chain of replacements · declared Spec
  • spec:validation.superseded-decision-signal.closed-chain-named: A chain of replacements that closes on itself is named and fails nothing · declared Spec
  • spec:validation.superseded-decision-signal.dependency-unread: A dependency on a replaced decision raises no warning · declared Spec
  • spec:validation.superseded-decision-signal.end-and-loop-named: A chain of replacements that reaches an end and a loop names both · declared Spec
  • spec:validation.superseded-decision-signal.live-replacement-warns: A decision still decided by the record it replaces warns · declared Spec
  • spec:validation.superseded-decision-signal.replaced-ruling-warns: A Spec shaped by a replaced decision warns once and fails nothing · declared Spec
  • spec:validation.superseded-decision-signal.replacement-below-ready-named: A replacement still below ready is named as it stands · declared Spec
  • spec:validation.superseded-decision-signal.superseded-subject-silent: A superseded decision is not warned for the decision it names · declared Spec
  • spec:validation.warn-level-signals: Missing connective evidence warns without failing · declared Spec
  • impl:protocol.superseded-decision-signal: walks decision replacements to surface stale shaping relations · anchored code · src/validate/validators.ts:1817
  • oracle:protocol.superseded-decision-signal: oracle:protocol.superseded-decision-signal · anchored oracle binding · test/self-hosting-validators.test.ts:1551
  • test:protocol.superseded-decision-signal.branch-names-every-end: test:protocol.superseded-decision-signal.branch-names-every-end · anchored test binding · binding present · test/self-hosting-validators.test.ts:1666
  • test:protocol.superseded-decision-signal.chain-end-named: test:protocol.superseded-decision-signal.chain-end-named · anchored test binding · binding present · test/self-hosting-validators.test.ts:1651
  • test:protocol.superseded-decision-signal.closed-chain-named: test:protocol.superseded-decision-signal.closed-chain-named · anchored test binding · binding present · test/self-hosting-validators.test.ts:1681
  • test:protocol.superseded-decision-signal.dependency-unread: test:protocol.superseded-decision-signal.dependency-unread · anchored test binding · binding present · test/self-hosting-validators.test.ts:1696
  • test:protocol.superseded-decision-signal.end-and-loop-named: test:protocol.superseded-decision-signal.end-and-loop-named · anchored test binding · binding present · test/self-hosting-validators.test.ts:1756
  • test:protocol.superseded-decision-signal.live-replacement-warns: test:protocol.superseded-decision-signal.live-replacement-warns · anchored test binding · binding present · test/self-hosting-validators.test.ts:1741
  • test:protocol.superseded-decision-signal.replaced-ruling-warns: test:protocol.superseded-decision-signal.replaced-ruling-warns · anchored test binding · binding present · test/self-hosting-validators.test.ts:1636
  • test:protocol.superseded-decision-signal.replacement-below-ready-named: test:protocol.superseded-decision-signal.replacement-below-ready-named · anchored test binding · binding present · test/self-hosting-validators.test.ts:1726
  • test:protocol.superseded-decision-signal.superseded-subject-silent: test:protocol.superseded-decision-signal.superseded-subject-silent · anchored test binding · binding present · test/self-hosting-validators.test.ts:1711
  • spec:validation.superseded-decision-signal refines spec:validation.warn-level-signals · declared
  • spec:validation.superseded-decision-signal.branch-names-every-end refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.branch-names-every-end verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.chain-end-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.chain-end-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.closed-chain-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.closed-chain-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.dependency-unread refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.dependency-unread verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.end-and-loop-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.end-and-loop-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.live-replacement-warns refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.live-replacement-warns verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replaced-ruling-warns refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replaced-ruling-warns verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replacement-below-ready-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replacement-below-ready-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.superseded-subject-silent refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.superseded-subject-silent verifies spec:validation.superseded-decision-signal · declared
  • impl:protocol.superseded-decision-signal satisfies spec:validation.superseded-decision-signal · anchored
  • oracle:protocol.superseded-decision-signal models spec:validation.superseded-decision-signal · anchored
  • test:protocol.superseded-decision-signal.branch-names-every-end verifies spec:validation.superseded-decision-signal.branch-names-every-end · anchored
  • test:protocol.superseded-decision-signal.chain-end-named verifies spec:validation.superseded-decision-signal.chain-end-named · anchored
  • test:protocol.superseded-decision-signal.closed-chain-named verifies spec:validation.superseded-decision-signal.closed-chain-named · anchored
  • test:protocol.superseded-decision-signal.dependency-unread verifies spec:validation.superseded-decision-signal.dependency-unread · anchored
  • test:protocol.superseded-decision-signal.end-and-loop-named verifies spec:validation.superseded-decision-signal.end-and-loop-named · anchored
  • test:protocol.superseded-decision-signal.live-replacement-warns verifies spec:validation.superseded-decision-signal.live-replacement-warns · anchored
  • test:protocol.superseded-decision-signal.replaced-ruling-warns verifies spec:validation.superseded-decision-signal.replaced-ruling-warns · anchored
  • test:protocol.superseded-decision-signal.replacement-below-ready-named verifies spec:validation.superseded-decision-signal.replacement-below-ready-named · anchored
  • test:protocol.superseded-decision-signal.superseded-subject-silent verifies spec:validation.superseded-decision-signal.superseded-subject-silent · 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

  • spec:decisions.planning-truths-placement

    Each planning-truth type lives in its ruled home. Work-item dependency truth rides dependsOn edges, with independence as absence of the edge and scheduling phrases never authored. Decision gates live on decision-kind Specs, linked by decidedBy. Do-not-reopen rows split by what they carry: a tradeoff refusal becomes a decision-kind Spec, which a later decision that supersedes it replaces whole and a later decision that refines it narrows for one case, either under the ADR three-part test; a row that restates a behavior guarantee already homed on a carrying Spec stays on that Spec and changes by ordinary Spec revision; a hold stays a blocking open question on its own Spec and is never minted as a decision. A lawful non-decision stays in the plan record as evidence. A deferral carries its re-entry trigger in the trigger field of its own blocking open question, and declares dependsOn separately when a true precondition exists. Exclusive ownership is one Spec identity per deliverable with consumers depending on it. Selection-pressure heuristics are advisory only, carried as behavior rules on the graph-first planning Spec or in recipes. Session law splits separately, across behavior rules on the graph-first planning Spec, the delivery-session on-ramp's handoff rule, and the plan file. The briefs index shape is retired as a carrier of law.

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

    Uses

    • component:protocol.graph · the one graph and its semantic decisions · src/graph/schema.ts:34 · layer domain · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • component:protocol.notation · the leaf step codec · src/notation/slots.ts:261 · layer domain · context protocol
  • impl:protocol.superseded-decision-signal · walks decision replacements to surface stale shaping relations · src/validate/validators.ts:1817

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

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:validation.superseded-decision-signal
Relations of spec:validation.superseded-decision-signaldecidedBy · declareddependsOn · declareddependsOn · declaredrefines · declaredrefines · declaredverifies · declaredOutgoing refinesspec:validation.warn-level-signalsMissing connective evidencewarns without failing…validation.warn-level-signalsOutgoing dependsOnspec:extraction.entry-locationsThe graph records whereeach addressable entry iswritten…extraction.entry-locationsspec:model.relationsSpecs declare typeddirected relations…model.relationsOutgoing decidedByspec:decisions.planning-truths-placementPlanning truths live inruled graph homes…decisions.planning-truths-placementSubjectspec:validation.superseded-decision-signalA Spec shaped by asuperseded decision warns…validation.superseded-decision-signalIncoming refinesspec:validation.superseded-decision-signal.fold.Incoming.refines9 Incoming refines, folded…validation.superseded-decision-signal.fold.Incoming.refines
The diagram as text
  • spec:decisions.planning-truths-placement: Planning truths live in ruled graph homes
  • spec:extraction.entry-locations: The graph records where each addressable entry is written
  • spec:model.relations: Specs declare typed directed relations
  • spec:validation.superseded-decision-signal: A Spec shaped by a superseded decision warns
  • spec:validation.superseded-decision-signal.branch-names-every-end: A replacement chain that branches names every end
  • spec:validation.superseded-decision-signal.chain-end-named: The warning names the decision at the end of a chain of replacements
  • spec:validation.superseded-decision-signal.closed-chain-named: A chain of replacements that closes on itself is named and fails nothing
  • spec:validation.superseded-decision-signal.dependency-unread: A dependency on a replaced decision raises no warning
  • spec:validation.superseded-decision-signal.end-and-loop-named: A chain of replacements that reaches an end and a loop names both
  • spec:validation.superseded-decision-signal.live-replacement-warns: A decision still decided by the record it replaces warns
  • spec:validation.superseded-decision-signal.replaced-ruling-warns: A Spec shaped by a replaced decision warns once and fails nothing
  • spec:validation.superseded-decision-signal.replacement-below-ready-named: A replacement still below ready is named as it stands
  • spec:validation.superseded-decision-signal.superseded-subject-silent: A superseded decision is not warned for the decision it names
  • spec:validation.warn-level-signals: Missing connective evidence warns without failing
  • spec:validation.superseded-decision-signal decidedBy spec:decisions.planning-truths-placement · declared — supersedes replaces a decision whole and refines narrows it
  • spec:validation.superseded-decision-signal dependsOn spec:extraction.entry-locations · declared — the warning takes its line from the location row of the decidedBy target it names
  • spec:validation.superseded-decision-signal dependsOn spec:model.relations · declared — its supersedes term keeps a replaced record only while a reader still needs its text, so the edges the signal reads are records a corpus chose to keep
  • spec:validation.superseded-decision-signal refines spec:validation.warn-level-signals · declared
  • spec:validation.superseded-decision-signal.branch-names-every-end refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.chain-end-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.closed-chain-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.dependency-unread refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.end-and-loop-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.live-replacement-warns refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replaced-ruling-warns refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replacement-below-ready-named refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.superseded-subject-silent refines spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.branch-names-every-end verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.chain-end-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.closed-chain-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.dependency-unread verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.end-and-loop-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.live-replacement-warns verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replaced-ruling-warns verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.replacement-below-ready-named verifies spec:validation.superseded-decision-signal · declared
  • spec:validation.superseded-decision-signal.superseded-subject-silent verifies spec:validation.superseded-decision-signal · 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:validation.warn-level-signals · stated ready, floor ready
  • dependsOn · spec:extraction.entry-locations · stated ready, floor ready
  • dependsOn · spec:model.relations · stated ready, floor ready
  • decidedBy · spec:decisions.planning-truths-placement · stated ready, floor ready

Rested on by

Distance 1

  • spec:validation.superseded-decision-signal.branch-names-every-end

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.branch-names-every-end

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.chain-end-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.chain-end-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.closed-chain-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.closed-chain-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.dependency-unread

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.dependency-unread

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.end-and-loop-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.end-and-loop-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.live-replacement-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.live-replacement-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replaced-ruling-warns

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replaced-ruling-warns

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.replacement-below-ready-named

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.replacement-below-ready-named

    Packs: pack:self-hosting-v1

  • spec:validation.superseded-decision-signal.superseded-subject-silent

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.superseded-decision-signal.superseded-subject-silent

    Packs: pack:self-hosting-v1

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.planning-truths-placement
spec:decisions.planning-truths-placement · resolves
declaredsupersedes replaces a decision whole and refines narrows itNone
dependsOn · outgoingThe graph records where each addressable entry is written
spec:extraction.entry-locations · resolves
declaredthe warning takes its line from the location row of the decidedBy target it namesNone
dependsOn · outgoingspec:model.relations
spec:model.relations · resolves
declaredits supersedes term keeps a replaced record only while a reader still needs its text, so the edges the signal reads are records a corpus chose to keepNone
refines · outgoingspec:validation.warn-level-signals
spec:validation.warn-level-signals · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.branch-names-every-end
spec:validation.superseded-decision-signal.branch-names-every-end · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.chain-end-named
spec:validation.superseded-decision-signal.chain-end-named · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.closed-chain-named
spec:validation.superseded-decision-signal.closed-chain-named · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.dependency-unread
spec:validation.superseded-decision-signal.dependency-unread · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.end-and-loop-named
spec:validation.superseded-decision-signal.end-and-loop-named · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.live-replacement-warns
spec:validation.superseded-decision-signal.live-replacement-warns · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.replaced-ruling-warns
spec:validation.superseded-decision-signal.replaced-ruling-warns · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.replacement-below-ready-named
spec:validation.superseded-decision-signal.replacement-below-ready-named · resolves
declaredNoneNone
refines · incomingspec:validation.superseded-decision-signal.superseded-subject-silent
spec:validation.superseded-decision-signal.superseded-subject-silent · resolves
declaredNoneNone
verifies · incomingspec:validation.superseded-decision-signal.branch-names-every-end
spec:validation.superseded-decision-signal.branch-names-every-end · resolves
declaredNonechainEnd
verifies · incomingspec:validation.superseded-decision-signal.chain-end-named
spec:validation.superseded-decision-signal.chain-end-named · resolves
declaredNonechainEnd
verifies · incomingspec:validation.superseded-decision-signal.closed-chain-named
spec:validation.superseded-decision-signal.closed-chain-named · resolves
declaredNoneclosedChain, informative
verifies · incomingspec:validation.superseded-decision-signal.dependency-unread
spec:validation.superseded-decision-signal.dependency-unread · resolves
declaredNonereadsDecidedBy
verifies · incomingspec:validation.superseded-decision-signal.end-and-loop-named
spec:validation.superseded-decision-signal.end-and-loop-named · resolves
declaredNonechainEnd, closedChain
verifies · incomingspec:validation.superseded-decision-signal.live-replacement-warns
spec:validation.superseded-decision-signal.live-replacement-warns · resolves
declaredNoneonePerPair, liveSubjectsOnly
verifies · incomingspec:validation.superseded-decision-signal.replaced-ruling-warns
spec:validation.superseded-decision-signal.replaced-ruling-warns · resolves
declaredNonereadsDecidedBy, onePerPair, chainEnd, informative, noSupersedesWarning
verifies · incomingspec:validation.superseded-decision-signal.replacement-below-ready-named
spec:validation.superseded-decision-signal.replacement-below-ready-named · resolves
declaredNoneanyRung
verifies · incomingspec:validation.superseded-decision-signal.superseded-subject-silent
spec:validation.superseded-decision-signal.superseded-subject-silent · resolves
declaredNoneliveSubjectsOnly, noSupersedesWarning

Bindings

Implementation binding: present

  • impl:protocol.superseded-decision-signal · walks decision replacements to surface stale shaping relations · src/validate/validators.ts:1817 · role validator · component component:protocol.validate · layer domain · context protocol

Design reference: none

Verifier binding: present

  • spec:validation.superseded-decision-signal.branch-names-every-end · A replacement chain that branches names every end · declared · specs/validation/superseded-decision-signal.branch-names-every-end.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.chain-end-named · The warning names the decision at the end of a chain of replacements · declared · specs/validation/superseded-decision-signal.chain-end-named.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.closed-chain-named · A chain of replacements that closes on itself is named and fails nothing · declared · specs/validation/superseded-decision-signal.closed-chain-named.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.dependency-unread · A dependency on a replaced decision raises no warning · declared · specs/validation/superseded-decision-signal.dependency-unread.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.end-and-loop-named · A chain of replacements that reaches an end and a loop names both · declared · specs/validation/superseded-decision-signal.end-and-loop-named.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.live-replacement-warns · A decision still decided by the record it replaces warns · declared · specs/validation/superseded-decision-signal.live-replacement-warns.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.replaced-ruling-warns · A Spec shaped by a replaced decision warns once and fails nothing · declared · specs/validation/superseded-decision-signal.replaced-ruling-warns.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.replacement-below-ready-named · A replacement still below ready is named as it stands · declared · specs/validation/superseded-decision-signal.replacement-below-ready-named.sdp.md · example enabled
  • spec:validation.superseded-decision-signal.superseded-subject-silent · A superseded decision is not warned for the decision it names · declared · specs/validation/superseded-decision-signal.superseded-subject-silent.sdp.md · example enabled

Expected-outcome oracle: present

  • oracle:protocol.superseded-decision-signal · test/self-hosting-validators.test.ts:1551

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

22. Declared architecture rules are checked against anchored structure

spec:validation.architecture-constraints

Declared architecture rules are checked against anchored structure

spec:validation.architecture-constraintsBusiness Rule · featureready floor ready

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

Design: 6 design entries · 3 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/validation/architecture-constraints.sdp.md

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

The original design gave architecture a validation tier of its own. Its rules said that only adapter components depend on external systems, that domain code imports no infrastructure and that layers depend in one direction; dependency-cruiser, architecture tests and lint rules ran them, and their findings joined the one report (docs/lineage/v0-design/06-extraction-and-validation.md §6.4). Since the architectural annotation decision, the data those rules read is in the graph with no inference: a component anchor states its layer and its context, and uses and memberOf edges are anchored. The same decision keeps the check out of the Protocol. A negative architecture constraint stays declared intent in a Spec, and a corpus that wants it enforced checks its declared uses, layer and context in its own gate.

The first adopter checks that a component in its platform context has no uses edge to a component in another context, resolving each end through memberOf. Architecture crossings, recipe 32, reports differences in context or layer and refuses nothing. The architectural annotation decision keeps architecture checks in the corpus's own gate, and the Protocol supplies the reusable graph walk.

The walk returns the edges a rule forbids as corpus findings, so one body answers a reader through sdp q and fails a gate when the corpus names it as a rules file; the first adopter's isolation check becomes the walk named by sdp validate --rules with the isolated context platform, and none of its own code. An edge the walk cannot decide, because a component states no layer or context or an end belongs to no component, is listed apart: a breach the anchors cannot show is a curation gap, not a finding.

Intent
problem
A corpus that states an architecture rule in a Spec cannot have it checked by the Protocol, so each adopter writes the same walk over uses, memberOf, layer and context in its own gate.
outcome
Check a corpus's declared architecture rules, such as a forbidden uses direction or context isolation, against the layers, contexts and uses its anchors state.
Rule
rule line 28 · specs/validation/architecture-constraints.sdp.md:28
The Protocol's validators never judge a corpus's architecture; an architecture rule runs as one of the corpus's own rules, the corpus's gate decides what fails, and that gate may be the corpus's own invocation of sdp validate --rules with the severity the rule states.
rule line 29 · specs/validation/architecture-constraints.sdp.md:29
A corpus states each architecture rule as intent in a constraint Spec that says what is forbidden and why, and keeps the rule's machine form, its forbidden layer pairs and isolated contexts, as data its corpus rule passes to the walk.
rule.walk line 30 · specs/validation/architecture-constraints.sdp.md:30
The Protocol supplies the walk as a catalog recipe, recipe 42, that takes forbidden layer pairs and isolated contexts as recipe parameters, resolves each end of every anchored uses edge to its component, directly or through memberOf, and returns each edge a rule forbids with both units, both components and the rule.

spec:validation.architecture-constraints.forbidden-layer-pair · enabled, spec:validation.architecture-constraints.isolated-context-as-rule · enabled

rule.walkAsRule line 31 · specs/validation/architecture-constraints.sdp.md:31
The walk returns the edges it forbids as corpus findings in its answer's findings, so the shipped recipe file runs unchanged as a rules file under sdp validate --rules, at the severity the corpus passes it.

spec:validation.architecture-constraints.isolated-context-as-rule · enabled

rule.forms line 32 · specs/validation/architecture-constraints.sdp.md:32
The walk checks two forms, forbidden layer pairs and isolated contexts. It requires no component to state a layer or a context and checks no port, route or other fact the anchors do not carry; a corpus that wants such a check writes a rule of its own.

no example exercises it

rule line 33 · specs/validation/architecture-constraints.sdp.md:33
The walk reads the given rules and anchored structure only; it infers no edge from imports, reads no file path, judges no role and refuses nothing.
rule.unclassified line 34 · specs/validation/architecture-constraints.sdp.md:34
A component that states no layer or context falls outside a rule that names one, and the walk lists the edge as unclassified rather than as a breach, as it lists an edge with an end that belongs to no component.

spec:validation.architecture-constraints.unstated-layer-unclassified · enabled

rule line 35 · specs/validation/architecture-constraints.sdp.md:35
The corpus binds a discovered TypeScript check site to its constraint Spec through a test anchor; that check invokes the corpus rule, and has-verifier states that the check exists while its result stays in the corpus's run.

4 unkeyed rules.

Verifying examples

spec:validation.architecture-constraints.forbidden-layer-pair · spec:validation.architecture-constraints.forbidden-layer-pair · ready floor ready

Executable Spec

Given a member of a component at the layer {fromLayer: "domain"} in the context {fromContext: "orders"} that uses a member of a component at the layer {toLayer: "infrastructure"} in the context {toContext: "orders"}
When the architecture walk runs {invocation: "through sdp q"} with the forbidden pair domain to infrastructure and the isolated context platform
Then the walk reports {findings: 1} findings with the rule ids {ruleIds: "forbidden-layer"}
Then the walk lists {unclassified: 0} unclassified edges
Then the command exits {exitCode: 0}

spec:validation.architecture-constraints.forbidden-layer-pair

spec:validation.architecture-constraints.isolated-context-as-rule · spec:validation.architecture-constraints.isolated-context-as-rule · ready floor ready

Executable Spec

Given a member of a component at the layer {fromLayer: "application"} in the context {fromContext: "platform"} that uses a member of a component at the layer {toLayer: "adapter"} in the context {toContext: "orders"}
When the architecture walk runs {invocation: "as a rules file named by sdp validate --rules"} with the forbidden pair domain to infrastructure and the isolated context platform
Then the walk reports {findings: 1} findings with the rule ids {ruleIds: "isolated-context"}
Then the command exits {exitCode: 1}

spec:validation.architecture-constraints.isolated-context-as-rule

spec:validation.architecture-constraints.unstated-layer-unclassified · spec:validation.architecture-constraints.unstated-layer-unclassified · ready floor ready

Executable Spec

Given a member of a component at the layer {fromLayer: "domain"} in the context {fromContext: "platform"} that uses a member of a component at the layer {toLayer: "unstated"} in the context {toContext: "platform"}
When the architecture walk runs {invocation: "through sdp q"} with the forbidden pair domain to infrastructure and the isolated context platform
Then the walk reports {findings: 0} findings with the rule ids {ruleIds: ""}
Then the walk lists {unclassified: 1} unclassified edges
Then the command exits {exitCode: 0}

spec:validation.architecture-constraints.unstated-layer-unclassified

Example space

Given a member of a component at the layer {fromLayer:"domain"|"application"} in the context {fromContext:"platform"|"orders"} that uses a member of a component at the layer {toLayer:"infrastructure"|"adapter"|"unstated"} in the context {toContext:"platform"|"orders"}
When the architecture walk runs {invocation:"through sdp q"|"as a rules file named by sdp validate --rules"} with the forbidden pair domain to infrastructure and the isolated context platform
Then the walk reports {findings:number} findings with the rule ids {ruleIds:string}
Then the walk lists {unclassified:number} unclassified edges
Then the command exits {exitCode:number}
Design
walkParams line 38 · specs/validation/architecture-constraints.sdp.md:38
recipe 42, the architecture walk, takes params.forbidden, a list of { from, to } pairs of layers from the closed set; params.isolated, a list of context tokens; and params.severity, "error" by default or "warning"; either list may be empty, and a pair or context given twice counts once; a parameter name outside these three returns { unknownParams, accepts } alone, before any other check, as every catalog recipe answers a name it does not take; neither list given, a layer outside the set, a malformed token or another severity returns { diagnostics } with no findings; and either answer fails the file when the walk runs as a rules file.
walkAnswer line 39 · specs/validation/architecture-constraints.sdp.md:39
{ input: { forbidden, isolated, severity }, totals: { usesEdges, resolved, findings, unclassified }, findings, unclassified } is the answer when every parameter name is known and every value lawful, where resolved counts the uses edges whose two ends both resolve to a component; findings sort by from, then to, then rule id, and unclassified rows by from, then to; recipe 32's answer stays as it is.

no citation recorded

walkBreach line 40 · specs/validation/architecture-constraints.sdp.md:40
an anchored uses edge whose ends resolve to two distinct components breaks the pair { from, to } when the using component states layer from and the used one states layer to, and breaks the isolation of a context when the using component states that context and the used one states another; two units of one component never break a rule, as recipe 32 never counts them as crossing.
walkFinding line 41 · specs/validation/architecture-constraints.sdp.md:41
{ validatorId, subjectId, relatedId, severity, message, from, to, fromComponent, toComponent, rule }, a corpus finding in the shape spec:validation.corpus-rules#design.ruleFinding pins, where subjectId is the using unit from, relatedId the used unit to, both components are { id, layer, context } with null for an unstated attribute, and validatorId is forbidden-layer with rule: { from, to } the pair it breaks, or isolated-context with rule: { context } the isolated context it leaves.

no citation recorded

walkMessages line 42 · specs/validation/architecture-constraints.sdp.md:42
a forbidden-layer message reads <from> uses <to>: layer <from layer> uses layer <to layer> (<fromComponent id> to <toComponent id>), a forbidden pair, and an isolated-context message reads <from> uses <to>: <fromComponent id> in the isolated context <context> uses <toComponent id> in the context <other context>.
walkUnclassified line 43 · specs/validation/architecture-constraints.sdp.md:43
unclassified rows { from, to, fromComponent, toComponent, missing } list each anchored uses edge the walk cannot decide while a list is non-empty: an edge with an end that belongs to no component, that end's component null and missing: ["component"], and an edge between two distinct components where either leaves unstated an attribute a non-empty list reads, layer for forbidden and context for isolated, named in missing.

no citation recorded

Verification

Verifier bindings

  • spec:validation.architecture-constraints.forbidden-layer-pair · A domain member that uses an infrastructure member breaks a forbidden pair · declared · example enabled · specs/validation/architecture-constraints.forbidden-layer-pair.sdp.md
  • spec:validation.architecture-constraints.isolated-context-as-rule · The walk named as a rules file fails validation on an isolation breach · declared · example enabled · specs/validation/architecture-constraints.isolated-context-as-rule.sdp.md
  • spec:validation.architecture-constraints.unstated-layer-unclassified · A component with no layer leaves its edge unclassified · declared · example enabled · specs/validation/architecture-constraints.unstated-layer-unclassified.sdp.md

Example space

  • fromLayer · "domain" | "application" · declared by a member of a component at the layer {fromLayer} in the context {fromContext} that uses a member of a component at the layer {toLayer} in the context {toContext}
  • fromContext · "platform" | "orders" · declared by a member of a component at the layer {fromLayer} in the context {fromContext} that uses a member of a component at the layer {toLayer} in the context {toContext}
  • toLayer · "infrastructure" | "adapter" | "unstated" · declared by a member of a component at the layer {fromLayer} in the context {fromContext} that uses a member of a component at the layer {toLayer} in the context {toContext}
  • toContext · "platform" | "orders" · declared by a member of a component at the layer {fromLayer} in the context {fromContext} that uses a member of a component at the layer {toLayer} in the context {toContext}
  • invocation · "through sdp q" | "as a rules file named by sdp validate --rules" · declared by the architecture walk runs {invocation} with the forbidden pair domain to infrastructure and the isolated context platform

Bound points

ExamplefromLayerfromContexttoLayertoContextinvocation
spec:validation.architecture-constraints.forbidden-layer-pair"domain""orders""infrastructure""orders""through sdp q"
spec:validation.architecture-constraints.isolated-context-as-rule"application""platform""adapter""orders""as a rules file named by sdp validate --rules"
spec:validation.architecture-constraints.unstated-layer-unclassified"domain""platform""unstated""platform""through sdp q"

Oracle binding: none

Coverage

fromLayer
Declared valueExamples
"domain"spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.unstated-layer-unclassified
"application"spec:validation.architecture-constraints.isolated-context-as-rule
fromContext
Declared valueExamples
"platform"spec:validation.architecture-constraints.isolated-context-as-rule, spec:validation.architecture-constraints.unstated-layer-unclassified
"orders"spec:validation.architecture-constraints.forbidden-layer-pair
toLayer
Declared valueExamples
"infrastructure"spec:validation.architecture-constraints.forbidden-layer-pair
"adapter"spec:validation.architecture-constraints.isolated-context-as-rule
"unstated"spec:validation.architecture-constraints.unstated-layer-unclassified
toContext
Declared valueExamples
"platform"spec:validation.architecture-constraints.unstated-layer-unclassified
"orders"spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.isolated-context-as-rule
invocation
Declared valueExamples
"through sdp q"spec:validation.architecture-constraints.forbidden-layer-pair, spec:validation.architecture-constraints.unstated-layer-unclassified
"as a rules file named by sdp validate --rules"spec:validation.architecture-constraints.isolated-context-as-rule

Unbound

  • fromLayer: None
  • fromContext: None
  • toLayer: None
  • toContext: None
  • invocation: None
Design view

Requirement drawing

Requirement drawing for spec:validation.architecture-constraints
Requirement drawing for spec:validation.architecture-constraintssatisfies · anchoredrefines · declaredrefines, verifies · declaredrefines, verifies · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:validation.architecture-constraintsDeclared architecture rulesare checked againstanchored structure…validation.architecture-constraintsdeclared SpecDeclared verifying examplesspec:validation.architecture-constraints.forbidden-layer-pairA domain member that usesan infrastructure memberbreaks a forbidden pair…validation.architecture-constraints.forbidden-layer-pairdeclared Specspec:validation.architecture-constraints.isolated-context-as-ruleThe walk named as a rulesfile fails validation on anisolation breach…validation.architecture-constraints.isolated-context-as-ruledeclared Specspec:validation.architecture-constraints.unstated-layer-unclassifiedA component with no layerleaves its edge unclassified…validation.architecture-constraints.unstated-layer-unclassifieddeclared SpecSatisfying or referencingunitsimpl:protocol.architecture-walk-recipeasserts realization of theshipped architecture walkrecipe…protocol.architecture-walk-recipeanchored codeTest or oracle bindingstest:protocol.validation.architecture-constraints.forbidden-layer-pairtest:protocol.validation.architecture-constraints.forbidden-layer-pair…protocol.validation.architecture-constraints.forbidden-layer-pairanchored test binding ·binding presenttest:protocol.validation.architecture-constraints.isolated-context-as-ruletest:protocol.validation.architecture-constraints.isolated-context-as-rule…protocol.validation.architecture-constraints.isolated-context-as-ruleanchored test binding ·binding presenttest:protocol.validation.architecture-constraints.unstated-layer-unclassifiedtest:protocol.validation.architecture-constraints.unstated-layer-unclassified…protocol.validation.architecture-constraints.unstated-layer-unclassifiedanchored test binding ·binding presentOutside the selected setspec:validation.corpus-rulesCorpus-authored rules runon the one validation path…validation.corpus-rulesdeclared Spec
The diagram as text
  • spec:validation.architecture-constraints: Declared architecture rules are checked against anchored structure · declared Spec
  • spec:validation.architecture-constraints.forbidden-layer-pair: A domain member that uses an infrastructure member breaks a forbidden pair · declared Spec
  • spec:validation.architecture-constraints.isolated-context-as-rule: The walk named as a rules file fails validation on an isolation breach · declared Spec
  • spec:validation.architecture-constraints.unstated-layer-unclassified: A component with no layer leaves its edge unclassified · declared Spec
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path · declared Spec
  • impl:protocol.architecture-walk-recipe: asserts realization of the shipped architecture walk recipe · anchored code · test/architecture-recipes.test.ts:10
  • test:protocol.validation.architecture-constraints.forbidden-layer-pair: test:protocol.validation.architecture-constraints.forbidden-layer-pair · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:346
  • test:protocol.validation.architecture-constraints.isolated-context-as-rule: test:protocol.validation.architecture-constraints.isolated-context-as-rule · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:353
  • test:protocol.validation.architecture-constraints.unstated-layer-unclassified: test:protocol.validation.architecture-constraints.unstated-layer-unclassified · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:360
  • spec:validation.architecture-constraints refines spec:validation.corpus-rules · declared — the architecture walk is a corpus-selected rule over anchored structure
  • spec:validation.architecture-constraints.forbidden-layer-pair refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.forbidden-layer-pair verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified verifies spec:validation.architecture-constraints · declared
  • impl:protocol.architecture-walk-recipe satisfies spec:validation.architecture-constraints · anchored
  • test:protocol.validation.architecture-constraints.forbidden-layer-pair verifies spec:validation.architecture-constraints.forbidden-layer-pair · anchored
  • test:protocol.validation.architecture-constraints.isolated-context-as-rule verifies spec:validation.architecture-constraints.isolated-context-as-rule · anchored
  • test:protocol.validation.architecture-constraints.unstated-layer-unclassified verifies spec:validation.architecture-constraints.unstated-layer-unclassified · 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.architecture-walk-recipe · asserts realization of the shipped architecture walk recipe · test/architecture-recipes.test.ts:10

    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:validation.architecture-constraints
Relations of spec:validation.architecture-constraintsdecidedBy · declareddependsOn · declareddependsOn · declaredrefines · declaredrefines · declaredverifies · declaredrefines · declaredverifies · declaredrefines · declaredverifies · declaredOutgoing refinesspec:validation.corpus-rulesCorpus-authored rules runon the one validation path…validation.corpus-rulesOutgoing dependsOnspec:model.anchorsSource anchors bind codewithout carrying intent…model.anchorsOutgoing decidedByspec:decisions.architectural-annotationArchitectural significanceis annotated where it isrealized…decisions.architectural-annotationSubjectspec:validation.architecture-constraintsDeclared architecture rulesare checked againstanchored structure…validation.architecture-constraintsIncoming refinesspec:validation.architecture-constraints.forbidden-layer-pairA domain member that usesan infrastructure memberbreaks a forbidden pair…validation.architecture-constraints.forbidden-layer-pairspec:validation.architecture-constraints.isolated-context-as-ruleThe walk named as a rulesfile fails validation on anisolation breach…validation.architecture-constraints.isolated-context-as-rulespec:validation.architecture-constraints.unstated-layer-unclassifiedA component with no layerleaves its edge unclassified…validation.architecture-constraints.unstated-layer-unclassified
The diagram as text
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:model.anchors: Source anchors bind code without carrying intent
  • spec:validation.architecture-constraints: Declared architecture rules are checked against anchored structure
  • spec:validation.architecture-constraints.forbidden-layer-pair: A domain member that uses an infrastructure member breaks a forbidden pair
  • spec:validation.architecture-constraints.isolated-context-as-rule: The walk named as a rules file fails validation on an isolation breach
  • spec:validation.architecture-constraints.unstated-layer-unclassified: A component with no layer leaves its edge unclassified
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:validation.architecture-constraints decidedBy spec:decisions.architectural-annotation · declared
  • spec:validation.architecture-constraints dependsOn spec:model.anchors · declared
  • spec:validation.architecture-constraints dependsOn spec:validation.corpus-rules · declared
  • spec:validation.architecture-constraints refines spec:validation.corpus-rules · declared — the architecture walk is a corpus-selected rule over anchored structure
  • spec:validation.architecture-constraints.forbidden-layer-pair refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.forbidden-layer-pair verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified verifies spec:validation.architecture-constraints · 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: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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declaredNoneNone
dependsOn · outgoingspec:model.anchors
spec:model.anchors · resolves
declaredNoneNone
dependsOn · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredNoneNone
refines · outgoingCorpus-authored rules run on the one validation path
spec:validation.corpus-rules · resolves
declaredthe architecture walk is a corpus-selected rule over anchored structureNone
refines · incomingspec:validation.architecture-constraints.forbidden-layer-pair
spec:validation.architecture-constraints.forbidden-layer-pair · resolves
declaredNoneNone
refines · incomingspec:validation.architecture-constraints.isolated-context-as-rule
spec:validation.architecture-constraints.isolated-context-as-rule · resolves
declaredNoneNone
refines · incomingspec:validation.architecture-constraints.unstated-layer-unclassified
spec:validation.architecture-constraints.unstated-layer-unclassified · resolves
declaredNoneNone
verifies · incomingspec:validation.architecture-constraints.forbidden-layer-pair
spec:validation.architecture-constraints.forbidden-layer-pair · resolves
declaredNonewalk
verifies · incomingspec:validation.architecture-constraints.isolated-context-as-rule
spec:validation.architecture-constraints.isolated-context-as-rule · resolves
declaredNonewalk, walkAsRule
verifies · incomingspec:validation.architecture-constraints.unstated-layer-unclassified
spec:validation.architecture-constraints.unstated-layer-unclassified · resolves
declaredNoneunclassified

Bindings

Implementation binding: present

  • impl:protocol.architecture-walk-recipe · asserts realization of the shipped architecture walk recipe · test/architecture-recipes.test.ts:10

Design reference: none

Verifier binding: present

  • spec:validation.architecture-constraints.forbidden-layer-pair · A domain member that uses an infrastructure member breaks a forbidden pair · declared · specs/validation/architecture-constraints.forbidden-layer-pair.sdp.md · example enabled
  • spec:validation.architecture-constraints.isolated-context-as-rule · The walk named as a rules file fails validation on an isolation breach · declared · specs/validation/architecture-constraints.isolated-context-as-rule.sdp.md · example enabled
  • spec:validation.architecture-constraints.unstated-layer-unclassified · A component with no layer leaves its edge unclassified · declared · specs/validation/architecture-constraints.unstated-layer-unclassified.sdp.md · example enabled

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

23. Corpus-authored rules run on the one validation path

spec:validation.corpus-rules

Corpus-authored rules run on the one validation path

spec:validation.corpus-rulesUse Case / Behavior · featureready floor ready

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

Design: 11 design entries · 7 pinned declarations · 1 decision

Findings: no errors, no warnings

specs/validation/corpus-rules.sdp.md

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

The original design let a team add its own rules beside the built-in validators, each with an id, a severity and the whole graph query API, run in the same pass and reported in the same output (docs/lineage/v0-design/06-extraction-and-validation.md §6.5). The Protocol has two check families, conformance and honesty, and every validator belongs to one of them. The architectural annotation decision sends a corpus's own rules to the corpus's own gate.

The first adopter's gate runs sdp validate and parses its summary line, then checks its own context isolation, entry addresses, dependency cycles, question keys, prose mentions, cited laws and Pack pages. It also parses carrier frontmatter to read kind, readiness and relations, a second read model that a graph-based corpus-rule runner would remove.

A rules file holds the body sdp q evaluates, so a rule tried through sdp q runs unchanged under sdp validate, and a catalog recipe whose answer carries findings, such as the architecture walk, is a rules file as shipped. A rules file that needs a shipped recipe's answer calls it through recipes and keeps no copy of its code. The runner reads only the answer's findings, so the recipe keeps the rest of its answer for a reader. Corpus findings print after the Protocol's and are tallied on a line of their own, so a gate that reads the Protocol's summary line reads it unchanged; any error, the Protocol's or the corpus's, exits 1, and the two lines say which. Each rules file receives its own copy of what it reads, so a careless rule cannot change another rule's input and the order of the files changes only the order of the output. Its parameters are its own too: a catalog recipe answers a parameter name it does not take with that name and no findings, so parameters shared by every file would fail the walk on the names another file reads.

Intent
problem
A corpus with rules of its own checks them off the one validation path, reading the carriers a second way and reporting in a form no Protocol surface reads.
outcome
Let a corpus author its own graph rules and have their findings join the one validation report, so no corpus re-parses its carriers to check itself.
Behavior
rule line 38 · specs/validation/corpus-rules.sdp.md:38
A corpus rule is a graph body the corpus authors, given g, graph, report, params and recipes as a recipe body is, and returning findings that each carry a rule id, a subject, a message and a severity.
rule.readsGraphOnly line 39 · specs/validation/corpus-rules.sdp.md:39
A corpus rule reads the one derived graph, the Protocol's report and the params the operator supplies for its file, directly or through the shipped recipes it calls, and no carrier, source file or network; that is the rule author's obligation, because the runner evaluates the body with the trust sdp q asks and claims no sandbox.

no example exercises it

Cited at

  • test/skills.test.ts:1475
rule.operatorNamed line 40 · specs/validation/corpus-rules.sdp.md:40
Validation runs corpus rules only from a file the operator names with sdp validate --rules PATH, which may repeat, and never from a file it finds in the corpus or in a configuration; it asks the trust sdp q already asks, to run code the operator chose.

no example exercises it

rule.namedOrder line 41 · specs/validation/corpus-rules.sdp.md:41
Rules files run one at a time in the order named, each to completion, after the Protocol's validators; every file receives the same Protocol report and none sees another file's findings, so the order changes only the order of the output.

spec:validation.corpus-rules.copies-contain-changes · enabled

rule.copiesPerFile line 42 · specs/validation/corpus-rules.sdp.md:42
Each rules file receives its own copy of the graph and the report, made after the graph is written, and its own params, so a body that changes what it receives changes no node, edge, delivery fact or Protocol finding, and nothing another rules file receives.

spec:validation.corpus-rules.copies-contain-changes · enabled

rule line 43 · specs/validation/corpus-rules.sdp.md:43
Each rules file receives as params only the parameters the operator names after its --rules and before the next --rules, or {} when none follow it, so no file receives a parameter meant for another.
rule line 44 · specs/validation/corpus-rules.sdp.md:44
A rule id names one check within its rules file; two files may use the same id, and their findings stay apart by the file that reported them.
rule line 45 · specs/validation/corpus-rules.sdp.md:45
Each corpus finding names its rule and its rules file as its source. The Protocol states none of these rules: a shipped recipe that a corpus names as a rules file checks the rule data the corpus passes it.
rule line 46 · specs/validation/corpus-rules.sdp.md:46
Corpus findings stand outside the conformance and honesty families, in a section of the output labelled as the corpus's own and tallied on a summary line of their own, so the two families keep their meaning, the guardrail that checks never judge content quality or workflow keeps binding the Protocol's own validators, and no corpus finding adds to, suppresses or changes a Protocol finding or the exit reason it sets.
rule.exitCode line 47 · specs/validation/corpus-rules.sdp.md:47
A corpus finding carries severity error or warning. When the operator names --rules, an error corpus finding makes sdp validate exit nonzero and a warning stays informative; without --rules no corpus rule runs and only the Protocol's validators set the exit code.

spec:validation.corpus-rules.error-finding-fails · enabled, spec:validation.corpus-rules.warning-finding-informs · enabled

rule.neverMovesFloor line 48 · specs/validation/corpus-rules.sdp.md:48
A corpus finding moves no readiness floor and reaches no other surface: not the report sdp q hands a body, not the reader, not the written graph, and not the Design Review or another projection.

no example exercises it

rule.brokenRuleFails line 49 · specs/validation/corpus-rules.sdp.md:49
A rules file that cannot be read or does not parse, a body that throws, or an answer that is not an object with a findings array of well-formed findings is a rule execution failure; sdp validate reports it in the corpus section and exits nonzero, so a broken rule never passes as a clean run. A failed file reports none of its findings, and the other files still run.

spec:validation.corpus-rules.malformed-finding-fails · enabled

rule.watchReruns line 50 · specs/validation/corpus-rules.sdp.md:50
sdp validate --watch with --rules reads and runs every named rules file afresh in each cycle, after the Protocol's validators, and a create, change, delete or rename of a named rules file starts a cycle as a carrier edit does, wherever the file lives, under a directory discovery skips such as node_modules included.

spec:validation.corpus-rules.rules-edit-starts-a-cycle · enabled

rule.watchedParams line 51 · specs/validation/corpus-rules.sdp.md:51
Under --watch, each cycle after the first reads again every file a --params @PATH or KEY=@PATH after a --rules names, and an edit to such a file starts a cycle, wherever the file lives; a file that cannot be read or parsed then fails only the rules file it belongs to, for that cycle, while the first cycle's read refuses the command as paramsFlag states.

spec:validation.corpus-rules.params-edit-starts-a-cycle · enabled, spec:validation.corpus-rules.unreadable-params-fail-one-file · enabled

rule.recipesAsRules line 52 · specs/validation/corpus-rules.sdp.md:52
Address resolution (recipe 25) and dependency cycles (recipe 26) answer with findings beside the rest of their answers, as the architecture walk (recipe 42), external registers (recipe 50) and entry citations (recipe 51) do, so a corpus names any of those shipped files as a rules file, or calls it through recipes from a rules file of its own.

spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · enabled, spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · enabled

rule line 53 · specs/validation/corpus-rules.sdp.md:53
When the graph does not derive, no rules file runs, and the corpus summary line says so.

6 unkeyed rules.

Verifying examples

spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · ready floor ready

Executable Spec

Given a probe corpus in which {corpus: "two Specs depend on each other through dependsOn"}
Given the caller passes the addresses {addresses: "none"}
When the shipped {recipe: "dependency cycles"} file runs {invocation: "as a rules file named by sdp validate --rules"}
Then the command exits {exitCode: 1}
Then the answer carries {findings: 1} findings with the rule ids {ruleIds: "dependency-cycle"}

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:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · ready floor ready

Executable Spec

Given a probe corpus in which {corpus: "one Spec depends on another"}
Given the caller passes the addresses {addresses: "spec:probe.one#design.absent"}
When the shipped {recipe: "address resolution"} file runs {invocation: "as a rules file named by sdp validate --rules"}
Then the command exits {exitCode: 1}
Then the answer carries {findings: 1} findings with the rule ids {ruleIds: "unresolved-address"}

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.copies-contain-changes · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "empties the graph it receives"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode: 0}
Then the Protocol summary line reads {protocolSummary: "validate: 0 errors · 0 warnings (conformance + honesty over the one graph)"}
Then the corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 0 warnings · 0 of 2 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.copies-contain-changes

spec:validation.corpus-rules.error-finding-fails · spec:validation.corpus-rules.error-finding-fails · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "returns one error finding"}
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode: 1}
Then the Protocol summary line reads {protocolSummary: "validate: 0 errors · 0 warnings (conformance + honesty over the one graph)"}
Then the corpus summary line reads {corpusSummary: "corpus rules: 1 errors · 0 warnings · 0 of 1 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.error-finding-fails

spec:validation.corpus-rules.malformed-finding-fails · spec:validation.corpus-rules.malformed-finding-fails · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "returns a finding with no subject"}
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode: 1}
Then the Protocol summary line reads {protocolSummary: "validate: 0 errors · 0 warnings (conformance + honesty over the one graph)"}
Then the corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 0 warnings · 1 of 1 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.malformed-finding-fails

spec:validation.corpus-rules.params-edit-starts-a-cycle · spec:validation.corpus-rules.params-edit-starts-a-cycle · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "reads a parameter file that gains a key after the first cycle under --watch"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the second cycle's corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 2 warnings · 0 of 2 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.params-edit-starts-a-cycle

spec:validation.corpus-rules.rules-edit-starts-a-cycle · spec:validation.corpus-rules.rules-edit-starts-a-cycle · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "is rewritten to return one error finding after the first cycle under --watch"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the second cycle's corpus summary line reads {corpusSummary: "corpus rules: 1 errors · 0 warnings · 0 of 2 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.rules-edit-starts-a-cycle

spec:validation.corpus-rules.unreadable-params-fail-one-file · spec:validation.corpus-rules.unreadable-params-fail-one-file · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "reads a parameter file that stops being JSON after the first cycle under --watch"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the second cycle's corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 0 warnings · 1 of 2 files failed (the corpus's own rules)"}
Then the watcher is still running after the second cycle: {running: true}

spec:validation.corpus-rules.unreadable-params-fail-one-file

spec:validation.corpus-rules.warning-finding-informs · spec:validation.corpus-rules.warning-finding-informs · ready floor ready

Executable Spec

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first: "returns one warning finding"}
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode: 0}
Then the Protocol summary line reads {protocolSummary: "validate: 0 errors · 0 warnings (conformance + honesty over the one graph)"}
Then the corpus summary line reads {corpusSummary: "corpus rules: 0 errors · 1 warnings · 0 of 1 files failed (the corpus's own rules)"}

spec:validation.corpus-rules.warning-finding-informs

Example space

Given a probe corpus the Protocol's validators find clean
Given a first rules file that {first:"returns one error finding"|"returns one warning finding"|"returns a finding with no subject"|"empties the graph it receives"|"is rewritten to return one error finding after the first cycle under --watch"|"reads a parameter file that gains a key after the first cycle under --watch"|"reads a parameter file that stops being JSON after the first cycle under --watch"}
Given a second rules file that returns one warning when the graph it receives holds no node
When the probe corpus is validated with the rules files named by --rules in that order
Then the command exits {exitCode:number}
Then the Protocol summary line reads {protocolSummary:string}
Then the corpus summary line reads {corpusSummary:string}
Then the second cycle's corpus summary line reads {corpusSummary:string}
Then the watcher is still running after the second cycle: {running:boolean}
Design
rulesFlag line 56 · specs/validation/corpus-rules.sdp.md:56
sdp validate [root] [--exclude PATH]... [--check-clean | --watch] [--rules PATH [--params JSON | --params @PATH | --params KEY=@PATH]...]...; --rules and --params are options of validate alone, a --params before the first --rules is refused, one file named twice is refused, including through a symlink, and each PATH resolves from the working directory, as a --params @PATH file does. Diagnostics retain the path the operator named.

no citation recorded

paramsFlag line 57 · specs/validation/corpus-rules.sdp.md:57
--params on validate takes the three forms of sdp q --params with the same refusals, before the graph derives; each --params belongs to the nearest --rules before it in the argument list, whatever other options stand between them; one file's parameters merge as sdp q merges them, a key given twice for one file is refused, two files may each take the same key, and a file with no --params after it receives {}.

no citation recorded

rulesFile line 58 · specs/validation/corpus-rules.sdp.md:58
a rules file is UTF-8 text holding one plain JavaScript async function body, the form sdp q evaluates, with the bindings g, graph, report, params and recipes; the runner reads the text and never imports it as a module, so no file extension is required and a catalog recipe file under dist/recipes/ is a lawful rules file.
ruleAnswer line 59 · specs/validation/corpus-rules.sdp.md:59
{ findings: [] }: the body returns an object whose findings is an array, possibly empty; the runner reads findings and nothing else, so the answer's other keys stay the body's own data and are never printed.

no citation recorded

ruleFinding line 60 · specs/validation/corpus-rules.sdp.md:60
{ validatorId, subjectId, severity, message, relatedId?, path?, file?, line? }, where validatorId is the rule id, one token matching ^[a-z][a-z0-9-]*$, so it never reads as a Protocol validator id; subjectId and message are non-empty strings; severity is "error" or "warning"; relatedId and path are strings; file is a non-empty root-relative POSIX path, with absolute paths, backslashes and traversal above the root refused, and line a positive integer that requires file; the runner ignores a finding's other keys.

Cited at

  • test/skills.test.ts:1474
corpusFinding line 61 · specs/validation/corpus-rules.sdp.md:61
{ rulesFile, validatorId, subjectId, severity, message, relatedId?, path?, file?, line? } is the corpus branch of the finding currency, where rulesFile is the path as the operator named it; it carries no family, and the Protocol's findings keep their shape.

no citation recorded

corpusReport line 62 · specs/validation/corpus-rules.sdp.md:62
the report a run with --rules builds keeps the Protocol's findings unchanged in findings and adds corpusFindings, the corpus findings of each file that did not fail, in the order the files are named and then in the order returned, and corpusFailures, one { rulesFile, reason } for each failed file in the order named, never a finding; the report a rules file receives, like the one sdp q hands a body, carries neither.
corpusSection line 63 · specs/validation/corpus-rules.sdp.md:63
on standard error, after every Protocol finding, each rules file in the order named prints the line corpus rules <path> and then its findings in the order returned, each in the one composition of location, severity in brackets, rule id and message; a failed file prints corpus rules <path> failed: <reason> in place of its findings.
corpusSummary line 64 · specs/validation/corpus-rules.sdp.md:64
corpus rules: <errors> errors · <warnings> warnings · <failed> of <files> files failed (the corpus's own rules), written to standard output directly after the Protocol's summary line, which stays as spec:validation.diagnostic-rendering pins it; without --rules no such line prints; when the graph does not derive, no rules file runs and no Protocol summary line prints, and the corpus line, the last line on standard output, reads corpus rules: not run, the graph did not derive.

no citation recorded

exitCodes line 65 · specs/validation/corpus-rules.sdp.md:65
with --rules, sdp validate exits 1 when a Protocol finding is an error, a corpus finding is an error, a rules file fails or the graph does not derive, and 0 otherwise; the two summary lines say which.
failureReasons line 66 · specs/validation/corpus-rules.sdp.md:66
<reason> is cannot be read (<cause>), does not parse at line <L>, column <C>: <cause>, threw: <message on one line>, returned no findings array, followed by ; diagnostics: <the answer's diagnostics as JSON> when the answer carries diagnostics or by ; unknownParams: <as JSON>; accepts: <as JSON> when it carries unknownParams, finding <N> has no lawful <field>, with N counted from 1, or, under --watch after the first cycle, its parameters cannot be read (<cause>) when a parameter file named after its --rules cannot be read or parsed.

no citation recorded

Verification

Verifier bindings

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · The shipped dependency-cycles file fails a rules run on a cycle · declared · example enabled · specs/consumers/agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run.sdp.md
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · The shipped address-resolution file fails a rules run on an address that names no entry · declared · example enabled · specs/consumers/agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run.sdp.md
  • spec:validation.corpus-rules.copies-contain-changes · A rules file that empties its graph leaves the next file's graph whole · declared · example enabled · specs/validation/corpus-rules.copies-contain-changes.sdp.md
  • spec:validation.corpus-rules.error-finding-fails · An error from a corpus rule fails validation and leaves the Protocol's line alone · declared · example enabled · specs/validation/corpus-rules.error-finding-fails.sdp.md
  • spec:validation.corpus-rules.malformed-finding-fails · A finding with no subject fails its rules file · declared · example enabled · specs/validation/corpus-rules.malformed-finding-fails.sdp.md
  • spec:validation.corpus-rules.params-edit-starts-a-cycle · Editing a parameter file starts a cycle that reads the new parameters · declared · example enabled · specs/validation/corpus-rules.params-edit-starts-a-cycle.sdp.md
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle · Rewriting a rules file under node_modules starts a cycle that runs the new body · declared · example enabled · specs/validation/corpus-rules.rules-edit-starts-a-cycle.sdp.md
  • spec:validation.corpus-rules.unreadable-params-fail-one-file · A parameter file that stops being JSON fails only its own rules file, and the watcher runs on · declared · example enabled · specs/validation/corpus-rules.unreadable-params-fail-one-file.sdp.md
  • spec:validation.corpus-rules.warning-finding-informs · A warning from a corpus rule informs and passes · declared · example enabled · specs/validation/corpus-rules.warning-finding-informs.sdp.md

Example space

  • first · "returns one error finding" | "returns one warning finding" | "returns a finding with no subject" | "empties the graph it receives" | "is rewritten to return one error finding after the first cycle under --watch" | "reads a parameter file that gains a key after the first cycle under --watch" | "reads a parameter file that stops being JSON after the first cycle under --watch" · declared by a first rules file that {first}

Bound points

Examplefirst
spec:validation.corpus-rules.copies-contain-changes"empties the graph it receives"
spec:validation.corpus-rules.error-finding-fails"returns one error finding"
spec:validation.corpus-rules.malformed-finding-fails"returns a finding with no subject"
spec:validation.corpus-rules.params-edit-starts-a-cycle"reads a parameter file that gains a key after the first cycle under --watch"
spec:validation.corpus-rules.rules-edit-starts-a-cycle"is rewritten to return one error finding after the first cycle under --watch"
spec:validation.corpus-rules.unreadable-params-fail-one-file"reads a parameter file that stops being JSON after the first cycle under --watch"
spec:validation.corpus-rules.warning-finding-informs"returns one warning finding"

Oracle binding: present · oracle:protocol.corpus-rules-watch · test/reach-examples.test.ts:247

Coverage

first
Declared valueExamples
"returns one error finding"spec:validation.corpus-rules.error-finding-fails
"returns one warning finding"spec:validation.corpus-rules.warning-finding-informs
"returns a finding with no subject"spec:validation.corpus-rules.malformed-finding-fails
"empties the graph it receives"spec:validation.corpus-rules.copies-contain-changes
"is rewritten to return one error finding after the first cycle under --watch"spec:validation.corpus-rules.rules-edit-starts-a-cycle
"reads a parameter file that gains a key after the first cycle under --watch"spec:validation.corpus-rules.params-edit-starts-a-cycle
"reads a parameter file that stops being JSON after the first cycle under --watch"spec:validation.corpus-rules.unreadable-params-fail-one-file

Unbound

  • first: None
Design view

Requirement drawing

Requirement drawing for spec:validation.corpus-rules
  • E6: refines (7), verifies (9) · declared
Requirement drawing for spec:validation.corpus-rulessatisfies · anchoredsatisfies · anchoredsatisfies · anchoredrefines, verifies · declaredrefines, verifies · declaredE6refines, verifies · declaredmodels · anchoredmodels · anchoredrefines · declaredrefines · declaredrefines · declaredIntended Specsspec:validation.architecture-constraintsDeclared architecture rulesare checked againstanchored structure…validation.architecture-constraintsdeclared Specspec:validation.corpus-rulesCorpus-authored rules runon the one validation path…validation.corpus-rulesdeclared Specspec:validation.external-registersA corpus checks theregister tokens its prosecites…validation.external-registersdeclared SpecDeclared verifying examples14 verifying examples · declared; 14 test bindings · anchored, folded14 verifying examples ·declared14 test bindings · anchored ·foldedSatisfying or referencingunits5 satisfying units · anchored, folded5 satisfying units ·anchoredTest or oracle bindingsoracle:protocol.corpus-rules-watchoracle:protocol.corpus-rules-watch…protocol.corpus-rules-watchanchored oracle bindingoracle:protocol.external-registersoracle:protocol.external-registers…protocol.external-registersanchored oracle bindingOutside the selected setspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfacedeclared Specspec:consumers.agent-surface.address-and-cycle-recipesAddress resolution anddependency cycles stayexecutable graph recipes…consumers.agent-surface.address-and-cycle-recipesdeclared Spec
The diagram as text
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path · declared Spec
  • spec:validation.architecture-constraints: Declared architecture rules are checked against anchored structure · declared Spec
  • spec:validation.corpus-rules.copies-contain-changes: A rules file that empties its graph leaves the next file's graph whole · declared Spec
  • spec:validation.corpus-rules.error-finding-fails: An error from a corpus rule fails validation and leaves the Protocol's line alone · declared Spec
  • spec:validation.corpus-rules.malformed-finding-fails: A finding with no subject fails its rules file · declared Spec
  • spec:validation.corpus-rules.params-edit-starts-a-cycle: Editing a parameter file starts a cycle that reads the new parameters · declared Spec
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle: Rewriting a rules file under node_modules starts a cycle that runs the new body · declared Spec
  • spec:validation.corpus-rules.unreadable-params-fail-one-file: A parameter file that stops being JSON fails only its own rules file, and the watcher runs on · declared Spec
  • spec:validation.corpus-rules.warning-finding-informs: A warning from a corpus rule informs and passes · declared Spec
  • spec:validation.external-registers: A corpus checks the register tokens its prose cites · declared Spec
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run: The shipped dependency-cycles file fails a rules run on a cycle · declared Spec
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run: The shipped address-resolution file fails a rules run on an address that names no entry · declared Spec
  • spec:validation.architecture-constraints.forbidden-layer-pair: A domain member that uses an infrastructure member breaks a forbidden pair · declared Spec
  • spec:validation.architecture-constraints.isolated-context-as-rule: The walk named as a rules file fails validation on an isolation breach · declared Spec
  • spec:validation.architecture-constraints.unstated-layer-unclassified: A component with no layer leaves its edge unclassified · declared Spec
  • spec:validation.external-registers.uncited-on-request: A held token no Spec cites fails a rules run only when the caller asks · declared Spec
  • spec:validation.external-registers.unknown-and-retired: A cited token the register lacks or retires fails a rules run · declared Spec
  • spec:consumers.agent-surface.address-and-cycle-recipes: Address resolution and dependency cycles stay executable graph recipes · declared Spec
  • spec:consumers.agent-surface: Agents script a visible typed graph · declared Spec
  • impl:protocol.architecture-walk-recipe: asserts realization of the shipped architecture walk recipe · anchored code · test/architecture-recipes.test.ts:10
  • impl:protocol.corpus-rule-runner: runs selected corpus rules and separates their failures · anchored code · src/cli/corpus-rules.ts:65
  • impl:protocol.corpus-rules: runs copied rule bodies after Protocol validation and composes the separate corpus report, output and exit · anchored code · src/cli/validate-view-command.ts:79
  • impl:protocol.external-registers-recipe: asserts realization of the shipped external-registers recipe · anchored code · test/external-registers.test.ts:9
  • impl:protocol.validate-watch: watches carrier directories and coalesces events into a pending validation rerun · anchored code · src/cli/validate-watch.ts:591
  • oracle:protocol.corpus-rules-watch: oracle:protocol.corpus-rules-watch · anchored oracle binding · test/reach-examples.test.ts:247
  • oracle:protocol.external-registers: oracle:protocol.external-registers · anchored oracle binding · test/self-hosting-external-registers.test.ts:29
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run: test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · anchored test binding · binding present · test/reach-examples.test.ts:430
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run: test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · anchored test binding · binding present · test/reach-examples.test.ts:438
  • test:protocol.external-registers.uncited-on-request: test:protocol.external-registers.uncited-on-request · anchored test binding · binding present · test/self-hosting-external-registers.test.ts:128
  • test:protocol.external-registers.unknown-and-retired: test:protocol.external-registers.unknown-and-retired · anchored test binding · binding present · test/self-hosting-external-registers.test.ts:122
  • test:protocol.validation.architecture-constraints.forbidden-layer-pair: test:protocol.validation.architecture-constraints.forbidden-layer-pair · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:346
  • test:protocol.validation.architecture-constraints.isolated-context-as-rule: test:protocol.validation.architecture-constraints.isolated-context-as-rule · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:353
  • test:protocol.validation.architecture-constraints.unstated-layer-unclassified: test:protocol.validation.architecture-constraints.unstated-layer-unclassified · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:360
  • test:protocol.validation.corpus-rules.copies-contain-changes: test:protocol.validation.corpus-rules.copies-contain-changes · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:318
  • test:protocol.validation.corpus-rules.error-finding-fails: test:protocol.validation.corpus-rules.error-finding-fails · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:325
  • test:protocol.validation.corpus-rules.malformed-finding-fails: test:protocol.validation.corpus-rules.malformed-finding-fails · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:332
  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle: test:protocol.validation.corpus-rules.params-edit-starts-a-cycle · anchored test binding · binding present · test/reach-examples.test.ts:454
  • test:protocol.validation.corpus-rules.rules-edit-starts-a-cycle: test:protocol.validation.corpus-rules.rules-edit-starts-a-cycle · anchored test binding · binding present · test/reach-examples.test.ts:448
  • test:protocol.validation.corpus-rules.unreadable-params-fail-one-file: test:protocol.validation.corpus-rules.unreadable-params-fail-one-file · anchored test binding · binding present · test/reach-examples.test.ts:460
  • test:protocol.validation.corpus-rules.warning-finding-informs: test:protocol.validation.corpus-rules.warning-finding-informs · anchored test binding · binding present · test/self-hosting-corpus-checks.test.ts:339
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run refines spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run verifies spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run verifies spec:validation.corpus-rules · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run refines spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run verifies spec:consumers.agent-surface.address-and-cycle-recipes · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run verifies spec:validation.corpus-rules · declared
  • spec:validation.architecture-constraints refines spec:validation.corpus-rules · declared — the architecture walk is a corpus-selected rule over anchored structure
  • spec:validation.architecture-constraints.forbidden-layer-pair refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.forbidden-layer-pair verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.isolated-context-as-rule verifies spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified refines spec:validation.architecture-constraints · declared
  • spec:validation.architecture-constraints.unstated-layer-unclassified verifies spec:validation.architecture-constraints · declared
  • spec:validation.corpus-rules refines spec:consumers.agent-surface · declared — a corpus scripts the graph through the evaluation sink to report its own findings
  • spec:validation.corpus-rules.copies-contain-changes refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.copies-contain-changes verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.error-finding-fails refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.error-finding-fails verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.malformed-finding-fails refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.malformed-finding-fails verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.unreadable-params-fail-one-file refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.unreadable-params-fail-one-file verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules · declared
  • spec:validation.external-registers refines spec:validation.corpus-rules · declared — external-register checks run as corpus-selected rules
  • spec:validation.external-registers.uncited-on-request refines spec:validation.external-registers · declared
  • spec:validation.external-registers.uncited-on-request verifies spec:validation.external-registers · declared
  • spec:validation.external-registers.unknown-and-retired refines spec:validation.external-registers · declared
  • spec:validation.external-registers.unknown-and-retired verifies spec:validation.external-registers · declared
  • impl:protocol.architecture-walk-recipe satisfies spec:validation.architecture-constraints · anchored
  • impl:protocol.corpus-rule-runner satisfies spec:validation.corpus-rules · anchored
  • impl:protocol.corpus-rules satisfies spec:validation.corpus-rules · anchored
  • impl:protocol.external-registers-recipe satisfies spec:validation.external-registers · anchored
  • impl:protocol.validate-watch satisfies spec:validation.corpus-rules · anchored
  • oracle:protocol.corpus-rules-watch models spec:validation.corpus-rules · anchored
  • oracle:protocol.external-registers models spec:validation.external-registers · anchored
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run verifies spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · anchored
  • test:protocol.consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run verifies spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · anchored
  • test:protocol.external-registers.uncited-on-request verifies spec:validation.external-registers.uncited-on-request · anchored
  • test:protocol.external-registers.unknown-and-retired verifies spec:validation.external-registers.unknown-and-retired · anchored
  • test:protocol.validation.architecture-constraints.forbidden-layer-pair verifies spec:validation.architecture-constraints.forbidden-layer-pair · anchored
  • test:protocol.validation.architecture-constraints.isolated-context-as-rule verifies spec:validation.architecture-constraints.isolated-context-as-rule · anchored
  • test:protocol.validation.architecture-constraints.unstated-layer-unclassified verifies spec:validation.architecture-constraints.unstated-layer-unclassified · anchored
  • test:protocol.validation.corpus-rules.copies-contain-changes verifies spec:validation.corpus-rules.copies-contain-changes · anchored
  • test:protocol.validation.corpus-rules.error-finding-fails verifies spec:validation.corpus-rules.error-finding-fails · anchored
  • test:protocol.validation.corpus-rules.malformed-finding-fails verifies spec:validation.corpus-rules.malformed-finding-fails · anchored
  • test:protocol.validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules.params-edit-starts-a-cycle · anchored
  • test:protocol.validation.corpus-rules.rules-edit-starts-a-cycle verifies spec:validation.corpus-rules.rules-edit-starts-a-cycle · anchored
  • test:protocol.validation.corpus-rules.unreadable-params-fail-one-file verifies spec:validation.corpus-rules.unreadable-params-fail-one-file · anchored
  • test:protocol.validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules.warning-finding-informs · 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

  • 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
  • component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    • component:protocol.adapters · external runtime and source adapters · src/adapters/vitest.ts:23 · layer adapter · context protocol
    • component:protocol.codegen · contracts and registrar output · src/codegen/contracts.ts:633 · layer application · context protocol
    • 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.import · canonical conversion with a fidelity boundary · src/import/import.ts:45 · layer application · context protocol
    • component:protocol.model · the authored contracts and stable ids · src/model/anchors.ts:100 · layer domain · context protocol
    • 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
    • component:protocol.validate · one finding currency and ordered checks · src/validate/validators.ts:72 · layer domain · context protocol
  • impl:protocol.corpus-rule-runner · runs selected corpus rules and separates their failures · src/cli/corpus-rules.ts:65

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.corpus-rules · runs copied rule bodies after Protocol validation and composes the separate corpus report, output and exit · src/cli/validate-view-command.ts:79

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · layer edge · context protocol

    Uses

    None.

  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591

    Component: component:protocol.cli · entry points, shared build and publication · src/cli/build-command.ts:32 · 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:validation.corpus-rules

Shown as text: this drawing exceeds the height budget of 2000 pixels after folding.

The diagram as text
  • spec:consumers.agent-surface: Agents script a visible typed graph
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run: The shipped dependency-cycles file fails a rules run on a cycle
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run: The shipped address-resolution file fails a rules run on an address that names no entry
  • spec:consumers.agent-surface.evaluation-sink: The evaluation sink runs one body and prints its return
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files
  • spec:consumers.validate-watch: Validation re-runs while an author edits carriers
  • spec:decisions.architectural-annotation: Architectural significance is annotated where it is realized
  • spec:validation.architecture-constraints: Declared architecture rules are checked against anchored structure
  • spec:validation.corpus-rules: Corpus-authored rules run on the one validation path
  • spec:validation.corpus-rules.copies-contain-changes: A rules file that empties its graph leaves the next file's graph whole
  • spec:validation.corpus-rules.error-finding-fails: An error from a corpus rule fails validation and leaves the Protocol's line alone
  • spec:validation.corpus-rules.malformed-finding-fails: A finding with no subject fails its rules file
  • spec:validation.corpus-rules.params-edit-starts-a-cycle: Editing a parameter file starts a cycle that reads the new parameters
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle: Rewriting a rules file under node_modules starts a cycle that runs the new body
  • spec:validation.corpus-rules.unreadable-params-fail-one-file: A parameter file that stops being JSON fails only its own rules file, and the watcher runs on
  • spec:validation.corpus-rules.warning-finding-informs: A warning from a corpus rule informs and passes
  • spec:validation.diagnostic-rendering: One diagnostic currency, its location composed from structured fields
  • spec:validation.external-registers: A corpus checks the register tokens its prose cites
  • spec:validation.two-check-families: Validation separates well-formedness from non-pretending
  • spec:validation.corpus-rules constrainedBy spec:validation.two-check-families · declared
  • spec:validation.corpus-rules decidedBy spec:decisions.architectural-annotation · declared — architecture checks remain the corpus's own rules
  • spec:validation.corpus-rules dependsOn spec:consumers.agent-surface · declared
  • spec:validation.corpus-rules dependsOn spec:consumers.agent-surface.evaluation-sink · declared — a rules file holds the body the sink evaluates, with the sink's bindings and trust
  • spec:validation.corpus-rules dependsOn spec:consumers.agent-surface.recipe-parameters · declared — validate takes `--params` in the sink's grammar
  • spec:validation.corpus-rules dependsOn spec:consumers.validate-watch · declared — the watch loop reruns the named rules in each cycle
  • spec:validation.corpus-rules dependsOn spec:validation.diagnostic-rendering · declared — corpus findings use the shared diagnostic currency
  • spec:validation.corpus-rules refines spec:consumers.agent-surface · declared — a corpus scripts the graph through the evaluation sink to report its own findings
  • spec:validation.architecture-constraints dependsOn spec:validation.corpus-rules · declared
  • spec:validation.external-registers dependsOn spec:validation.corpus-rules · declared — the recipe answers with findings and runs as a rules file
  • spec:validation.architecture-constraints refines spec:validation.corpus-rules · declared — the architecture walk is a corpus-selected rule over anchored structure
  • spec:validation.corpus-rules.copies-contain-changes refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.error-finding-fails refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.malformed-finding-fails refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.unreadable-params-fail-one-file refines spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs refines spec:validation.corpus-rules · declared
  • spec:validation.external-registers refines spec:validation.corpus-rules · declared — external-register checks run as corpus-selected rules
  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run verifies spec:validation.corpus-rules · declared
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.copies-contain-changes verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.error-finding-fails verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.malformed-finding-fails verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.params-edit-starts-a-cycle verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.unreadable-params-fail-one-file verifies spec:validation.corpus-rules · declared
  • spec:validation.corpus-rules.warning-finding-informs verifies spec:validation.corpus-rules · declared

Rests on

  • refines · spec:consumers.agent-surface · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.evaluation-sink · stated ready, floor ready
  • dependsOn · spec:consumers.agent-surface.recipe-parameters · stated ready, floor ready
  • dependsOn · spec:consumers.validate-watch · stated ready, floor ready
  • dependsOn · spec:validation.diagnostic-rendering · stated ready, floor ready
  • constrainedBy · spec:validation.two-check-families · stated ready, floor ready
  • decidedBy · spec:decisions.architectural-annotation · stated ready, floor ready

Rested on by

Distance 1

  • 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 2

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

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

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

  • 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
constrainedBy · outgoingspec:validation.two-check-families
spec:validation.two-check-families · resolves
declaredNoneNone
decidedBy · outgoingspec:decisions.architectural-annotation
spec:decisions.architectural-annotation · resolves
declaredarchitecture checks remain the corpus's own rulesNone
dependsOn · outgoingspec:consumers.agent-surface
spec:consumers.agent-surface · resolves
declaredNoneNone
dependsOn · outgoingspec:consumers.agent-surface.evaluation-sink
spec:consumers.agent-surface.evaluation-sink · resolves
declareda rules file holds the body the sink evaluates, with the sink's bindings and trustNone
dependsOn · outgoingRecipes take parameters as data and ship as runnable files
spec:consumers.agent-surface.recipe-parameters · resolves
declaredvalidate takes --params in the sink's grammarNone
dependsOn · outgoingValidation re-runs while an author edits carriers
spec:consumers.validate-watch · resolves
declaredthe watch loop reruns the named rules in each cycleNone
dependsOn · outgoingspec:validation.diagnostic-rendering
spec:validation.diagnostic-rendering · resolves
declaredcorpus findings use the shared diagnostic currencyNone
refines · outgoingspec:consumers.agent-surface
spec:consumers.agent-surface · resolves
declareda corpus scripts the graph through the evaluation sink to report its own findingsNone
dependsOn · incomingDeclared architecture rules are checked against anchored structure
spec:validation.architecture-constraints · resolves
declaredNoneNone
dependsOn · incomingspec:validation.external-registers
spec:validation.external-registers · resolves
declaredthe recipe answers with findings and runs as a rules fileNone
refines · incomingDeclared architecture rules are checked against anchored structure
spec:validation.architecture-constraints · resolves
declaredthe architecture walk is a corpus-selected rule over anchored structureNone
refines · incomingspec:validation.corpus-rules.copies-contain-changes
spec:validation.corpus-rules.copies-contain-changes · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.error-finding-fails
spec:validation.corpus-rules.error-finding-fails · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.malformed-finding-fails
spec:validation.corpus-rules.malformed-finding-fails · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.params-edit-starts-a-cycle
spec:validation.corpus-rules.params-edit-starts-a-cycle · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.rules-edit-starts-a-cycle
spec:validation.corpus-rules.rules-edit-starts-a-cycle · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.unreadable-params-fail-one-file
spec:validation.corpus-rules.unreadable-params-fail-one-file · resolves
declaredNoneNone
refines · incomingspec:validation.corpus-rules.warning-finding-informs
spec:validation.corpus-rules.warning-finding-informs · resolves
declaredNoneNone
refines · incomingspec:validation.external-registers
spec:validation.external-registers · resolves
declaredexternal-register checks run as corpus-selected rulesNone
verifies · incomingspec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run
spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · resolves
declaredNonerecipesAsRules
verifies · incomingspec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run
spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · resolves
declaredNonerecipesAsRules
verifies · incomingspec:validation.corpus-rules.copies-contain-changes
spec:validation.corpus-rules.copies-contain-changes · resolves
declaredNonecopiesPerFile, namedOrder
verifies · incomingspec:validation.corpus-rules.error-finding-fails
spec:validation.corpus-rules.error-finding-fails · resolves
declaredNoneexitCode
verifies · incomingspec:validation.corpus-rules.malformed-finding-fails
spec:validation.corpus-rules.malformed-finding-fails · resolves
declaredNonebrokenRuleFails
verifies · incomingspec:validation.corpus-rules.params-edit-starts-a-cycle
spec:validation.corpus-rules.params-edit-starts-a-cycle · resolves
declaredNonewatchedParams
verifies · incomingspec:validation.corpus-rules.rules-edit-starts-a-cycle
spec:validation.corpus-rules.rules-edit-starts-a-cycle · resolves
declaredNonewatchReruns
verifies · incomingspec:validation.corpus-rules.unreadable-params-fail-one-file
spec:validation.corpus-rules.unreadable-params-fail-one-file · resolves
declaredNonewatchedParams
verifies · incomingspec:validation.corpus-rules.warning-finding-informs
spec:validation.corpus-rules.warning-finding-informs · resolves
declaredNoneexitCode

Bindings

Implementation binding: present

  • impl:protocol.corpus-rule-runner · runs selected corpus rules and separates their failures · src/cli/corpus-rules.ts:65 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.corpus-rules · runs copied rule bodies after Protocol validation and composes the separate corpus report, output and exit · src/cli/validate-view-command.ts:79 · role service · component component:protocol.cli · layer edge · context protocol
  • impl:protocol.validate-watch · watches carrier directories and coalesces events into a pending validation rerun · src/cli/validate-watch.ts:591 · role service · component component:protocol.cli · layer edge · context protocol

Design reference: none

Verifier binding: present

  • spec:consumers.agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run · The shipped dependency-cycles file fails a rules run on a cycle · declared · specs/consumers/agent-surface.address-and-cycle-recipes.cycle-fails-a-rules-run.sdp.md · example enabled
  • spec:consumers.agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run · The shipped address-resolution file fails a rules run on an address that names no entry · declared · specs/consumers/agent-surface.address-and-cycle-recipes.unresolved-address-fails-a-rules-run.sdp.md · example enabled
  • spec:validation.corpus-rules.copies-contain-changes · A rules file that empties its graph leaves the next file's graph whole · declared · specs/validation/corpus-rules.copies-contain-changes.sdp.md · example enabled
  • spec:validation.corpus-rules.error-finding-fails · An error from a corpus rule fails validation and leaves the Protocol's line alone · declared · specs/validation/corpus-rules.error-finding-fails.sdp.md · example enabled
  • spec:validation.corpus-rules.malformed-finding-fails · A finding with no subject fails its rules file · declared · specs/validation/corpus-rules.malformed-finding-fails.sdp.md · example enabled
  • spec:validation.corpus-rules.params-edit-starts-a-cycle · Editing a parameter file starts a cycle that reads the new parameters · declared · specs/validation/corpus-rules.params-edit-starts-a-cycle.sdp.md · example enabled
  • spec:validation.corpus-rules.rules-edit-starts-a-cycle · Rewriting a rules file under node_modules starts a cycle that runs the new body · declared · specs/validation/corpus-rules.rules-edit-starts-a-cycle.sdp.md · example enabled
  • spec:validation.corpus-rules.unreadable-params-fail-one-file · A parameter file that stops being JSON fails only its own rules file, and the watcher runs on · declared · specs/validation/corpus-rules.unreadable-params-fail-one-file.sdp.md · example enabled
  • spec:validation.corpus-rules.warning-finding-informs · A warning from a corpus rule informs and passes · declared · specs/validation/corpus-rules.warning-finding-informs.sdp.md · example enabled

Expected-outcome oracle: present

  • oracle:protocol.corpus-rules-watch · test/reach-examples.test.ts:247

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

24. CI run records are joined to verifiers in a view

spec:observation.run-evidence

CI run records are joined to verifiers in a view

spec:observation.run-evidenceUse Case / Behavior · featureready floor ready

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

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

Findings: no errors, no warnings

specs/observation/run-evidence.sdp.md

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

The original design put test reports in the graph and used passing runs to mark verification. The Protocol keeps run verdicts in CI. A resolving verifier binding confers has-verifier; showing a recorded run beside that binding confers no delivery fact. Runtime observation against a measurable target is a separate concern carried by the runtime overlay.

An adopter that keeps CI run reports needs to read them beside verifier bindings as a separately named input. Recipe 45 reads them, and the Studio admits them as one of its two named inputs. The view identifies each run by its own fields and its commit, and distinguishes evidence from a test file from a verdict for one anchored verifier. Test reporters write a test's file as an absolute path or a path from the directory they ran in, so the join reads a path's end as well as the whole path. The freshness question records what remains unsettled about comparing a run with the source being read.

Intent
problem
A reader who wants to know whether a bound verifier passed has to leave the Protocol's views for CI, and an adopter that keeps run records has no view that shows them beside the binding without mistaking them for a delivery fact.
outcome
Show a verifier's recorded runs beside its binding in a view, labelled as external input with its commit, while the graph keeps recording only that the binding exists.

Open questions

  • non-blocking · question.freshness line 28 · specs/observation/run-evidence.sdp.md:28 · How does a view say a run is stale: by its commit against the commit being read, or by whether the bound files changed between the two?Decider: ownerProvisional: Display the run and source commit identifiers when they differ, as the differing-commit rule requires; whether freshness also follows changes to bound files remains open.
Behavior
rule.graphUntouched line 33 · specs/observation/run-evidence.sdp.md:33
Run records are an input a view reads beside the graph, named by the caller; the graph never holds them, and no node, edge or delivery fact derives from them.

spec:observation.run-evidence.absolute-path-joins · enabled, spec:observation.run-evidence.unanchored-file-unjoined · enabled

rule.fileGrain line 34 · specs/observation/run-evidence.sdp.md:34
A run record joins every verifier whose test anchor sits in the test file the record names, because the file is the binding grain of both anchor forms; each test name in the record shows as a row under that verifier. The join is at file grain: a result is evidence from the verifier's file, never the result of that verifier, because a file may hold several suites and a filtered run may exercise only one.

spec:observation.run-evidence.absolute-path-joins · enabled

rule.ctrfInput line 35 · specs/observation/run-evidence.sdp.md:35
The Protocol reads run records in the Common Test Report Format, CTRF, an open JSON schema with reporters for the common test runners, passed to a view as a recipe parameter. A record joins only when its reporter fills CTRF's optional filePath field, and an adopter with records of another shape maps them into CTRF itself.

spec:observation.run-evidence.absolute-path-joins · enabled

rule.pathNormalization line 36 · specs/observation/run-evidence.sdp.md:36
A record's file path joins a test anchor's file when, with each backslash written as a slash and a leading ./ removed, it equals that file or ends with a slash followed by that file; when several anchored files match, the longest joins.

spec:observation.run-evidence.absolute-path-joins · enabled

rule.unjoinedReported line 37 · specs/observation/run-evidence.sdp.md:37
A record that names no file path, or a file that holds no test anchor, is reported as unjoined with its reason, never dropped, and an input that is not a CTRF report is reported with its problem while the other inputs still join.

spec:observation.run-evidence.unanchored-file-unjoined · enabled

rule.commitField line 38 · specs/observation/run-evidence.sdp.md:38
A run's commit is CTRF's results.environment.commit, and a run without one reads not recorded; given the commit being read, the recipe says for each run whether its commit is that commit, and never says the run is fresh or stale.

no example exercises it

rule line 39 · specs/observation/run-evidence.sdp.md:39
A view shows each run beside the verifiers anchored in its file, with its result, its commit and the input it came from, labelled as external run evidence from that file and never as has-verifier, implemented or a pass verdict for one verifier.
rule line 40 · specs/observation/run-evidence.sdp.md:40
A run whose commit differs from the commit being read shows both commits, so a reader sees how old it is.
rule.studioInput line 41 · specs/observation/run-evidence.sdp.md:41
The Design Review stays a function of the graph alone and shows no run; run evidence appears only in a view that explicitly admits records as external input: recipe 45, and the Studio built with run records, which shows them on its runs page, in its tests lens and on the Spec pages of the Specs their files verify.

no example exercises it

2 unkeyed rules.

Verifying examples

spec:observation.run-evidence.absolute-path-joins · spec:observation.run-evidence.absolute-path-joins · ready floor ready

Executable Spec

Given a CTRF report whose test {testName: "renders the page"} names the file {filePath: "/home/runner/work/repo/repo/test/page.test.ts"} and reports the result {status: "passed"}
Given the graph holds a test anchor in the file {anchorFile: "test/page.test.ts"} that verifies {specId: "spec:probe.page"}
When recipe 45 reads the report
Then the test joins the file {joinedFile: "test/page.test.ts"}
Then the test is unjoined for the reason {reason: "none"}
Then the delivery facts of the verified Spec are unchanged: {factsUnchanged: true}

spec:observation.run-evidence.absolute-path-joins

spec:observation.run-evidence.unanchored-file-unjoined · spec:observation.run-evidence.unanchored-file-unjoined · ready floor ready

Executable Spec

Given a CTRF report whose test {testName: "counts the rows"} names the file {filePath: "test/other.test.ts"} and reports the result {status: "failed"}
Given the graph holds a test anchor in the file {anchorFile: "test/page.test.ts"} that verifies {specId: "spec:probe.page"}
When recipe 45 reads the report
Then the test joins the file {joinedFile: ""}
Then the test is unjoined for the reason {reason: "noTestAnchor"}
Then the delivery facts of the verified Spec are unchanged: {factsUnchanged: true}

spec:observation.run-evidence.unanchored-file-unjoined

Example space

Given a CTRF report whose test {testName:string} names the file {filePath:string} and reports the result {status:"passed"|"failed"|"skipped"}
Given the graph holds a test anchor in the file {anchorFile:string} that verifies {specId:string}
When recipe 45 reads the report
Then the test joins the file {joinedFile:string}
Then the test is unjoined for the reason {reason:"none"|"noFilePath"|"noTestAnchor"}
Then the delivery facts of the verified Spec are unchanged: {factsUnchanged:boolean}
Design
runsRecipe line 44 · specs/observation/run-evidence.sdp.md:44
recipe 45, run evidence, takes params.runs, one CTRF report or a list of them in input order, required; params.commit, the commit being read, optional; and params.spec, a Spec id, optional, which keeps only the files whose test anchors verify that Spec directly or through an enabled example. It returns { inputs, diagnostics, totals, files, unjoined }, and { diagnostics } alone when params.runs is missing or holds no report it can read.
ctrfFields line 45 · specs/observation/run-evidence.sdp.md:45
the recipe reads reportFormat and specVersion; results.tool.name and version; results.summary with tests, passed, failed, skipped, pending, other, start and stop; results.environment with commit, branchName, buildName and buildNumber; and per test name, status, duration, filePath and suite; it reads no other field. A readable CTRF report has reportFormat: "CTRF" and a specVersion, as the CTRF schema requires; a report missing either produces a run diagnostic and contributes no run rows.
runInput line 46 · specs/observation/run-evidence.sdp.md:46
{ index: number; tool: string | null; toolVersion: string | null; specVersion: string; commit: string | null; branch: string | null; build: string | null; start: number | null; stop: number | null; summary: { tests: number; passed: number; failed: number; skipped: number; pending: number; other: number }; sameCommit: boolean | null }, one per readable report, index its position from 0, build the build name and number joined by a space, and sameCommit null without params.commit or without a run commit.

no citation recorded

runFile line 47 · specs/observation/run-evidence.sdp.md:47
{ file: string; anchors: { id: string; verifies: string[] }[]; specs: string[]; results: { input: number; name: string; suite: string | null; status: string; duration: number | null }[] }, one per anchored test file a record joins, sorted by file, specs the Specs its anchors verify directly or through an enabled example, sorted, and results in input order and then record order, suite the record's suite path joined by > , and duration the recorded milliseconds without rounding; a view formats that number for display.

no citation recorded

unjoinedRow line 48 · specs/observation/run-evidence.sdp.md:48
{ input: number; name: string; filePath: string | null; status: string; reason: "noFilePath" | "noTestAnchor" }, in input order and then record order.

no citation recorded

runDiagnostic line 49 · specs/observation/run-evidence.sdp.md:49
{ input: number | null; problem: string }, for a missing params.runs, with input null, or for an input that is not an object, has no results.tests list, lacks reportFormat or specVersion, or names a reportFormat other than CTRF.

no citation recorded

runTotals line 50 · specs/observation/run-evidence.sdp.md:50
{ inputs: number; tests: number; joined: number; unjoined: number; files: number; specs: number }, counting the readable reports, every test they hold, the tests joined and unjoined, the files joined, and the distinct Specs those files verify.

no citation recorded

Verification

Verifier bindings

  • spec:observation.run-evidence.absolute-path-joins · A test whose reporter wrote an absolute path joins its anchored file · declared · example enabled · specs/observation/run-evidence.absolute-path-joins.sdp.md
  • spec:observation.run-evidence.unanchored-file-unjoined · A test in a file with no test anchor is reported as unjoined · declared · example enabled · specs/observation/run-evidence.unanchored-file-unjoined.sdp.md

Example space

  • testName · string · declared by a CTRF report whose test {testName} names the file {filePath} and reports the result {status}
  • filePath · string · declared by a CTRF report whose test {testName} names the file {filePath} and reports the result {status}
  • status · "passed" | "failed" | "skipped" · declared by a CTRF report whose test {testName} names the file {filePath} and reports the result {status}
  • anchorFile · string · declared by the graph holds a test anchor in the file {anchorFile} that verifies {specId}
  • specId · string · declared by the graph holds a test anchor in the file {anchorFile} that verifies {specId}

Bound points

ExampletestNamefilePathstatusanchorFilespecId
spec:observation.run-evidence.absolute-path-joins"renders the page""/home/runner/work/repo/repo/test/page.test.ts""passed""test/page.test.ts""spec:probe.page"
spec:observation.run-evidence.unanchored-file-unjoined"counts the rows""test/other.test.ts""failed""test/page.test.ts""spec:probe.page"

Oracle binding: present · oracle:protocol.run-evidence · test/studio-s4.test.ts:284

Coverage

testName: "renders the page" · spec:observation.run-evidence.absolute-path-joins; "counts the rows" · spec:observation.run-evidence.unanchored-file-unjoined · not enumerable

filePath: "/home/runner/work/repo/repo/test/page.test.ts" · spec:observation.run-evidence.absolute-path-joins; "test/other.test.ts" · spec:observation.run-evidence.unanchored-file-unjoined · not enumerable

status
Declared valueExamples
"passed"spec:observation.run-evidence.absolute-path-joins
"failed"spec:observation.run-evidence.unanchored-file-unjoined
"skipped"no example

anchorFile: "test/page.test.ts" · spec:observation.run-evidence.absolute-path-joins, spec:observation.run-evidence.unanchored-file-unjoined · not enumerable

specId: "spec:probe.page" · spec:observation.run-evidence.absolute-path-joins, spec:observation.run-evidence.unanchored-file-unjoined · not enumerable

Unbound

  • testName: None
  • filePath: None
  • status: None
  • anchorFile: None
  • specId: None
Design view

Requirement drawing

Requirement drawing for spec:observation.run-evidence
Requirement drawing for spec:observation.run-evidencesatisfies · anchoredsatisfies · anchoredmodels · anchoredrefines · declaredrefines, verifies · declaredrefines, verifies · declaredverifies · anchoredverifies · anchoredIntended Specsspec:observation.run-evidenceCI run records are joinedto verifiers in a view…observation.run-evidencedeclared SpecDeclared verifying examplesspec:observation.run-evidence.absolute-path-joinsA test whose reporter wrotean absolute path joins itsanchored file…observation.run-evidence.absolute-path-joinsdeclared Specspec:observation.run-evidence.unanchored-file-unjoinedA test in a file with notest anchor is reported asunjoined…observation.run-evidence.unanchored-file-unjoineddeclared SpecSatisfying or referencingunitsimpl:protocol.run-evidence-recipeasserts realization of Runevidence indocs/agent-surface/recipes.md…protocol.run-evidence-recipeanchored codeimpl:protocol.studio-runs-pagerenders readable CTRFinputs, file results,unjoined records anddiagnostics…protocol.studio-runs-pageanchored codeTest or oracle bindingsoracle:protocol.run-evidenceoracle:protocol.run-evidence…protocol.run-evidenceanchored oracle bindingtest:protocol.run-absolutetest:protocol.run-absolute…protocol.run-absoluteanchored test binding ·binding presenttest:protocol.run-unjoinedtest:protocol.run-unjoined…protocol.run-unjoinedanchored test binding ·binding presentOutside the selected setspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modeldeclared Spec
The diagram as text
  • spec:observation.run-evidence: CI run records are joined to verifiers in a view · declared Spec
  • spec:observation.run-evidence.absolute-path-joins: A test whose reporter wrote an absolute path joins its anchored file · declared Spec
  • spec:observation.run-evidence.unanchored-file-unjoined: A test in a file with no test anchor is reported as unjoined · declared Spec
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores · declared Spec
  • impl:protocol.run-evidence-recipe: asserts realization of Run evidence in docs/agent-surface/recipes.md · anchored code · test/recipes.test.ts:7277
  • impl:protocol.studio-runs-page: renders readable CTRF inputs, file results, unjoined records and diagnostics · anchored code · src/projections/studio/pages/runs-page.ts:6
  • oracle:protocol.run-evidence: oracle:protocol.run-evidence · anchored oracle binding · test/studio-s4.test.ts:284
  • test:protocol.run-absolute: test:protocol.run-absolute · anchored test binding · binding present · test/studio-s4.test.ts:346
  • test:protocol.run-unjoined: test:protocol.run-unjoined · anchored test binding · binding present · test/studio-s4.test.ts:353
  • spec:observation.run-evidence refines spec:consumers.projections-model · declared — run records inform a view without becoming graph facts
  • spec:observation.run-evidence.absolute-path-joins refines spec:observation.run-evidence · declared
  • spec:observation.run-evidence.absolute-path-joins verifies spec:observation.run-evidence · declared
  • spec:observation.run-evidence.unanchored-file-unjoined refines spec:observation.run-evidence · declared
  • spec:observation.run-evidence.unanchored-file-unjoined verifies spec:observation.run-evidence · declared
  • impl:protocol.run-evidence-recipe satisfies spec:observation.run-evidence · anchored
  • impl:protocol.studio-runs-page satisfies spec:observation.run-evidence · anchored
  • oracle:protocol.run-evidence models spec:observation.run-evidence · anchored
  • test:protocol.run-absolute verifies spec:observation.run-evidence.absolute-path-joins · anchored
  • test:protocol.run-unjoined verifies spec:observation.run-evidence.unanchored-file-unjoined · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

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

Decisions

  • spec:decisions.binding-not-liveness

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

Runtime
  • component:protocol.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.run-evidence-recipe · asserts realization of Run evidence in docs/agent-surface/recipes.md · test/recipes.test.ts:7277

    Uses

    None.

  • impl:protocol.studio-runs-page · renders readable CTRF inputs, file results, unjoined records and diagnostics · src/projections/studio/pages/runs-page.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.

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:observation.run-evidence
Relations of spec:observation.run-evidencerefines · declareddecidedBy · declareddependsOn · declaredrefines · declaredverifies · declareddependsOn · declaredrefines · declaredverifies · declaredOutgoing refinesspec:consumers.projections-modelProjections fan out fromone graph without becomingtruth stores…consumers.projections-modelOutgoing dependsOnspec:observation.run-evidence.fold.Outgoing.dependsOn2 Outgoing dependsOn, folded…observation.run-evidence.fold.Outgoing.dependsOnOutgoing decidedByspec:decisions.binding-not-livenessBindings state existence,not liveness…decisions.binding-not-livenessSubjectspec:observation.run-evidenceCI run records are joinedto verifiers in a view…observation.run-evidenceIncoming refinesspec:observation.run-evidence.absolute-path-joinsA test whose reporter wrotean absolute path joins itsanchored file…observation.run-evidence.absolute-path-joinsspec:observation.run-evidence.unanchored-file-unjoinedA test in a file with notest anchor is reported asunjoined…observation.run-evidence.unanchored-file-unjoinedIncoming dependsOnspec:observation.run-evidence.fold.Incoming.dependsOn5 Incoming dependsOn, folded…observation.run-evidence.fold.Incoming.dependsOn
The diagram as text
  • spec:consumers.agent-surface.recipe-parameters: Recipes take parameters as data and ship as runnable files
  • spec:consumers.projections-model: Projections fan out from one graph without becoming truth stores
  • spec:consumers.spec-studio.data.inputs: The Studio reads two named inputs beside the graph, a base graph and run records
  • spec:consumers.spec-studio.lenses.tests: The tests lens shows how far each Spec's verification reaches
  • spec:consumers.spec-studio.runs-page: The runs page shows the run records the build was given, joined to test files
  • spec:consumers.spec-studio.verification-panels: The panels for examples, targets, verifiers and evidence
  • spec:decisions.binding-not-liveness: Bindings state existence, not liveness
  • spec:extraction.delivery-facts: Resolving bindings confer direct delivery facts
  • spec:observation.run-evidence: CI run records are joined to verifiers in a view
  • spec:observation.run-evidence.absolute-path-joins: A test whose reporter wrote an absolute path joins its anchored file
  • spec:observation.run-evidence.unanchored-file-unjoined: A test in a file with no test anchor is reported as unjoined
  • 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:observation.run-evidence decidedBy spec:decisions.binding-not-liveness · declared
  • spec:observation.run-evidence dependsOn spec:consumers.agent-surface.recipe-parameters · declared — the caller passes run records to the recipe as data
  • spec:observation.run-evidence dependsOn spec:extraction.delivery-facts · declared — the view reads verifier bindings while leaving their delivery facts unchanged
  • spec:observation.run-evidence refines spec:consumers.projections-model · declared — run records inform a view without becoming graph facts
  • spec:consumers.spec-studio.data.inputs dependsOn spec:observation.run-evidence · declared — the run records input is read only as run evidence
  • spec:consumers.spec-studio.lenses.tests dependsOn spec:observation.run-evidence · declared — with run records, a row adds the results recipe 45 joins from its verifiers' files
  • spec:consumers.spec-studio.runs-page dependsOn spec:observation.run-evidence · declared — the page renders the run evidence recipe 45 joins from the run records
  • spec:consumers.spec-studio.verification-panels dependsOn spec:observation.run-evidence · declared — with run records, a verifier's row adds the results recipe 45 joins from its test file
  • 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:observation.run-evidence.absolute-path-joins refines spec:observation.run-evidence · declared
  • spec:observation.run-evidence.unanchored-file-unjoined refines spec:observation.run-evidence · declared
  • spec:observation.run-evidence.absolute-path-joins verifies spec:observation.run-evidence · declared
  • spec:observation.run-evidence.unanchored-file-unjoined verifies spec:observation.run-evidence · 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.agent-surface.recipe-parameters · stated ready, floor ready
  • dependsOn · spec:extraction.delivery-facts · stated ready, floor ready
  • decidedBy · spec:decisions.binding-not-liveness · stated ready, floor ready

Rested on by

Distance 1

  • 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.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.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.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:observation.run-evidence.absolute-path-joins

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-absolute

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

  • spec:observation.run-evidence.unanchored-file-unjoined

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: test:protocol.run-unjoined

    Packs: pack:self-hosting-v1, pack:spec-studio-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 2

  • 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.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.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.register-input

    Implementing units

    None.

    Referencing units

    None.

    Enabled verifiers: None

    Packs: pack:roadmap, pack:self-hosting-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.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

  • 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.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.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 4

  • 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

Distance 5

  • 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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingspec:decisions.binding-not-liveness
spec:decisions.binding-not-liveness · resolves
declaredNoneNone
dependsOn · outgoingRecipes take parameters as data and ship as runnable files
spec:consumers.agent-surface.recipe-parameters · resolves
declaredthe caller passes run records to the recipe as dataNone
dependsOn · outgoingspec:extraction.delivery-facts
spec:extraction.delivery-facts · resolves
declaredthe view reads verifier bindings while leaving their delivery facts unchangedNone
refines · outgoingspec:consumers.projections-model
spec:consumers.projections-model · resolves
declaredrun records inform a view without becoming graph factsNone
dependsOn · incomingspec:consumers.spec-studio.data.inputs
spec:consumers.spec-studio.data.inputs · resolves
declaredthe run records input is read only as run evidenceNone
dependsOn · incomingspec:consumers.spec-studio.lenses.tests
spec:consumers.spec-studio.lenses.tests · resolves
declaredwith run records, a row adds the results recipe 45 joins from its verifiers' filesNone
dependsOn · incomingspec:consumers.spec-studio.runs-page
spec:consumers.spec-studio.runs-page · resolves
declaredthe page renders the run evidence recipe 45 joins from the run recordsNone
dependsOn · incomingspec:consumers.spec-studio.verification-panels
spec:consumers.spec-studio.verification-panels · resolves
declaredwith run records, a verifier's row adds the results recipe 45 joins from its test fileNone
dependsOn · incomingspec:protocol.roadmap-replaces-plans
spec:protocol.roadmap-replaces-plans · resolves
declaredan arc's acceptance reads run records as evidence from test files at their recorded commitNone
refines · incomingspec:observation.run-evidence.absolute-path-joins
spec:observation.run-evidence.absolute-path-joins · resolves
declaredNoneNone
refines · incomingspec:observation.run-evidence.unanchored-file-unjoined
spec:observation.run-evidence.unanchored-file-unjoined · resolves
declaredNoneNone
verifies · incomingspec:observation.run-evidence.absolute-path-joins
spec:observation.run-evidence.absolute-path-joins · resolves
declaredNonegraphUntouched, fileGrain, ctrfInput, pathNormalization
verifies · incomingspec:observation.run-evidence.unanchored-file-unjoined
spec:observation.run-evidence.unanchored-file-unjoined · resolves
declaredNonegraphUntouched, unjoinedReported

Bindings

Implementation binding: present

  • impl:protocol.run-evidence-recipe · asserts realization of Run evidence in docs/agent-surface/recipes.md · test/recipes.test.ts:7277
  • impl:protocol.studio-runs-page · renders readable CTRF inputs, file results, unjoined records and diagnostics · src/projections/studio/pages/runs-page.ts:6 · role projection · component component:protocol.projections · layer edge · context protocol

Design reference: none

Verifier binding: present

  • spec:observation.run-evidence.absolute-path-joins · A test whose reporter wrote an absolute path joins its anchored file · declared · specs/observation/run-evidence.absolute-path-joins.sdp.md · example enabled
  • spec:observation.run-evidence.unanchored-file-unjoined · A test in a file with no test anchor is reported as unjoined · declared · specs/observation/run-evidence.unanchored-file-unjoined.sdp.md · example enabled

Expected-outcome oracle: present

  • oracle:protocol.run-evidence · test/studio-s4.test.ts:284

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.