<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.3.12) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc tocindent="yes"?>

<rfc ipr="trust200902" docName="draft-dogru-cedulon-decision-profile-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Cedulon Decision Profile">Cedulon Decision Profile: Reconciling an Agent's Decisions Against Its Effects</title>

    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>

    <date year="2026" month="September" day="04"/>

    <area>sec</area>
    
    <keyword>Cedulon</keyword> <keyword>agent</keyword> <keyword>decision</keyword> <keyword>reconciliation</keyword> <keyword>completeness</keyword>

    <abstract>


<?line 83?>

<t>The Cedulon core document reconciles an issuer's signed Spend Receipts
against an authenticated extract of a payment rail and reports, over a
declared population, that no settlement lacks a receipt and no settled
receipt is absent from the rail. Money is the special case that
document implements. This document defines a second population on the
same reconciler. A Decision Record is signed by the party that decided
whether an agent may act; an Effect Extract is an authenticated list
of the effects that actually occurred on a channel. An allow must be
matched by exactly one effect whose content hash the record named; a
refusal must be matched by none. The Decision Record claim set, the
Effect Extract shape, the points at which the reconciliation departs
from the spend rules, the finding codes, and one media type are
defined. This revision binds the class of the allowed effect into the
signed record, narrows what the Decider's chain is claimed to control,
and states the boundary to three adjacent documents. The text is
provisional and the companion implementation carries the profile
prepared and unpublished.</t>



    </abstract>



  </front>

  <middle>


<?line 103?>

<section anchor="introduction"><name>Introduction</name>

<t>The Cedulon core document <xref target="CEDULON"/> answers one question
about an agent that spends: did every settlement on the rail have a
receipt behind it, and did every settled receipt reach the rail? It
answers it by closing three signed objects over a declared population:
the issuer's records, an authenticated extract of the counterparty
system, and epoch checkpoints that total the records. The verifier
holds the keys out of band and the report names the population it
covered.</t>

<t>An agent that acts without spending raises the same question with
different nouns. A party decided whether the agent may reply, post,
send, or call; a channel carried whatever the agent then did. Did every
effect on the channel have a decision behind it? Did every allowed
action occur, once, with the content that was allowed? Did anything
occur that was refused? Section 19 of <xref target="CEDULON"/> reserves later
profiles in name only, and its Section 19.3 sketches the same
completeness calculus for other consumable resources: compute, data,
energy. This document is a different population on the same
reconciler, decisions against effects rather than another unit of
spend, and it is the first profile written out.</t>

<t>The profile keeps the core's three roles and its verification
algorithm. What changes is the record, the row, the binding between
them, and the words the report uses. What does not change is
measured: the companion implementation holds the spend behaviour byte
for byte behind a golden file, and every rule in this document that
departs from the spend rules is stated as a departure.</t>

<t>Three documents written at the same time ask adjacent questions about
the same agent, and the boundary between them is worth stating so
that a reader does not take one for another. This profile reconciles
signed decisions against the effects a channel carried. <xref target="AEB"/>
handles what happens before an effect: authorization, reservation,
and the provider's entry. <xref target="OUTCOME"/> reconciles the exact action
and its source against the effect that was independently observed,
and keeps missing evidence indeterminate rather than resolving it
either way. <xref target="ABAK"/> covers the delivery and enforcement of a
governance control on its way to one or more enforcement points. The
finding this profile exists for, an effect that occurred against a
refusal (<xref target="binding"/>), establishes that the decision and effect
populations did not reconcile; it does not by itself establish
whether the failure lay in control delivery, enforcement, another
path, or elsewhere. Where a deployment realizes a refusal through a
downstream control path, the evidence for that path is the question
<xref target="ABAK"/> addresses; where no such path exists, this profile does not
imply one.</t>

<t>This document is a companion to the core document, not a revision of
it. It is not an IETF working-group item. Its requirement language is
provisional in the sense Section 19 of <xref target="CEDULON"/> gives the
structures it reserves: a direction written with the core's
discipline, not a commitment, and a later revision may change it. The
companion implementation carries the profile prepared and
unpublished.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

<t>Terms defined in the core document keep their meaning here: Policy
Decision Point, epoch checkpoint, trust root, population, finding,
warning, guarantee. The following are specific to this profile.</t>

<dl>
  <dt>Decider:</dt>
  <dd>
    <t>The party that decides, per request, whether the agent may act. It
signs Decision Records and epoch checkpoints over them. Its key is
the issuer root of this profile (<xref target="roots"/>).</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>The party on whose request the decision was taken, named in the
record as an opaque identifier.</t>
  </dd>
  <dt>Decision Record:</dt>
  <dd>
    <t>A COSE_Sign1 object signed by the Decider stating one decision:
allow, deny, or defer, with the request it answered, the policy it
applied, and, for an allow, the reference and the content hash of
the effect it allowed (<xref target="record"/>).</t>
  </dd>
  <dt>Effect:</dt>
  <dd>
    <t>One thing that happened on a channel as a result of, or in the
absence of, a decision: a message sent, a post made, a call placed.
It is identified by a reference, classed by a short name, and bound
by the SHA-256 of its content.</t>
  </dd>
  <dt>Channel:</dt>
  <dd>
    <t>The system on which effects occur and from which an Effect Extract
is taken. It plays the role a rail plays in the core document.</t>
  </dd>
  <dt>Effect Extract:</dt>
  <dd>
    <t>The authenticated list of effects on one channel, for one Decider,
over one window (<xref target="extract"/>). It plays the role a rail extract
plays in the core document.</t>
  </dd>
  <dt>Refusal:</dt>
  <dd>
    <t>A Decision Record whose decision is deny or defer. A refusal expects
no effect.</t>
  </dd>
</dl>

</section>
<section anchor="population"><name>The population</name>

<t>The core document's reconciler closes an issuer record against a
counterparty row over a declared population. This profile fills the
same three roles:</t>

<texttable>
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Spend (core)</ttcol>
      <ttcol align='left'>Decision (this document)</ttcol>
      <c>Issuer record</c>
      <c>Spend Receipt</c>
      <c>Decision Record</c>
      <c>Counterparty row</c>
      <c>settlement record on a rail extract</c>
      <c>effect row on an Effect Extract</c>
      <c>Match key</c>
      <c><spanx style="verb">ref</spanx></c>
      <c><spanx style="verb">ref</spanx></c>
      <c>Content binding</c>
      <c>amount and currency equal</c>
      <c>allow: a row exists and <spanx style="verb">effectHash</spanx> is equal; refusal: no row</c>
      <c>Record that expects no row</c>
      <c><spanx style="verb">outcome</spanx> aborted</c>
      <c><spanx style="verb">decision</spanx> deny or defer</c>
      <c>Aggregate witness</c>
      <c>checkpoint <spanx style="verb">totals</spanx> per currency</c>
      <c>checkpoint <spanx style="verb">totals</spanx> per decision kind</c>
      <c>Declared population</c>
      <c>account, rail, window</c>
      <c>decider, channel, window</c>
