{"_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-object","title":"OIP system: OBJECT","body":"## OBJECT\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: `7`. Machine system map: [/api/dispatch?map=OBJECT&format=markdown](https://miscsubjects.com/api/dispatch?map=OBJECT&format=markdown). Root: [/a/oip](https://miscsubjects.com/a/oip).\n\n## Operations\n\n### OBJECT_FIELDS\nThe field contract of one object type: every field with its stable id (<object>.<field>), type, min, max, default, provenance, display order and whether it may be written.\nUse when: before editing anything; to learn what a table or settings group contains; \"what can I change here\".\nArguments: `$1 = object type (directory, settings, automations, hooks, watch_rules, connections, work_tasks, events, …)`.\nHuman article: [/a/oip-capability-object-fields](https://miscsubjects.com/a/oip-capability-object-fields). Machine doc: [?key=OBJECT_FIELDS&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_FIELDS&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_FIELDS](https://miscsubjects.com/api/invocations?object_id=OBJECT_FIELDS).\n\n### OBJECT_GET\nThe cells of one object instance: every field id with its current value.\nUse when: read one directory row, one setting, one automation, one hook by its key or id.\nArguments: `$1 = object type, $2 = ref (primary key)`.\nHuman article: [/a/oip-capability-object-get](https://miscsubjects.com/a/oip-capability-object-get). Machine doc: [?key=OBJECT_GET&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_GET&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_GET](https://miscsubjects.com/api/invocations?object_id=OBJECT_GET).\n\n### OBJECT_SET\nChange one cell. Routes to the governed write path for that object (directory PATCH, settings dual-write, automation toggle, hooks PATCH, watch_rules update); versioned and receipted; refused when the field is not writable.\nUse when: \"set X to Y\", \"turn this automation off\", \"raise this limit to 500\" — anything that is a cell.\nArguments: `$1 = object type, $2 = ref, $3 = field id, $4 = value`.\nHuman article: [/a/oip-capability-object-set](https://miscsubjects.com/a/oip-capability-object-set). Machine doc: [?key=OBJECT_SET&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_SET&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_SET](https://miscsubjects.com/api/invocations?object_id=OBJECT_SET).\n\n### OBJECT_DESCRIBE\nDescribe a provider object row (STRIPE_CUSTOMER, GITHUB_ISSUE, …): provider, object, id prefix, the rows that read/list/create/change it, the fields a flow predicate may read.\nUse when: a model wants the shape of an external object before acting on it.\nArguments: `$1 = object row key`.\nHuman article: [/a/oip-capability-object-describe](https://miscsubjects.com/a/oip-capability-object-describe). Machine doc: [?key=OBJECT_DESCRIBE&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_DESCRIBE&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_DESCRIBE](https://miscsubjects.com/api/invocations?object_id=OBJECT_DESCRIBE).\n\n### OBJECT_READ\nRead a mutable object and its current_hash. The hash is the concurrency primitive.\nUse when: before changing a file or object. You receive content and current_hash. There is no lock.\nArguments: `$1 = path`.\nHuman article: [/a/oip-capability-object-read](https://miscsubjects.com/a/oip-capability-object-read). Machine doc: [?key=OBJECT_READ&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_READ&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_READ](https://miscsubjects.com/api/invocations?object_id=OBJECT_READ).\n\n### OBJECT_MUTATE\nCompare-and-swap a mutable object. If base_hash equals current_hash, apply and return the new hash. If not, return STALE with current_hash and current_content. Retry immediately. Do not wait. Do not lock.\nUse when: after OBJECT_READ, to submit a mutation against the hash you read.\nArguments: `$1 = task_id | $2 = path | $3 = base_hash | $4+ = mutation JSON {content} or {old_string,new_string}`.\nHuman article: [/a/oip-capability-object-mutate](https://miscsubjects.com/a/oip-capability-object-mutate). Machine doc: [?key=OBJECT_MUTATE&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_MUTATE&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_MUTATE](https://miscsubjects.com/api/invocations?object_id=OBJECT_MUTATE).\n\n### OBJECT_CHANGESET\nAtomic multi-file mutation. All paths apply or none do. Whole composed state is tested before write. STALE after 5 retries becomes ESCALATE.\nUse when: any change that touches more than one path, or any change that must be accepted as a unit.\nArguments: `$1 = task_id | $2 = JSON {changes:[{path,base_hash,mutation}]} | $3 = retry_count`.\nHuman article: [/a/oip-capability-object-changeset](https://miscsubjects.com/a/oip-capability-object-changeset). Machine doc: [?key=OBJECT_CHANGESET&format=markdown](https://miscsubjects.com/api/dispatch?key=OBJECT_CHANGESET&format=markdown). Invocation history: [/api/invocations?object_id=OBJECT_CHANGESET](https://miscsubjects.com/api/invocations?object_id=OBJECT_CHANGESET).\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"}}