outcomeCapability adoption counts keyed rules and reasoned relations
spec:consumers.upgrade-kit.capability-adoption.counts-a-corpusPacks: pack:adopter-speed-v1, pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/consumers/upgrade-kit.capability-adoption.counts-a-corpus.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
a probe corpus with {rules: 3} rule entries of which {keyed: 1} carry a key, and {relations: 2} authored relations of which {reasons: 1} carry a reasonWhen
capability adoption runs over it without perspectives
Then
the rule-key row reads {ruleKeys: "1 of 3"}
the relation-reason row reads {relationReasons: "1 of 2"}
the perspectives row reads {perspectives: "null of null"}Composing needs the script.
Intent
- Execute the capability rows on a probe corpus with known counts of keyed rules and reasoned relations, and no perspectives passed.
assumptions- The world writes a probe corpus of two story-altitude behavior Specs stating
idea, each with an Intent outcome. The first carries three rules, one of them keyed, and declaresdependsOnon the second with a reason; the second carries no rule and declaresrefineson the first with no reason. It runs the shipped capability adoption file throughsdp q --jsonwith no parameters; a row reads<inUse> of <applicable>, andnullwhen a count is null.
- The world writes a probe corpus of two story-altitude behavior Specs stating
Behavior
Examples
Given a probe corpus with {rules: 3} rule entries of which {keyed: 1} carry a key, and {relations: 2} authored relations of which {reasons: 1} carry a reason
When capability adoption runs over it without perspectives
Then the rule-key row reads {ruleKeys: "1 of 3"}
Then the relation-reason row reads {relationReasons: "1 of 2"}
Then the perspectives row reads {perspectives: "null of null"}Verification
Verifier bindings
- test:protocol.capability-adoption.counts-a-corpus · anchored · test anchor binding present ·
test/upgrade-kit.test.ts:345External run evidence from
test/upgrade-kit.test.tsTest anchors:
test:protocol.capability-adoption.counts-a-corpus,test:protocol.rule-key-proposal.collision-and-unkeyable,test:protocol.rule-key-proposal.proposal-applies-clean,test:protocol.upgrade-guide. Specs verified by those bindings: spec:consumers.upgrade-kit, spec:consumers.upgrade-kit.capability-adoption, spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus, spec:consumers.upgrade-kit.rule-key-proposal, spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable, spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean.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 applies unchanged scopes while sending only moved changes to a person upgrade kit passed 1.93 ms names a carrying Spec in every guide section upgrade kit passed 0.58 ms teaches the upgrade steps in the pinned order upgrade kit passed 1.14 ms teaches epic reparenting and advisory roadmap adoption upgrade kit passed 0.48 ms runs the guide's rules file on a clean corpus with no address parameters upgrade kit passed 26.18 ms names the recipes' carrying Specs and teaches rule-key proposal as the rule-key action upgrade kit passed 1.8 ms ships the guide and names every reported capability's law and measurement upgrade kit passed 17.05 ms counts rules, reasons and unknown external perspectives upgrade kit passed 21.17 ms coins collisions and lists an unkeyable entry upgrade kit passed 11.27 ms executes the bound example against a fresh world Capability adoption counts keyed rules and reasoned relations (spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus) passed 9.23 ms executes the bound example against a fresh world A rule-key proposal passes the proposal check and validates once applied (spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean) passed 12.56 ms executes the bound example against a fresh world Two rules that coin one key stay apart, and a rule with no ASCII word stays unkeyed (spec:consumers.upgrade-kit.rule-key-proposal.collision-and-unkeyable) passed 13.93 ms counts distinct step skeletons and vocabulary keys inherited through refines capability adoption details passed 15.36 ms counts distinct step skeletons and vocabulary keys inherited through verifies capability adoption details passed 17.05 ms counts repeated vocabulary and example steps once per skeleton within a Spec capability adoption details passed 3.68 ms counts all capabilities and deduplicates shared components and repeated Pack members capability adoption details passed 20.68 ms diagnoses detail null capability adoption details passed 2.27 ms diagnoses detail 1 capability adoption details passed 2.16 ms diagnoses detail "all" capability adoption details passed 2.08 ms diagnoses detail {} capability adoption details passed 2.06 ms diagnoses detail "spec:missing" capability adoption details passed 1.97 ms diagnoses detail true capability adoption details passed 1.94 ms drops possessives and apostrophes before coining keys rule-key proposal details passed 2.38 ms preserves scope and entry order and skips existing keys and tags rule-key proposal details passed 12.62 ms diagnoses both scopes even when each resolves rule-key proposal details passed 2.4 ms diagnoses invalid parameters {} rule-key proposal details passed 2.06 ms diagnoses invalid parameters {"commit":""} rule-key proposal details passed 2.07 ms diagnoses invalid parameters {"commit":1} rule-key proposal details passed 1.99 ms diagnoses invalid parameters {"commit":"abc","pack":"pack:missing"} rule-key proposal details passed 1.73 ms diagnoses invalid parameters {"commit":"abc","specs":["spec:missing"]} rule-key proposal details passed 2.12 ms diagnoses invalid parameters {"commit":"abc","specs":[],"pack":"pack:missing"} rule-key proposal details passed 1.32 ms diagnoses invalid parameters {"commit":"abc","specs":"all"} rule-key proposal details passed 1.26 ms drops leading digit words before checking word repeats not recorded passed 1.48 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
The diagram as text
- spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus: Capability adoption counts keyed rules and reasoned relations · declared Spec
- spec:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply · declared Spec
- test:protocol.capability-adoption.counts-a-corpus: test:protocol.capability-adoption.counts-a-corpus · anchored test binding · binding present ·
test/upgrade-kit.test.ts:345 - spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus refines spec:consumers.upgrade-kit.capability-adoption · declared
- spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus verifies spec:consumers.upgrade-kit.capability-adoption · declared
- test:protocol.capability-adoption.counts-a-corpus verifies spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus · 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:consumers.upgrade-kit.capability-adoption: Capability adoption counts where each capability is used and where it could apply
- spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus: Capability adoption counts keyed rules and reasoned relations
- spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus refines spec:consumers.upgrade-kit.capability-adoption · declared
- spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus verifies spec:consumers.upgrade-kit.capability-adoption · 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.upgrade-kit.capability-adoption · 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 | Capability adoption counts where each capability is used and where it could applyspec:consumers.upgrade-kit.capability-adoption · resolves | declared | None | None |
| verifies · outgoing | Capability adoption counts where each capability is used and where it could applyspec:consumers.upgrade-kit.capability-adoption · resolves | declared | None | capabilityRows, outsideTheGraph |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.capability-adoption.counts-a-corpus · anchored ·
test/upgrade-kit.test.ts:345· 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.