{"slug":"oip-system-automate","title":"OIP system: Automation","body":"## Automation\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=AUTOMATE&format=markdown](https://miscsubjects.com/api/dispatch?map=AUTOMATE&format=markdown). Root: [/a/oip](https://miscsubjects.com/a/oip).\n\n## Operations\n\n### AUTOMATE_ADD\nAutomate a capability — make it fire itself every N minutes and ledger a receipt each run. Turns a one-off action into a standing background job.\nUse when: \"automate this\", \"do this every morning/hour\", \"keep doing X\", \"run this on a schedule\".\nArguments: `name | every_minutes | KEY | body (body is whatever that KEY takes; may contain pipes)`.\nHuman article: [/a/oip-capability-automate-add](https://miscsubjects.com/a/oip-capability-automate-add). Machine doc: [?key=AUTOMATE_ADD&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_ADD&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_ADD](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_ADD).\n\n### AUTOMATE_LIST\nList every automation — id, name, schedule, target key, enabled, last run, run count.\nUse when: \"what's automated\", \"list my automations\", \"what runs on a schedule\".\nArguments: `none`.\nHuman article: [/a/oip-capability-automate-list](https://miscsubjects.com/a/oip-capability-automate-list). Machine doc: [?key=AUTOMATE_LIST&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_LIST&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_LIST](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_LIST).\n\n### AUTOMATE_TOGGLE\nTurn an automation on or off by id (paused, not deleted).\nUse when: \"pause that automation\", \"turn it back on\", \"stop the morning ping\".\nArguments: `id | 1|0`.\nHuman article: [/a/oip-capability-automate-toggle](https://miscsubjects.com/a/oip-capability-automate-toggle). Machine doc: [?key=AUTOMATE_TOGGLE&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_TOGGLE&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_TOGGLE](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_TOGGLE).\n\n### AUTOMATE_DELETE\nDelete an automation by id.\nUse when: \"remove that automation\", \"delete the scheduled job\".\nArguments: `id`.\nHuman article: [/a/oip-capability-automate-delete](https://miscsubjects.com/a/oip-capability-automate-delete). Machine doc: [?key=AUTOMATE_DELETE&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_DELETE&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_DELETE](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_DELETE).\n\n### AUTOMATE_RUN_DUE\nFire every enabled automation whose interval has elapsed; ledger a receipt for each. Called by the cron each tick; safe to call manually.\nUse when: \"run due automations now\", or the cron calls it automatically.\nArguments: `none`.\nHuman article: [/a/oip-capability-automate-run-due](https://miscsubjects.com/a/oip-capability-automate-run-due). Machine doc: [?key=AUTOMATE_RUN_DUE&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_RUN_DUE&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_RUN_DUE](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_RUN_DUE).\n\n### AUTOMATE_FIRE\nFire every enabled automation registered for an event (trigger=event:NAME). Any inbound hook (a customer text, an error, a webhook) calls this with the event name + payload; matching automations run and ledger a receipt.\nUse when: an event source (webhook, hook, cron) signals something happened — \"when a customer text arrives\", \"on error\", \"on new order\".\nArguments: `event_name | payload (payload is passed to each automation whose body is empty)`.\nHuman article: [/a/oip-capability-automate-fire](https://miscsubjects.com/a/oip-capability-automate-fire). Machine doc: [?key=AUTOMATE_FIRE&format=markdown](https://miscsubjects.com/api/dispatch?key=AUTOMATE_FIRE&format=markdown). Invocation history: [/api/invocations?object_id=AUTOMATE_FIRE](https://miscsubjects.com/api/invocations?object_id=AUTOMATE_FIRE).\n","hero":null,"images":[],"style":{"accent":"#16324f","measure":860},"tags":["oip","object-invocation-protocol","protocol-specification","machine-native-json","system"],"model":null,"ledger":null,"embeds":[],"widgets":[{"type":"stat","value":6,"label":"capabilities"},{"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":"system","count":6,"system":"AUTOMATE","metric":"capabilities"},"register":"oip_protocol","status":"published","revisions":0,"contributions":[],"provenance":[{"action":"generate","model":"system/oip_articles","ts":"2026-07-03T00:26:07-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:26:07-07:00"}