| Internet-Draft | Agent Principal Binding | August 2026 |
| Bu | Expires 4 February 2027 | [Page] |
Agent communication protocols often carry claims about user authority, agent instance identity, tool or external-resource identity, delegation state, session continuity, and action evidence. These claims have different verifiers, freshness requirements, failure modes, and security consequences. If they are collapsed into a single token, identity label, session identifier, or audit record, protocol text can accidentally imply more authority or accountability than the receiver can actually verify.¶
This document defines a verifier-facing model for separating those claims. It provides a reusable matrix format that protocol authors can use to state, for each security-relevant claim, which field carries it, which party verifies it, what binding or freshness rule applies, what failure behavior is required when the claim is absent, stale, inconsistent, or not verifiable, and what constrained result an application may consume after successful verification. It also separates specification status, implementation status, and evidence type so that reviewers can distinguish current protocol text, implementation evidence, inherited mechanisms, and architectural assumptions. The document is protocol-neutral. It is intended to help compare candidate agent communication drafts and to provide security-considerations and requirements text for agent session and delegation binding.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 4 February 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Agent protocols are being proposed for long-lived communication among agents, tools, gateways, services, and human or organizational principals. These protocols need to express several different kinds of security meaning:¶
These are not the same claim. A valid organizational identifier does not by itself prove a live agent instance. A session identifier does not by itself prove delegated authority. A transparency receipt does not by itself prove that the action was authorized. A tool invocation record does not by itself prove that the tool was within delegated scope.¶
The purpose of this document is to make these boundaries reviewable. It does not define a new agent protocol, token format, audit log, transparency service, or authorization system. Instead, it defines a claim-to-verifier discipline that other drafts can map to.¶
BCP 14 is the requirement-keyword convention used by this document [BCP14].¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document is currently intended as Informational guidance. Requirement language is used to make security expectations reviewable by protocol authors; it does not by itself define a wire protocol.¶
An automated software component that initiates, receives, mediates, or performs actions on behalf of a human, organization, account, workload, or policy authority.¶
An entity whose authority, identity, state, or responsibility is relevant to a security decision.¶
A security-relevant statement that a protocol participant, credential, token, receipt, attestation, record, or external system asserts or carries.¶
The protocol field, credential, record, header, receipt, attestation, envelope, or external reference that carries a claim.¶
The party that evaluates a claim for a particular security decision.¶
The relationship between a claim and the specific state to which it applies, such as a session transcript, task digest, delegation chain, subject identifier, tool invocation, or evidence record.¶
The replay, expiration, revocation, sequence, rotation, challenge, nonce, or recency rule used to determine whether a claim can still be relied upon. A matrix row should name the freshness mechanism it uses rather than treating all recency, status, and sequence signals as interchangeable.¶
A challenge, nonce, transcript, channel binding, sequence rule, or equivalent mechanism that prevents a claim or proof from being replayed in a different protocol exchange. Wire freshness does not by itself establish current authorization, non-revocation, or local platform condition.¶
The evidence and rule used to determine whether an authority, credential, grant, delegation, or policy state is current. Examples include a validity window, revocation or status response, event-derived state, or bounded re-assessment lease.¶
A freshness model in which a claim remains usable only while a local release condition continues to hold. In this model, the same component that assesses the condition also prevents the next key use or operation when the condition fails. This is different from a validity window, revocation list, or remote event feed.¶
An advisory signal, such as a per-registration signature counter, that can indicate concurrent use of copied key material. A clone-detection signal is not a wire-freshness challenge and SHOULD NOT become an availability gate unless the protocol specifies reliable ordering, reset, synchronization, and failure semantics.¶
A scoped authority grant issued before a particular action. A standing grant can authorize a class of future actions for an asset, subject, resource, control verb, audience, time window, or revocation rule. It is different from a per-action authorization receipt and from a delegation chain.¶
The required behavior when a claim is missing, stale, inconsistent, not verifiable, or out of scope for the decision being made.¶
The constrained verifier output that an application, gateway, policy engine, or relying party is allowed to consume after successful verification. An accepted result is not the raw peer-provided token, receipt, claim, or attestation. It is the verifier-produced result, including its scope and limitations.¶
The basis on which a claim obtains its asserted meaning, such as a signed assertion, verifier-derived fact, independently appraised attestation result, or inherited external result. A signed assertion does not become an attested property unless the verifier checks evidence that measures or otherwise establishes that property under the stated appraisal policy.¶
The local application or policy decision made after consuming one or more verifier-produced results. A relying-party decision is distinct from the result itself: an indeterminate, not-equivalent, or otherwise limited verification result does not, without a stated policy rule, mean allow, refuse, retry, or authorize.¶
A descriptive label for where a verifier decision is made or where a claim is carried. The label can use ordinary protocol-layer terminology, such as application, transport, or network, or an agent-native architectural taxonomy, but the vocabulary needs to be defined by the draft that uses it.¶
A stable reference to a public test vector, example, test case, implementation note, interop record, issue, pull request, or other reviewable artifact that supports a mapping row.¶
Agent communication drafts can become difficult to review when a single architectural label is used to imply several security properties. Common examples include:¶
These ambiguities are not merely editorial. They affect interoperability and security review. Two implementations can agree on a field name while making different decisions about who verifies the field, what state the field is bound to, and what happens when the field cannot be validated.¶
This document addresses that problem by giving protocol authors a common way to map each security-relevant claim to a carrier, verifier, verification rule, binding, freshness rule, accepted result, layer, and failure behavior.¶
This document does not:¶
This document is applicable when an agent communication draft carries, depends on, or inherits claims about authority, live instance identity, delegated scope, session continuity, tool or resource identity, action evidence, freshness, revocation, or verifier output. A draft does not need to define all of these claims to use the matrix; it only needs to identify the claims it carries or depends on.¶
The matrix can be used at several levels of formality. A mature draft can include a complete verifier matrix in its Security Considerations section or appendix. An early draft can use partial rows to make open questions explicit. A design team can maintain the mapping in a companion document, repository, issue, or pull request before importing stable text into an Internet-Draft.¶
The review mode should match the status claimed by a row. A row marked as specified should contain enough detail for independent implementation. A row marked as implemented should identify the implementation boundary and evidence type. A row marked as inherited, planned, partial, none, or assumption should not be treated as a current protocol guarantee.¶
The following principals commonly appear in agent communication designs.¶
The person, organization, role, legal entity, account, or policy authority on whose behalf the agent acts.¶
The concrete live agent, runtime, workload, or execution environment that participates in the protocol exchange.¶
The party that supplies, hosts, or controls an agent implementation or runtime environment.¶
A tool, API, service, file, database, payment endpoint, browser, physical device, or other resource invoked by an agent.¶
An intermediary that translates, routes, composes, gates, or mediates agent interactions.¶
The party that grants authority to another party or agent.¶
The party or agent that receives attenuated authority.¶
The party that decides whether a claim is sufficient for a specific protocol action.¶
A party that later reviews, audits, composes, or relies on evidence of an action.¶
A protocol can use one credential, key, session, or record to carry more than one claim, but the draft needs to identify each claim separately. Reusing a carrier does not make the claims equivalent.¶
Workload identity documents, such as the WIMSE architecture [I-D.ietf-wimse-arch] and workload identity practices [I-D.ietf-wimse-workload-identity-practices], are useful examples of why an instance, workload, or execution environment claim should be separated from human or organizational authority and from delegated task scope.¶
A draft SHOULD identify which of the following claim classes it carries or depends on. The identifiers below are provisional and are intended to make early review concrete. They are not an IANA registry and do not by themselves define protocol conformance.¶
Which live agent, runtime, workload, endpoint, or process is acting now?¶
Who authorized the task, policy, role, or delegation?¶
What authority has been delegated, by whom, to whom, under what scope and attenuation?¶
What state is bound to the current channel, connection, long-lived session, or task?¶
What action was requested, attempted, completed, blocked, or failed?¶
Which tool or external resource is being invoked or affected?¶
What evidence, signature, receipt, attestation, log entry, or record supports an action or decision?¶
Is the authority, delegation, instance state, tool binding, or session state still current?¶
What happens when the verifier cannot validate the claim for the requested action?¶
Which claims are preserved, transformed, or lost when agents, gateways, receipts, or tools are composed?¶
What normalized result may the application consume after successful verification, and what does that result not authorize?¶
Is the row claiming pre-execution authority, delegated scope, post-execution attribution, execution evidence, audit enforcement, or relying-party acceptance, and which of those does it not claim?¶
Does a pre-issued, independently revocable grant authorize a class of future actions for a stated asset, subject, resource, control verb, audience, or time window?¶
The registry is intentionally claim-oriented rather than protocol-oriented. More than one candidate protocol can map to the same claim, and a protocol can map to only a subset of the registry. The initial list is expected to change as AGENTPROTO discussion identifies additional claim classes or merges overlapping ones.¶
For each security-relevant claim, a protocol draft SHOULD provide a row with the following fields.¶
The registry identifier for the claim being mapped.¶
The precise security statement being made.¶
The protocol field, token, credential, record, header, receipt, attestation, or out-of-band reference that carries the claim.¶
The party that validates the claim.¶
The check performed by the verifier.¶
The other state to which the claim is bound, such as a session identifier, TLS exporter, action digest, delegation chain, subject identifier, or tool invocation.¶
Whether the claim is a signed assertion, verifier-derived fact, independently appraised attestation result, or inherited external result, including the evidence and appraisal rule required for the stated meaning.¶
The replay, expiration, revocation, rotation, sequence, or recency rule.¶
The required behavior when the claim is missing, stale, inconsistent, or not verifiable.¶
The constrained output that a verifier returns to the relying application when the row succeeds. It should name the normalized claim or decision state, the scope in which it may be used, and any important non-claims. For example, a successful possession check might return "holder of enrolled key under current release policy" without returning "delegated authority is sufficient" or "human authorization is present".¶
The policy action taken after consuming the verifier-produced result, such as allow, refuse, quarantine, request another factor, or leave the decision to another component. This field SHOULD remain separate from the accepted result.¶
The protocol layer or architectural review dimension associated with the row. This field is descriptive. It does not impose a fixed layer taxonomy on every protocol, and it does not require a protocol to spread claims across different layers.¶
Whether the row is implemented, not implemented, partially implemented, or external.¶
The exact specification revision, profile version, source revision, or immutable implementation identifier against which the implementation evidence was produced.¶
Whether the row is specified in the current draft, planned for a later revision, inherited from another document, or an architectural assumption.¶
The draft, standard, service, governance process, transparency log, authorization system, attestation system, registry, or operational practice on which the row depends, if any.¶
An optional reference to a public test vector, example, test case, implementation artifact, interop note, issue, pull request, or other stable evidence that makes the row checkable.¶
The kind of evidence being referenced, such as source-level, unit-level, local-harness, interop, deployment, document, issue, pull-request, or other evidence.¶
The exact positive paths, negative paths, normative checks, and failure branches exercised by the evidence, together with material unexercised paths. Stable results for a bounded regression set do not establish conformance for normative requirements outside that set.¶
The matrix is intended to make review strict enough that a draft cannot obtain a security property merely by naming an adjacent mechanism. The following rules apply to a verifier matrix.¶
The Layer field needs to be explicit because candidate agent communication drafts do not all use the same architectural model. A draft MAY use conventional protocol-layer language, such as application, transport, and network, when that is the clearest description of where the relevant carrier or verifier behavior sits.¶
A draft MAY instead use an agent-native architectural taxonomy, such as substrate, composition, application, governance, or audit. If it does so, the draft needs to define that taxonomy and explain how the labels are used. For example, a "governance" label might be useful for review when a claim depends on a policy, registry, reputation process, slashing process, or administrative authority; however, that label is not a protocol layer unless the draft defines it as one.¶
The Layer field is open-ended per row. A protocol can place all of its relevant carriers or verifier behavior at the transport layer if that is how the protocol is designed. Conversely, a protocol can use an architectural label when the verifier decision depends on composition, audit, or governance behavior outside the transport exchange. The matrix does not require either vocabulary; it requires the chosen vocabulary to be explicit.¶
The matrix can be maintained as linked review artifacts, not only as a pair of tables. A useful minimum is a claim registry and one or more protocol mapping records. A mature effort can also maintain evidence records, vector records, issue records, implementation notes, or per-profile appendices that reference the same claim identifiers.¶
The first level is a claim registry for AGENTPROTO review. It assigns stable identifiers to security claims or requirements, without selecting one protocol as the general solution for every row. Each row can name one or more candidate protocols that map to that claim.¶
Candidate mappings include AGTP, IACP, a WIMSE profile, or another candidate.¶
Candidate mappings include vLEI, OAuth, GNAP, an authorization receipt, or another candidate.¶
Candidate mappings include a delegation chain, delegation receipt, or capability profile.¶
Candidate mappings include protocol session state, transport binding, or a migration profile.¶
Candidate mappings include an audit receipt, capsule, transparency statement, or evidence graph.¶
Candidate mappings include the verifier-produced result that an application, gateway, policy engine, or relying party is allowed to consume after successful verification.¶
Candidate mappings include human-authorization receipts, delegation records, mandate records, attribution records, audit records, action-evidence graphs, or other mechanisms whose security meaning depends on whether they speak before execution, during execution, after execution, or at relying-party acceptance time.¶
Candidate mappings include consent grants, command-authority envelopes such as [I-D.morrison-ot-command-authority], standing permissions, capability grants, or other independently revocable artifacts that authorize a class of future actions rather than one specific action instance.¶
The second core artifact is the set of protocol mapping records. Each candidate draft can provide one or more records for the claims it carries or depends on. This prevents a protocol from being treated as a complete architecture merely because it covers one claim well, and it lets the working group compare drafts row by row.¶
External mapping records can be maintained in a draft appendix, repository, implementation note, or companion document. Their purpose is not to force every candidate protocol into one wire format; it is to keep the claim taxonomy and per-protocol requirements visible at the same time. When an external mapping introduces a carrier such as an opaque authorization envelope, payload pointer, fast-path field, or content-addressed reference, the row needs to say whether that carrier is merely transporting another artifact or whether the current protocol verifies a distinct claim and produces its own accepted result.¶
A protocol mapping row records the claim ID, claim text, carrier, verifier, verification rule, binding, claim grounding, freshness rule, accepted result, relying-party decision, layer label, failure behavior, implementation status, implemented revision, specification status, any external dependency, evidence reference, and evidence type. For example, an instance-identity row might state that the carrier is a protocol field, the verifier is the peer, the binding is the handshake transcript, freshness is supplied by a nonce or epoch, the accepted result is a session-scoped instance decision, the failure behavior is connection rejection, and the evidence type is interop or local-harness evidence.¶
The claim registry is not a conformance target by itself. The protocol mapping record set is the review surface: it states what the draft actually specifies, what is implemented, what is inherited from another component, what remains an architectural assumption, and what evidence or test vector can be used to check the row.¶
The implementation and specification status fields are security relevant. They prevent an author, implementer, or reviewer from treating an intended mechanism as a current protocol guarantee.¶
The specification-status vocabulary is specified, planned, inherited, and assumption. The implementation-status vocabulary is implemented, partial, none, and external.¶
The two vocabularies are independent. A row can be specified but have no known implementation, implemented experimentally but not yet specified in the draft, inherited from another document with external implementation evidence, or planned without any current implementation claim.¶
The current draft contains enough protocol text for an independent implementer to identify the carrier, verifier, binding, freshness rule, accepted result when applicable, and failure behavior.¶
The row depends on another specification or system. The dependency needs to be identified, and the draft needs to state what happens if the dependency is absent or not trusted. An inherited row is not complete if it merely names another document; it also needs to identify the inherited verifier, binding, freshness rule, accepted result when applicable, and failure behavior or state that they are outside the current draft's scope.¶
The row is intended for a later revision and MUST NOT be treated as a current security guarantee.¶
The row depends on architecture, deployment, governance, or operational behavior that the draft does not specify.¶
At least one implementation performs the verification behavior described by the row. The row SHOULD identify whether that evidence is source-level, unit-level, local-harness, interop, or deployment evidence. If a public test vector or reproducible artifact exists, the row SHOULD include an evidence reference. A row is not implemented merely because the carrier is emitted or a positive exchange completes; the evidence needs to show the stated verifier decision and at least one security-relevant rejection path.¶
The draft or implementation covers part of the row, but at least one of the carrier, verifier, binding, freshness rule, accepted result, or failure behavior is incomplete.¶
No implementation evidence is currently claimed for the row.¶
The implementation evidence exists outside the candidate draft's own implementation. The row should identify the external system, artifact, or implementation boundary. External evidence can support a row without broadening the current draft's claim; the evidence boundary should remain narrower than the protocol guarantee unless the draft explicitly inherits and verifies the external mechanism.¶
Candidate protocol drafts can use the following compact template in a Security Considerations section, appendix, or companion document.¶
The mapping row fields are:¶
The claim identifier from the registry.¶
The precise statement being asserted or depended upon.¶
The protocol field, credential, token, receipt, attestation, envelope, or external reference that carries the claim.¶
The party that performs the check.¶
The rule applied by the verifier.¶
The state to which the claim is bound.¶
Whether the claim is a signed assertion, verifier-derived fact, independently appraised attestation result, or inherited external result, including the evidence and appraisal rule required for the stated meaning. The grounding field is distinct from Evidence type, which describes support for the mapping row or implementation rather than the basis of the protocol claim.¶
The role in which the signer acts, such as attester, device, automated client, operator, grant issuer, or accountable principal, and the verified relationship between that signer and the principal named by the claim. If that relationship is supplied by enrollment or another external process, the row identifies it as a dependency or assumption.¶
The representation carried or compared, such as raw octets, hexadecimal text, base64url text, or a profile-defined structure, together with the canonical decoding or comparison rule. A row that does not define the representation does not obtain value equality from textual similarity alone.¶
The replay, revocation, expiration, sequence, nonce, recency, or condition-liveness rule.¶
The verifier-produced result that the relying application may consume after successful verification, including scope of reliance and important non-claims.¶
The application or policy action taken after consuming the verifier-produced result. If that decision is outside the row's scope, the row states that boundary rather than embedding a policy conclusion in the verifier result.¶
The protocol layer or architectural review dimension used by the draft for this row.¶
The behavior when the claim is absent, stale, inconsistent, or not verifiable.¶
One of implemented, partial, none, or external.¶
The exact specification revision, profile version, source revision, or immutable implementation identifier used by the cited implementation evidence.¶
One of specified, planned, inherited, or assumption.¶
The external document, system, service, registry, or operational process on which the row depends, if any.¶
A stable public pointer to the test vector, example, test case, implementation artifact, interop record, issue, or pull request that supports the row, if available.¶
The type of evidence, such as source-level, unit-level, local-harness, interop, deployment, document, issue, pull-request, or other evidence.¶
The positive and negative paths, normative schema or protocol checks, and failure branches exercised by the cited evidence, including any known unexercised or implementation-local paths.¶
When a draft does not carry a claim, the corresponding row MAY be omitted. If the draft relies on the claim for a security decision, the row SHOULD NOT be omitted; it should instead state the dependency or assumption explicitly.¶
When an external interoperability profile maps a draft to an action model that the draft does not define, the mapping should report the missing material fields and an indeterminate mapping result rather than inventing native fields. Such a result describes the scope of that external mapping; it is not, by itself, a conformance failure or a defect in the source draft.¶
When a row produces a result that application logic consumes, the row SHOULD define the accepted result. For example, a verifier can return a constrained result such as "session-bound token possessed on this connection" without also returning "this request target is authorized" or "human authorization is present".¶
When a row maps an opaque envelope, content-addressed reference, payload pointer, fast-path header, or similar carrier, the row should make the non-claim explicit. Carrying or forwarding an artifact is not the same as verifying the artifact's authority, provenance, status, independence, or policy sufficiency.¶
A verifier matrix becomes more useful when its rows are checkable rather than only asserted. A row therefore MAY include an evidence reference. The reference can point to a public test vector, example, conformance test, implementation test, interop note, issue, pull request, or other stable artifact.¶
An evidence reference does not need to prove that a protocol is complete. It needs to support the specific row. For example, a test vector for session replay resistance supports a freshness or binding row; it does not by itself prove delegated authority. A receipt verification example supports an evidence-carrier row; it does not by itself prove that the recorded action was authorized.¶
When evidence is implementation-related, the row SHOULD distinguish the evidence type. Useful categories include source-level evidence, unit-level evidence, local-harness evidence, cross-implementation interop evidence, and deployment evidence. This distinction prevents a draft from treating a local unit test, public interop vector, and deployment signal as equivalent.¶
The row SHOULD also state evidence coverage. A regression suite that remains stable after an implementation correction supports only the paths that the suite actually exercises. It does not establish that required claims are present, unknown claims are rejected, value types and ranges are checked, duplicate members are refused, replay state is durable, or other normative branches are implemented unless those behaviors are exercised or otherwise independently verified. Uncovered normative paths require a partial status rather than a conformance claim.¶
A useful evidence reference is row-specific. It identifies the input object, the canonicalization or serialization rule when bytes are compared, the verifier decision being tested, the expected positive result, and at least one negative case that fails for the same row. If the evidence depends on a private deployment or non-public implementation, the row should say so instead of treating the evidence as publicly reproducible.¶
For digest-bound composition, the evidence reference should also identify the hash algorithm, domain or context separator, protocol version, exact input-byte construction, and output representation. A vector that hashes 32 raw digest bytes is not interchangeable with one that hashes the 64 UTF-8 bytes of their hexadecimal display form. Immutable artifact or commit identifiers improve reproducibility, but an independently repeated positive calculation does not replace the required negative vectors.¶
A prepared cross-protocol exchange is not cross-implementation interop evidence until an independent implementation consumes the exact pinned source bytes and returns its result over those inputs. Two separately successful local mappings, or a shared digest that remains stable while one carrier becomes invalid, can support narrower rows but do not by themselves establish an independent end-to-end cross-run.¶
When a row produces an accepted result, the evidence reference should identify both the successful verifier output and at least one case in which a raw, stale, unbound, or incomplete claim is not passed to the application as an accepted result.¶
Executable negative vectors are especially useful when composition is being reviewed. A useful vector can show that a capsule, receipt, log record, or envelope remains syntactically valid and digest-bound while a referenced authority, provenance, revocation, independence, or accepted-result row fails. That failure demonstrates that the join is checkable without moving the referenced row into the carrier's trust boundary.¶
Some mechanisms used by agent communication protocols are not communication protocols themselves. For example, an authorization receipt, transparency statement, action-evidence graph, revocation statement, or attestation result can be an artifact-layer mechanism that is carried by, referenced by, or bound to a communication exchange.¶
Such a mechanism can be a valid inheritance target for a protocol mapping row. If a draft marks a row as inherited, the row SHOULD identify the inherited mechanism and the decision state it supplies. The row should state the inherited verifier, carrier, binding, freshness rule, accepted result, failure behavior, and evidence reference when available.¶
Marking a row as inherited is preferable to silently implying a guarantee. It allows a communication protocol to stay focused on its transport or session design while still making authority, action evidence, revocation, or audit dependencies visible to reviewers.¶
Offline verification needs particular care. A signed grant, receipt, attestation, capsule, or revocation statement can be verified for authenticity, issuer, content digest, and validity window while still not proving global currency or absence of revocation. A row that claims current status needs to state the status source, revocation evidence, freshness window, and failure behavior. If those inputs are outside the verifier boundary, the accepted result should be limited to what was actually checked.¶
Some agent accountability drafts describe review in terms of slots or profiles rather than a single protocol. The same matrix discipline applies. Each slot should be representable as one or more mapping rows with its own carrier, verifier, binding, freshness rule, accepted result, failure behavior, and evidence reference.¶
For example, the composition model in [I-D.mih-sato-agent-accountability-composition] uses CAN, WHO, WHAT, and AUDIT profiles joined by a shared action digest. In this document's terms, the shared digest is a binding and composition aid for C-005 and C-010. It is not, by itself, an accepted result for authority, delegation, human authorization, completeness, runtime enforcement, or relying-party policy sufficiency.¶
Pre-execution approval, delegated authority, post-execution attribution, observed action evidence, and audit enforcement can name the same principal and the same action. They nevertheless remain different claims unless a draft specifies a verifier that intentionally joins them and defines the accepted result and failure behavior for that joined decision. A shared digest can make the join checkable; it does not make the rows interchangeable.¶
The same rule applies to capsule, receipt, transparency-record, and gateway-envelope profiles that carry references to external artifacts. A record verifier can establish that the record is well-formed, signed, logged, or digest-bound without establishing that the referenced authority, provenance, independent observation, physical completion, or relying-party acceptance row succeeded. If a profile wants to rely on those stronger claims, it needs separate verifier rows or an explicit joined-verifier rule.¶
Composition profiles also need byte-level interoperability rules. A shared action digest joins rows only when every producer and verifier uses the same canonical input, algorithm, context separation, version, and output representation. A representation mismatch, including raw digest bytes versus an ASCII hexadecimal string, is a binding failure rather than a tolerable presentation difference.¶
An AUDIT or attestation profile should state the trust boundary of its implementation evidence. For example, a software-emulated TPM can exercise quote parsing, freshness reconstruction, PCR extension, and appraisal logic. That evidence does not establish a hardware root of trust, resistance to key extraction, or deployment assurance.¶
Several agent-accountability discussions use the same principal name, action digest, or session binding across multiple checks. The matrix treats those checks as separate rows unless a draft explicitly defines a verifier that joins them. The separation is especially important across phases of an action.¶
Common phase-separated rows include:¶
Accepted result: the presenter currently holds an enrolled key, credential, or protected signing capability under the stated conditions.¶
Important non-claim: delegated authority, human approval, and policy sufficiency are not established by possession alone.¶
Accepted result: the presented delegation chain or capability covers the requested action within the stated scope.¶
Important non-claim: the current holder or runtime is not proven unless a possession or instance row also succeeds.¶
Accepted result: a named human, organization, role, or quorum authorized the exact action before execution under the stated rule.¶
Important non-claim: post-execution attribution and live key possession are not established by authorization alone.¶
Accepted result: a voluntary, consent-bound, or otherwise accountable human principal is associated with the request under a stated grant.¶
Important non-claim: the bot or automated-client signing key is not thereby changed into a human key.¶
Accepted result: a record, receipt, capsule, or evidence graph refers to an observed or recorded action.¶
Important non-claim: the record does not by itself prove pre-execution authority, completeness, or relying-party acceptance.¶
Accepted result: a downstream controller, tool, or external system reports a terminal status under its own semantics.¶
Important non-claim: the report does not by itself prove physical completion, environmental safety, independent verification, or pre-execution authority.¶
Accepted result: the relying party or session manager has placed a session in a paused state or has resumed it after obtaining the required fresh verifier result.¶
Important non-claim: pause is not credential revocation by itself, and resume is not proof that all authority, delegation, or policy rows remain valid unless the draft says which rows were rechecked.¶
Accepted result: the consuming application, gateway, or policy engine accepts a set of verifier-produced results for a particular action.¶
Important non-claim: acceptance is not inherited by any single upstream row unless the draft specifies that decision rule.¶
A draft can use the same action digest, transcript hash, request ID, or subject identifier across these rows. That shared value is a binding aid. It does not collapse the rows into one result.¶
The following row patterns capture recent review cases that recur across candidate agent protocols. They are examples, not mandatory mappings. Their purpose is to show how a draft can reference externally supplied mechanisms without inheriting broader guarantees by implication.¶
A condition-bound possession row is useful for a protected key, credential, or signing capability that exists only while a local release policy currently holds.¶
The presenter can use the enrolled protected key for this operation. Any claim about the actor, workload, environment, or release policy is limited to inputs that enrollment evidence actually measured, bound to that key, and caused policy to accept.¶
A live possession proof such as a TLS CertificateVerify signature over the handshake transcript, an attested credential, or another proof bound to enrollment and release-policy evidence.¶
The relying party, gateway, sidecar, or verifier checks the enrolled key or credential and the live proof. If the accepted result includes measured actor, workload, environment, or release-policy inputs, the verifier also checks enrollment or attestation evidence that explicitly enumerates and binds those inputs. Unmeasured inputs are not inferred from key existence.¶
The row is bound to the enrolled protected key, the enumerated enrollment inputs, and the current protocol exchange. Wire freshness comes from the transcript, challenge, nonce, or equivalent live proof. Condition-liveness governs whether the next key use can occur after a local condition failure. A clone-detection counter, when present, is a separate advisory signal and not the wire-freshness mechanism. If a profile requires termination of an already established long-lived connection, that behavior needs a separate session-management rule, connection-lifetime bound, or event channel.¶
The accepted result is limited to live possession of the enrolled protected capability for this exchange and to any explicitly measured-and-bound enrollment inputs that the verifier checked. It does not by itself establish delegated authority, human approval, current device health, operation scope, action sufficiency, or relying-party policy acceptance.¶
Missing required enrollment evidence, an unmeasured claimed input, invalid attestation binding, stale required status, local condition failure, or failed possession proof fails as a possession or condition failure, independently of delegated-scope and human-authorization failures.¶
The row should distinguish implemented paths, partial paths, and open paths. Evidence should include a successful live proof and a rejection for an invalid proof or unavailable key. A human-presence path might have a public implementation while a workload path remains unimplemented; the evidence field should say so rather than implying equal maturity.¶
A bot or automated-client authentication protocol can remain focused on the automated client while still allowing a separate optional row for a human principal, consent grant, or accountability assertion. A profile needs to state whether the human is merely associated with the request, consented to it, authorized it, or accepts accountability; those are not interchangeable results.¶
A named human principal has the exact relationship to this request stated by the profile, such as association, consent, authorization, or accountability, under a defined grant or evidence rule.¶
A consent receipt, authorization receipt, signed grant, external reference, or profile-specific artifact. The carrier is not the automated-client signing key itself.¶
The origin, relying party, or policy engine verifies the human-principal artifact under its own issuer, key, audience, scope, and trust rules, separately from bot-key or client-key verification.¶
The row should bind the human-principal artifact to the request, origin, purpose, scope, time window, and, where applicable, a request digest or action digest.¶
The accepted result states the verified human-principal relationship for this request without broadening it from association to consent or from consent to authorization. It does not change the automated-client key into a human key and does not make human presence mandatory for every bot request.¶
Automated-client authentication can succeed while the optional human-principal row fails. The application then treats the request as lacking that assurance and applies its local policy.¶
Some protocols use a pre-issued grant rather than a fresh per-action authorization receipt. The matrix treats that as a separate claim class because its verification rule, freshness rule, and accepted result differ from both per-action human authority and delegated scope.¶
A grant issuer authorizes a class of future actions for a stated asset, subject, resource, control verb, audience, scope, or time window. The claim is about standing permission, not proof that a particular action was approved at execution time.¶
A signed consent grant, command-authority envelope, standing permission, capability grant, or content-addressed reference to such an artifact.¶
The relying party verifies the grant issuer, signature, intended audience, covered asset or resource, permitted control verb, expiry, revocation state, and binding to the request or action digest. Coverage is evaluated against the specific requested action. Every security-relevant element of that action MUST fall within the grant's scope; partial overlap is not coverage of the whole action. A grant broader than the action yields no stronger accepted result than coverage of that action under the stated constraints.¶
The grant is bound to its issuer, subject or resource, permitted operation class, time window, revocation rule, and, when consumed for a specific action, the action digest or request context used at presentation. Offline verification of a signed grant can establish authenticity and validity-window checks, but it does not prove current non-revocation unless the row also specifies the status or revocation evidence that was checked.¶
The accepted result is that a standing grant covers the current request under the stated constraints. It is not a per-action human authorization receipt, not an audit record that the action occurred, and not proof that delegated scope was correctly attenuated. If revocation status is outside the row's verifier input, the accepted result should say authenticity and validity-window result, not current status result.¶
If the grant has an invalid issuer or signature, names the wrong subject, resource, control verb, audience, or constraints, is expired or revoked, lacks required current-status evidence, is bound to a different request context, or is presented as the wrong claim class, the standing-grant row fails independently of per-action authorization, delegation, possession, and action-evidence rows.¶
This informative mapping is intentionally limited to the scoped standing-grant claim in the Command Authority Envelope (CAE) [I-D.morrison-ot-command-authority]. Other CAE mechanisms, including request-signature authentication, per-action resolution, and audit recording, belong in separate rows. Combining them into one aggregate row would obscure which verifier establishes each result.¶
C-013. A consent grant referenced by a CAE covers the specific requested action under its stated asset, resource, control-verb, audience, constraint, validity-window, and revocation semantics.¶
The CAE's consent-grant reference and the referenced consent grant. A content-addressed reference is a locator and binding aid; it is not itself the semantic authority decision.¶
The grant issuer acts as the standing-authority issuer under the deployment's enrollment and trust rules. The automated agent's request-signing key is a separate signer and does not become the grant issuer merely because the request signature verifies.¶
The conduit or relying policy component resolves the referenced grant and verifies its issuer, integrity, scope, covered asset or resource, permitted control verb, audience, constraints, validity window, revocation state, and binding to the requested action. Every security-relevant action element must be covered.¶
The mapping depends on the CAE profile defining how the consent-grant reference and relevant CAE fields are encoded and integrity protected. The current external draft leaves part of that encoding and transport binding to profiles. Validity-window checking does not establish current non-revocation unless status evidence is also an input to the verifier.¶
The referenced standing grant covers this action under the verified constraints. The result is not a per-action human approval, proof that the physical effect occurred, or proof that every CAE field was signature-covered unless the applicable CAE profile specifies and verifies that coverage.¶
Resolution failure, invalid issuer or integrity, stale or revoked status, incompatible encoding, action-binding failure, or partial scope overlap fails the C-013 row. Request-signature authentication can still succeed as a separate row.¶
Specification status: external and specified in [I-D.morrison-ot-command-authority]. Implementation status: none claimed here. Evidence type: document. The protocol's produced audit record is an action-evidence carrier, not implementation or interoperability evidence for this mapping.¶
The following example is deliberately protocol-neutral. It is not a complete mapping for AGTP [I-D.hood-independent-agtp], IACP [I-D.gebauer-iacp], WIMSE [I-D.ietf-wimse-arch], or any other candidate draft. It illustrates how rows should separate claims, verifier decisions, accepted results, and failure behavior.¶
Possible carriers include a role credential, account policy, vLEI, OAuth token, GNAP grant [RFC9635], or equivalent. The verifier is the receiving agent or policy verifier. The claim is bound to the task, scope, subject, and resource. Freshness comes from token lifetime, revocation, or policy version. Failure behavior is rejection or fresh authorization.¶
Possible carriers include channel authentication, an agent credential, attestation, or a condition-bound protected key. The verifier is a peer, gateway, or relying party. The claim is bound to a session or channel transcript and to any declared protection conditions. Freshness comes from handshake freshness, attestation recency, nonce challenge, or equivalent live-key check. The accepted result is limited to live instance or key-possession status under those conditions; it does not by itself prove delegated task scope or human authority. Failure behavior is session rejection or capability downgrade.¶
Possible carriers include a delegation token or chain. The verifier is the recipient or gateway. The claim is bound to the delegator, delegatee, action class, and resource. Freshness comes from expiry, revocation, or attenuation version. Failure behavior is rejection of the delegated action.¶
Possible carriers include a tool call envelope or capability reference. The verifier is the tool gateway or policy engine. The claim is bound to delegated scope and tool identity. Freshness comes from a per-call nonce, session binding, or sequence. Failure behavior is denial of the invocation and failure recording if audit is claimed.¶
Possible carriers include an action digest, receipt, capsule, or audit record. The verifier is the profile verifier or composition verifier. The claim is bound to the canonical action-input bytes and native record. The row identifies the hash algorithm, context or domain separator, version, and output representation. Freshness comes from digest context version and receipt policy. Failure behavior is refusal to compose the records as evidence of the same action.¶
After validating a row, the verifier returns a normalized result that states what the next component may rely on. For example, a gateway might return "this connection currently holds the enrolled live key" but not "this request is authorized for this resource" unless the authority and delegated-scope rows also succeed.¶
A human authorization receipt can show that a named human or quorum approved an action before execution. An attribution or audit record can show who was recorded as delegating, performing, or observing the action after execution. Even when both records are joined by the same action digest, the verifier returns separate accepted results for pre-execution authority and post-execution attribution unless another specified rule intentionally combines them.¶
Protocol authors SHOULD consider negative tests for each row in the verifier matrix. The following cases are intended as examples.¶
A delegation token or chain is structurally valid but expired, revoked, or superseded. The verifier rejects the delegated action or requests fresh authorization.¶
A tool call envelope is valid, but the envelope is not bound to the delegation scope, resource identifier, or session state used for the decision. The tool invocation is denied.¶
A claim or receipt from one session is replayed in another session. The verifier detects that the claim is not bound to the current session transcript, nonce, exporter, or equivalent channel state.¶
An advisory signature or use counter is treated as the replay challenge or as a mandatory availability gate even though the protocol does not guarantee ordered, synchronized, non-resettable values. The freshness row fails unless a transcript, nonce, sequence rule, or other specified live challenge independently establishes wire freshness.¶
A stream implementation succeeds when each write is returned by a separate read, but loses a second frame when the transport coalesces two frames or blocks when a frame is fragmented. The implementation cannot support the session-continuity row until framing retains unread bytes, handles partial input, and enforces a frame-size limit.¶
A receipt, log entry, capsule, or evidence record refers to a different action digest, input, resource, or policy version than the action being reviewed. The records are not composed as evidence of the same action.¶
Two components claim to extend or compare the same digest, but one consumes the raw digest bytes while the other consumes the UTF-8 bytes of its hexadecimal display form. The binding row fails even if both values print as the same hexadecimal string. This failure applies when those different byte strings are themselves protocol inputs, such as inputs to another hash or signature.¶
Two components carry declared canonical encodings of a digest value, but an implementation compares the display strings directly. The verifier first confirms compatible digest contexts and decodes each declared canonical representation to the underlying digest octets. If those octets match, a hexadecimal-versus-base64url display difference alone is not a value mismatch. An unknown context, undeclared encoding, non-canonical encoding, or decoding failure yields an indeterminate or refused binding result rather than guessed equality.¶
A draft states that another component supplies authorization, attestation, or evidence, but does not identify the dependency or the failure behavior when the dependency is unavailable. The row is marked as inherited or assumption, not as a current protocol guarantee.¶
A test using a software emulator exercises quote parsing, freshness, measurement extension, or appraisal logic, but the row is reported as evidence of a hardware root, non-extractable key, or physical platform property. The implementation status is limited to the tested software boundary.¶
A protocol field, token, credential, receipt, or attestation is structurally valid, but the application consumes the raw object directly instead of a verifier-produced accepted result. The test fails unless the draft defines what normalized result may be consumed and what scope that result has.¶
An implementation emits a signature, MAC, authentication tag, or encrypted field and completes a positive exchange, but the receive path accepts a deliberately invalid value. The corresponding authentication, integrity, or confidentiality row is partial or unimplemented rather than implemented.¶
A live-key, protected-key, or session-binding check succeeds, but the requested action is outside the delegated scope or lacks human or organizational authority. The key-possession row can pass while the authority or delegation row fails.¶
A condition-bound key becomes unavailable after a connection is established. The next key operation or key agreement fails, but the already established connection is not assumed to terminate unless the draft specifies a session-management rule, connection lifetime bound, or event-driven termination behavior.¶
A session is paused after a condition failure or policy event and later resumed because the local condition appears healthy again. The resume test fails unless the draft states which possession, delegation, status, or policy rows are rechecked and which fresh accepted result is consumed before resuming.¶
An automated-client or bot signing key verifies successfully, but the application treats that result as proof that a human principal consented to, approved, or stands behind the request. The test fails unless a separate human-principal row is independently satisfied.¶
A receipt proves that a specific action was authorized or witnessed, but the application treats it as a reusable grant for future actions. The standing-grant row fails unless the artifact separately carries the issuer, scope, resource, control verb, expiry, revocation, and permitted-use semantics required for C-013.¶
A standing grant covers a class of actions, but the application treats it as proof that the current action was separately approved at execution time. The per-action authority row fails unless a distinct action-specific authorization or approval artifact is independently verified.¶
An action-specific approval or authorization artifact is created only after the action took effect, but the application presents it as proof that authority was accepted before execution. The C-002 row fails unless independently verified ordering evidence relates both the authorization result and the effect. That evidence can come from one independently authenticated record whose producing boundary covered both terms and established their order. Alternatively, it can come from two independently authenticated records whose producing boundaries are related through the same operation, jointly cover the authorization result and the effect, and establish their order through a trusted sequencing mechanism. Reconciliation that establishes only correspondence does not establish temporal order. A timestamp produced beside the signature observes only the signature and does not establish pre-effect ordering by itself. A protocol rule requiring such gating is a runtime requirement; the standalone authorization artifact does not prove that an implementation followed it.¶
An enrolled attester signs a token asserting user verification, but the application treats that assertion as proof that a specific named human or organization authorized the action. The C-002 row fails unless the verifier also checks the enrollment binding from the attester to the named principal, the exact semantics attested for user verification, the action binding, and the applicable freshness and trust assumptions.¶
A signed object carries a user-verification value, but the verifier does not check platform attestation or other independently appraised evidence establishing how that value was produced. The signature can support an assertion-integrity result, but the human-presence or platform-enforcement row remains unsatisfied. If the platform evidence does establish user-verification enforcement, the verifier cross-checks the assertion against that evidence before returning an attested result.¶
A mapper or verifier returns indeterminate, not equivalent, or a narrowly scoped verified result, and the application treats the label itself as a refusal, authorization, retry permission, or success. The test fails unless a separately stated relying-party policy consumes the result and produces that decision.¶
Implementation or interoperability evidence was produced against one draft revision, profile version, or source commit, but the mapping reports it as evidence for a later revision without rerunning the relevant positive and negative tests. The implementation status remains pinned to the tested revision until the evidence is refreshed.¶
A reference verifier is corrected for normative schema or protocol requirements, but its previously published result tally does not change because no row exercised the corrected paths. The unchanged tally supports stability of the exercised rows only. The implementation MUST NOT be reported as conformant unless required fields, closed-schema or unknown-field behavior, value types and ranges, parser ambiguity, fail-closed error handling, replay state, and other applicable normative branches are covered or independently verified.¶
An agent presents a valid, narrowly scoped delegation, but can reach the same resource through ambient credentials or another authority path that does not enforce the delegation. Verification establishes the scope of the authority that was presented; it does not establish that the delegation governed the action. A relying party MUST NOT make that stronger claim unless the enforcement point binds the action to the delegated path or independently excludes or accounts for alternative authority paths.¶
An opaque envelope and its outer integrity check are valid, but the carried or referenced grant names the wrong subject, resource, control verb, audience, constraints, expiry, or revocation state. An integrity-only forwarder can pass the carrier onward but MUST NOT emit a C-013 result; the semantic grant verifier refuses the standing-grant row.¶
A valid, unexpired, and unrevoked standing grant covers only part of the requested action, such as one resource, control verb, audience, or constraint in a compound request, but the application accepts the whole action. The C-013 row fails unless every security-relevant element of the specific requested action is within the verified grant scope. A broader grant that fully contains the action is accepted only for that action and does not produce a stronger result because of its breadth.¶
A downstream controller or tool reports success under its own status semantics, but the application treats that report as proof that the intended physical effect occurred, that the environment was safe, or that an independent observer verified completion. The physical completion or independent-verification row fails unless a separate claim with its own verifier and evidence is satisfied.¶
A capsule, receipt, or evidence graph carries a statement supplied by the same actor that performed, delegated, or reported the action, and the application treats that statement as independent verification. The independent-observation row fails unless the verifier identifies a distinct observer, trust basis, binding, and freshness rule.¶
Two records carry the same action digest, and the implementation treats that equality as authorization, completeness, correctness, or policy sufficiency. The test fails unless the relevant authority, evidence, audit, and accepted-result rows are separately verified.¶
A post-execution attribution or audit record names a principal, but the system treats that record as proof that the principal approved the action before execution. The verifier rejects the substitution unless a pre-execution authorization row is independently satisfied.¶
A candidate agent communication draft can use this document in four ways.¶
A draft that takes the third path remains reviewable if it identifies the dependency and failure behavior. The main review problem is not that a protocol omits a claim; the problem is when a protocol relies on a claim while leaving the verifier, binding, freshness rule, or failure behavior implicit.¶
Tables can be useful for compact review, but the table shape is not itself a security property. A draft can use a table, definition list, YAML or JSON record, Markdown issue, or prose appendix if the review fields remain explicit. For long text fields, authors should prefer a format that preserves accepted results and important non-claims over a compact layout that hides those boundaries.¶
When a draft supplies a verifier matrix, it SHOULD distinguish:¶
This distinction is important for review. A row that depends on a future reputation system, slashing process, governance committee, or external log can still be useful, but it should not be presented as a current protocol guarantee.¶
An agent communication protocol MUST NOT rely on a single identifier, token, session handle, log entry, or credential to imply multiple security properties unless the draft explicitly specifies the verification rule for each property.¶
In particular:¶
A successful verification step should produce a constrained accepted result for the relying component. Protocol authors should avoid designs in which application logic consumes raw peer-provided claims, tokens, receipts, or attestations as if their mere presence were a completed security decision. The accepted result needs to preserve the scope, binding, freshness, and limitations of the verifier decision.¶
If a claim is required for a security decision and the verifier cannot validate that claim, the protocol MUST specify whether the action is rejected, downgraded, quarantined, delayed for additional authorization, or allowed with a recorded warning. Silent acceptance is not an acceptable default for a security-relevant claim.¶
Protocol authors should also consider cross-protocol composition. A claim that is valid in one protocol context might lose its security meaning when it is copied into a receipt, gateway envelope, audit record, or delegated session without preserving the binding and freshness state needed by the verifier.¶
Where attestation evidence is used, this document follows the RATS distinction among claims, evidence, appraisal, and relying-party decisions described in [RFC9334]. Where transparency services or signed-statement receipts are used, this document treats those receipts as evidence carriers and not as automatic proof of authorization or correct execution; see the SCITT architecture in [RFC9943].¶
Protocol and implementation reviews also need to test the rejecting boundary. Naming an algorithm or emitting a cryptographic field does not establish authentication or integrity if invalid values are accepted. Likewise, a stream implementation needs framing tests for fragmented and coalesced input before it supports a session-continuity claim, and evidence from an emulated trust anchor needs to remain scoped to the software and appraisal logic actually exercised.¶
Verifier-facing matrices can expose privacy-relevant design choices. A draft that binds actions to human authority, organizational identifiers, tool invocations, or long-lived sessions should state whether the binding creates linkability across actions, sessions, deployments, or administrative domains.¶
Drafts should avoid requiring globally linkable identifiers unless the security property being claimed requires them. Where possible, a matrix row should state whether the verifier needs a stable identifier, a pairwise identifier, a role or capability assertion, a freshness proof, or only evidence that a locally authorized policy decision was made.¶
Accepted results can also affect privacy. A verifier can often return a scoped decision such as "authorized for this task in this session" instead of exposing the raw credential, stable identifier, receipt, or attestation evidence to application logic. Drafts should describe when raw identifying material is preserved, transformed, minimized, or withheld from the accepted result.¶
This document makes no IANA requests.¶
If later versions define a reusable registry of claim identifiers, verifier matrix fields, or protocol mapping status values, that registry will need a separate IANA considerations section.¶
The AGTP [I-D.hood-independent-agtp] and IACP [I-D.gebauer-iacp] discussion threads provide useful early examples. This section does not judge whether either draft satisfies the matrix; it only identifies useful first mapping targets.¶
AGTP appears to expose candidate carriers for authority, agent identity, delegation, session state, composition-layer tool identity, and audit evidence. The next useful step is to turn those carriers into mapping records that state who verifies each claim, what accepted result is returned, what evidence type supports the row, and what failure behavior applies.¶
IACP has already been sketched by its author as a verifier-facing matrix. For reviewability, the useful next step is to separate rows that are currently in [I-D.gebauer-iacp] from rows that are future work, inherited from other mechanisms, or dependent on governance systems not yet specified in the current I-D. In that review, carrier fields such as opaque authorization envelopes, local session keys, payload pointers, or fast-path forwarding handles should be distinguished from verifier- produced accepted results. A protocol-flow demonstration can support source-level or local-harness evidence, but a security row remains partial until the implementation performs the stated verification and rejects the corresponding invalid input.¶
The accountability composition work in [I-D.mih-sato-agent-accountability-composition] is another early application. Its CAN, WHO, WHAT, and AUDIT slots can be reviewed as mapping rows. The most important boundary for interop is that the shared action digest joins independently verified rows; it does not replace the native verifier for any slot and does not by itself produce an accepted result. Its byte-level interoperability surface also needs to pin canonical input bytes, algorithm, context separation, version, and digest representation so that a textual encoding is not substituted for the raw digest.¶
Both mappings can help converge a shared requirements note without requiring either protocol to adopt the other's wire format.¶
The capsule provenance-binding work in [I-D.rampalli-scitt-capsule-provenance-binding] illustrates the same boundary for artifact-layer composition. A capsule can bind authorization and provenance references into a transparency-checkable record while leaving authority truth, provenance truth, physical completion, independent observation, and relying-party acceptance to their own verifier rows.¶
Recent WIMSE discussion, including the condition-bounded credential draft in [I-D.winmagic-wimse-condition-bounded-credentials], also illustrates a condition-bound possession row: a protected signing capability can prove live possession under a release policy while leaving delegated authority, human authorization, and relying-party acceptance to separate rows. The same discussion separates three jobs: transcript or nonce freshness for replay on the wire, condition-liveness for whether the next local key operation can occur, and an advisory counter for clone evidence. Endpoint-side key unavailability does not terminate an already established connection unless a separate session-management rule says so. Pause and resume should consume the fresh verifier results named by that rule, not act as automatic proof that all previously accepted rows remain valid. Recent Web Bot Auth discussion illustrates the complementary human-principal case: an automated-client key can remain a bot key while an optional consent-bound or accountability artifact supplies a separate human-principal row.¶
This section summarizes the principal review-facing changes in this working revision. It can be removed if the document is later adopted and the working-group process prefers a separate change history.¶
The author thanks Leonard Gebauer for proposing the two-level claim-registry and per-protocol mapping-record structure, supplying IACP-oriented mapping examples, and making an implementation prototype available for negative-path review. The author thanks Chris Hood for clarifying open-ended layer vocabulary and AGTP transport-layer mapping considerations.¶
The author thanks Iman Schrock for evidence-backed mapping rows, scoped standing-grant details, executable negative-vector framing, schema- validation and replay-state review, and inheritance-target treatment for artifact-layer mechanisms. The author thanks Steven Mih and Tom Sato for accountability-composition and conformance-vector discussion that clarified action-digest joins and slot-style review. The author thanks Anton Sokolov for concrete discussion of raw digest bytes versus textual hexadecimal representation, emulated-TPM evidence boundaries, and gate-specific negative vectors.¶
The author thanks Thi Nguyen-Huu, Sergei Nikitin, and John O'Leary for condition-bound credential and live-key discussion that clarified measured enrollment inputs, transcript freshness, condition-liveness, clone-detection signals, and established-session boundaries. The author thanks Karthik Rampalli for composed-stack review and failure classes, Akira Okutomi for discussion that motivated clearer accepted-result and success-output boundaries, and Blake Morrison for discussion of optional human-principal assertions above bot authentication and for identifying the C-013 partial-overlap failure case.¶
The author thanks Mohamad Khalil-Yossif for protocol-mapping review and public correction of reference-verifier coverage that motivated explicit signer-role, output-representation, user-verification, evidence-coverage, and pre-execution-ordering boundaries.¶
The author thanks Lars Kersten Kroehl for a byte-pinned prepared verifier-seam mapping that clarified the status boundary between separate successful mappings and a completed independent cross-run. The author thanks Barak Shelef for identifying the distinction between verifying a conveyed delegation and establishing that the action was governed by that delegation when ambient authority remains available.¶
The author thanks Mikhail Sidorov for review that clarified exact implemented-revision pins, claim grounding, and the separation between a verifier-produced result and a relying-party policy decision, as well as the need for pre-effect ordering evidence to observe or securely relate both the authorization and the effect.¶
The author thanks Mikhail Sergeev for review that clarified the coverage and temporal-order requirements for single-record and two-record pre-execution evidence, including why reconciliation alone cannot establish that authorization preceded an effect.¶
The author also thanks participants on the AGENTPROTO, WIMSE, SCITT, and related mailing lists for discussion of security-principal separation, verifier-facing review matrices, protocol comparison, evidence boundaries, and claim-level coordination among candidate drafts. Acknowledgment does not imply endorsement of this document or of any particular protocol mapping.¶