The OIP specification — and the proof it is a protocol
What makes something a protocol
A protocol is three things. One: defined message formats — every party knows the exact shape of every message. Two: invariants — rules that always hold, no matter who is calling. Three: a conformance test — a way to check that an implementation follows the rules.
OIP (Object Invocation Protocol) has all three. The third one runs live. You do not have to take anyone's word for it.
Run the proof yourself
curl 'https://miscsubjects.com/api/dispatch?conformance=1&format=markdown'That command executes all 14 clauses of this specification against the production build — real invocations, real receipts, real denials — and returns PASS or FAIL per clause. If the verdict says CONFORMANT, this is a protocol by the same standard HTTP and MCP are protocols. If a clause fails, the output names exactly which one.
The message formats
Invoke an object (two equivalent forms):
POST https://miscsubjects.com/api/dispatch
{"key": "NOW", "body": ""}
GET https://miscsubjects.com/api/dispatch?invoke=NOW&body=&share=<TOKEN>Every invocation returns the OIP envelope. The important fields:
{
"result": "...",
"ran": true,
"invocation": {
"invocation_id": "inv_abc123",
"object_id": "NOW",
"links": { "receipt": "https://miscsubjects.com/api/dispatch?receipt=inv_abc123" }
},
"proof": {
"ok": true,
"confirm": "https://miscsubjects.com/api/dispatch?confirm=inv_abc123",
"say_to_user": "\u2713 Done via NOW. Proof: ..."
}
}The 14 conformance clauses
C1 Self-describing manifest — GET /api/dispatch returns version + endpoint map. C2 Object self-description — ?key=KEY returns the object's full contract. C3 Plain-language discovery — ?ask=plain words returns the best object with a runnable call. C4 Invocation envelope — every call returns invocation_id + receipt link + honest proof.ok. C5 Receipt forensics — ?receipt=inv_ID returns full request, full response, and a story line. C6 Replay — POST {replay:inv_ID} re-runs the recorded call, linked via replay_of. C7 Repair lineage — a failed call is repairable; both receipts link to each other. Failures are annotated, never deleted. C8 Fail closed — unknown objects return ran:false with nearest-key suggestions, never a 200 that reads as success. C9 Append-only ledger — every invocation lands in the ledger with request, response, actor, trace. C10 Idempotency — an identical call inside the dedup window returns the original receipt and performs no second execution. C11 Capability scoping — a row-scoped token fires its one object and is denied everywhere else. C12 Public documentation plane — docs need zero credentials; actions always need scoped ones. C13 Clarity recursion — the docs test themselves: models score every article, failures get machine revisions, gaps become new machine-written articles. C14 Human/machine duality — every article is one object with two synchronized faces: a human page and a machine bundle.
Why this ends the argument
"Is this a protocol?" resolves as a test with a URL. Any model or person runs one curl and reads the verdict. A dissent names the failing clause.
Latest clarity reviews (live)
Fresh models are sent this article's bundle and asked two separate questions: how clear is the machine JSON, and how clear is the English body. Scores are 0 to 10. The full history is in the append-only ledger.
- 2026-07-03 02:16 · model
gemini/gemini-2.5-flash· NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10 - 2026-07-03 02:15 · model
@cf/meta/llama-3.3-70b-instruct-fp8-fast· NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10
- gaps named: Detailed MCP comparison; OIP security measures; Error handling and debugging
How the loop self-corrects: a failing review queues a model revision of this article (a new append-only version). A missing concept named by a reviewer queues a brand-new machine-written article, which then enters the same review cycle.