Spec Studio

The reading skill teaches agents to query the graph

spec:consumers.reading-on-rampUse Case / Behavior · storyready floor ready

Packs: pack:self-hosting-v1

Design: no design entries · no pinned declarations · 1 decision

Findings: no errors, no warnings

specs/consumers/reading-on-ramp.sdp.md

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

Intent
outcome
Give an agent a shipped reading on-ramp that selects current graph evidence and the Spec that owns each law.
Behavior
rule line 16 · specs/consumers/reading-on-ramp.sdp.md:16
The skill names the closed graph node types, edge types and claims, links their carrying Specs, and moves when those contracts change.
rule line 17 · specs/consumers/reading-on-ramp.sdp.md:17
The skill teaches how delivery facts derive and explains the limits of empty answers, keeping a binding distinct from passing tests and runtime observation.
rule line 18 · specs/consumers/reading-on-ramp.sdp.md:18
The skill bootstraps through the Protocol repository wrapper or an adopter's package runner, selecting the appropriate root and exclusions without relying on a global sdp.
rule line 19 · specs/consumers/reading-on-ramp.sdp.md:19
The skill directs the reader from a question to the numbered, named catalog recipe that answers it, passes subjects as params, and teaches summary and detail output without creating query verbs.
rule line 20 · specs/consumers/reading-on-ramp.sdp.md:20
The skill links the Specs that own law and uses summaries for orientation; current graph data answers state questions and the carrying Specs answer intended truth.
rule line 21 · specs/consumers/reading-on-ramp.sdp.md:21
The skill carries one sheet that maps a delivery task to the recipe that answers it.

6 unkeyed rules.

Verification

