Spec Studio

The Protocol's roadmap

pack:roadmapspecs/roadmap.pack.sdp.md

Read this Pack as one design

Download this Pack as one file

Where the design stands

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 The Protocol's roadmapFloor reached →Stated readiness ↓noneideascopeddefinedreadyideascopeddefinedreadystated idea, floor idea: 1 member1stated scoped, floor scoped: 2 members2stated ready, floor ready: 1 member1
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——2——
stated defined—————
stated ready————1
stated idea, floor idea · 1 member
stated scoped, floor scoped · 2 members
stated ready, floor ready · 1 member
Mermaid source

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

Framing

The Protocol's next work, first entry first. The order is a preference: it dates, gates and sequences nothing, and what each entry still needs is read from the graph each time.

First the cleanup that removes the frozen plans, review reports and superseded concept material, as the roadmap and the pull request record make possible. Then the two steps a reader of the Studio's pages could not take, the words of a test line that checks a declaration and an outside register's entries, and then the composed-intent model the build backlog holds. What the first adopter's mass update asks for joins when the owner selects it; a capture landing adds nothing here. An entry leaves by an edit to this manifest once its selected work is complete or no longer belongs among the next work.

Changed since the base

Compared with the base graph base da4b141. Read the diff.

Base input: schema 0.11.0, 405 Specs.

Added members

Pack membership

added · pack:roadmap

Members added: spec:protocol.delivery-record-cleanup, spec:consumers.spec-studio.cited-line-text, spec:consumers.spec-studio.register-input, spec:consumers.edit-model

Members removed: None

Member order unchanged.

added as a roadmap

Diagnostics

  • {
      "part": "schemaVersion",
      "base": "0.11.0",
      "head": "0.12.0"
    }

Members

1. The Protocol removes its frozen plans, review reports and superseded concept materialbehavior · idea floor idea · next rung scoped: waits on 1 unmet clause · 1 open, 1 blocking questions · implementation binding none · verifier binding none

spec:protocol.delivery-record-cleanup

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

Decisions

Open questions

  • blocking · question.durableContent · line 23 · specs/protocol/delivery-record-cleanup.sdp.md:23 · Which content in plans/, reviews/ and the concept documents does no Spec, test, decision or recipe carry yet, and where does each piece belong?Decider: ownerProvisional: a measured inventory by the arc that removes them, reviewed before anything is deleted

Implementation binding: none

Design reference: none

Verifier binding: none

2. A pinned declaration shows the words of each test line that cites itbehavior · scoped floor scoped · next rung defined: waits on 1 unmet clause · 2 open, 1 blocking questions · implementation binding none · verifier binding none

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

Next rung defined waits on 1 unmet clause:

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

Design

No design entries · no pinned declarations

Open questions

  • blocking · question.lineText · line 26 · specs/consumers/spec-studio.cited-line-text.sdp.md:26 · May the Studio show source text the graph does not hold, and if so is it recorded in the graph beside the citation or read as a named input?Decider: ownerProvisional: the extractor records the citing line's text, trimmed and bounded, on the citation row it already writes, as inferred data that confers nothing, and the Studio reads no source
  • non-blocking · question.lineBound · line 29 · specs/consumers/spec-studio.cited-line-text.sdp.md:29 · How long may a recorded line be, and how does a page show a line that was cut?Decider: delegatedProvisional: a bound of a few hundred code units, cut at a word boundary and marked as cut, the whole line one source link away

Implementation binding: none

Design reference: none

Verifier binding: none

3. An outside register is a named Studio input, so a cited token links to its entrybehavior · scoped floor scoped · next rung defined: waits on 1 unmet clause · 3 open, 2 blocking questions · implementation binding none · verifier binding none

spec:consumers.spec-studio.register-input

Next rung defined waits on 1 unmet clause:

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

Design

No design entries · no pinned declarations

Open questions

  • blocking · question.registerEntry · line 26 · specs/consumers/spec-studio.register-input.sdp.md:26 · What does a register file give the Studio beyond what the external-registers recipe reads, so a token's entry can be shown?Decider: delegatedProvisional: an optional title and an optional href on a token object; the Studio writes one page per register listing each token with its title, retired tokens marked, each linking to its href when present
  • blocking · question.inputForm · line 29 · specs/consumers/spec-studio.register-input.sdp.md:29 · How does the studio verb name a register, its pattern and the words that name it on a page?Decider: delegatedProvisional: a repeatable --register NAME=PATH with a matching --register-pattern NAME=SOURCE, the name naming the register in words wherever it shows
  • non-blocking · question.textLinks · line 32 · specs/consumers/spec-studio.register-input.sdp.md:32 · Does a cited token become a link inside the rendered text of a Spec, or only in a list beside it?Decider: delegatedProvisional: inside the text, matched by the register's pattern exactly as the recipe matches it, so the page and the check agree on what is cited

Implementation binding: none

Design reference: none

Verifier binding: none

4. Views compose scoped intent instead of patching canonical sourcebehavior · ready floor ready · 0 open, 0 blocking questions · implementation binding none · verifier binding present

spec:consumers.edit-model

Design

No design entries · no pinned declarations

Open questions

None.

Implementation binding: none

Design reference: present

  • impl:protocol.studio-intent-panel · gathers ordered intents under the page-root storage key and partitions their hand-off · src/studio-elements/intent-panel.ts:51 · role service · component component:protocol.studio-elements · layer edge · context protocol
  • impl:protocol.studio-intent-panel-element · displays gathered requests and writes copy selections or local download links · src/studio-elements/intent-panel-element.ts:14 · role interaction · component component:protocol.studio-elements · layer edge · context protocol

Verifier binding: present

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

Boundary

Rests on (8)
Rested on by (7)
SpecStated rungImplementation bindingJoined members
Authors move one Spec from intent to reviewed evidence
spec:consumers.authoring-on-ramp
readypresentdependsOn: spec:consumers.edit-model
Composed intent hands off on one proposal shape
spec:consumers.intent-composition
readynonerefines: spec:consumers.edit-model
A change proposal is addressed, based and checked before it lands
spec:consumers.intent-composition.proposal
readypresentdependsOn: spec:consumers.edit-model
A design pass is followed and answered from the vault
spec:consumers.obsidian-vault.iteration
readypresentdependsOn: spec:consumers.edit-model
The Spec Studio is a static HTML workbench over the one graph
spec:consumers.spec-studio
readypresentdependsOn: spec:consumers.edit-model
A composing panel on every page gathers scoped intent for an agent
spec:consumers.spec-studio.intent-panel
readypresentdependsOn: spec:consumers.edit-model
The upgrade kit shows a corpus what it could adopt
spec:consumers.upgrade-kit
readypresentdependsOn: spec:consumers.edit-model
Verified by (0)

None.

Superseded by (0)

None.

Members with no verifier binding

The graph records bindings and never runs. Decision records are left out: a decision never needs a verifier binding. The runs page, the tests lens and the Spec pages of the Specs their files verify show the run records as external evidence from test files.

Findings

None.

Composing (0)

Composing needs the script.