{"slug":"oip-github","title":"GitHub and OIP","body":"## What this article explains\n\nThis article explains GitHub. It shows how GitHub works with the Object Invocation Protocol (OIP). OIP is a way for any computer program to act. It uses plain Uniform Resource Locators (URLs) and receipts. There is no persistent session. Any program that can open a URL can use OIP.\n\n## Plain words\n\nGitHub is a service. It stores software project files. These files include the repository, commits, branches, issues, and pull requests.\n\nThe repository (repo) is where operational files live. A commit records a change to these files. A branch is a separate line of work. An issue is a tracked problem or task. A pull request is a proposed change. It is sent for review by others.\n\n## How GitHub works with OIP\n\nThe miscsubjects.com build uses GitHub. GitHub is one source for operational files. It also stores the change history.\n\nOIP exposes GitHub capabilities as objects. An object is a directory row on miscsubjects.com. These objects allow you to interact with GitHub. You can view file inventory. You can read files. You can edit files. You can commit changes. You can check deployment status.\n\nTo use an OIP object, you invoke it. You send a request to a server. A server is a computer program that provides services. The request goes to the `/api/dispatch` endpoint. An endpoint is a specific URL where an Application Programming Interface (API) can be accessed. An API is a set of rules for software to talk to each other.\n\nYou can invoke an object using `POST /api/dispatch {key, body}`. Or you can use `GET /api/dispatch?invoke=KEY&body=...`. Each invocation creates a record. This record is stored in an append-only ledger. You get a receipt for each action. You can find your receipt at `/api/dispatch?receipt=inv_ID`.\n\n## OIP and MCP: A Comparison\n\nThe Model Context Protocol (MCP) is an open standard. An Artificial Intelligence (AI) model connects to an MCP server. This connection uses a session. The server exposes tools, resources, and prompts. The AI model can call these. MCP is not a content-management system.\n\nOIP differs from MCP. OIP does not use a persistent session. It uses plain URLs and receipts. Any model that can open a URL can act with OIP. This makes OIP very flexible. For GitHub operations, OIP allows direct, stateless interactions. This means each action is independent.\n\n## Machine Shape: GitHub Objects in OIP\n\nA GitHub object is machine-native. This means a computer program can easily understand it. It names specific fields. These fields describe the GitHub action.\n\nHere is what a GitHub object looks like:\n\n```json\n{\n  \"repo\": \"The name of the GitHub repository.\",\n  \"branch\": \"The specific branch in the repository.\",\n  \"path\": \"The file path within the repository.\",\n  \"sha\": \"The SHA hash of the file or commit.\",\n  \"operation\": \"The action to perform (e.g., 'read', 'write', 'commit').\",\n  \"auth\": \"Authentication details, often a token. A token is data that proves identity or authorization.\",\n  \"result\": \"The outcome of the operation.\",\n  \"proof\": \"Evidence of the operation's completion.\"\n}\n```\n\nFor more details on the OIP protocol, see the documentation at `/api/articles?slug=oip-protocol`.\n## Latest clarity reviews (live)\n\nFresh 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.\n\n- 2026-07-03 02:25 · model `@cf/meta/llama-3.3-70b-instruct-fp8-fast` · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 6/10\n  - gaps named: MCP; OIP protocol details\n- 2026-07-02 23:49 · model `@cf/meta/llama-3.3-70b-instruct-fp8-fast` · NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 6/10\n  - gaps named: MCP; OIP protocol details\n\nHow 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.","hero":null,"images":[],"style":{"accent":"#16324f","measure":860},"tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","primer"],"model":null,"ledger":null,"embeds":[],"widgets":[{"type":"stat","value":1,"label":"revision"},{"type":"note","title":"Zero-context rule","text":"A reader should understand the protocol unit, object contract, invocation route, receipt schema, and repair path from this page plus its machine bundle."},{"type":"note","title":"Machine-native rule","text":"The JSON is the executable map: object, routes, inputs, proof loop, ledger, and next article to open."}],"home":false,"claims":[{"id":"oip-c1","tier":"system","text":"The OIP article layer is generated from live directory rows, so it documents the objects that actually run the reference implementation.","who_claims":"system/oip_articles","source_ids":["oip-s3","oip-s4"]},{"id":"oip-c2","tier":"system","text":"The OIP operating path is caller to directory object to dispatch runner to invocation ledger to receipt.","who_claims":"system/oip_articles","source_ids":["oip-s1"]},{"id":"oip-c3","tier":"system","text":"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.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s3"]},{"id":"oip-c4","tier":"system","text":"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.","who_claims":"system/oip_articles","source_ids":["oip-s2"]},{"id":"oip-c5","tier":"system","text":"OIP receipts are the proof object for actions: they record request, response, actor, links, replay, repair, and lineage.","who_claims":"system/oip_articles","source_ids":["oip-s2","oip-s5"]}],"sources":[{"id":"oip-s1","type":"protocol","title":"BUILD_SPEC object invocation path","url":"https://miscsubjects.com/api/file/docs/BUILD_SPEC.md","summary":"Defines directory rows, dispatch, ledger, and the escalation path for changing the build.","quote":"Run anything: POST https://miscsubjects.com/api/dispatch {key, body}","claim_ids":["oip-c2"],"link_status":"ok","hash":"oipbuildspec0001"},{"id":"oip-s2","type":"protocol","title":"Object Invocation Protocol spec","url":"https://miscsubjects.com/api/file/docs/OIP.md","summary":"Defines OIP surfaces, invariant loop, receipt/replay/repair, and invocation envelopes.","quote":"identify, explain, invoke, ledger, yield","claim_ids":["oip-c3","oip-c4","oip-c5"],"link_status":"ok","hash":"oipspec00000002"},{"id":"oip-s3","type":"protocol","title":"Live OIP capability tree","url":"https://miscsubjects.com/api/dispatch?map=1&format=markdown","summary":"Public recursive capability tree.","quote":"root > shelf > system article > capability article > receipt","claim_ids":["oip-c1","oip-c3"],"link_status":"ok","hash":"oipmap0000000002"},{"id":"oip-s4","type":"protocol","title":"Directory row documentation","url":"https://miscsubjects.com/api/dispatch?key=OIP_TREE&format=markdown","summary":"Capability articles are generated from live rows.","quote":"Machine Contract","claim_ids":["oip-c1"],"link_status":"ok","hash":"oiprow0000000003"},{"id":"oip-s5","type":"protocol","title":"Invocation ledger","url":"https://miscsubjects.com/api/invocations","summary":"Append-only invocation records and receipt links.","quote":"invocations","claim_ids":["oip-c5"],"link_status":"ok","hash":"oipinvocations0005"}],"reviews":[],"extra":{"oip_virtual":true,"oip_type":"primer","count":1,"metric":"revision","primer":"oip-github","version":1,"author_model":"gemini/gemini-2.5-flash","revision_source":"revision"},"register":"oip_protocol","status":"published","revisions":0,"contributions":[],"provenance":[{"action":"generate","model":"system/oip_articles","ts":"2026-07-03T00:21:33-07:00","hash":"virtual-oip","tokens_in":0,"tokens_out":0}],"energy":{"passes":1,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"system/oip_articles":1},"head":"virtual-oip"},"posted_at":"2026-07-02T00:00:00.000Z","created_at":"2026-07-02T00:00:00.000Z","updated_at":"2026-07-03T00:21:33-07:00"}