</texttable>

<t>Which population a presented document belongs to is the verifier's
call, made by the profile it applies, and never the document's. A
verifier applying this profile <bcp14>MUST</bcp14> read every presented record as a
Decision Record and every presented extract as an Effect Extract, and
<bcp14>MUST</bcp14> refuse by name a document that does not have that shape; it <bcp14>MUST
NOT</bcp14> infer the population from members a body happens to carry
(<spanx style="verb">MUST-DP-1</spanx>). The companion found the alternative wrong in both
directions: a rail extract that added a member named <spanx style="verb">effects</spanx> was
re-routed away from the spend rules it was subject to, and an Effect
Extract handed to the spend rules crashed before any report existed.
Under this profile a rail extract is the wrong document and is refused
as one; under the spend rules an Effect Extract is refused the same
way.</t>

</section>
<section anchor="record"><name>Decision Record</name>

<t>A Decision Record is COSE_Sign1 with the header profile of Section 6.2
of <xref target="CEDULON"/>: deterministic CBOR, <spanx style="verb">alg</spanx> <spanx style="verb">-19</spanx> (Ed25519,
<xref target="RFC9864"/>), <spanx style="verb">kid</spanx> mandatory and computed as the core states, an empty
unprotected header refused by name if not empty, and the payload the
CBOR encoding of the claim map below. The content type header
parameter is <spanx style="verb">application/cedulon-decision-record+cbor</spanx> (<xref target="iana"/>).</t>

<section anchor="record-labels"><name>Claim labels</name>

<t>The labels lie in the Private Use range of the CWT Claims registry
<xref target="RFC8392"/>, below the block the core document uses for the Decision
Token (<spanx style="verb">-70301</spanx> to <spanx style="verb">-70305</spanx>) and the countersignature (<spanx style="verb">-70401</spanx>,
<spanx style="verb">-70402</spanx>), so that no two Cedulon claim maps share a label. Every
claim annotated <spanx style="verb">hash</spanx> carries a SHA-256 <xref target="RFC6234"/> digest rendered
as exactly 64 lowercase hexadecimal characters, the grammar of Section
6.1 of <xref target="CEDULON"/>, and a value outside that grammar is
refused by name at signing and at verification.</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>CBOR type</ttcol>
      <c>-70501</c>
      <c>decider</c>
      <c>tstr</c>
      <c>-70502</c>
      <c>subject</c>
      <c>tstr</c>
      <c>-70503</c>
      <c>requestHash</c>
      <c>tstr (hash)</c>
      <c>-70504</c>
      <c>policyHash</c>
      <c>tstr (hash)</c>
      <c>-70505</c>
      <c>inputsHash</c>
      <c>tstr (hash) / null</c>
      <c>-70506</c>
      <c>decision</c>
      <c>tstr (<spanx style="verb">allow</spanx> / <spanx style="verb">deny</spanx> / <spanx style="verb">defer</spanx>)</c>
      <c>-70507</c>
      <c>reasonCode</c>
      <c>tstr</c>
      <c>-70508</c>
      <c>ref</c>
      <c>tstr / null</c>
      <c>-70509</c>
      <c>effectHash</c>
      <c>tstr (hash) / null</c>
      <c>-70510</c>
      <c>timestampMs</c>
      <c>uint</c>
      <c>-70511</c>
      <c>nonce</c>
      <c>tstr</c>
      <c>-70512</c>
      <c>prevRecordHash</c>
      <c>tstr (hash) / null</c>
      <c>-70513</c>
      <c>effectClass</c>
      <c>tstr / null</c>
</texttable>

<t>All thirteen labels are always present; a nullable claim carries CBOR
null when it has no value. The thirteenth label is new in this
revision; a record with twelve is refused at verification as a claim
set that does not have this shape, and the companion carries no
records signed under the earlier set outside its own fixtures.</t>

<t><spanx style="verb">decider</spanx> and <spanx style="verb">subject</spanx> are opaque identifiers chosen by the
deployment. <spanx style="verb">requestHash</spanx> is the SHA-256 of the request the Decider
evaluated, in the canonical encoding of Section 7 of
<xref target="CEDULON"/> when the request is a JSON document and over its
UTF-8 octets when it is text; this document does not fix the request's
fields, and a deployment <bcp14>MUST</bcp14> state what it hashes. <spanx style="verb">policyHash</spanx> is
the SHA-256 of the canonical policy document the Decider applied.
<spanx style="verb">inputsHash</spanx>, when not null, is the SHA-256 of whatever further
context the Decider consulted, encoded the same way, so that a later
reader can tell two decisions on the same request apart by what else
was on the table. <spanx style="verb">reasonCode</spanx> is a short token the deployment
defines; it is carried, not interpreted.</t>

<t><spanx style="verb">ref</spanx> is the reference under which the allowed effect will appear on
the channel, and the key on which the reconciliation matches.
<spanx style="verb">effectHash</spanx> is the SHA-256 of the content of the effect the Decider
allowed, over the octets the channel will carry: for a text reply, the
UTF-8 octets of the text. The Effect Extract computes the same digest
over the same octets (<xref target="extract"/>), so equality of the two is equality
of content.</t>

<t><spanx style="verb">effectClass</spanx> is the class of the effect the Decider allowed, a short
name in the vocabulary the channel defines, such as a reply or a
post. An Effect Extract row carries the same claim in the same
vocabulary (<xref target="extract-schema"/>), so equality of the two is equality
of class. The class is under the Decider's signature so that what the
Decider allowed cannot be read as one class by one reader and another
by the next without changing what was signed; the earlier revision
carried it on the row only and named the gap.</t>

<t><spanx style="verb">timestampMs</spanx> is the decision time in POSIX milliseconds. <spanx style="verb">nonce</spanx>
identifies the record. <spanx style="verb">prevRecordHash</spanx> links records into the
Decider's chain: it is the SHA-256 of the previous record's COSE_Sign1
octets, the same input the core's <spanx style="verb">receiptHash</spanx> takes on the COSE path
(Section 7.1 of <xref target="CEDULON"/>), or null for the first record
of a chain.</t>

