{"_ai_door":{"see":"https://miscsubjects.com/start","note":"Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."},"slug":"oip-system-gsheets","title":"OIP system: GSHEETS","body":"## GSHEETS\n\nA generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.\n\nThis page is the operating article for one build subsystem. It is generated from live directory rows. If a task belongs to this subsystem, scan the operations below, open the matching capability article, run only the exact object named there, and verify by receipt.\n\nKind: `core`. Capabilities: `6`. Machine system map: [/api/dispatch?map=GSHEETS&format=markdown](https://miscsubjects.com/api/dispatch?map=GSHEETS&format=markdown). Root: [/a/oip](https://miscsubjects.com/a/oip).\n\n## Operations\n\n### GSHEETS_VALUES_GET\nRead a range from a Google Sheet on the OAuth grant (not the Apps Script web app).\nUse when: read cells from a sheet the connected account can open.\nArguments: `$1 = spreadsheet id · $2 = A1 range, e.g. Sheet1!A1:D20`.\nHuman article: [/a/oip-capability-gsheets-values-get](https://miscsubjects.com/a/oip-capability-gsheets-values-get). Machine doc: [?key=GSHEETS_VALUES_GET&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_VALUES_GET&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_VALUES_GET](https://miscsubjects.com/api/invocations?object_id=GSHEETS_VALUES_GET).\n\n### GSHEETS_META\nA spreadsheet's title and its tabs (names, ids, sizes).\nUse when: learn the tab names before GSHEETS_VALUES_GET.\nArguments: `$1 = spreadsheet id`.\nHuman article: [/a/oip-capability-gsheets-meta](https://miscsubjects.com/a/oip-capability-gsheets-meta). Machine doc: [?key=GSHEETS_META&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_META&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_META](https://miscsubjects.com/api/invocations?object_id=GSHEETS_META).\n\n### GSHEETS_PUSH\nWrite the directory (every editable column, full content) to the DIRECTORY tab of the owner Google Sheet, the agent prompts to PROMPTS, and new ledger rows to LEDGER. Only rows changed since the last push are rewritten. Rides oauth2:google:cc.\nUse when: after directory edits on the build, or to seed the sheet. $1 = all | directory | ledger | full (rewrite every row)\nArguments: `$1 = what (default all)`.\nHuman article: [/a/oip-capability-gsheets-push](https://miscsubjects.com/a/oip-capability-gsheets-push). Machine doc: [?key=GSHEETS_PUSH&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_PUSH&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_PUSH](https://miscsubjects.com/api/invocations?object_id=GSHEETS_PUSH).\n\n### GSHEETS_PULL\nRead the DIRECTORY tab of the owner Google Sheet and apply every row the owner changed there as a PATCH /api/directory/<key> through the build write path (hygiene guards, versions, ledger). A row never pushed is never pulled. $1 = dry shows what would change without writing.\nUse when: the owner edited the sheet; runs every few minutes by automation.\nArguments: `$1 = dry | (empty)`.\nHuman article: [/a/oip-capability-gsheets-pull](https://miscsubjects.com/a/oip-capability-gsheets-pull). Machine doc: [?key=GSHEETS_PULL&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_PULL&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_PULL](https://miscsubjects.com/api/invocations?object_id=GSHEETS_PULL).\n\n### GSHEETS_SYNC\nOne tick of the two-way sync: pull owner edits from the DIRECTORY tab, push changed directory rows and prompts back, append new ledger rows. The automation runs this.\nUse when: keep the owner Google Sheet and the directory identical.\nArguments: `none`.\nHuman article: [/a/oip-capability-gsheets-sync](https://miscsubjects.com/a/oip-capability-gsheets-sync). Machine doc: [?key=GSHEETS_SYNC&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_SYNC&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_SYNC](https://miscsubjects.com/api/invocations?object_id=GSHEETS_SYNC).\n\n### GSHEETS_MCP_GET\nRead a range from a Google Sheet (Sheets MCP).\nUse when: read cells as the owner.\nArguments: `$1 = spreadsheet id · $2 = A1 range`.\nHuman article: [/a/oip-capability-gsheets-mcp-get](https://miscsubjects.com/a/oip-capability-gsheets-mcp-get). Machine doc: [?key=GSHEETS_MCP_GET&format=markdown](https://miscsubjects.com/api/dispatch?key=GSHEETS_MCP_GET&format=markdown). Invocation history: [/api/invocations?object_id=GSHEETS_MCP_GET](https://miscsubjects.com/api/invocations?object_id=GSHEETS_MCP_GET).\n","register":"oip_protocol","tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","system"],"style":{"accent":"#16324f","measure":860},"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"}],"prov":{"model":"system/oip_articles","action":"generate"}}