Verifier bindings

  • test:protocol.reading-on-ramp · skill-asset checks verify the graph-reading on-ramp · anchored · test anchor binding present · test/skills.test.ts:669

    External run evidence from test/skills.test.ts

    Test anchors: test:protocol.adopter-on-ramp, test:protocol.authoring-on-ramp, test:protocol.delivery-session-on-ramp, test:protocol.graph-first-planning, test:protocol.reading-on-ramp, test:protocol.studio-on-ramp, test:protocol.vault-on-ramp. Specs verified by those bindings: spec:consumers.adopter-on-ramp, spec:consumers.authoring-on-ramp, spec:consumers.delivery-session-on-ramp, spec:consumers.graph-first-planning, spec:consumers.reading-on-ramp, spec:consumers.studio-on-ramp, spec:consumers.vault-on-ramp.

    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
    discovers the design slice's summary and detail parameternot recordedpassed7.03 ms
    teaches the named-file exception to both carrier-watch descriptionsnot recordedpassed1.09 ms
    teaches the optional priority field in the Pack manifest envelopenot recordedpassed0.8 ms
    teaches design rounds and curates bindings by responsibilitynot recordedpassed3.5 ms
    presents the Protocol engine roles and reviewed boundary as worked examples for adoptersnot recordedpassed1.21 ms
    routes the next work and reviews through roadmap and proposal recipesnot recordedpassed3.96 ms
    keeps planning truth in graph homes and session routing advisoryProtocol skill assetspassed1.33 ms
    rejects missing planning guidance: An open question goesProtocol skill assetspassed2.15 ms
    rejects missing planning guidance: A deferral isProtocol skill assetspassed1.08 ms
    rejects missing planning guidance: An unsettled factProtocol skill assetspassed0.92 ms
    rejects missing planning guidance: A ruling that awaitsProtocol skill assetspassed0.97 ms
    rejects missing planning guidance: A statement a test checksProtocol skill assetspassed1.51 ms
    rejects missing planning guidance: Derive a countProtocol skill assetspassed1.19 ms
    rejects missing planning guidance: Group a body of workProtocol skill assetspassed1.21 ms
    rejects missing planning guidance: Hold advisory priorityProtocol skill assetspassed2.68 ms
    owns skills under .agents and exposes them to Claude through one relative symlinkProtocol skill assetspassed0.51 ms
    ships every skill folder in the package and indexes it in the helpProtocol skill assetspassed1.18 ms
    uses the repository's two-field single-file conventionProtocol skill assetspassed2.59 ms
    keeps every skill graph-first and the authoring law linked to carrying SpecsProtocol skill assetspassed12.22 ms
    names the complete closed graph schema in the shape sectionProtocol skill assetspassed0.97 ms
    routes delivery sessions through the five advisory graph shapesProtocol skill assetspassed0.99 ms
    documents only valid CLI verbs and keeps root-specific exclusions intactProtocol skill assetspassed3.16 ms
    uses the local runtime or package runner instead of a colliding global binaryProtocol skill assetspassed1.56 ms
    contains no contradictory shortcuts for readiness or verifier realizationProtocol skill assetspassed2.44 ms
    states no recipe-catalog size in an on-rampProtocol skill assetspassed14.6 ms
    maps a task to every catalog recipe in one sheetthe graph-reading on-ramppassed2.92 ms
    links the Specs that own the graph contract, the claims and the sinkthe graph-reading on-ramppassed0.58 ms
    teaches every Markdown section owner and links the carrying grammaradopter teachingpassed2.33 ms
    teaches open-question homeadopter rule meaningspassed1.24 ms
    teaches blocking flooradopter rule meaningspassed1.19 ms
    teaches blocking deferraladopter rule meaningspassed1.36 ms
    teaches deferral triggeradopter rule meaningspassed1.24 ms
    teaches deferral preconditionadopter rule meaningspassed1.36 ms
    teaches independent defined flooradopter rule meaningspassed1.62 ms
    teaches complete example childrenadopter rule meaningspassed8.74 ms
    teaches example vocabulary agreementadopter rule meaningspassed1.29 ms
    teaches physical entry lineadopter rule meaningspassed1.34 ms
    teaches one leading prose owneradopter rule meaningspassed1.09 ms
    teaches Note is refusedadopter rule meaningspassed1.02 ms
    teaches ready reads parentadopter rule meaningspassed1.1 ms
    teaches ready waits for defined parentadopter rule meaningspassed1.14 ms
    teaches unsettled constraint homeadopter rule meaningspassed1.13 ms
    teaches unsettled blocking checkadopter rule meaningspassed1.11 ms
    teaches bounded relationadopter rule meaningspassed1.15 ms
    teaches bounded defined allowedadopter rule meaningspassed1.08 ms
    teaches bounded ready waitsadopter rule meaningspassed1.12 ms
    teaches pending decision below readyadopter rule meaningspassed1 ms
    teaches shaping relationadopter rule meaningspassed1.54 ms
    teaches owner states readyadopter rule meaningspassed1.41 ms
    teaches checked statement homeadopter rule meaningspassed2.23 ms
    teaches checking example relationadopter rule meaningspassed1.2 ms
    teaches example test bindingadopter rule meaningspassed1.1 ms
    teaches derived verifier factadopter rule meaningspassed1.14 ms
    teaches verifier existence versus passingadopter rule meaningspassed4.17 ms
    teaches CI owns outcomesadopter rule meaningspassed3.95 ms
    teaches no authored checked statusadopter rule meaningspassed4.14 ms
    teaches fresh derived counts registers scopeadopter rule meaningspassed1.07 ms
    teaches census sourceadopter rule meaningspassed7.43 ms
    teaches open-question register sourceadopter rule meaningspassed1.21 ms
    teaches dependency register sourceadopter rule meaningspassed1.17 ms
    teaches mention register sourceadopter rule meaningspassed1.48 ms
    teaches delta scope sourceadopter rule meaningspassed1.12 ms
    teaches no quoted countsadopter rule meaningspassed1.14 ms
    teaches operator-selected policyadopter rule meaningspassed1.21 ms
    teaches per-file policy parametersadopter rule meaningspassed2.29 ms
    teaches separate policy findingsadopter rule meaningspassed1.14 ms
    teaches policy failuresadopter rule meaningspassed1.03 ms
    teaches watch policy rereadsadopter rule meaningspassed1.02 ms
    teaches Constraints leading-prose exceptionadopter rule meaningspassed1.06 ms
    teaches one primary owneradopter rule meaningspassed1.08 ms
    rejects the opposite teaching for independent defined floor: defined floor does not read the parent's readinessadopter rule meaningspassed1.26 ms
    rejects the opposite teaching for independent defined floor: defined floor does not read the parent's readinessadopter rule meaningspassed1.22 ms
    rejects the opposite teaching for example vocabulary agreement: complete and match the parent's example vocabulary, when it has oneadopter rule meaningspassed1.15 ms
    rejects the opposite teaching for ready reads parent: ready floor does read the parent's readinessadopter rule meaningspassed1.15 ms
    rejects the opposite teaching for physical entry line: a wrapped or indented continuation is refusedadopter rule meaningspassed1.17 ms
    rejects the opposite teaching for one leading prose owner: Leading prose may stand under that owner or under Example space, not bothadopter rule meaningspassed1.15 ms
    rejects the opposite teaching for Note is refused: The parser reads - Note: x as a key and refuses itadopter rule meaningspassed1.15 ms
    rejects the opposite teaching for open-question home: An open question goes under Intent's ### Open questions.adopter rule meaningspassed1.21 ms
    accepts a harmless open-question instruction frameadopter rule meaningspassed1.7 ms
    defined examples ignore parent readiness but read its vocabulary: matches=trueadopter rule meaningspassed3.78 ms
    defined examples ignore parent readiness but read its vocabulary: matches=falseadopter rule meaningspassed0.45 ms
    teaches the Intent grammar rowadopter rule meaningspassed0.66 ms
    teaches the Intent grammar rowadopter rule meaningspassed0.57 ms
    teaches the Behavior grammar rowadopter rule meaningspassed0.54 ms
    teaches the Rule grammar rowadopter rule meaningspassed1.82 ms
    teaches the Workflow grammar rowadopter rule meaningspassed0.56 ms
    teaches the Workflow grammar rowadopter rule meaningspassed0.51 ms
    teaches the Contract grammar rowadopter rule meaningspassed0.58 ms
    teaches the Example space grammar rowadopter rule meaningspassed0.49 ms
    teaches the Example space grammar rowadopter rule meaningspassed0.54 ms
    teaches the Constraints grammar rowadopter rule meaningspassed0.56 ms
    teaches the Constraints grammar rowadopter rule meaningspassed0.47 ms
    teaches the Constraints grammar rowadopter rule meaningspassed0.47 ms
    teaches the Model grammar rowadopter rule meaningspassed0.53 ms
    teaches the Model grammar rowadopter rule meaningspassed0.64 ms
    teaches the Design grammar rowadopter rule meaningspassed0.54 ms
    teaches the Design grammar rowadopter rule meaningspassed0.53 ms
    teaches the Decision grammar rowadopter rule meaningspassed0.55 ms
    teaches the Decision grammar rowadopter rule meaningspassed0.51 ms
    teaches the UI grammar rowadopter rule meaningspassed0.43 ms
    teaches the Verification — <mode> grammar rowadopter rule meaningspassed0.46 ms
    teaches the Verification — <mode> grammar rowadopter rule meaningspassed0.42 ms
    teaches the Verification — <mode> grammar rowadopter rule meaningspassed0.44 ms
    keeps graph-reader verifier teaching about existence and CI outcomesadopter rule meaningspassed0.79 ms
    keeps session teaching advisory and separate from permissionadopter rule meaningspassed0.48 ms
    the README teaches commit pinadopter install and upgrade guidancepassed0.3 ms
    the README teaches npm script approvaladopter install and upgrade guidancepassed0.25 ms
    the README teaches npm git approvaladopter install and upgrade guidancepassed0.21 ms
    the README teaches pnpm repository approvaladopter install and upgrade guidancepassed0.21 ms
    the README teaches pnpm 10 exact approvaladopter install and upgrade guidancepassed0.21 ms
    the README teaches installed CLI checkadopter install and upgrade guidancepassed0.21 ms
    the README teaches vitest subpath requirementadopter install and upgrade guidancepassed0.22 ms
    the README teaches recipe subject as paramsadopter install and upgrade guidancepassed0.2 ms
    refuses wrapped continuationtaught grammar agrees with parser behaviorpassed1.34 ms
    refuses indented continuationtaught grammar agrees with parser behaviorpassed0.18 ms
    allows leading prose under either owner and refuses it under bothtaught grammar agrees with parser behaviorpassed1.03 ms
    refuses Note as a plain Rule entrytaught grammar agrees with parser behaviorpassed0.28 ms
    refuses Note as a plain Workflow entrytaught grammar agrees with parser behaviorpassed0.13 ms
    refuses Note as a plain Contract entrytaught grammar agrees with parser behaviorpassed0.09 ms
    refuses Note as a plain Verification — manual entrytaught grammar agrees with parser behaviorpassed0.51 ms
    refuses unique Model terms duplicatestaught grammar agrees with parser behaviorpassed0.52 ms
    refuses unique Design keys duplicatestaught grammar agrees with parser behaviorpassed0.13 ms
    refuses unique UI keys via Design form duplicatestaught grammar agrees with parser behaviorpassed0.09 ms
    refuses single Intent actor duplicatestaught grammar agrees with parser behaviorpassed0.55 ms
    refuses single Intent problem duplicatestaught grammar agrees with parser behaviorpassed0.15 ms
    refuses single Intent outcome duplicatestaught grammar agrees with parser behaviorpassed0.1 ms
    refuses single Intent value duplicatestaught grammar agrees with parser behaviorpassed0.1 ms
    refuses single Constraints statement duplicatestaught grammar agrees with parser behaviorpassed0.28 ms
    refuses single Constraints flavor duplicatestaught grammar agrees with parser behaviorpassed0.21 ms
    refuses single Constraints target duplicatestaught grammar agrees with parser behaviorpassed0.13 ms
    refuses single Constraints measurableBy duplicatestaught grammar agrees with parser behaviorpassed0.1 ms
    refuses single Decision context duplicatestaught grammar agrees with parser behaviorpassed0.23 ms
    refuses single Decision decision duplicatestaught grammar agrees with parser behaviorpassed0.12 ms
    allows Behavior alone and refuses a second primary ownertaught grammar agrees with parser behaviorpassed0.52 ms
    allows Rule alone and refuses a second primary ownertaught grammar agrees with parser behaviorpassed0.22 ms
    allows Workflow alone and refuses a second primary ownertaught grammar agrees with parser behaviorpassed0.14 ms
    allows Contract alone and refuses a second primary ownertaught grammar agrees with parser behaviorpassed0.2 ms
    allows leading prose in Design and refuses it in Constraintstaught grammar agrees with parser behaviorpassed0.2 ms
    allows the taught repeatable Intent entriestaught grammar agrees with parser behaviorpassed0.18 ms
    allows the taught repeatable Decision entriestaught grammar agrees with parser behaviorpassed0.14 ms
    extracts the key the skill's marker carries and resolves the address the skill gives itthe taught question markerpassed13.76 ms
    leaves the address unresolved when the key stands outside the bracketsthe taught question markerpassed8.53 ms
    creates the anchored suite before generating, and the build places the registrar beside itthe reviewed skill teachingpassed23.52 ms
    keys a step in the vocabulary, as the step-key law and the contract generator agreethe reviewed skill teachingpassed8.43 ms
    owns publishing in one reader section that agrees with each verb's flagsthe reviewed skill teachingpassed2.25 ms
    names the vault's owned folder, the person's notes and the roots a vault run removesthe reviewed skill teachingpassed0.64 ms
    teaches entry addresses, term addresses and anchored source citations as the engine derives themthe reviewed skill teachingpassed15.32 ms
    states what an empty or ready answer establishes and no morethe reviewed skill teachingpassed1.27 ms
    teaches a refused bundle as the end of pagination, as recipe 36 refusesthe reviewed skill teachingpassed9.72 ms
    keeps corpus rules in one section whose composed rules file runs as taughtthe reviewed skill teachingpassed9.15 ms
    points every skill at the installed upgrade guide and triggers authoring on upgrades and rulesthe reviewed skill teachingpassed1.5 ms
    orders the reader as a task route and leaves recipe contracts to the catalogthe reviewed skill teachingpassed0.78 ms
    states the graph's flat topology and which node types carry lines, as the graph doesthe reviewed skill teachingpassed14.53 ms
    is its own shipped skill, which the reading skill points tothe Studio on-ramppassed1.1 ms
    starts from what the agent holdsthe Studio on-ramppassed0.52 ms
    teaches the publishing run as the studio and generate verbs take itthe Studio on-ramppassed2.39 ms
    teaches stamping and the preview workflow as the workflow declares themthe Studio on-ramppassed6.91 ms
    has the preview's run evidence checked against the stamp, never assumed to match itthe Studio on-ramppassed3.17 ms
    maps each task to a page the Studio writes, and states what a page does notthe Studio on-ramppassed45.15 ms
    receives the composing panel's hand-off through the proposal checkthe Studio on-ramppassed19.46 ms
    cites resolving Studio Specs for law and leaves flags to each verb's helpthe Studio on-ramppassed700.44 ms
    is its own shipped skill, which the reading skill points tothe vault on-ramppassed1.29 ms
    places the vault where the command accepts itthe vault on-ramppassed3.7 ms
    keeps the person's notes outside the folder the command ownsthe vault on-ramppassed0.51 ms
    teaches synchronizing and watching as the verbs and the failed index state themthe vault on-ramppassed0.51 ms
    names every refusal the guard prints and how to recover from itthe vault on-ramppassed0.81 ms
    converts a note's links back to the addresses the vault wrote, then checks the proposalthe vault on-ramppassed14.49 ms
    takes the proposal's base from the graph the person read, never from the latest synchronizationthe vault on-ramppassed4.12 ms
    cites resolving vault Specs for law and leaves flags to the verb's helpthe vault on-ramppassed124.17 ms
Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
Requirement drawing for spec:consumers.reading-on-ramp

