Open Agent Rules
Contents
  1. Registered extensions
  2. The convention
  3. Registering
  4. What an extension may not do

Extension registry

Open Agent Rules reserves fields whose names match ^x-[a-z0-9]+(-[a-z0-9]+)*$ for implementations. An engine ignores an x- field it does not recognise ([OAR-DOC-26]), and an x- field never affects selection, evaluation, ordering, precedence, or the returned decision. Every other undefined field is rejected at load, naming the field ([OAR-DOC-27]), so x- is the only way to carry something this specification does not define.

This file records the extensions implementations have published.

Registered extensions#

FieldVendorWhat it carriesDocumentation
x-paintedwolf-emitpaintedwolfPresentation channel for a decision (guard:…, rule:…). Does not affect selection, evaluation, or the returned decision.Implementation notes
x-paintedwolf-messagepaintedwolfOptional reject-copy override used by this host's renderer. Presentation only.same
x-paintedwolf-scenariospaintedwolfFixture seeds for this host's internal conformance dialect. Not an evaluation input.same
x-paintedwolf-categorypaintedwolfHint-registry category for docs and search. Presentation only.same
x-paintedwolf-audiencepaintedwolfNarrows which of this host's agent archetypes a decision's copy is written for. Presentation only.same
x-paintedwolf-evidencepaintedwolfDeclares what this host should retry or capture after the decision. Not an evaluation input.same

The convention#

Extension names are x-<vendor>-<name>:

So x-acme-runbook, x-paintedwolf-trace-tag, x-globex-ticket. The vendor segment is the whole point: two organisations that both want to attach a runbook link end up with x-acme-runbook and x-globex-runbook rather than two incompatible meanings of x-runbook.

A single-segment name like x-runbook is a valid document field — the grammar permits it — and is a bad idea, because the next implementation to want that name has no way to tell yours apart from its own.

Registering#

Open a pull request against this file adding a row with the field name, the vendor, one sentence on what the field carries, and a link to your own documentation.

This is a documented-conventions registry, not a gatekept one. The model is the way CloudEvents documents its extension attributes: nobody needs permission to define one, nothing is rejected for being unregistered, and no review approves an entry. An unregistered x- field is completely legal and behaves identically. Registering yours is a courtesy to the next implementer, and it costs one pull request.

The registry exists to make collisions visible, not to prevent them by authority.

What an extension may not do#

An x- field is data an implementation carries through. It is not a way to add behaviour to the format.


Rendered from EXTENSIONS.md.