Spec Studio

Capability adoption counts keyed rules and reasoned relations

spec:consumers.upgrade-kit.capability-adoption.counts-a-corpusExample / Scenario · storyready floor ready

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

Intent
outcome
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 declares dependsOn on the second with a reason; the second carries no rule and declares refines on the first with no reason. It runs the shipped capability adoption file through sdp q --json with no parameters; a row reads <inUse> of <applicable>, and null when a count is null.
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:345

    External run evidence from test/upgrade-kit.test.ts

    Test 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

    NameSuiteResultDuration
    applies unchanged scopes while sending only moved changes to a personupgrade kitpassed1.93 ms
    names a carrying Spec in every guide sectionupgrade kitpassed0.58 ms
    teaches the upgrade steps in the pinned orderupgrade kitpassed1.14 ms
    teaches epic reparenting and advisory roadmap adoptionupgrade kitpassed0.48 ms
    runs the guide's rules file on a clean corpus with no address parametersupgrade kitpassed26.18 ms
    names the recipes' carrying Specs and teaches rule-key proposal as the rule-key actionupgrade kitpassed1.8 ms
    ships the guide and names every reported capability's law and measurementupgrade kitpassed17.05 ms
    counts rules, reasons and unknown external perspectivesupgrade kitpassed21.17 ms
    coins collisions and lists an unkeyable entryupgrade kitpassed11.27 ms
    executes the bound example against a fresh worldCapability adoption counts keyed rules and reasoned relations (spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus)passed9.23 ms
    executes the bound example against a fresh worldA rule-key proposal passes the proposal check and validates once applied (spec:consumers.upgrade-kit.rule-key-proposal.proposal-applies-clean)passed12.56 ms
    executes the bound example against a fresh worldTwo 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)passed13.93 ms
    counts distinct step skeletons and vocabulary keys inherited through refinescapability adoption detailspassed15.36 ms
    counts distinct step skeletons and vocabulary keys inherited through verifiescapability adoption detailspassed17.05 ms
    counts repeated vocabulary and example steps once per skeleton within a Speccapability adoption detailspassed3.68 ms
    counts all capabilities and deduplicates shared components and repeated Pack memberscapability adoption detailspassed20.68 ms
    diagnoses detail nullcapability adoption detailspassed2.27 ms
    diagnoses detail 1capability adoption detailspassed2.16 ms
    diagnoses detail "all"capability adoption detailspassed2.08 ms
    diagnoses detail {}capability adoption detailspassed2.06 ms
    diagnoses detail "spec:missing"capability adoption detailspassed1.97 ms
    diagnoses detail truecapability adoption detailspassed1.94 ms
    drops possessives and apostrophes before coining keysrule-key proposal detailspassed2.38 ms
    preserves scope and entry order and skips existing keys and tagsrule-key proposal detailspassed12.62 ms
    diagnoses both scopes even when each resolvesrule-key proposal detailspassed2.4 ms
    diagnoses invalid parameters {}rule-key proposal detailspassed2.06 ms
    diagnoses invalid parameters {"commit":""}rule-key proposal detailspassed2.07 ms
    diagnoses invalid parameters {"commit":1}rule-key proposal detailspassed1.99 ms
    diagnoses invalid parameters {"commit":"abc","pack":"pack:missing"}rule-key proposal detailspassed1.73 ms
    diagnoses invalid parameters {"commit":"abc","specs":["spec:missing"]}rule-key proposal detailspassed2.12 ms
    diagnoses invalid parameters {"commit":"abc","specs":[],"pack":"pack:missing"}rule-key proposal detailspassed1.32 ms
    diagnoses invalid parameters {"commit":"abc","specs":"all"}rule-key proposal detailspassed1.26 ms
    drops leading digit words before checking word repeatsnot recordedpassed1.48 ms
Design view

Requirement drawing

  • Satisfying or referencing units: no recorded binding.
Requirement drawing for spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus
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
Relations of spec:consumers.upgrade-kit.capability-adoption.counts-a-corpus
  • 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

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingCapability adoption counts where each capability is used and where it could apply
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredNoneNone
verifies · outgoingCapability adoption counts where each capability is used and where it could apply
spec:consumers.upgrade-kit.capability-adoption · resolves
declaredNonecapabilityRows, 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.