Draft · v0.3.0 · MIT licensed

A structured language for what robots do,
and how you prove it happened.

Spur Protocol is an open standard for packaging, validating, and deploying robotics Skill Packs across heterogeneous autonomous fleets — and, as of 0.3.0, for recording a signed, licensable human demonstration behind one. Four canonical objects compile into a runtime contract. Nothing here is marketing copy; every claim below is generated from the schemas in this repo.

Four inputs compile into one runtime-ready plan.

A Task Envelope captures intent and context. A Skill Pack contributes executable capabilities. A Governance Policy constrains allowable behavior. compileExecutionPlan() resolves these into a hashed, deterministic Execution Plan. Adapters translate that plan into platform-specific commands — ROS2, VDA 5050, or a vendor API — while preserving protocol semantics, and a conformant runtime emits an append-only Audit Event trail for every step.

Eight objects. Every field, every example, pulled live from this repo.

This isn't documentation written about the schemas. It's generated from them at build time — if a field here is wrong, the schema itself is wrong.

Install it. Validate something. Compile a plan.

SHinstall
npm i @spurprotocol/types @spurprotocol/validator @spurprotocol/compiler
TSvalidate an envelope
import { validateSpurEnvelope } from '@spurprotocol/validator';

validateSpurEnvelope(envelope); // throws with the exact field that failed, or returns
TScompile a plan
import { compileExecutionPlan } from '@spurprotocol/compiler';

const plan = compileExecutionPlan({ envelope, skill, policy, robot });
console.log(plan.hash, plan.planId); // deterministic -- same inputs, same hash

Full spec, conformance vectors, and the runtime contract live in the repo — spec/ and examples/.