Manifest JSON Schema
The machine-readable contract for adapter manifests, served by the node-local docs host (ADR-0036 — docs ride the daemon, not public Pages):
http://localhost:5474/manifest.schema.json
- Generated from the same code that parses manifests — the schema is
always exactly what
spt adapter addaccepts structurally. It also ships as a release asset with every release, which is the copy to pin in automation that runs where no daemon is up. - The URL is served by your own installed daemon, so what you fetch there
is your installed version’s schema, not necessarily the latest release’s.
Debugging a validation mismatch, check
spt --versionbefore assuming the schema is wrong — the release-asset copy is the version-explicit one. - JSON Schema draft 2020-12; the
$idis the canonical URL above and is stable across releases. - Field doc-comments ride along as
descriptions — the schema doubles as field-level documentation. - Manifests are authored as TOML; the schema describes the equivalent data model (validate the TOML-parsed document).
- Cross-field rules the schema can’t express (kind↔
[shell]agreement, strategy/avenue required fields) are listed in the manifest reference and enforced byspt adapter add.
Example — validate a manifest mechanically (Python, any JSON-Schema validator works the same way):
import json, tomllib, urllib.request, jsonschema
schema = json.load(urllib.request.urlopen(
"http://localhost:5474/manifest.schema.json"))
with open("manifest.toml", "rb") as f:
manifest = tomllib.load(f)
jsonschema.validate(manifest, schema) # raises on violation
print("manifest is structurally valid")