Solid Spec Companions
The sidecar RDF that makes a specification’s normative statements machine-checkable
A catalogue of the machine-readable companions produced alongside five specifications in the @jeswr Solid suite. Companions are complementary documents — the full-text specifications remain the normative source; the companion is what lets a claim in that text be checked by software rather than only read by a person.
The format home
jeswr/spec-companion is the machine-readable spec-companion format itself: the shared shape every companion below is written against. It reuses the W3C spec: vocabulary rather than minting a competing one, and adds a testability spine — a fixed vocabulary for classifying exactly how checkable each normative statement is (see below) — plus a SHACL “spec-of-specs” guardrail: a shape that validates the companions themselves, enforced by a validator with five global structural checks, G1–G5.
Companions are complementary documents, not replacements: the full-text specification stays the normative source a person reads; the companion is the sidecar a machine reads to check conformance against it.
The spec-companion format
Reuses the W3C spec: vocabulary + the testability spine (E / A-int / A-exist / P) + a SHACL “spec-of-specs” guardrail, enforced by a validator (globals G1–G5). This is the format home, not one of the five companions — every companion below is written against it.
The testability spine
Every normative statement in a companion is tagged with one of four testability classes — how, in principle, a claim of conformance to that statement could actually be checked:
Server-denies. The statement describes behaviour a conforming server actively enforces — a violation is caught and rejected at request time.
Audit-detectable from signed evidence. A violation isn’t blocked in the moment, but is detectable after the fact from cryptographically signed evidence.
Record exists but unverifiable. A record of the fact is produced, but nothing lets an independent party verify it after the fact.
Premature decline. The statement is explicitly marked not yet testable by any of the above — an honest “not there yet” rather than a forced classification.
The five core companions
Each row below is a companion document for one specification in the suite — the statement count is the number of individually testable normative statements the companion extracts and classifies.
A2A RDF Extension
The A2A RDF protocol-document extension — formalizes what @jeswr/solid-a2a implements.
Agentic Solid Conformance
The shared conformance test-vector suite — the language-neutral golden vectors an independent implementation must reproduce.
Solid WebAuthn Re-auth
The redirect-free WebAuthn re-auth profile — WebAuthn L3 + Solid-OIDC + RFC 8693 token-exchange.
First companion with sc:formalModel seams.
DPoP-SK
The DPoP-SK PoP-negotiation profile — the Tier-2 browser fast path: one DPoP proof at session establishment, then per-request RFC 9421 HMAC attestation.
Linked Web Storage (clean-slate)
Clean-slate Linked Web Storage: the index companion (195 statements) plus the rdf-transform companion (47 statements).
The index companion doubles as the LWS test-suite requirement index.
Honest framing
All five companions validate at 0 errors against the spec-of-specs SHACL guardrail, and the authoring process itself surfaced ~53 per-spec errata in the source specifications along the way — the companion format is already paying for itself as a proofreading pass, independent of tooling.
Two things remain pending: publication of the jeswr/spec-companion format repository itself, and wiring the validator up as an enforced CI gate rather than a manually-run check.