</section>
<section anchor="record-rules"><name>Claim rules</name>

<t>A signer <bcp14>MUST</bcp14> refuse to sign, and a verifier <bcp14>MUST</bcp14> reject, a claim set
that breaks any of the following, naming the rule in the refusal
(<spanx style="verb">MUST-DP-2</spanx>):</t>

<t><list style="symbols">
  <t><spanx style="verb">decision</spanx> is one of <spanx style="verb">allow</spanx>, <spanx style="verb">deny</spanx>, <spanx style="verb">defer</spanx>.</t>
  <t>Every hash-annotated claim that is not null matches the hash grammar.</t>
  <t><spanx style="verb">timestampMs</spanx> is a non-negative integer of magnitude at most 2^53 - 1,
the <spanx style="verb">uint</spanx> the label table states; a CBOR decoder hands back any
number, and the rule is what makes the table true.</t>
  <t>An allow carries a non-empty <spanx style="verb">ref</spanx> and a non-null <spanx style="verb">effectHash</spanx>. An
allow that names no effect is a decision the reconciliation cannot
close, and an allow that names no reference is one it cannot find.</t>
  <t>An allow carries a non-empty <spanx style="verb">effectClass</spanx>. An allow that names no
class is one whose effect could be matched by a row of any class
under the same reference and content, which is the substitution
<xref target="security"/> names.</t>
  <t>A refusal <bcp14>MAY</bcp14> carry an <spanx style="verb">effectClass</spanx>: it names the class of what
was refused, and it is carried, not measured. A refusal binds to
the absence of a row of any class.</t>
  <t>A refusal carries <spanx style="verb">effectHash</spanx> null. A refusal binds to the absence
of an effect, never to a content hash, so a hash on a refusal would
be a claim the audit cannot measure and a second reading of whether
the effect occurred. A refusal <bcp14>MAY</bcp14> carry a <spanx style="verb">ref</spanx>: it names what was
refused, and an effect appearing under that reference is the worst
finding this profile has (<xref target="codes"/>).</t>
</list></t>

<t>The verifier <bcp14>MUST</bcp14> apply these rules itself, on the claim map it
decoded from the signed payload, and <bcp14>MUST NOT</bcp14> rely on the signer
having applied them (<spanx style="verb">MUST-DP-3</spanx>). The Decider is the party under
audit. A Decider that signed a well-formed COSE_Sign1 over a claim map
that skips a rule has produced an object whose signature verifies, and
a verifier that checked only the signature and the equality of the
decoded map with the presented claims would attest it. The companion
implementation did exactly that until it was measured: an allow with
no reference, signed below the signer's own rules under the pinned
decider key, verified true, was attested, was counted as unmatched,
and the audit still said the books balanced. The rules now run at both
ends.</t>

</section>
<section anchor="record-presentation"><name>Presentation and confusion</name>

<t>A Decision Record is presented as Section 6.3 of <xref target="CEDULON"/>
states for the core's COSE objects: the signed octets, the decoded
claim set, and the Decider's public key as a SubjectPublicKeyInfo PEM
beside them. The carried key is not an identity source. Under a pinned
decider key a record that verifies under the pin while carrying
another key is reported as <spanx style="verb">carried-key-mismatch</spanx>, a warning, and
stays attested; with no pin held the signature check that runs against
the carried key says the record is internally consistent and nothing
about who signed it.</t>

<t>A Decision Record is not a Decision Token. The core's Decision Token
(Section 8 of <xref target="CEDULON"/>) is the portable encoding of a
PDP allow, carried by the party that will spend; a Decision Record is
the Decider's own log of what it decided, kept for audit, and it
exists for refusals as well. The two carry different content types and
different claim maps. A verifier <bcp14>MUST</bcp14> reject a Decision Record whose
content type is not <spanx style="verb">application/cedulon-decision-record+cbor</spanx>, and
<bcp14>MUST</bcp14> reject a token presented as a record or a record presented as a
token, on the content type, before the signature is checked and
before any claim is read (<spanx style="verb">MUST-DP-4</spanx>).</t>

</section>
<section anchor="record-chain"><name>The Decider's chain and checkpoints</name>

<t>Decision Records chain on <spanx style="verb">prevRecordHash</spanx> the way Spend Receipts chain
on <spanx style="verb">prevReceiptHash</spanx>, and the Decider signs epoch checkpoints over
them with the checkpoint claim set of Section 11.1 of
<xref target="CEDULON"/> unchanged: <spanx style="verb">receiptCount</spanx> is the number of
records in the window, <spanx style="verb">chainHeadHash</spanx> is the SHA-256 of the last
record's COSE_Sign1 octets, and <spanx style="verb">totals</spanx> is a map from the three
decision kinds to decimal counts, <spanx style="verb">{"allow": n, "deny": n, "defer":
n}</spanx>, each rendered as a text string as the core renders its currency
totals. A verifier compares the totals it computes over the attested
records in the window against the signed map, and a difference is
<spanx style="verb">checkpoint-total-mismatch</spanx> as in the core.</t>

<t>Two records that claim the same position in a chain cannot both link
to it: the second record's <spanx style="verb">prevRecordHash</spanx> must be the first's hash,
so a Decider that signs two decisions under one nonce, or presents one
record twice to the same reader, breaks its own chain and the walk
names the break. A verifier <bcp14>MUST</bcp14> walk the chain over every presented
record that carries the pinned decider key, not only over the records
that verified, so that a record that claims the pin and fails the
rules is named by the walk rather than dropped from the population
without a word (<spanx style="verb">MUST-DP-5</spanx>).</t>

<t>What the walk establishes is bounded by what one reader holds. A
Decider can sign two successors to the same predecessor and show one
branch to one reader and the other branch to another; each reader
walks a linear chain that verifies, and neither walk names a break.
The earlier revision called the chain the equivocation control of
this profile, which overstated it and contradicted the core: Section
11 of <xref target="CEDULON"/> states that the presented chain alone cannot satisfy
the equivocation requirement, because its epochs are consecutive by
construction, and that the comparison which reaches a fork is between
the presented checkpoints and the copies a witness recorded
(<spanx style="verb">MUST-T11-3</spanx>). That rule applies to this profile unchanged. The
Decider's epoch checkpoints are the Signed Statements the witness
records, the verifier compares the witness's copies against the
presented chain, and two verified checkpoints for one epoch with
different hashes are <spanx style="verb">equivocation</spanx>. Where no witness was consulted,
the chain controls equivocation within the population one reader
holds and nothing beyond it, and a report <bcp14>MUST NOT</bcp14> present the chain
as settling more than that (the core's <spanx style="verb">MUST-T11-9</spanx>, with the nouns
renamed).</t>

