2026-04-28
OIL v2 — Extending the Open Intent Layer to Physical AI
Intended Team · Founding Team
Why extend OIL to physical AI
A year ago we wrote that *"the future of AI governance requires interoperability standards. A common taxonomy for AI agent actions, a common format for governance decisions, a common structure for audit evidence, a common API for governance evaluation."* The Open Intent Layer was our contribution to the first of those. The original scope — 14 enterprise digital domains, 80 categories — covered every action a software agent could take inside a typical enterprise.
That was the right starting scope twelve months ago. It is no longer the full surface.
The agents being deployed today are not all software. Industrial cobots are picking parts. Surgical robots are suturing. Drones are inspecting power lines. Autonomous tractors are spraying fields. Sub-sea ROVs are inspecting pipelines. Every one of these systems is an AI agent — perceiving, deciding, acting — and every one of them needs runtime governance for exactly the same reasons a software agent does:
- **Verification** — was this action authorized at the policy level the moment before it happened?
- **Auditability** — can we replay the decision chain after the fact, with stable codes, against a regulator's question?
- **Cross-platform interoperability** — can a robotics framework, a software agent framework, and an enterprise governance system speak the same language about *what was about to happen?*
If the taxonomy stops at "deploy code" and "process invoice," every robotics, autonomous-vehicle, and industrial-AI deployment gets stuck inventing its own classification. The whole point of an open standard is to prevent that fragmentation.
So OIL v2 extends the taxonomy. Same JSON structure, same `OIL-NNN0` family codes, same "code never re-numbers" stability contract. The original 14 digital domains are unchanged. The new 15 domains are strictly additive — anything pinned to v1 codes still works.
The 15 new physical / embodied domains
| Code | Domain | Categories | What it covers | |------|--------|-----------|----------------| | OIL-1500 | Manipulation | 6 | Grasping, pick-and-place, assembly, tool use, dexterous hands, force-sensitive contact | | OIL-1600 | Locomotion & Mobility | 6 | Path planning, obstacle avoidance, wheeled / legged / aerial / marine motion | | OIL-1700 | Sensing & Perception | 7 | Vision, LiDAR, audio, tactile, environmental, inertial, calibration | | OIL-1800 | Actuation & Control | 5 | Motor, pneumatic, hydraulic, thermal, electrical, closed-loop tuning | | OIL-1900 | Manufacturing & Production | 7 | Assembly lines, CNC, additive, batch, quality inspection, material flow, scheduling | | OIL-2000 | Autonomous Vehicles | 7 | Driving decisions, sensor fusion, mission planning, V2X, driver handoff, fleet ops | | OIL-2100 | Aerial Systems | 6 | UAV flight, airspace compliance, payload, BVLOS, multi-drone coordination | | OIL-2200 | Surgical & Medical Robotics | 7 | Surgery, patient handling, medication, imaging, sample handling, sterilization, telemetry | | OIL-2300 | Agricultural Operations | 6 | Field, irrigation, pest, livestock, controlled-environment, yield | | OIL-2400 | Construction & Excavation | 6 | Site prep, earthworks, structural, demolition, lifting, heavy-equipment coordination | | OIL-2500 | Hazardous Environments | 6 | Nuclear, subsea, space, contaminated sites, EOD, confined-space entry | | OIL-2600 | Energy & Utilities | 6 | Generation, grid ops, distribution, storage, demand response, meter and field ops | | OIL-2700 | Mining & Resource Extraction | 5 | Drilling, hauling, beneficiation, wellfield, geotechnical monitoring | | OIL-2800 | Logistics & Material Handling | 6 | Warehouse, sortation, yard, last-mile, port, cold chain | | OIL-2900 | Embodied AI Safety | 7 | E-stop, geofencing, presence detection, safety-rated motion, LOTO, collision avoidance, certifications |
That's 93 new categories. Combined with the original 80, OIL v2 covers **173 categories across 29 domains**.
What's in a physical category
The fidelity bar is the same as the digital side: each category is a one-sentence description of the operations it covers, precise enough to anchor a policy clause and broad enough not to need re-numbering when the underlying technology evolves.
{ code: "OIL-1503", name: "Assembly", description: "Part insertion, fastening, torque control, alignment, and snap-fit operations." }
{ code: "OIL-2002", name: "Sensor Fusion", description: "Multi-sensor perception merging, redundancy management, and graceful degradation under sensor faults." }
{ code: "OIL-2203", name: "Medication Dispensing", description: "Drug selection, dose calculation, route confirmation, and administration verification." }
{ code: "OIL-2904", name: "Safety-Rated Motion", description: "Speed and separation monitoring, power and force limiting, and safe-rated stop and torque-off." }When a robotics control system needs to ask the governance layer *"can this autonomous tractor execute the planned spray pattern in this field given today's wind speed and the active no-spray buffer around the neighboring organic farm?"* the answer comes back referencing OIL-2303 (Pest & Disease Management). When the surgical robot pauses for clinician confirmation before changing instrument types, the audit trail anchors at OIL-2201 (Surgical Procedure). When the autonomous truck gives up its lane to an emergency vehicle, the V2X exchange cites OIL-2004 (V2X Communication).
Embodied AI Safety as a first-class domain
OIL-2900 (Embodied AI Safety) is the one new domain that doesn't map cleanly to a single industrial vertical. It collects the cross-cutting safety primitives that gate any physical-AI action regardless of whether the robot is making cars, performing surgery, or harvesting strawberries:
- **OIL-2901 Emergency Stop** — e-stop activation, system safe-state entry, fault latching, supervised reset
- **OIL-2902 Geofencing** — virtual fences, breach response, work-cell exclusion zones
- **OIL-2903 Human-Presence Detection** — proximity sensing, light curtains, area scanners
- **OIL-2904 Safety-Rated Motion** — speed and separation monitoring, power and force limiting
- **OIL-2905 Lockout / Tagout** — energy isolation verification, work-permit gating
- **OIL-2906 Collision Avoidance** — soft-body contact prediction, force compliance, dynamic stop
- **OIL-2907 Compliance & Certification** — IEC 61508 / ISO 13849 / ISO 26262 / ISO 10218 / ANSI/RIA R15.06 conformance evidence
The safety-rated stop on a cobot is governance metadata. The geofence enforcement on a delivery drone is governance metadata. The lockout-tagout interlock on a maintenance robot is governance metadata. Every one of those decisions deserves the same audit-trail, replay, and policy-evaluation surface as a digital `OIL-201 Threat Detection` event.
What about regulatory mapping
The digital side of OIL maps to EU AI Act risk classifications, NIST AI RMF, and ISO 42001. The physical side adds:
- **IEC 61508** (functional safety of electrical/electronic systems) — primary anchor for OIL-2900 categories
- **ISO 13849** (safety of machinery — control systems) — anchors for collaborative robot work-cell deployments
- **ISO 26262** (road vehicles — functional safety) — anchors for OIL-2000 Autonomous Vehicles deployments
- **ISO 10218 / ANSI/RIA R15.06** (industrial robot safety) — anchors for OIL-1500 Manipulation deployments
- **EU AI Act Annex III** — many physical-AI deployments fall directly into the high-risk classification (medical devices, critical infrastructure, transportation safety)
Compliance & Certification (OIL-2907) is the runtime hook for all of these. When a regulator asks for evidence that a particular safe-rated stop was operating correctly at the time of an incident, the audit trail anchors at OIL-2904 + OIL-2907 with the relevant standard cited.
The same code never re-numbers
If you have code today that does `getDomain("OIL-200")`, that code still works. If you have an audit ledger pinned to category `OIL-503`, that pin is still valid. v2 doesn't touch a single existing code. New codes are appended at OIL-1500 and above. Versioning policy: domain codes never re-number; categories may add but not be removed within a major version.
How to use it
npm install @intended/open-intent-layer@^2.0import { getDomain, getCategory, getDomainForCategory, allCategoryCodes } from "@intended/open-intent-layer";
const eStop = getCategory("OIL-2901");
console.log(eStop?.name); // "Emergency Stop"
const safetyDomain = getDomainForCategory("OIL-2904");
console.log(safetyDomain?.name); // "Embodied AI Safety"
console.log(allCategoryCodes().length); // 173The full taxonomy lives at [`packages/open-intent-layer/src/oil-taxonomy.json`](https://github.com/intended-so/intended/blob/main/packages/open-intent-layer/src/oil-taxonomy.json) and is mirrored at the public repo, [`github.com/intended-so/open-intent-layer`](https://github.com/intended-so/open-intent-layer). Apache 2.0. Vendor-neutral. Spread it.
What's next
We've published OIL v2 as the canonical-taxonomy contribution. We're not commercializing physical-AI runtime governance ourselves yet — the buyer surface, latency profile, and certification overhead are all wrong for our current stage. But the standard belongs in the open, ahead of the deployment wave. If you're building a robotics platform, an autonomous-vehicle stack, an industrial cobot governance layer, a surgical-robot decision pipeline, an autonomous-tractor controller — adopt the codes. Cite the taxonomy. Push back on additions you need that aren't there. Issues and PRs welcome.
The standards owners win the long game even if they don't capture all the value. OIL v2 is our second move in that game.