Work lifecycle
Creation, atomic claim, assignment filters, events, parking, decisions, completion, and recovery.
The kit knows nothing about your database, framework, or internals. It speaks the RC2 binding exactly as an unfamiliar client would.
Every output line cites the normative section it enforces. That makes a failed implementation test useful feedback about the code—or about language that was not precise enough.
git clone https://github.com/OpenWorkProtocol/owp-code
cd owp-code && npm ci
# Use a scratch surface: the kit creates real work.
node conformance/run.ts https://surface.example \
--operator-token "$OP" \
--agent-token "$AGENT"
# expected
50/50 obligations metCreation, atomic claim, assignment filters, events, parking, decisions, completion, and recovery.
Total assignment rank, bounded attention, stable keyset cursors, portfolio, work view, and fleet visibility.
Agent and operator boundaries, scoped grants, project isolation, authorship, and the delegation invariant.
Typed-link round-trip, vocabulary discovery, advertised verbs, revision pins, and normative error behavior.
JSON-only requests, bounded bodies, authenticated authority, durable idempotency, cancellation, and dependency-safe exits.
An obligation that cannot run is reported as not exercised, never quietly counted as a pass. Four authority checks require a surface configured with credentials because open mode has no agent class or invalid token to address.
The reference surface passes all 50 with operator and agent tokens. In loopback open mode it passes 46 and names the four checks it could not exercise.
This proves reference conformance, not interoperability between independent implementations. No independently authored surface has passed the kit yet.