<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc category="exp" docName="draft-veridom-omp-01" ipr="trust200902">
  <front>
    <title abbrev="OMP Core v01">Operating Model Protocol (OMP) Core -- Version 01: Invariant 3 -- Verifiable Delegation Binding</title>

    <author fullname="Tolulope Adebayo" initials="T." surname="Adebayo">
      <organization>Veridom Ltd</organization>
      <address>
        <postal>
          <street>128 City Road</street>
          <city>London</city>
          <code>EC1V 2NX</code>
          <country>United Kingdom</country>
        </postal>
        <email>tolulope@veridom.io</email>
        <uri>https://veridom.io</uri>
      </address>
    </author>

    <author fullname="Oluropo Apalowo" initials="O." surname="Apalowo">
      <organization>Veridom Ltd</organization>
      <address>
        <postal>
          <city>Awka</city>
          <country>Nigeria</country>
        </postal>
        <email>ropo@veridom.io</email>
      </address>
    </author>

    <date year="2026" month="April" day="30"/>
    <area>Independent Submission</area>
    <workgroup>Network Working Group</workgroup>

    <abstract>
      <t>This -01 version of the Operating Model Protocol (OMP) Core
specification introduces Invariant 3: Verifiable Delegation Binding.</t>
      <t>OMP version -00 establishes two invariants: (1) deterministic routing and (2) immutable trail. These invariants are necessary but not sufficient for adversarial evidentiary defensibility. A tamper-evident record of an unauthorised decision is still an unauthorised decision.</t>
      <t>This amendment adds Invariant 3, which closes the gap between record existence and authority validity by requiring that every ASSISTED or ESCALATED routing state bind the Named Accountable Officer field to a verifiable DelegationInstrument object at the moment of decision.</t>
      <t>When no valid binding can be established, the system sets authority_binding_result to AUTHORITY_UNBOUND -- a sealed, positive evidentiary declaration of the absence, not a silent failure. The routing_state is preserved; execution_permission is set to BLOCKED. Three axes are orthogonal: routing_state, authority_binding_result, and execution_permission.</t>
      <t>This amendment is additive and non-breaking. All twelve existing OMP profile drafts inherit Invariant 3 from the core specification. AUTONOMOUS routing states are exempt unless a profile-specific Watchtower gate requires binding.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction" anchor="intro">
      <t>The Operating Model Protocol (OMP), specified in <xref target="OMP-00"/>, defines a deterministic routing and tamper-evident evidence architecture for consequential AI decisions. It establishes two invariants: deterministic routing (Invariant 1) and immutable trail (Invariant 2).</t>
      <t>Independent review of the OMP Proof-Point architecture identified a structural gap: a tamper-evident record that names an accountable officer proves the officer was named in the record. It does not prove the named officer held valid delegated authority to make that specific decision at that specific time. The challenge may be stated as: the organisation that made the decision must produce the underlying record and show it supported that specific decision at that moment. The protocol layer fixes the link between a specific decision and the evidence the institution must later produce. It does not substitute for institutional evidence.</t>
      <t>This document adds Invariant 3 -- Verifiable Delegation Binding -- which addresses this gap by requiring that the Named Accountable Officer field be bound, at decision time, to a verifiable DelegationInstrument object. The amendment makes authority absence visible: when valid binding cannot be established, this is recorded explicitly rather than silently.</t>
      <t>The amendment is additive. Existing -00 records remain valid under -00 schema. AUTONOMOUS states are unchanged. The amendment adds the authority_binding object to ASSISTED and ESCALATED records.</t>
      <section title="Requirements Language" anchor="req-lang">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>

    <section title="The Authority-Chain Gap in OMP -00" anchor="gap">
      <t>OMP -00 seals two links of the four-link authority chain:</t>
      <ol>
        <li>Decision record -- what was decided, under which routing state, at what time</li>
        <li>Named Accountable Officer -- who was asserted as responsible</li>
        <li>Delegation instrument -- the role, mandate, scope, and basis for the officer's authority</li>
        <li>Authority validity at decision time -- whether the instrument was operative</li>
      </ol>
      <t>Links 3 and 4 were outside the scope of -00. In adversarial proceedings, a party challenging an AI-assisted decision may accept links 1 and 2 while contesting link 3 or 4: the officer was named, but did not hold valid delegated authority for that decision class, or the instrument was expired or revoked at the time of the decision.</t>
      <t>Invariant 3 seals links 3 and 4. A correctly bound record makes the authority claim independently testable by linking the decision, at decision time, to a specific DelegationInstrument with recorded scope, issuer, effective date, revocation status, and hash or reference to the underlying authority document. The protocol cannot finally adjudicate legal authority; it makes the authority claim auditable without institutional cooperation.</t>
    </section>

    <section title="The Three OMP Core Invariants" anchor="invariants">
      <section title="Invariant 1 -- Deterministic Routing (Unchanged from -00)" anchor="inv1">
        <t>Given the same inputs and policy configuration, the same routing state always results. Routing states are: AUTONOMOUS, ASSISTED, and ESCALATED. Routing is defined in configuration, not inferred by the model. Policy violation becomes structurally impossible without generating an evidence record.</t>
      </section>
      <section title="Invariant 2 -- Immutable Trail (Unchanged from -00)" anchor="inv2">
        <t>Every routing state produces a cryptographically sealed record at the exact moment of decision. Sealing uses SHA-256 hash over canonical JSON per <xref target="RFC8785"/>, combined with an RFC 3161 trusted timestamp <xref target="RFC3161"/> and an optional institutional signature. Any post-decision modification to any field is detectable by any third party without requiring institutional access.</t>
      </section>
      <section title="Invariant 3 -- Verifiable Delegation Binding (New in -01)" anchor="inv3">
        <t>Every ASSISTED or ESCALATED routing state MUST evaluate Invariant 3. The evaluation determines whether the Named Accountable Officer field can be bound to a valid DelegationInstrument at the moment of the routing state.</t>
        <t>The result of this evaluation is recorded in the authority_binding object (Section 4) as one of three values:</t>
        <dl>
          <dt>BOUND</dt>
          <dd>A valid DelegationInstrument was identified, all required fields are present and valid, the instrument was operative at decision time, and the officer's scope covers the decision class.</dd>
          <dt>AUTHORITY_UNBOUND</dt>
          <dd>A valid DelegationInstrument could not be bound. The failure is recorded in failure_reasons. The routing_state is preserved as ASSISTED or ESCALATED; execution_permission is set to BLOCKED. The absence is sealed under Invariant 2.</dd>
          <dt>EXEMPT</dt>
          <dd>The routing_state is AUTONOMOUS, or a profile-specific Watchtower has explicitly exempted this interaction from binding. Execution_permission is ALLOWED.</dd>
        </dl>
        <t>The three axes are orthogonal:</t>
        <ul>
          <li>routing_state: what decision path this was (AUTONOMOUS / ASSISTED / ESCALATED)</li>
          <li>authority_binding_result: whether delegation binding succeeded (BOUND / AUTHORITY_UNBOUND / EXEMPT)</li>
          <li>execution_permission: whether the decision may proceed (ALLOWED / BLOCKED)</li>
        </ul>
        <t>Implementations MUST NOT conflate these axes. AUTHORITY_UNBOUND is not a routing state. It is an authority_binding_result attached to an existing routing state.</t>
      </section>
    </section>

    <section title="The authority_binding Object" anchor="authority-binding">
      <t>The authority_binding object is added to the OMP Audit Trace for all routing states. Its structure varies by authority_binding_result.</t>
      <section title="BOUND Record Structure" anchor="bound-structure">
        <figure><artwork><![CDATA[
{
  "routing_state": "ESCALATED",
  "named_accountable_officer": {
    "officer_id": "string",
    "role": "string"
  },
  "authority_binding": {
    "authority_binding_result": "BOUND",
    "execution_permission": "ALLOWED",
    "delegation_instrument": {
      "instrument_id": "string",
      "officer_id": "string",
      "role_identifier": "string",
      "mandate_scope": "string",
      "scope_constraints": {
        "decision_types": ["string"],
        "jurisdictions": ["ISO 3166-1 alpha-2"],
        "product_scope": ["string"],
        "risk_threshold": "string",
        "monetary_limit": {
          "currency": "ISO 4217",
          "max_amount": "number"
        }
      },
      "effective_date": "ISO 8601 date",
      "expiry_date": "ISO 8601 date or null",
      "revocation_status_at_decision":
        "ACTIVE|SUSPENDED|REVOKED|UNKNOWN",
      "issuing_authority_id": "string",
      "authority_root_type":
        "statutory|corporate_delegation|professional_registration",
      "instrument_hash": "sha256:hexstring",
      "instrument_reference": "URI",
      "instrument_selection_mode":
        "pre_registered|policy_resolved|
         manual_selected_at_decision|post_hoc_attached",
      "instrument_selected_at": "ISO 8601 datetime",
      "authority_registry_snapshot_hash": "sha256:hexstring",
      "registry_inclusion_proof": "string or null",
      "binding_timestamp": "RFC 3161 token reference"
    }
  }
}
]]></artwork></figure>
      </section>
      <section title="AUTHORITY_UNBOUND Record Structure" anchor="unbound-structure">
        <figure><artwork><![CDATA[
{
  "routing_state": "ESCALATED",
  "authority_binding": {
    "authority_binding_result": "AUTHORITY_UNBOUND",
    "execution_permission": "BLOCKED",
    "failure_reasons": [
      "NO_VALID_DELEGATION_INSTRUMENT|OFFICER_ID_MISMATCH|
       EFFECTIVE_DATE_FUTURE|INSTRUMENT_EXPIRED|
       INSTRUMENT_REVOKED|INSTRUMENT_SUSPENDED|
       REVOCATION_STATUS_UNKNOWN|MANDATE_SCOPE_MISMATCH|
       JURISDICTION_OUT_OF_SCOPE|MONETARY_THRESHOLD_EXCEEDED|
       INSTRUMENT_HASH_MISMATCH|
       BINDING_TIMESTAMP_OUTSIDE_WINDOW|
       REGISTRY_PROOF_MISSING|POST_HOC_ATTACHMENT_DETECTED"
    ],
    "attempted_officer_id": "string or null",
    "binding_timestamp": "RFC 3161 token reference"
  }
}
]]></artwork></figure>
      </section>
      <section title="EXEMPT Record Structure" anchor="exempt-structure">
        <figure><artwork><![CDATA[
{
  "routing_state": "AUTONOMOUS",
  "authority_binding": {
    "authority_binding_result": "EXEMPT",
    "execution_permission": "ALLOWED",
    "exemption_basis":
      "AUTONOMOUS_ROUTING_STATE|WATCHTOWER_PROFILE_EXEMPT"
  }
}
]]></artwork></figure>
      </section>
      <section title="Field Definitions" anchor="field-definitions">
        <section title="instrument_selection_mode" anchor="instrument-selection-mode">
          <t>This field records how the DelegationInstrument was identified relative to the moment of decision. This is the operative instrument proof: evidence that the instrument was active at decision time rather than selected after the fact.</t>
          <dl>
            <dt>pre_registered</dt>
            <dd>The instrument was registered in an authority registry before this interaction class occurred. The authority_registry_snapshot_hash records the state of that registry at decision time.</dd>
            <dt>policy_resolved</dt>
            <dd>The instrument was resolved at decision time from a configured policy that maps officer identifiers to valid instruments. The resolution is deterministic and recorded.</dd>
            <dt>manual_selected_at_decision</dt>
            <dd>The instrument was manually selected by the system operator at the moment of the decision. The binding_timestamp records this moment.</dd>
            <dt>post_hoc_attached</dt>
            <dd>The instrument was attached after the decision record was created. This value MUST trigger a review flag. Implementations SHOULD NOT treat post_hoc_attached records as fully BOUND. Profiles MAY define whether post_hoc_attached instruments produce AUTHORITY_UNBOUND or a distinct AUTHORITY_RETROSPECTIVELY_ATTACHED result.</dd>
          </dl>
        </section>
        <section title="authority_root_type and Recursion Termination" anchor="authority-root-type">
          <t>The authority chain terminates when it reaches an accepted authority root. Three root classes are defined. Each OMP profile specifies which root types are acceptable for its domain. The authority root's validity is established by law or professional regulation and does not require further OMP DelegationInstrument binding.</t>
          <dl>
            <dt>statutory</dt>
            <dd>A government-defined regulatory body or court. Examples: FCA (UK), CBK (Kenya), FHFA (US), GMC (UK), Colorado AG (US), EU AI Office. Authority is defined by statute. The issuing_authority_id references the statutory body's official registration identifier.</dd>
            <dt>corporate_delegation</dt>
            <dd>A corporate delegation instrument: board resolution, company secretary record, SMCR Statement of Responsibility, or delegated authority matrix. The chain terminates at the corporate body (company registration) which is itself defined by law. The issuing_authority_id references the corporate registration number and the specific delegation instrument.</dd>
            <dt>professional_registration</dt>
            <dd>A professional licence or registration: GMC/NMC clinical registration, Law Society or Bar admission, Lloyd's underwriter approval, MAS-registered officer appointment. The chain terminates at the professional register maintained by a statutory body. The issuing_authority_id references the professional registration number.</dd>
          </dl>
        </section>
        <section title="scope_constraints" anchor="scope-constraints">
          <t>The scope_constraints object provides structured, machine-testable bounds on the instrument's mandate. Conformance verification MUST check that the decision falls within the scope_constraints. A decision outside the declared scope_constraints MUST produce MANDATE_SCOPE_MISMATCH in failure_reasons.</t>
          <t>Fields within scope_constraints are OPTIONAL individually but the scope_constraints object itself is REQUIRED when authority_binding_result is BOUND. An empty scope_constraints object indicates no structured constraints beyond mandate_scope (free text).</t>
        </section>
        <section title="instrument_hash and Public Registry" anchor="instrument-hash">
          <t>The instrument_hash (SHA-256 of the canonical form of the authority document) provides a mechanism for third-party verification that the referenced document has not been modified since it was hashed.</t>
          <t>Profiles MAY require that instrument hashes be published in an accessible authority registry (analogous to Certificate Transparency <xref target="RFC6962"/>). Publication in such a registry proves existence, timestamp, and non-modification of the delegation instrument at or before the time of registration. It does not prove the legal interpretation of the instrument.</t>
          <t>The authority_registry_snapshot_hash records the hash of the registry state at decision time, providing evidence that the instrument was registered before the decision was made.</t>
        </section>
      </section>
    </section>

    <section title="Conformance Test Cases -- Invariant 3" anchor="conformance">
      <t>The following minimum conformance cases MUST be included in the omp-profiles conformance suite for Invariant 3. All cases assume Invariant 1 and Invariant 2 conformance has already been verified.</t>
      <ol>
        <li>AUTONOMOUS routing state -&gt; EXEMPT, ALLOWED</li>
        <li>ASSISTED + valid active pre_registered instrument, scope match -&gt; BOUND, ALLOWED</li>
        <li>ESCALATED + valid active pre_registered instrument, scope match -&gt; BOUND, ALLOWED</li>
        <li>ASSISTED or ESCALATED + no instrument present -&gt; AUTHORITY_UNBOUND, BLOCKED, NO_VALID_DELEGATION_INSTRUMENT</li>
        <li>officer_id mismatch -&gt; AUTHORITY_UNBOUND, BLOCKED, OFFICER_ID_MISMATCH</li>
        <li>effective_date after decision timestamp -&gt; AUTHORITY_UNBOUND, BLOCKED, EFFECTIVE_DATE_FUTURE</li>
        <li>expiry_date before decision timestamp -&gt; AUTHORITY_UNBOUND, BLOCKED, INSTRUMENT_EXPIRED</li>
        <li>revocation_status REVOKED -&gt; AUTHORITY_UNBOUND, BLOCKED, INSTRUMENT_REVOKED</li>
        <li>revocation_status SUSPENDED -&gt; AUTHORITY_UNBOUND, BLOCKED, INSTRUMENT_SUSPENDED</li>
        <li>revocation_status UNKNOWN -&gt; AUTHORITY_UNBOUND, BLOCKED, REVOCATION_STATUS_UNKNOWN</li>
        <li>decision_type not in scope_constraints.decision_types -&gt; AUTHORITY_UNBOUND, BLOCKED, MANDATE_SCOPE_MISMATCH</li>
        <li>jurisdiction not in scope_constraints.jurisdictions -&gt; AUTHORITY_UNBOUND, BLOCKED, JURISDICTION_OUT_OF_SCOPE</li>
        <li>value exceeds scope_constraints.monetary_limit -&gt; AUTHORITY_UNBOUND, BLOCKED, MONETARY_THRESHOLD_EXCEEDED</li>
        <li>instrument_hash mismatch -&gt; AUTHORITY_UNBOUND, BLOCKED, INSTRUMENT_HASH_MISMATCH</li>
        <li>binding_timestamp outside window -&gt; AUTHORITY_UNBOUND, BLOCKED, BINDING_TIMESTAMP_OUTSIDE_WINDOW</li>
        <li>registry_inclusion_proof absent when required -&gt; AUTHORITY_UNBOUND, BLOCKED, REGISTRY_PROOF_MISSING</li>
        <li>post_hoc_attached -&gt; review flag, not fully BOUND (profile-specific handling)</li>
        <li>invalid enum value in any Invariant 3 field -&gt; schema validation failure, record not emitted</li>
        <li>canonical JSON hash of authority_binding unchanged across stable field ordering</li>
        <li>identical inputs produce identical authority_binding_result and execution_permission</li>
      </ol>
    </section>

    <section title="Profile Inheritance and First-Deployment Targets" anchor="profiles">
      <t>All twelve OMP profile drafts inherit Invariant 3 from this core specification. No immediate profile draft amendment is required for the invariant to apply. Profile-specific implementation guidance is added to each profile in the subsequent revision cycle.</t>
      <t>The following four profiles are designated first-deployment targets because they operate in regulatory domains where delegation instruments are already formally required by existing regulation.</t>
      <dl>
        <dt>DutyMark (draft-veridom-omp-fca-00)</dt>
        <dd>SMCR Statements of Responsibility are the natural DelegationInstrument. authority_root_type: corporate_delegation_root anchored in statutory (FCA firm reference). Effective date equals the date of FCA approval. Revocation equals FCA withdrawal of approval.</dd>
        <dt>WorkMark (draft-veridom-omp-employ-00)</dt>
        <dd>Employment ADS authority policy and HR delegated authority schedule. authority_root_type: corporate_delegation_root. Colorado AI Act and EEOC guidance both require a documented human accountable for consequential employment decisions.</dd>
        <dt>CareGuard (draft-veridom-omp-clinical-00)</dt>
        <dd>Clinical privileges document and GMC/NMC registration. authority_root_type: professional_registration anchored in statutory (GMC). Revocation_status_at_decision checked against the GMC register.</dd>
        <dt>HomeMark (draft-veridom-omp-fhfa-00)</dt>
        <dd>FHFA 2025-16 underwriter certification and authority scope. authority_root_type: corporate_delegation_root anchored in statutory (FHFA-regulated entity registration).</dd>
      </dl>
      <t>The remaining seven profiles -- NDTCP, SACCO, InsureMark, EUAIA, CiteGuard, ColoradoMark, and SingaporeMark -- inherit Invariant 3 and will receive profile-specific DelegationInstrument guidance in their respective -01 revisions.</t>
    </section>

    <section title="Migration from -00 to -01" anchor="migration">
      <t>This amendment is additive and non-breaking.</t>
      <ul>
        <li>AUTONOMOUS records: -00 and -01 produce equivalent records. authority_binding_result is EXEMPT. No migration required.</li>
        <li>ASSISTED and ESCALATED records: -00 records remain valid under -00 schema. Deployments migrating to -01 add the authority_binding object to their ASSISTED and ESCALATED emission paths.</li>
        <li>Proof-Point artefacts: -00 artefacts remain independently verifiable under -00 schema. -01 artefacts are verifiable under -01 schema. SHA-256 and RFC 3161 sealing is unchanged.</li>
        <li>Conformance suite: -01 adds the twenty cases in Section 5 to the omp-profiles conformance suite. Existing -00 cases are unmodified.</li>
      </ul>
    </section>

    <section title="Adversarial Evidentiary Defensibility" anchor="defensibility">
      <t>This section documents how Invariant 3 changes the evidentiary posture in contested proceedings. OMP records do not substitute for the deploying organisation's own evidence. The protocol makes the authority claim independently testable. Whether the authority was legally valid in the fullest sense remains for courts and regulators to determine.</t>
      <section title="BOUND Records" anchor="bound-records">
        <t>A correctly bound -01 record proves that the decision was linked at decision time to a specific DelegationInstrument with recorded scope, issuer, effective date, and revocation status. It makes the authority claim independently testable. The deploying organisation remains responsible for producing the underlying instrument and demonstrating it applied to that specific decision at that time.</t>
      </section>
      <section title="AUTHORITY_UNBOUND Records" anchor="unbound-records">
        <t>An AUTHORITY_UNBOUND record proves that the system evaluated whether a valid DelegationInstrument existed at the time of the decision and determined that it did not. The failure_reasons field records specifically which condition failed. Making authority absence visible is an architectural property, not a failure of the protocol. A sealed AUTHORITY_UNBOUND record materially weakens any later claim