</section>
</section>
<section anchor="extract"><name>Effect Extract Profile</name>

<t>A verifier checks completeness against an Effect Extract, not against
the Decider's own records alone. The extract is the channel's account
of what happened, obtained independently of the Decider, and the
profile is only as strong as that independence (<xref target="roots"/>).</t>

<section anchor="extract-schema"><name>Body and row schema</name>

<t>The extract body is one JSON document with exactly this shape:</t>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>JSON type</ttcol>
      <c>deciderId</c>
      <c>string (non-empty)</c>
      <c>channelId</c>
      <c>string (non-empty)</c>
      <c>windowStartMs</c>
      <c>number (POSIX milliseconds, a safe integer)</c>
      <c>windowEndMs</c>
      <c>number (POSIX milliseconds, a safe integer, greater than <spanx style="verb">windowStartMs</spanx>)</c>
      <c>effects</c>
      <c>array of effect rows</c>
</texttable>

<t>Each effect row is a JSON object with exactly these members:</t>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>JSON type</ttcol>
      <c>ref</c>
      <c>string (non-empty; the reference the Decision Record named)</c>
      <c>effectHash</c>
      <c>string (SHA-256 of the effect's content, 64 lowercase hex)</c>
      <c>effectClass</c>
      <c>string (non-empty; a short class name the channel defines, such as a reply or a post, in the vocabulary the Decision Record's <spanx style="verb">effectClass</spanx> uses)</c>
      <c>timestampMs</c>
      <c>number (POSIX milliseconds, a safe integer, inside the window)</c>
      <c>actor</c>
      <c>string (optional; the party the effect reached)</c>
</texttable>

<t>These member names are normative. The body and its rows follow the
core's rail extract (Section 9 of <xref target="CEDULON"/>) in every rule
that document states for a JSON body: the text is read for a repeated
member name before it is parsed and refused as <spanx style="verb">json-duplicate-key</spanx>;
integers are safe integers; the window is half-open and <bcp14>MUST</bcp14> end after
it starts; a missing member, a wrong type, an empty identifier, or a
hash outside the grammar is refused by name at both ends, by the
signer before it signs and by the verifier before it checks a
signature.</t>

<t>The profile departs from the rail extract at two points, and a reader
who knows the core should note both (<spanx style="verb">MUST-DP-6</spanx>):</t>

<t><list style="symbols">
  <t>A member this document does not name is refused, on the body and on
a row. The core lets a rail add members of its own because a rail is
a system the profile does not control; an Effect Extract is produced
by a process the deployment does control (<xref target="roots"/>), and the
companion measured what a free member can do to a population
(<xref target="population"/>). A later revision may open this once a channel that
needs its own members is measured.</t>
  <t>A row whose <spanx style="verb">timestampMs</spanx> falls outside <spanx style="verb">[windowStartMs,
windowEndMs)</spanx> makes the whole extract malformed, refused as
<spanx style="verb">effect-outside-window</spanx> before any signature is checked. The core
accepts such a rail extract and names the row
(<spanx style="verb">extract-scope-mismatch</spanx>). Here the extract is the deployment's own
document and a window it did not keep is a document it did not
produce correctly: a signer applying this schema never produces such
an extract, and a verifier refuses one that is presented as a
document, whatever else it may also name about its rows. The trade
is stated so it can be reversed: a single row out of place fails the
whole window closed.</t>
</list></t>

<t><spanx style="verb">effectHash</spanx> on a row is computed by the extract's signer over the
same octets a Decider hashes for its <spanx style="verb">effectHash</spanx> claim: the content
as the channel carried it. A deployment <bcp14>MUST</bcp14> state those octets once
for both sides; the companion's example channel hashes the UTF-8
octets of the message text.</t>

</section>
<section anchor="extract-auth"><name>Authentication and scope</name>

<t>The extract is signed the way a rail extract is signed: Ed25519
<xref target="RFC8032"/> over the UTF-8 octets of the <xref target="RFC8785"/> encoding of the
body, with the signature as base64 and the signer's public key as a
SubjectPublicKeyInfo PEM beside the body, neither inside the signed
octets. It is a JSON document with a detached signature, not a COSE
object, and like the rail extract it has no media type. The earlier
revision gave as the reason that the core registers names only for
objects whose content type is checked inside a protected header; that
test decides what a name must be bound to, not whether a
representation needs one, and it is withdrawn as the reason. The
reason is <xref target="population"/>: which population a presented document
belongs to is the verifier's call, made by the profile it applies and
by the decider, channel, and window it declares (<spanx style="verb">MUST-DP-1</spanx>,
<spanx style="verb">MUST-DP-7</spanx>), and never the document's. That declaration is the typed
outer context a media type would otherwise supply. A name on the
extract would be a self-description the verifier is told not to
select on, and this document does not register one that its own rule
forbids relying on. The day an extract is itself wrapped as a Signed
Statement and needs a content type in a protected header, an
<spanx style="verb">application/cedulon-effect-extract+json</spanx> registration is the name to
make, without changing the verifier's rule; the extract is not
recorded with a witness today. Section 9.3 of <xref target="CEDULON"/>
applies unchanged: a
signature proves internal consistency and not origin; the verifier
<bcp14>MUST</bcp14> hold the extract signer's key out of band and <bcp14>MUST</bcp14> compare keys
as SubjectPublicKeyInfo DER; with no key held the guarantee is
conditional and <spanx style="verb">unauthenticated-extract</spanx> is reported; with a key
held, an extract that does not verify under it is
<spanx style="verb">extract-key-mismatch</spanx> and its rows are not reconciled
(<spanx style="verb">settlement-comparison-skipped</spanx>, the core's name for the same
condition).</t>

<t>The extract is scoped to one Decider, one channel, and one window,
and Section 9.4 of <xref target="CEDULON"/> applies with the nouns
renamed: a verifier that knows which Decider, channel, and window it
audits <bcp14>MUST</bcp14> check the extract against them and <bcp14>MUST</bcp14> fail closed on a
mismatch (<spanx style="verb">extract-scope-mismatch</spanx>); one that has not stated the
window <bcp14>MUST</bcp14> report <spanx style="verb">unstated-audit-window</spanx>, one that has not stated
the Decider or the channel <bcp14>MUST</bcp14> report <spanx style="verb">unstated-audit-scope</spanx>, and in
either case the guarantee is conditional. The strongest line this
profile can print, a balanced audit under an unconditional guarantee,
is true of one Decider, on one channel, over one window, and a report
that carries it <bcp14>MUST</bcp14> also carry those three (<spanx style="verb">MUST-DP-7</spanx>).</t>

</section>
</section>
<section anchor="reconciliation"><name>Reconciliation</name>

<t>The verification algorithm of Section 11.4 of <xref target="CEDULON"/>
runs unchanged over this population: establish the subject, verify
the extract, check scope, resolve records against the decider root,
walk the chain, index both sides by <spanx style="verb">ref</spanx>, match, decode and walk the
checkpoints, consult the witness if one is supplied, and decide. This
section states only what the algorithm reads differently.</t>

<section anchor="binding"><name>What binds</name>

<t>A Decision Record expects a row when its decision is <spanx style="verb">allow</spanx>, and
expects none when it is a refusal. For a <spanx style="verb">ref</spanx> that appears once on
each side:</t>

<t><list style="symbols">
  <t>an allow and a row bind when the row's <spanx style="verb">effectHash</spanx> equals the
record's <spanx style="verb">effectHash</spanx> and the row's <spanx style="verb">effectClass</spanx> equals the
record's <spanx style="verb">effectClass</spanx>; a difference in the hash is
<spanx style="verb">effect-mismatch</spanx> (the content that occurred is not the content
that was allowed), and a difference in the class with the hash
equal is <spanx style="verb">effect-class-mismatch</spanx> (the content that was allowed
occurred as something else). The hash is compared first; a row
that differs in both is reported for its content;</t>
  <t>an allow with no row is <spanx style="verb">decision-without-effect</spanx>;</t>
  <t>a row with no record is <spanx style="verb">effect-without-decision</spanx>;</t>
  <t>a row whose <spanx style="verb">ref</spanx> a refusal names is <spanx style="verb">effect-against-refusal</spanx>.</t>
</list></t>

<t>The last is the finding this profile exists for. A spend audit has no
row that should not be there in the same sense: an aborted receipt
that still carries its reference and a settlement under that
reference is reported by the core as a settlement without a receipt,
and it never told the two cases apart. Here a refusal that was
followed by the effect it refused is a different fact from an effect
nobody decided on, and it has its own name.</t>

<t>A <spanx style="verb">ref</spanx> that appears more than once on a side is <spanx style="verb">duplicate-ref</spanx> as in
the core, and the repeating reference is then reconciled by count
rather than by amount: there is nothing to sum. More rows than
records under one reference is <spanx style="verb">effect-without-decision</spanx>; more
records than rows is <spanx style="verb">decision-without-effect</spanx>.</t>

<t>There is no amount, no currency, no manifest, no terms, and no
counterparty axis on this profile. The core's <spanx style="verb">counterparty-unbound</spanx>
scope record is not emitted: <spanx style="verb">effectHash</spanx> binds the content of the
effect itself, which is more than a payee name ever bound on spend,
and <spanx style="verb">actor</spanx> on a row is carried for the reader, not measured. The
core's boundary rule applies unchanged: an unmatched item inside the
declared clock-skew allowance of a window edge is <spanx style="verb">boundary-deferred</spanx>,
and a closing-edge allow whose <spanx style="verb">ref</spanx> the following extract names is
carried, not a finding.</t>

</section>
<section anchor="conservation"><name>Conservation</name>

<t>With <spanx style="verb">|R|</spanx> the in-scope Decision Records and <spanx style="verb">|E|</spanx> the effect rows, the
identities the core report publishes hold with the words changed:</t>

<figure><artwork><![CDATA[
|R|      = refusals + allows
refusals = deny + defer
allows   = matched + deferred + carried
           + unmatched + repeated + unreconciled
|E|      = matched + deferred
           + unmatched + repeated + unreconciled
matched on |R| equals matched on |E|
]]></artwork></figure>

<t>A report under this profile <bcp14>MUST</bcp14> publish these counts and <bcp14>MUST</bcp14> name
the population they were computed over (<spanx style="verb">MUST-DP-8</spanx>), for the reason
the core gives: a report whose counts do not close is a report that
lost a record somewhere, and a reader is entitled to see that without
re-running the audit. The report publishes refusals as one count, the
core's <spanx style="verb">aborted</spanx>; the split of that count into deny and defer is the
checkpoint's <spanx style="verb">totals</spanx> (<xref target="record-chain"/>), not a counter of the
report.</t>

</section>
<section anchor="codes"><name>Finding codes</name>

<t>The identifiers below are for diagnostic output and are not an
interoperability surface, as Section 11.5 of <xref target="CEDULON"/>
states for the core's codes. Five are new to this profile:</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Effect</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>decision-without-effect</c>
      <c>audit fails</c>
      <c>An allow names a reference under which no effect occurred, or a reference had more records than rows</c>
      <c>effect-without-decision</c>
      <c>audit fails</c>
      <c>An effect occurred under a reference no Decision Record names, or a reference had more rows than records</c>
      <c>effect-against-refusal</c>
      <c>audit fails</c>
      <c>An effect occurred under a reference a refusal names</c>
      <c>effect-mismatch</c>
      <c>audit fails</c>
      <c>The effect that occurred does not carry the content hash the allow named</c>
      <c>effect-class-mismatch</c>
      <c>audit fails</c>
      <c>The effect that occurred carries the content hash the allow named and a class the allow did not</c>
</texttable>

<t>The remaining codes a report under this profile can carry are the
core's, with the same effect on the verdict and the guarantee:
<spanx style="verb">duplicate-ref</spanx>, <spanx style="verb">boundary-deferred</spanx>, <spanx style="verb">receipt-chain-break</spanx> for a
break in the Decider's chain (signature, rule, or link),
<spanx style="verb">checkpoint-total-mismatch</spanx>, <spanx style="verb">checkpoint-head-mismatch</spanx>,
<spanx style="verb">window-coverage</spanx>, <spanx style="verb">equivocation</spanx>, <spanx style="verb">unauthenticated-extract</spanx>,
<spanx style="verb">extract-key-mismatch</spanx>, <spanx style="verb">extract-scope-mismatch</spanx>,
<spanx style="verb">extract-settlement-mismatch</spanx> (a caller-supplied row list that
disagrees with the extract), <spanx style="verb">settlement-comparison-skipped</spanx>,
<spanx style="verb">trust-key-unreadable</spanx>, <spanx style="verb">unauthenticated-issuer</spanx>,
<spanx style="verb">issuer-key-mismatch</spanx>, <spanx style="verb">carried-key-mismatch</spanx>,
<spanx style="verb">unstated-audit-window</spanx>, <spanx style="verb">unstated-audit-scope</spanx>, the witness codes,
and <spanx style="verb">malformed-policy-hash</spanx>; the other hash claims of a Decision
Record are refused at verification (<xref target="record-rules"/>) and reach the
chain walk rather than a malformed-hash code. Two code names carry a
spend noun onto this profile
(<spanx style="verb">receipt-chain-break</spanx>, <spanx style="verb">settlement-comparison-skipped</spanx>); they are
kept so that one catalogue serves both populations, and a later
revision may add decision-side aliases.
The codes the core defines for a Trade Manifest, a payee
countersignature, a beneficiary, or a counterparty are not reachable
on this profile.</t>

<t>The sentences a report prints beside those codes are another matter.
An operator reading a decision report <bcp14>SHOULD NOT</bcp14> have to translate
"settlement" as "effect" or "receipt" as "decision record"; an
implementation <bcp14>SHOULD</bcp14> print the sentence in the population's own
words, and the companion holds that under a test that runs every
conformance case and refuses a spend noun in any decision sentence.
Counter names in a returned structure are diagnostic and <bcp14>MAY</bcp14> keep the
core's names.</t>

</section>
</section>
<section anchor="roots"><name>Trust roots</name>

<t>This profile has two roots, filling the core's issuer root and rail
root (Sections 10.1 and 9.3 of <xref target="CEDULON"/>):</t>

<dl>
  <dt>The decider root:</dt>
  <dd>
    <t>The key under which Decision Records and their checkpoints are
attested. Everything Section 10.1 of the core states for the issuer
root applies: a pinned key attests by signature, a carried key is
not an identity, a record under another key is <spanx style="verb">issuer-key-mismatch</spanx>
and covers nothing, and with no pin <spanx style="verb">unauthenticated-issuer</spanx> makes
the guarantee conditional.</t>
  </dd>
  <dt>The effect-extract root:</dt>
  <dd>
    <t>The key under which the Effect Extract is attested. Everything
Section 9.3 of the core states for the rail key applies.</t>
  </dd>
</dl>

<t>The core's payee, witness, decision-token, and manifest roots are not
used by this profile, except that a transparency witness <bcp14>MAY</bcp14> hold the
Decider's checkpoints exactly as it holds a Receipt Issuer's, with
the witness root and codes of the core unchanged.</t>

<t>What the two roots do not cover is the relation between them. The
profile's claim is only as strong as the independence of the party
that signs the Effect Extract from the party that signs the Decision
Records. Where the channel operator signs an export of its own log,
the extract root is that operator's key and the independence is the
operator's. Where the channel operator signs nothing, which is the
common case for a messaging platform, the extract is produced by a
capture process the deployment runs, and the deployment is stating,
by pinning that process's key, that the process is not the Decider
and cannot be told what to omit. A deployment <bcp14>MUST</bcp14> state which of the
two it has, and a verifier <bcp14>MUST</bcp14> treat the guarantee as conditional
where the extract root and the decider root are, or may be, the same
party (<spanx style="verb">MUST-DP-9</spanx>). The companion cannot measure that from the keys
alone; two keys can be held by one hand.</t>

</section>
<section anchor="security"><name>Security Considerations</name>

<t>The core's threat analysis (Section 16 of <xref target="CEDULON"/>)
applies where the nouns carry over: forgery and repudiation of a
signed record (T4), key leakage (T7), and suppression of checkpoints
(T11) are the same threats against a Decider that they are against a
Receipt Issuer, and the controls are the same. The threats below are
the ones this population adds or sharpens.</t>

<section anchor="d1-an-effect-occurs-against-a-refusal"><name>D1: An effect occurs against a refusal</name>

<t>The agent, or something acting through its channel access, does what
the Decider refused. This is the threat the profile exists for. A
Decision Record for the refusal, with the reference it refused, and an
authenticated extract that carries an effect under that reference
make the event <spanx style="verb">effect-against-refusal</spanx>, and the audit fails. A
refusal that carried no reference cannot support this finding; the
effect is then <spanx style="verb">effect-without-decision</spanx>, which also fails the audit
but does not say it was refused. A Decider <bcp14>SHOULD</bcp14> carry the reference
on a refusal whenever the channel assigns one before the decision.</t>

</section>
<section anchor="d2-effects-without-decisions"><name>D2: Effects without decisions</name>

<t>Something acts on the channel that never asked. Every such effect is
<spanx style="verb">effect-without-decision</spanx>. The control is the extract's completeness,
which is the extract root's independence (<xref target="roots"/>); a capture
process the Decider controls can leave the effect out.</t>

</section>
<section anchor="d3-substitution-of-content"><name>D3: Substitution of content</name>

<t>The Decider allows one content and the channel carries another. The
allow's <spanx style="verb">effectHash</spanx> and the row's <spanx style="verb">effectHash</spanx> are computed over the
same octets, and a difference is <spanx style="verb">effect-mismatch</spanx>. The control fails
open if the two sides hash different octets, which is why a
deployment <bcp14>MUST</bcp14> state the octets once for both (<xref target="extract-schema"/>).</t>

</section>
<section anchor="d4-the-decider-signs-below-its-own-rules"><name>D4: The Decider signs below its own rules</name>

<t>A Decider produces a well-formed signature over a claim map that
breaks a rule this profile states: an allow with no reference or no
content hash, a refusal with a content hash, a hash outside the
grammar. Every such record is a record the reconciliation cannot
close or would close wrongly. The verifier applies the rules on the
decoded payload (<spanx style="verb">MUST-DP-3</spanx>) and walks the chain over every record
that claims the pin (<spanx style="verb">MUST-DP-5</spanx>), so the record is refused and named
rather than attested or dropped.</t>

</section>
<section anchor="d5-equivocation-on-the-record-chain"><name>D5: Equivocation on the record chain</name>

<t>The Decider signs two decisions for one request, or two successors to
one predecessor, and offers each to a different reader. Within one
reader's population the chain (<spanx style="verb">MUST-DP-5</spanx>) makes the second record
unlinkable: it names the same predecessor as the first, or none, and
the walk reports the break. Across readers the chain sees nothing:
each holds a linear chain that verifies. The control for that case is
the core's witness (<xref target="record-chain"/>): the Decider's epoch checkpoints
are recorded with a witness the verifier has pinned, a Transparency
Service <xref target="RFC9943"/> being one, and the copies the witness holds are
compared against the presented chain. A verifier that consulted no
witness has not measured cross-reader equivocation. The guarantee its
report prints is the core's, which is defined over the extract, the
pins, and the window and does not cover suppression or equivocation
beyond the presented chain when no witness was consulted (Section 11
of <xref target="CEDULON"/>, <spanx style="verb">MUST-T11-9</spanx>); measured on the companion, such a
report prints <spanx style="verb">unconditional</spanx> with no warning and no finding, and is
silent about the witness it was not given. The silence is this
revision's known gap: the claim is narrowed here, in the text, and a
report line that names an unconsulted witness is a change to the
reconciler both populations share, not made in this revision. A
deployment that needs the property records its checkpoints with a
witness and gives its readers the witness key.</t>

</section>
<section anchor="d6-the-class-of-the-effect-is-substituted"><name>D6: The class of the effect is substituted</name>

<t>A row of a different class under the same reference and the same
content hash: the same text allowed as a reply and carried as a
post. The earlier revision named this as a gap, because the record
carried no claim for the class and a row of any class matched. The
record now carries <spanx style="verb">effectClass</spanx> under the Decider's signature
(<xref target="record-labels"/>), an allow without one is refused
(<xref target="record-rules"/>), and a row whose class differs from the allow's
with the content hash equal is <spanx style="verb">effect-class-mismatch</spanx> (<xref target="binding"/>).
What remains open is the vocabulary: the class names are the
channel's, this document does not fix them, and a deployment <bcp14>SHOULD</bcp14>
state them beside its statement of what it hashes so that two
readers compare the same words.</t>

</section>
<section anchor="d7-silent-defaults-in-capture"><name>D7: Silent defaults in capture</name>

<t>The process that turns a channel's log into Decision Records or
Effect Extract rows fills a missing value with a default, and the
default hashes to something. An allow with no stated content that is
hashed as the empty string produces a record that will match an empty
effect and mismatch every real one, with no finding that says the
content was never stated. Such a process <bcp14>MUST</bcp14> refuse the line by name
rather than fill it (<spanx style="verb">MUST-DP-10</spanx>). The companion's example adapter
did fill it until it was measured, and refuses it now.</t>

</section>
<section anchor="d8-the-capture-process-is-the-decider"><name>D8: The capture process is the Decider</name>

<t>The party that produces the Effect Extract is, or answers to, the
party that signed the Decision Records. Every finding in D1 and D2
can then be made to disappear by omission, and no signature check
detects it. This is the independence statement of <xref target="roots"/>
(<spanx style="verb">MUST-DP-9</spanx>), and it is a deployment fact the profile can name but
not prove. A verifier that holds both roots and cannot state their
independence has a conditional result, and <bcp14>MUST</bcp14> say so.</t>

</section>
</section>
<section anchor="privacy"><name>Privacy Considerations</name>

<t>A Decision Record carries no request content and no effect content:
hashes of both, an opaque subject identifier, and a reason code. The
Effect Extract carries a reference, a class, a content hash, a time,
and optionally the identifier of the party the effect reached. The
core's Privacy Considerations (Section 15 of <xref target="CEDULON"/>)
apply to what a transparency witness is given.</t>

<t>Two points are specific to this population. A content hash over a
short text is a fingerprint of that text: a reader who can guess the
message can confirm the guess. This revision hashes the plain content
octets, as the companion does, so that the two sides need no shared
secret to agree; a keyed or salted construction that would defeat the
guess is a claim-set change and is not defined here. A deployment
whose effects are short and guessable <bcp14>SHOULD</bcp14> treat the extract and
the records as confidential to the audit. The subject and actor
identifiers are opaque to the profile but need not be opaque to a
reader; a deployment <bcp14>SHOULD</bcp14> pseudonymize them before either object
leaves its control.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>This document requests the registration of one media type in the
"Media Types" registry <xref target="RFC6838"/>, in the standards tree, carrying
the <spanx style="verb">+cbor</spanx> structured syntax suffix that <xref target="RFC8949"/> registers, on
the terms Section 17 of <xref target="CEDULON"/> states for that document's six:
it names the one COSE_Sign1 object this document defines and is
checked inside that object's protected header, which is why the name
cannot stay unregistered while that check stands. The Effect Extract
is a JSON document with a detached signature and has no media type;
<xref target="extract-auth"/> states why, and names the registration that would
become necessary if that changed. Registration in the standards tree requires IETF
approval; until then, an implementation outside a closed deployment
should treat the name as a placeholder that a registration may
change. The provisional registration procedure of <xref target="RFC6838"/> Section
5.2.1 is available to an Internet-Draft, and a provisional entry, if
one is made, is superseded by the registration this section requests.</t>

<t>The claim labels this document assigns, <spanx style="verb">-70501</spanx> through <spanx style="verb">-70513</spanx>
(<xref target="record-labels"/>), lie in the Private Use range of the "CBOR Web
Token (CWT) Claims" registry <xref target="RFC8392"/>, integer values less than
-65536, and this document requests no assignment for them.</t>

<t>No other IANA action is requested.</t>

<section anchor="iana-record"><name>application/cedulon-decision-record+cbor</name>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>cedulon-decision-record+cbor</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary. A COSE_Sign1 structure <xref target="RFC9052"/> in deterministic CBOR
<xref target="RFC8949"/>, untagged, as profiled in <xref target="record"/> and in Section 6 of
<xref target="CEDULON"/>.</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security"/> of this document. The object is signed by the party
under audit; its evidentiary weight depends on the verifier holding
the decider key out of band (<xref target="roots"/>) and on the verifier applying
the claim rules of <xref target="record-rules"/> itself, never on a key the
object carries or on the signer's word that the rules were applied.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>The claim set is a CBOR map with the labels and types stated in
<xref target="record-labels"/>, encoded per <xref target="RFC8949"/> Section 4.2.1. A decoder
refuses a duplicate key, an input beyond its stated bounds, and a
non-empty unprotected header by name rather than accepting it, as
Section 6 of <xref target="CEDULON"/> requires of every Cedulon object.
A Decision Record and a Decision Token are distinct objects with
distinct content types and are never accepted for one another.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document, <xref target="record"/>.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Policy decision points and other deciders that log the decisions
they take about an agent's actions, and auditors that reconcile
those logs against the channels the actions occurred on.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A. Magic number(s): N/A.
File extension(s): N/A. Macintosh file type code(s): N/A.</t>
  </dd>
  <dt>Person and email address to contact for further information:</dt>
  <dd>
    <t>Emek Can Dogru, e.dogru@cedulon.com</t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>Emek Can Dogru</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
</dl>

</section>
</section>
<section anchor="impl-status"><name>Implementation Status</name>

<t>This section is to be removed before publishing as an RFC.</t>

<t>RFC 7942 <xref target="RFC7942"/> note.</t>

<dl>
  <dt>Implementation:</dt>
  <dd>
    <t>The profile is carried by the core document's companion
implementation at <eref target="https://github.com/dogrucanemek-alt/cedulon">https://github.com/dogrucanemek-alt/cedulon</eref>, on
the same reconciler that implements the core, selected by a profile
object rather than by a second code path. As of the commit this
revision was written against, the tree carries the Decision Record
and Effect Extract objects, the profile, twenty conformance cases
covering the rules and departures this document states, and four
offline fixtures for one example channel, a direct-message reply
log. The two cases added with this revision were red before the
claim was added: a row of a different class under a matching hash
matched, and an allow signed without a class verified. The spend behaviour of the same reconciler is held byte for
byte by a golden file of fifteen cases generated from the source
before the profile seam was added.</t>
  </dd>
  <dt>Maturity:</dt>
  <dd>
    <t>Prepared, not published. The code is on the companion's default
branch and in no released package. Before merge the branch was read
twice: by the author's own gate, re-running it from a second
worktree, and by an outside model reading the whole diff and barred
from changing it. The two readings found four defects in the first
cut of this profile, each recorded in the companion's review log: a
verifier that did not apply the signer's claim rules (D4), a
spend-side crash on the wrong document (<xref target="population"/>), a spend
warning leaking onto decision reports, and a document that counted
its own cases wrong. All four were closed with a test that was red
before the fix. A third pass moved the report vocabulary onto the
profile.</t>
  </dd>
  <dt/>
  <dd>
    <t>Not measured: a live channel log. The example adapter maps a proposed
line format for a direct-message bridge; the bridge's actual field
names were not read when this revision was written, and the adapter
is written so that only its two line-mapping functions should move
when they are. No independent implementation of this profile is
known to the author; the one outside reading ran the companion's own
suite, which is the same code agreeing with itself on a second
machine. The -00 text was read by the author of <xref target="AEB"/> and
<xref target="OUTCOME"/> against the tree the day it was posted; the four items
that reading raised are the changes of this revision
(<xref target="changes"/>). A cross-profile fixture, the same refusal and effect
read by this profile and by <xref target="OUTCOME"/>, has been agreed and not
yet built.</t>
  </dd>
</dl>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC6838">
  <front>
    <title>Media Type Specifications and Registration Procedures</title>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="13"/>
  <seriesInfo name="RFC" value="6838"/>
  <seriesInfo name="DOI" value="10.17487/RFC6838"/>
</reference>
<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8392">
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8392"/>
  <seriesInfo name="DOI" value="10.17487/RFC8392"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>
<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>
<reference anchor="RFC9864">
  <front>
    <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="O. Steele" initials="O." surname="Steele"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
      <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9864"/>
  <seriesInfo name="DOI" value="10.17487/RFC9864"/>
</reference>

<reference anchor="CEDULON" target="https://datatracker.ietf.org/doc/html/draft-dogru-cedulon-08">
  <front>
    <title>Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization></organization>
    </author>
    <date year="2026" month="September" day="02"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-08"/>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>
<reference anchor="RFC9943">
  <front>
    <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
    <author fullname="C. Fournet" initials="C." surname="Fournet"/>
    <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
    <author fullname="S. Lasker" initials="S." surname="Lasker"/>
    <date month="June" year="2026"/>
    <abstract>
      <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9943"/>
  <seriesInfo name="DOI" value="10.17487/RFC9943"/>
</reference>

<reference anchor="ABAK" target="https://datatracker.ietf.org/doc/html/draft-abak-agent-control-delivery-evidence-01">
  <front>
    <title>Evidence Requirements for Agent Control Delivery and Outcome Reconciliation</title>
    <author initials="A. T." surname="Abak" fullname="Ali Toygar Abak">
      <organization></organization>
    </author>
    <date year="2026" month="September" day="04"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-abak-agent-control-delivery-evidence-01"/>
</reference>
<reference anchor="AEB" target="https://datatracker.ietf.org/doc/html/draft-schrock-action-evidence-boundary-05">
  <front>
    <title>The Action Evidence Boundary for Consequential Agent Effects</title>
    <author initials="I." surname="Schrock" fullname="Iman Schrock">
      <organization></organization>
    </author>
    <date year="2026" month="August" day="31"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-schrock-action-evidence-boundary-05"/>
</reference>
<reference anchor="OUTCOME" target="https://datatracker.ietf.org/doc/html/draft-schrock-ep-outcome-binding-00">
  <front>
    <title>Outcome Binding for Authorized Actions and Independently Observed Effects</title>
    <author initials="I." surname="Schrock" fullname="Iman Schrock">
      <organization></organization>
    </author>
    <date year="2026" month="July" day="28"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-schrock-ep-outcome-binding-00"/>
</reference>


    </references>

</references>


<?line 978?>

<section numbered="false" anchor="changes"><name>Changes from -00</name>

<t>This section is to be removed before publishing as an RFC.</t>

<t><list style="symbols">
  <t><spanx style="verb">effectClass</spanx> is a claim on the Decision Record (<spanx style="verb">-70513</spanx>), required
on an allow; a row of a different class under a matching hash is
<spanx style="verb">effect-class-mismatch</spanx>. D6 is closed rather than named. Claim-set
change; a twelve-label record is refused.</t>
  <t>The Decider's chain is no longer called the equivocation control of
the profile. It names a break within one reader's population; a
fork shown to two readers is the core's witness comparison,
applied unchanged, and a report over an unwitnessed chain claims
no more (<xref target="record-chain"/>, D5).</t>
  <t>The reason the Effect Extract has no media type is restated: the
population is the verifier's declaration, not the document's
(<xref target="extract-auth"/>). The protected-header test is withdrawn as the
reason.</t>
  <t>The boundary to <xref target="ABAK"/>, <xref target="AEB"/>, and <xref target="OUTCOME"/> is stated in the
introduction.</t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>This profile is the first concrete instance of the generalization the
core document reserves. The refusal that was followed by the effect
it refused, as a finding with its own name, came out of watching a
messaging assistant's decision log beside the channel's sent log and
finding that the spend vocabulary had no word for it.</t>

<t>Iman Schrock read -00 the day it was posted and raised the four
points this revision answers: the fork two readers cannot see, the
class that was not under the signature, the media-type reason that
did not hold, and the three documents that should be cited. The
sentence on what an effect against a refusal does and does not
establish is Ali Toygar Abak's, in his words.</t>

</section>


  </back>

<!-- ##markdown-source:
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
zZiQfZa8AAA=

-->

</rfc>

