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 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 install
# Use a scratch surface: the kit creates real work.
node conformance/run.ts https://surface.example \
--operator-token "$OP" \
--agent-token "$AGENT"
# expected
47/47 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.
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 47 with operator and agent tokens. In open mode it passes 43 and names the four checks it could not exercise.