Scroll horizontally to read the whole drawing.

Requirement drawing for spec:consumers.reading-on-rampsatisfies · anchoredsatisfies · anchoredsatisfies · anchoredrefines · declaredrefines · declaredrefines · declaredverifies · anchoredverifies · anchoredverifies · anchoredIntended Specsspec:consumers.reading-on-rampThe reading skill teachesagents to query the graph…consumers.reading-on-rampdeclared Specspec:consumers.studio-on-rampThe Studio skill teachesagents to publish, shareand read the Spec Studio…consumers.studio-on-rampdeclared Specspec:consumers.vault-on-rampThe vault skill teachesagents to keep an Obsidianvault of the graph…consumers.vault-on-rampdeclared SpecSatisfying or referencingunitsimpl:protocol.reading-on-rampasserts realization of theshipped graph-reading skilldocumentimpl:protocol.reading-on-rampanchored codeimpl:protocol.studio-on-rampasserts realization of theshipped Studio skilldocumentimpl:protocol.studio-on-rampanchored codeimpl:protocol.vault-on-rampasserts realization of theshipped vault skill documentimpl:protocol.vault-on-rampanchored codeTest or oracle bindingstest:protocol.reading-on-rampskill-asset checks verifythe graph-reading on-ramptest:protocol.reading-on-rampanchored test binding ·binding presenttest:protocol.studio-on-rampskill-asset checks verifythe Studio on-ramp againstthe verbs, workflow andpagestest:protocol.studio-on-rampanchored test binding ·binding presenttest:protocol.vault-on-rampskill-asset checks verifythe vault on-ramp againstthe verb, its guard and itsnotestest:protocol.vault-on-rampanchored test binding ·binding presentOutside the selected setspec:consumers.agent-surfaceAgents script a visibletyped graph…consumers.agent-surfacedeclared Spec
The diagram as text
  • spec:consumers.reading-on-ramp: The reading skill teaches agents to query the graph · declared Spec
  • spec:consumers.studio-on-ramp: The Studio skill teaches agents to publish, share and read the Spec Studio · declared Spec
  • spec:consumers.vault-on-ramp: The vault skill teaches agents to keep an Obsidian vault of the graph · declared Spec
  • spec:consumers.agent-surface: Agents script a visible typed graph · declared Spec
  • impl:protocol.reading-on-ramp: asserts realization of the shipped graph-reading skill document · anchored code · test/skills.test.ts:662
  • impl:protocol.studio-on-ramp: asserts realization of the shipped Studio skill document · anchored code · test/skills.test.ts:1693
  • impl:protocol.vault-on-ramp: asserts realization of the shipped vault skill document · anchored code · test/skills.test.ts:1995
  • test:protocol.reading-on-ramp: skill-asset checks verify the graph-reading on-ramp · anchored test binding · binding present · test/skills.test.ts:669
  • test:protocol.studio-on-ramp: skill-asset checks verify the Studio on-ramp against the verbs, workflow and pages · anchored test binding · binding present · test/skills.test.ts:1700
  • test:protocol.vault-on-ramp: skill-asset checks verify the vault on-ramp against the verb, its guard and its notes · anchored test binding · binding present · test/skills.test.ts:2002
  • spec:consumers.reading-on-ramp refines spec:consumers.agent-surface · declared
  • spec:consumers.studio-on-ramp refines spec:consumers.reading-on-ramp · declared — a Studio page is a person's reading of the one graph, and the skill sends an agent from a page to the graph behind it
  • spec:consumers.vault-on-ramp refines spec:consumers.reading-on-ramp · declared — a vault note is a person's reading of the one graph, and the skill turns what the person writes beside it into checked edits
  • impl:protocol.reading-on-ramp satisfies spec:consumers.reading-on-ramp · anchored
  • impl:protocol.studio-on-ramp satisfies spec:consumers.studio-on-ramp · anchored
  • impl:protocol.vault-on-ramp satisfies spec:consumers.vault-on-ramp · anchored
  • test:protocol.reading-on-ramp verifies spec:consumers.reading-on-ramp · anchored
  • test:protocol.studio-on-ramp verifies spec:consumers.studio-on-ramp · anchored
  • test:protocol.vault-on-ramp verifies spec:consumers.vault-on-ramp · 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

