outcomeA manifest's member order survives into the graph and the reader
spec:extraction.pack-member-order.manifest-order-keptPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/extraction/pack-member-order.manifest-order-kept.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
a Markdown Pack manifest whose specs list reads {manifestOrder: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}When
the graph is derived and serialized
Then
the serialized Pack node lists the members {serializedMembers: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}
the serialized belongsTo edges run from {edgeSources: "spec:probe.alpha, spec:probe.mid, spec:probe.zeta"}
the reader's Pack context lists the members {readerMembers: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}Composing needs the script.
Intent
- Execute the member order rule on a manifest whose authored order is not id order.
assumptions- The world writes one Markdown Pack manifest and three member Specs in one extraction root. Each member is a story-altitude behavior Spec stating
ideawith an Intent outcome and no relations. Lists are written as ids joined by a comma and a space.
- The world writes one Markdown Pack manifest and three member Specs in one extraction root. Each member is a story-altitude behavior Spec stating
Behavior
Examples
Given a Markdown Pack manifest whose specs list reads {manifestOrder: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}
When the graph is derived and serialized
Then the serialized Pack node lists the members {serializedMembers: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}
Then the serialized belongsTo edges run from {edgeSources: "spec:probe.alpha, spec:probe.mid, spec:probe.zeta"}
Then the reader's Pack context lists the members {readerMembers: "spec:probe.zeta, spec:probe.alpha, spec:probe.mid"}Verification
Verifier bindings
- test:protocol.pack-member-order · verifies manifest order in the graph, reader and Pack page · anchored · test anchor binding present ·
test/self-hosting-pack-member-order.test.ts:108External run evidence from
test/self-hosting-pack-member-order.test.tsTest anchors:
test:protocol.pack-member-order. Specs verified by those bindings: spec:extraction.pack-member-order, spec:extraction.pack-member-order.manifest-order-kept.Run 1: external run evidence from vitest 4.1.10
Build: CI 380 · Branch: feature/roadmap-and-slices-v0 · Commit: 34909918bf0be0e849959644401797191cae379f · Start: 2026-10-22T17:40:31.456Z · Stop: 2026-10-22T17:42:16.171Z
Name Suite Result Duration executes the bound example against a fresh world A manifest's member order survives into the graph and the reader (spec:extraction.pack-member-order.manifest-order-kept) passed 25.09 ms keeps repeated members in the graph, reader, member table and gap list Pack member order passed 32.45 ms carries an empty members list for an empty manifest Pack member order passed 2.94 ms derives empty members when specs is undefined Pack member order passed 0.39 ms derives empty members when specs is not an array Pack member order passed 0.32 ms serializes framing, file, members and modelRefs in the ruled field order Pack member order passed 0.28 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
The diagram as text
- spec:extraction.pack-member-order.manifest-order-kept: A manifest's member order survives into the graph and the reader · declared Spec
- spec:extraction.pack-member-order: A Pack node keeps its members in authored order · declared Spec
- test:protocol.pack-member-order: verifies manifest order in the graph, reader and Pack page · anchored test binding · binding present ·
test/self-hosting-pack-member-order.test.ts:108 - spec:extraction.pack-member-order.manifest-order-kept refines spec:extraction.pack-member-order · declared
- spec:extraction.pack-member-order.manifest-order-kept verifies spec:extraction.pack-member-order · declared
- test:protocol.pack-member-order verifies spec:extraction.pack-member-order.manifest-order-kept · anchored
Mermaid source
Copyable source; the Studio draws static SVG.
Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.
Decisions
No decision record named.
Runtime
No implementation neighborhood recorded.
Runtime observation: not tracked.
Evidence
Runtime observation: not tracked.
Build attestations: not tracked.
Deployments: not tracked.
Bills of materials: not tracked.
Impact
- E2: verifies · declared
The diagram as text
- spec:extraction.pack-member-order: A Pack node keeps its members in authored order
- spec:extraction.pack-member-order.manifest-order-kept: A manifest's member order survives into the graph and the reader
- spec:extraction.pack-member-order.manifest-order-kept refines spec:extraction.pack-member-order · declared
- spec:extraction.pack-member-order.manifest-order-kept verifies spec:extraction.pack-member-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
- refines · spec:extraction.pack-member-order · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | A Pack node keeps its members in authored orderspec:extraction.pack-member-order · resolves | declared | None | None |
| verifies · outgoing | A Pack node keeps its members in authored orderspec:extraction.pack-member-order · resolves | declared | None | authoredMembers |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.pack-member-order · verifies manifest order in the graph, reader and Pack page · anchored ·
test/self-hosting-pack-member-order.test.ts:108· test anchor
Expected-outcome oracle: none
Runtime observation: not tracked.
Run results: not recorded in the graph.
Findings
None.
Composing (0)
Composing needs the script.