that authority was present but merely undisclosed, because the record
shows that no valid binding was established at decision time.</t>
      </section>
      <section title="Post-Hoc Instrument Attachment" anchor="post-hoc">
        <t>The instrument_selection_mode field addresses the question of whether a delegation instrument was operative at decision time or selected after the fact. A post_hoc_attached instrument cannot receive BOUND status. This distinction is critical in discovery contexts where a deploying organisation might attempt to reconstruct authority documentation after a decision is challenged.</t>
      </section>
    </section>

    <section title="Security Considerations" anchor="security">
      <t>The authority_binding object is sealed by Invariant 2 (SHA-256 hash chain plus RFC 3161 timestamp). Any modification to any field in the authority_binding object after sealing will produce a hash mismatch detectable by any third party.</t>
      <t>The instrument_hash field provides a mechanism for verifying the referenced delegation instrument has not been modified since hashing. The hash does not prove the instrument's legal validity or scope of application.</t>
      <t>The instrument_selection_mode field provides evidence of when the instrument was bound relative to the decision. Implementations MUST record this field accurately. Misrepresenting post_hoc_attached as pre_registered is a breach of the protocol invariants and will be detectable through the binding_timestamp and authority_registry_snapshot_hash fields.</t>
      <t>The AUTHORITY_UNBOUND state seals the failure. This prevents a deploying organisation from later claiming the authority existed but was not recorded due to a system failure. The sealed absence is the evidence.</t>
    </section>

    <section title="IANA Considerations" anchor="iana">
      <t>This document has no IANA actions. The OMP profile registry is maintained at github.com/veridomltd/omp-open-core under Apache-2.0 licence.</t>
    </section>
  </middle>

  <back>
    <references title="References">
      <references title="Normative References">
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/rfc/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
            <date month="March" year="1997"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
        </reference>
        <reference anchor="RFC3161" target="https://www.rfc-editor.org/rfc/rfc3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author initials="C." surname="Adams" fullname="Carlisle Adams"/>
            <author initials="P." surname="Cain" fullname="Paul Cain"/>
            <author initials="D." surname="Pinkas" fullname="Denis Pinkas"/>
            <author initials="R." surname="Zuccherato" fullname="Robert Zuccherato"/>
            <date month="August" year="2001"/>
          </front>
          <seriesInfo name="RFC" value="3161"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/rfc/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
            <date month="May" year="2017"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/rfc/rfc8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author initials="A." surname="Rundgren" fullname="Anders Rundgren"/>
            <author initials="B." surname="Jordan" fullname="Brian Jordan"/>
            <author initials="S." surname="Erdtman" fullname="Samuel Erdtman"/>
            <date month="June" year="2020"/>
          </front>
          <seriesInfo name="RFC" value="8785"/>
        </reference>
      </references>
      <references title="Informative References">
        <reference anchor="OMP-00" target="https://datatracker.ietf.org/doc/html/draft-veridom-omp-00">
          <front>
            <title>Operating Model Protocol (OMP) Core -- Version 00</title>
            <author initials="T." surname="Adebayo" fullname="Tolulope Adebayo"/>
            <author initials="O." surname="Apalowo" fullname="Oluropo Apalowo"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-veridom-omp-00"/>
          <annotation>Work in Progress</annotation>
        </reference>
        <reference anchor="OMP-SPEC" target="https://doi.org/10.5281/zenodo.19140948">
          <front>
            <title>OMP Technical Specification</title>
            <author initials="T." surname="Adebayo" fullname="Tolulope Adebayo"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="DOI" value="10.5281/zenodo.19140948"/>
        </reference>
        <reference anchor="RFC6962" target="https://www.rfc-editor.org/rfc/rfc6962">
          <front>
            <title>Certificate Transparency</title>
            <author initials="B." surname="Laurie" fullname="Ben Laurie"/>
            <author initials="A." surname="Langley" fullname="Adam Langley"/>
            <author initials="E." surname="Kasper" fullname="Emi Kasper"/>
            <date month="June" year="2013"/>
          </front>
          <seriesInfo name="RFC" value="6962"/>
        </reference>
      </references>
    </references>

    <section title="authority_binding_result Enumeration" anchor="appendix-a">
      <t>authority_binding_result ENUM:</t>
      <ul>
        <li>BOUND -- Valid DelegationInstrument bound at decision time</li>
        <li>AUTHORITY_UNBOUND -- Binding evaluation failed; see failure_reasons</li>
        <li>EXEMPT -- AUTONOMOUS state or profile-specific Watchtower exemption</li>
      </ul>
      <t>execution_permission ENUM:</t>
      <ul>
        <li>ALLOWED -- Decision may proceed</li>
        <li>BLOCKED -- Decision blocked pending valid authority binding</li>
      </ul>
      <t>instrument_selection_mode ENUM:</t>
      <ul>
        <li>pre_registered -- Instrument registered before interaction class</li>
        <li>policy_resolved -- Resolved from configured policy at decision time</li>
        <li>manual_selected_at_decision -- Selected by operator at decision time</li>
        <li>post_hoc_attached -- Attached after decision record creation (review flag)</li>
      </ul>
      <t>authority_root_type ENUM:</t>
      <ul>
        <li>statutory -- Government regulatory body or court</li>
        <li>corporate_delegation -- Board resolution or delegated authority matrix</li>
        <li>professional_registration -- Professional licence or registration</li>
      </ul>
      <t>revocation_status_at_decision ENUM:</t>
      <ul>
        <li>ACTIVE -- Instrument confirmed active at decision time</li>
        <li>SUSPENDED -- Instrument suspended; treated as AUTHORITY_UNBOUND</li>
        <li>REVOKED -- Instrument revoked; treated as AUTHORITY_UNBOUND</li>
        <li>UNKNOWN -- Status could not be determined; treated as AUTHORITY_UNBOUND</li>
      </ul>
      <t>failure_reasons ARRAY (one or more of):</t>
      <ul>
        <li>NO_VALID_DELEGATION_INSTRUMENT</li>
        <li>OFFICER_ID_MISMATCH</li>
        <li>EFFECTIVE_DATE_FUTURE</li>
        <li>INSTRUMENT_EXPIRED</li>
        <li>INSTRUMENT_REVOKED</li>
        <li>INSTRUMENT_SUSPENDED</li>
        <li>REVOCATION_STATUS_UNKNOWN</li>
        <li>MANDATE_SCOPE_MISMATCH</li>
        <li>JURISDICTION_OUT_OF_SCOPE</li>
        <li>MONETARY_THRESHOLD_EXCEEDED</li>
        <li>INSTRUMENT_HASH_MISMATCH</li>
        <li>BINDING_TIMESTAMP_OUTSIDE_WINDOW</li>
        <li>REGISTRY_PROOF_MISSING</li>
        <li>POST_HOC_ATTACHMENT_DETECTED</li>
      </ul>
    </section>

    <section title="Acknowledgements" anchor="acks">
      <t>The authority-chain gap addressed by Invariant 3 was identified through independent review by an AI governance researcher whose published framework for binary structural testing of AI accountability converged independently on OMP's core architectural approach. Their critique -- that a tamper-proof record of an unauthorised decision is still an unauthorised decision, and that only the decision-maker can prove the underlying authority -- is incorporated into the design of Invariant 3 and the AUTHORITY_UNBOUND state.</t>
      <t>This draft was produced using the OMP Open Core reference implementation at github.com/veridomltd/omp-open-core (Apache-2.0). The OMP technical specification is published at <xref target="OMP-SPEC"/>.</t>
    </section>
  </back>
</rfc>