Spec Studio

The Design Review renders open-section entries as a list

spec:decisions.authored-entry-orderDecision Record · featureready floor ready

Packs: pack:self-hosting-v1

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

Findings: no errors, no warnings

specs/decisions/authored-entry-order.sdp.md

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

Intent
outcome
Render the entries of an open section as a readable list in authored order, so a signature or a step reads as text and not as an escaped JSON string.
Decision
context
The Design Review prints an open section as one fenced JSON object, so each entry's value is an escaped string. Authored order is restored by spec:extraction.open-section-order as an ordinary revision, because no Spec states the sort. Rendering is different: spec:consumers.design-review states that fenced JSON preserves authored keys and values, and the shipped projections are frozen, so a list rendering needs a decision that narrows the freeze for this one rendering. The first adopter carries its design as keyed entries, and its reviewers read the carrier files instead of the generated review because the entries render as escaped strings.
decision
The Design Review renders each entry of a design or ui section as a list item in authored order, its key as inline code. A string value renders as Markdown text through the prose escaping rule; a number or boolean renders as inline code; an array or object renders as a fenced JSON block nested under its item, so a structured value the TypeScript carrier admits survives without loss. The fenced-JSON rule of the Design Review stops covering an open section as a whole and keeps covering a structured value inside one entry. The freeze on the four shipped projections stands for everything else.
rationale
  • A list reads as the author wrote it and escapes through the prose rules the Design Review already has for every rendered field, where fenced JSON turns a one-line signature into an escaped string nobody can paste.
alternatives
  • Keeping fenced JSON in authored order makes a sequence readable and leaves every value escaped.
  • Narrowing open-section values to strings would make the list rendering total, but it is a model change to the open bag and belongs in its own record, not here.
consequences
  • The Design Review Spec's encoding rule carries a list case for open sections.
  • The Markdown carrier yields string values only, so its entries always render as text; the TypeScript carrier's nested values keep their shape through the per-entry fence.
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Satisfying or referencing units: no recorded binding.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:decisions.authored-entry-order

Arrows: refines (declared).

Requirement drawing for spec:decisions.authored-entry-orderIntended Specsspec:decisions.authored-entry-orderThe Design Review rendersopen-section entries as alist…decisions.authored-entry-orderdeclared SpecOutside 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:decisions.authored-entry-order: The Design Review renders open-section entries as a list · 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
  • spec:decisions.authored-entry-order refines spec:consumers.design-review · declared
  • spec:decisions.authored-entry-order refines spec:decisions.shipped-projections-frozen · declared — carves out how the Design Review renders open-section entries, as a list in authored order
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.

Decisions

No decision record named.

Runtime

No implementation neighborhood recorded.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:decisions.authored-entry-order
Relations of spec:decisions.authored-entry-orderdecidedBy · declareddecidedBy · declareddecidedBy · declaredrefines · declaredrefines · declareddependsOn · declaredOutgoing refinesspec:consumers.design-reviewDesign Review renders graphcontext without becoming agate…consumers.design-reviewspec:decisions.shipped-projections-frozenThe shipped projectionsstay frozen…decisions.shipped-projections-frozenOutgoing dependsOnspec:extraction.open-section-orderSerialization preservesauthored entry order…extraction.open-section-orderSubjectspec:decisions.authored-entry-orderThe Design Review rendersopen-section entries as alist…decisions.authored-entry-orderIncoming decidedByspec: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.core
The diagram as text
  • spec:consumers.design-review: Design Review renders graph context without becoming a gate
  • 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:decisions.authored-entry-order: The Design Review renders open-section entries as a list
  • spec:decisions.shipped-projections-frozen: The shipped projections stay frozen
  • spec:extraction.open-section-order: Serialization preserves authored entry order
  • spec:decisions.authored-entry-order dependsOn spec:extraction.open-section-order · declared
  • spec:decisions.authored-entry-order refines spec:consumers.design-review · declared
  • spec:decisions.authored-entry-order refines spec:decisions.shipped-projections-frozen · declared — carves out how the Design Review renders open-section entries, as a list in authored order
  • spec:consumers.design-review decidedBy spec:decisions.authored-entry-order · declared — open-section entries render as a list in authored order
  • spec:consumers.spec-studio.spec-page decidedBy spec:decisions.authored-entry-order · declared
  • spec:consumers.spec-studio.spec-page.core decidedBy spec:decisions.authored-entry-order · declared
Mermaid source

Copyable source; the Studio draws static SVG.

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

Rests on

Rested on by

Distance 1

Distance 2

Distance 3

Distance 4

Distance 5

Distance 6

Distance 7

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingSerialization preserves authored entry order
spec:extraction.open-section-order · resolves
declaredNoneNone
refines · outgoingDesign Review renders graph context without becoming a gate
spec:consumers.design-review · resolves
declaredNoneNone
refines · outgoingThe shipped projections stay frozen
spec:decisions.shipped-projections-frozen · resolves
declaredcarves out how the Design Review renders open-section entries, as a list in authored orderNone
decidedBy · incomingDesign Review renders graph context without becoming a gate
spec:consumers.design-review · resolves
declaredopen-section entries render as a list in authored orderNone
decidedBy · incomingA Spec page shows one Spec in collapsible panels, in a fixed order
spec:consumers.spec-studio.spec-page · resolves
declaredNoneNone
decidedBy · incomingA Spec page's core shows the whole Spec, with an anchor for every entry
spec:consumers.spec-studio.spec-page.core · 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.

Composing (0)

Composing needs the script.