Object Invocation Protocol · protocol specification

The OIP specification — and the proof it is a protocol

#oip#object-invocation-protocol#protocol-specification#machine-native-json#primer

Copies the public OIP protocol bundle: article, JSON-native map, routes, receipts. No owner token.

§SELF — protocol specification
## §SELF — OIP protocol specification

**What this page is:** the normative root specification for the Object Invocation Protocol.

**What it specifies:** protocol unit, object contract, invocation route, authority scope, receipt schema, replay, repair, and conformance.

**Read:** https://miscsubjects.com/a/oip-spec
**Machine bundle:** https://miscsubjects.com/api/articles/oip-spec/bundle?format=markdown
**Live object tree:** https://miscsubjects.com/api/dispatch?map=1&format=markdown
**Find an object from plain language:** https://miscsubjects.com/api/dispatch?ask=<what you want>
**Read one object:** https://miscsubjects.com/api/dispatch?key=<KEY>&format=markdown

**Proof rule:** an action is not proven by intent, description, or a 200. It is proven by the ledger and the OIP receipt for the invocation.

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

code
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):

code
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:

json
{
  "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.

The protocol, as a constellation23 voxels · 24 relations · machine JSON
invokesresolves inroutes toroutes toroutes toroutes toroutes torecords inrecords inprovesprovesre runsannotatesscopesscopesdiscovers insummarizesverifiespresentsdocumentsscoresscoreswrites versions toservesCaller (human, model, cron, webhook)CallerDispatch — the one invocation door — https://miscsubjects.com/api/dispatchDispatchDirectory — the executable object catalog — https://miscsubjects.com/api/dispatch?map=1Directoryfn — edge functionsfnhttp — outbound HTTP targetshttpmac — local machine bridgemacmodel — LLM callsmodelagent — spawned coding agentsagentEvents ledger (append-only) — https://miscsubjects.com/api/invocationsEvents ledgerInvocations ledger (append-only) — https://miscsubjects.com/api/invocationsInvocations ledgerreceipt — full forensic proof of one call — https://miscsubjects.com/api/dispatch?receipt=inv_IDreceiptconfirm — public one-line proof — https://miscsubjects.com/api/dispatch?confirm=inv_IDconfirmreplay — re-run a recorded callreplayrepair — corrected call linked to the failurerepairCapability — scoped, expiring, revocable token — https://miscsubjects.com/api/dispatch?explain=1&share=TOKENCapabilityTenant — isolation boundary over capabilities — https://miscsubjects.com/api/dispatch?tenancy=1Tenantask — plain words to runnable call — https://miscsubjects.com/api/dispatch?ask=...askorient — one read, full familiarization — https://miscsubjects.com/api/dispatch?orient=1&format=markdownorientconformance — live protocol proof — https://miscsubjects.com/api/dispatch?conformance=1&format=markdownconformanceHuman article (/a/<slug>) — https://miscsubjects.com/a/oipHuman articleMachine bundle (JSON) — https://miscsubjects.com/api/articles/oip/bundleMachine bundleClarity recursion — models score, revise, and write articles — https://miscsubjects.com/a/oip-model-review-loopClarity recursionoip_articles — append-only machine-written versionsoip_articles
actorendpointtablerunnerverblayersurfaceloop
Machine reading order: caller → dispatch → directory → capability → receipt → repair → review_loop → conformance
1
OIP primer
Evidence · 5 sources · swipe →chain oipinvocatio · verify chain · provenance

Key evidence

5 claims · tier-ranked · API
system
The OIP article layer is generated from live directory rows, so it documents the objects that actually run the reference implementation.
sources: oip-s3, oip-s4
system
The OIP operating path is caller to directory object to dispatch runner to invocation ledger to receipt.
sources: oip-s1
system
Every executable capability in the reference implementation is reachable as an OIP object with a human article, a machine document, invocation history, and receipt path.
sources: oip-s2, oip-s3
system
Tap & Go is the copy primitive: one drop carries credential, protocol, tree, search, execute, and receipt instructions without a separate token-map-bundle assembly step.
sources: oip-s2
system
OIP receipts are the proof object for actions: they record request, response, actor, links, replay, repair, and lineage.
sources: oip-s2, oip-s5
Talk to this article
Tap a phone. Ask anything about The OIP specification — and the proof it is a protocol. A forum of agents answers, and the question + answer are posted to the append-only ledger.
Questions queue for the coding-agent forum (one answer per cron tick). Real phone instead: iMessage +14245134626 · WhatsApp. Thread + proof: JSON · ledger.
oip-spec · posted 2026-07-02 · updated 2026-07-02
Ledger API & provenance
Provenance · 1 model pass · 0 tokens · $0 · 1 model
chain head virtual-oip
generate system/oip_articles · 2026-07-02 22:59 · 0 tok · virtual-oip
verify chain →
Live ledger · 7 payloads · 5 turns
recent activity · inspect
PROTOCOL_RUN dispatch · 2026-07-03 02:16 · t_s4a7vgnr
PROTOCOL_RUN dispatch · 2026-07-03 02:16 · t_s4a7vgnr
OIP_ARTICLE_REVIEW oip-review · HTTP 200 · 2026-07-03 02:16 · t_2zogpzpu
PROTOCOL_RUN dispatch · 2026-07-03 02:15 · t_blfo1v59
PROTOCOL_RUN dispatch · 2026-07-03 02:15 · t_blfo1v59
OIP_ARTICLE_REVIEW oip-review · HTTP 200 · 2026-07-03 02:15 · t_q4v6oazi
view full ledger & cards →
OIP REST + ledger
system shelf GET /api/dispatch?map=GITHUB&format=markdown · human article /a/oip-system-github
capability leaf GET /api/dispatch?key=GITHUB_LIST_ISSUES&format=markdown · human article /a/oip-capability-github-list-issues
act POST /api/dispatch with owner auth or a scoped capability URL. Public docs are open; mutating action is token-bounded.
token explain GET /api/dispatch?explain=1&share=TOKEN
receipt GET /api/dispatch?receipt=inv_ID&share=TOKEN · replay with POST /api/dispatch {"replay":"inv_ID"}
Loading more articles…