Runtime
  • impl:protocol.reading-on-ramp · asserts realization of the shipped graph-reading skill document · test/skills.test.ts:662

    Uses

    None.

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.reading-on-ramp
The diagram as text
  • spec:consumers.agent-surface: Agents script a visible typed graph
  • spec:consumers.reading-on-ramp: The reading skill teaches agents to query the graph
  • spec:consumers.studio-on-ramp: The Studio skill teaches agents to publish, share and read the Spec Studio
  • spec:consumers.vault-on-ramp: The vault skill teaches agents to keep an Obsidian vault of the graph
  • spec:decisions.agent-front-door: The agent front door is one evaluation sink over the exported reader
  • spec:consumers.reading-on-ramp decidedBy spec:decisions.agent-front-door · declared
  • spec:consumers.reading-on-ramp refines spec:consumers.agent-surface · declared
  • spec:consumers.studio-on-ramp refines spec:consumers.reading-on-ramp · declared — a Studio page is a person's reading of the one graph, and the skill sends an agent from a page to the graph behind it
  • spec:consumers.vault-on-ramp refines spec:consumers.reading-on-ramp · declared — a vault note is a person's reading of the one graph, and the skill turns what the person writes beside it into checked edits
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

Relations

Relation and directionOther endClaimReasonExercised keys
decidedBy · outgoingThe agent front door is one evaluation sink over the exported reader
spec:decisions.agent-front-door · resolves
declaredNoneNone
refines · outgoingAgents script a visible typed graph
spec:consumers.agent-surface · resolves
declaredNoneNone
refines · incomingThe Studio skill teaches agents to publish, share and read the Spec Studio
spec:consumers.studio-on-ramp · resolves
declareda Studio page is a person's reading of the one graph, and the skill sends an agent from a page to the graph behind itNone
refines · incomingThe vault skill teaches agents to keep an Obsidian vault of the graph
spec:consumers.vault-on-ramp · resolves
declareda vault note is a person's reading of the one graph, and the skill turns what the person writes beside it into checked editsNone

Bindings

Implementation binding: present

  • impl:protocol.reading-on-ramp · asserts realization of the shipped graph-reading skill document · test/skills.test.ts:662

Design reference: none

Verifier binding: present

  • test:protocol.reading-on-ramp · skill-asset checks verify the graph-reading on-ramp · anchored · test/skills.test.ts:669 · 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.