<?xml version='1.0' encoding='utf-8'?>
<rfc version="3" category="info" docName="draft-c4tz-marc-01" ipr="trust200902" submissionType="IETF" consensus="false" tocInclude="true" symRefs="true" sortRefs="false" xmlns:xi="http://www.w3.org/2001/XInclude">
  <front>
    <title abbrev="MARC">MARC: A Control and Uncertainty Disclosure Profile for Generative Models and Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-c4tz-marc-01" />
    <author fullname="c4tz">
      <organization>c0dx3</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>c4tzzzz@proton.me</email>
      </address>
    </author>
    <date year="2026" month="April" day="29" />
    <area>Applications and Real-Time</area>
    <keyword>generative models</keyword>
    <keyword>agents</keyword>
    <keyword>uncertainty</keyword>
    <keyword>control metadata</keyword>
    <keyword>disclosure</keyword>
    <abstract>
      <t>This document specifies MARC, a vendor-neutral control and uncertainty-disclosure profile for generative models and agentic systems.  MARC defines a small set of interoperable control metadata, separates pre-decision capability assessment from post-decision answer confidence, and defines a bounded primary action set for answering, clarification, retrieval, tool use, additional deliberation, abstention, and escalation.</t>
      <t>MARC does not standardize model internals, training methods, agent discovery, authorization, transport, tool schemas, or claims about machine cognition.  Instead, it defines externally observable semantics that can be implemented by model providers, orchestration layers, evaluation harnesses, API gateways, and user-facing systems.  The goal is to reduce silent failure, unnecessary externalization, and misleading uncertainty communication while improving auditability and interoperability.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sec-introduction">
      <name>Introduction</name>
      <t>Generative models and agentic systems increasingly combine answering, retrieval, tool invocation, and user interaction within a single workflow.  In many deployments, these behaviors are implemented as separate heuristics, producing inconsistent handling of uncertainty, unnecessary tool calls, silent failure, misleading refusals, or user overreliance.</t>
      <t>MARC defines a vendor-neutral profile for control metadata and structured uncertainty disclosure.  It does not standardize model internals.  Instead, it standardizes the semantics of a small set of second-order signals, a bounded action set, and a minimal disclosure profile that can be implemented by a base model, an external orchestrator, a model gateway, or a hybrid architecture.</t>
      <t>This document is not intended to define a Standards Track protocol, a model evaluation benchmark, or a claim about machine consciousness.  It is an Informational profile for interoperable control, logging, and disclosure behavior around generative systems and agents.</t>
      <t>The design is motivated by findings that current large language models often exhibit weak metacognitive reporting in high-stakes reasoning tasks <xref target="GRIOT2025" />, that users can become overconfident when systems provide longer or default explanations <xref target="STEYVERS-KNOW2025" />, that metacognitive triggering can improve tool-use decisions <xref target="LI-MECO2025" />, and that identifying the source of uncertainty is distinct from merely abstaining <xref target="LIU-CONFUSE2025" />.  Work on cognitive offloading further motivates treating retrieval and tool use as value-based control choices rather than universal fallbacks <xref target="GILBERT2024" />.</t>
      <t>MARC also separates pre-decision capability assessment from post-decision confidence about the selected answer.  This separation is motivated in part by evidence that LLM confidence can be biased by prior answer commitment and by the visibility of the model's own earlier output <xref target="KUMARAN2026" />.</t>
    </section>
    <section anchor="sec-problem-statement">
      <name>Problem Statement</name>
      <t>Generative and agentic systems lack a common, implementation-neutral way to represent the control state associated with uncertainty-aware action selection.  In particular, downstream systems often cannot distinguish between the following situations:</t>
      <ul>
        <li>
          <t>the request is ambiguous and user clarification is the best next action;</t>
        </li>
        <li>
          <t>current evidence is missing, inaccessible, insufficient, or stale, and retrieval would likely help;</t>
        </li>
        <li>
          <t>the system lacks competence for the task even after available resources are considered;</t>
        </li>
        <li>
          <t>available evidence is materially inconsistent and should be reconciled or escalated;</t>
        </li>
        <li>
          <t>a safety, legal, or policy constraint limits execution or disclosure; or</t>
        </li>
        <li>
          <t>a candidate answer has been produced, but its confidence should be disclosed with a calibrated band rather than a fine-grained score.</t>
        </li>
      </ul>
      <t>Without a shared representation, one system's refusal, tool call, confidence label, or escalation hint may be opaque to another system.  This weakens auditability, makes evaluation brittle, and can create inconsistent user experiences across otherwise similar deployments.</t>
      <t>MARC addresses this problem by defining interoperable metadata for:</t>
      <ul>
        <li>
          <t>pre-decision capability assessment;</t>
        </li>
        <li>
          <t>uncertainty-source attribution;</t>
        </li>
        <li>
          <t>remediability of the uncertainty state;</t>
        </li>
        <li>
          <t>selected primary action;</t>
        </li>
        <li>
          <t>post-decision answer confidence when an answer candidate exists; and</t>
        </li>
        <li>
          <t>a minimal disclosure profile suitable for user interfaces or downstream consumers.</t>
        </li>
      </ul>
      <t>MARC intentionally limits itself to externally observable semantics.  It does not require disclosure of chain-of-thought, hidden prompts, raw internal activations, training data, or model architecture.</t>
    </section>
    <section anchor="sec-requirements-language-and-terminology">
      <name>Requirements Language and Terminology</name>
      <t>The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" />
        <xref target="RFC8174" /> when, and only when, they appear in all capitals, as shown here.</t>
      <dl>
        <dt>Base model</dt>
        <dd>
          <t>The generative model that produces candidate outputs.</t>
        </dd>
        <dt>Controller</dt>
        <dd>
          <t>The component that computes MARC signals, selects a primary action, and emits a MARC-Core record.  The controller MAY be part of the base model, an external orchestrator, a gateway, or a hybrid component.</t>
        </dd>
        <dt>Decision point</dt>
        <dd>
          <t>A point in a generative or agentic workflow at which the controller selects one primary action from the MARC action set.</t>
        </dd>
        <dt>Externalization</dt>
        <dd>
          <t>The use of resources external to the base model at the current decision point, including retrieval, non-retrieval tool invocation, and human escalation.</t>
        </dd>
        <dt>MARC-Core</dt>
        <dd>
          <t>The structured record emitted for logging, orchestration, audit, evaluation, or downstream exchange.</t>
        </dd>
        <dt>MARC-Disclosure</dt>
        <dd>
          <t>The minimum structured information exposed to a downstream system or end user about answer content, uncertainty source, confidence band, and recommended next step.</t>
        </dd>
        <dt>Remediability</dt>
        <dd>
          <t>The best available class of intervention for the currently observed uncertainty state.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-design-goals-and-non-goals">
      <name>Design Goals and Non-Goals</name>
      <section anchor="sec-design-goals">
        <name>Design Goals</name>
        <t>MARC has the following design goals:</t>
        <ul>
          <li>
            <t>Standardize a small, interoperable set of control and uncertainty-disclosure metadata that can be exchanged across orchestration layers and audit pipelines.</t>
          </li>
          <li>
            <t>Separate monitoring, uncertainty attribution, action selection, and disclosure.</t>
          </li>
          <li>
            <t>Support calibrated user-facing uncertainty communication without requiring exposure of chain-of-thought or raw internal reasoning.</t>
          </li>
          <li>
            <t>Permit heterogeneous implementations while preserving common action semantics.</t>
          </li>
          <li>
            <t>Reduce harmful overreliance, false reassurance, unnecessary externalization, and anthropomorphic interpretation in user-facing AI systems.</t>
          </li>
          <li>
            <t>Provide metadata that can be carried by other protocols, APIs, or agent communication frameworks without defining those protocols itself.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-non-goals">
        <name>Non-Goals</name>
        <t>MARC does not define a transport protocol, model architecture, benchmark, training recipe, agent-discovery mechanism, authorization framework, tool schema language, or task-execution protocol.</t>
        <t>MARC does not attempt to standardize model internals, machine cognition, consciousness, sentience, personality, or social behavior.  It specifies external control semantics and structured disclosure behavior only.</t>
        <t>MARC is not a framework for synthetic personality design or persuasive optimization.  Work on personality measurement in LLMs <xref target="SERAPIO2025" /> and conversational persuasion risks <xref target="SALVI2025" /> is relevant background, but these topics are explicitly out of scope here.</t>
        <t>This version does not define a media type, wire protocol, or IANA registry.  Future versions may define these if interoperability across administrative domains requires them.</t>
      </section>
    </section>
    <section anchor="sec-use-cases">
      <name>Use Cases</name>
      <section anchor="sec-ambiguous-user-request">
        <name>Ambiguous User Request</name>
        <t>A user asks a question whose correct answer depends on an unspecified jurisdiction, time period, dataset, identity, or operational context.  A MARC controller attributes the dominant uncertainty to <tt>ambiguity</tt>, selects <tt>CLARIFY</tt>, and exposes a short clarification request instead of silently guessing.</t>
      </section>
      <section anchor="sec-retrieval-augmented-answering">
        <name>Retrieval-Augmented Answering</name>
        <t>A system is asked for current information or domain-specific evidence not available in the base model context.  A MARC controller attributes the dominant uncertainty to <tt>missing_evidence</tt>, selects <tt>RETRIEVE</tt>, and re-enters assessment after obtaining authoritative sources.</t>
      </section>
      <section anchor="sec-agent-tool-invocation">
        <name>Agent Tool Invocation</name>
        <t>An agent can answer directly, call a calculator, invoke a planner, query a database, or escalate.  A MARC controller treats tool use as a controlled action rather than a default fallback.  If tool invocation materially expands competence for the task, the controller selects <tt>TOOL</tt>; otherwise it may select <tt>ANSWER</tt>, <tt>CLARIFY</tt>, <tt>ABSTAIN</tt>, or <tt>ESCALATE</tt> depending on uncertainty attribution and remediability.</t>
      </section>
      <section anchor="sec-api-gateway-or-orchestration-layer">
        <name>API Gateway or Orchestration Layer</name>
        <t>An API gateway receives model output plus MARC-Core metadata.  The gateway logs the full record for audit, but exposes only MARC-Disclosure fields to the user interface.  This permits consistent user-facing uncertainty communication without exposing internal scoring details.</t>
      </section>
      <section anchor="sec-agent-to-agent-handoff">
        <name>Agent-to-Agent Handoff</name>
        <t>One agent transfers a task to another agent or service.  MARC metadata can indicate why the transfer occurred, what uncertainty source drove the decision, and what next step is recommended.  The receiving system can use this metadata for routing, prioritization, audit, or human review.</t>
      </section>
      <section anchor="sec-high-risk-domain-escalation">
        <name>High-Risk Domain Escalation</name>
        <t>In health, legal, financial, safety, or mental-health-related contexts, a system identifies a capability limit or safety constraint.  A MARC controller selects <tt>ABSTAIN</tt> or <tt>ESCALATE</tt> and emits a disclosure that identifies the operational limit and the recommended next step.</t>
      </section>
    </section>
    <section anchor="sec-architecture-and-processing-model">
      <name>Architecture and Processing Model</name>
      <section anchor="sec-functional-components">
        <name>Functional Components</name>
        <t>A MARC deployment conceptually contains the following components:</t>
        <ul>
          <li>
            <t>a base model;</t>
          </li>
          <li>
            <t>a controller;</t>
          </li>
          <li>
            <t>zero or more external resources, such as retrieval systems, non-retrieval tools, or human escalation paths; and</t>
          </li>
          <li>
            <t>a downstream consumer, such as a user interface, API gateway, logging system, evaluation harness, or another agent.</t>
          </li>
        </ul>
        <t>The functional decomposition is conceptual.  An implementation MAY place all functions inside a single model endpoint, an orchestration service, a model gateway, or an agent runtime.</t>
      </section>
      <section anchor="sec-processing-stages">
        <name>Processing Stages</name>
        <t>A MARC controller performs the following processing stages at each decision point:</t>
        <ol type="1">
          <li>
            <t>Compute a pre-decision capability estimate for the current request with currently available resources.</t>
          </li>
          <li>
            <t>Attribute uncertainty across the source classes defined in this document.</t>
          </li>
          <li>
            <t>Determine remediability and select exactly one primary action from the MARC primary action set.</t>
          </li>
          <li>
            <t>If the selected action yields a candidate answer, compute post-decision confidence for that answer.</t>
          </li>
          <li>
            <t>Emit a MARC-Core record.</t>
          </li>
          <li>
            <t>If uncertainty is exposed to a downstream system or end user, emit a MARC-Disclosure object or semantically equivalent disclosure.</t>
          </li>
        </ol>
      </section>
      <section anchor="sec-state-machine">
        <name>State Machine</name>
        <t>The following state machine is descriptive rather than a required implementation architecture:</t>
        <sourcecode>REQUEST
  -&gt; ASSESS
  -&gt; ATTRIBUTE
  -&gt; SELECT
       -&gt; ANSWER     -&gt; CONFIDENCE -&gt; DISCLOSE
       -&gt; CLARIFY    -&gt; DISCLOSE
       -&gt; RETRIEVE   -&gt; ASSESS
       -&gt; TOOL       -&gt; ASSESS
       -&gt; DELIBERATE -&gt; ASSESS
       -&gt; ABSTAIN    -&gt; DISCLOSE
       -&gt; ESCALATE   -&gt; DISCLOSE</sourcecode>
        <t>A MARC implementation SHOULD bound repeated transitions through <tt>RETRIEVE</tt>, <tt>TOOL</tt>, and <tt>DELIBERATE</tt> to limit latency, cost, and degenerate loops.  A deployment claiming conformance SHOULD document the applicable loop bounds or termination criteria.</t>
      </section>
    </section>
    <section anchor="sec-marc-values-and-decision-policy">
      <name>MARC Values and Decision Policy</name>
      <section anchor="sec-pre-decision-capability">
        <name>Pre-Decision Capability</name>
        <t>Before disclosing a final answer, a MARC implementation MUST estimate whether the current request can be handled reliably with currently available resources.</t>
        <t>This estimate is represented as <tt>pre_capability</tt>.  When a numeric representation is used, the value MUST be in the closed interval <tt>[0.0, 1.0]</tt>.  The method used to derive the value is implementation-specific.</t>
        <t>
          <tt>pre_capability</tt> is assessed before final answer commitment.  It is not a confidence score for an already-selected answer.</t>
      </section>
      <section anchor="sec-uncertainty-attribution">
        <name>Uncertainty Attribution</name>
        <t>A MARC implementation MUST attribute uncertainty to one or more of the following classes:</t>
        <dl>
          <dt>
            <tt>ambiguity</tt>
          </dt>
          <dd>
            <t>The request is underspecified, equivocal, or pragmatically unclear.</t>
          </dd>
          <dt>
            <tt>missing_evidence</tt>
          </dt>
          <dd>
            <t>Required external evidence is absent, inaccessible, insufficient, or stale.</t>
          </dd>
          <dt>
            <tt>capability_limit</tt>
          </dt>
          <dd>
            <t>The system lacks the competence to solve the task reliably under current conditions.</t>
          </dd>
          <dt>
            <tt>evidence_conflict</tt>
          </dt>
          <dd>
            <t>Relevant evidence is materially inconsistent or mutually incompatible.</t>
          </dd>
          <dt>
            <tt>safety</tt>
          </dt>
          <dd>
            <t>A policy, legal, or safety constraint limits execution or disclosure.</t>
          </dd>
        </dl>
        <t>An implementation MAY assign scores to multiple classes.  If numeric uncertainty scores are emitted, they MUST each be in the interval <tt>[0.0, 1.0]</tt>.</t>
        <t>Uncertainty scores are not mutually exclusive probabilities and MUST NOT be required to sum to 1.0.  They represent implementation-specific estimates of the salience or severity of each uncertainty class at the current decision point.</t>
        <t>The implementation MUST identify one <tt>primary_source</tt> and MAY identify one <tt>secondary_source</tt>.  The <tt>primary_source</tt> identifies the uncertainty source most relevant to action selection at the current decision point.</t>
        <t>MARC 1.0 does not define <tt>none</tt> as an uncertainty source.  If residual uncertainty is negligible, an implementation MUST still either identify the most operationally relevant residual source from the MARC taxonomy or use a documented private extension.  A MARC 1.0 implementation MUST NOT emit <tt>primary_source</tt> with the value <tt>none</tt>.</t>
      </section>
      <section anchor="sec-remediability">
        <name>Remediability</name>
        <t>A MARC implementation MUST represent the best available class of intervention for the current uncertainty state using one of the following values:</t>
        <ul>
          <li>
            <t>
              <tt>user_clarification</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>retrieval</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>tool</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>human</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>none</tt>
            </t>
          </li>
        </ul>
        <t>Low capability alone is insufficient to determine remediability.  Implementations SHOULD account for expected gain, latency, cost, availability, user burden, and policy constraints when choosing a remediating intervention.</t>
      </section>
      <section anchor="sec-post-decision-confidence">
        <name>Post-Decision Confidence</name>
        <t>If the selected action yields a candidate answer, the implementation MUST compute a distinct estimate of the likelihood that the disclosed answer is correct or acceptable for its intended use.</t>
        <t>This estimate is represented as <tt>post_answer_confidence</tt>.  When a numeric representation is used, the value MUST be in the interval <tt>[0.0, 1.0]</tt>.  It MUST NOT be treated as identical to <tt>pre_capability</tt>.</t>
        <t>If no candidate answer exists, <tt>post_answer_confidence</tt> MAY be omitted or set to <tt>null</tt>.</t>
      </section>
      <section anchor="sec-confidence-band">
        <name>Confidence Band</name>
        <t>The field <tt>confidence_band</tt> carries a coarse, calibrated band for downstream or user-facing disclosure.</t>
        <t>For <tt>ANSWER</tt>, the band describes confidence in the candidate answer.  For actions that do not yield a candidate answer, the band describes direct-answer suitability under current conditions.  It is not a claim about the grammatical correctness or helpfulness of the clarification, refusal, or escalation text.</t>
        <t>MARC defines the canonical band labels <tt>low</tt>, <tt>medium</tt>, and <tt>high</tt>.  Implementations MAY localize the user-visible text, but they MUST preserve the underlying three-band semantics.</t>
        <t>The thresholds associated with each band are implementation-specific, but they MUST be monotonic, non-overlapping, and documented for any deployment that claims conformance.  A deployment claiming conformance MUST document the threshold ranges associated with <tt>low</tt>, <tt>medium</tt>, and <tt>high</tt>, and MUST document whether those thresholds vary by task family, domain, action type, risk tier, or deployment context.</t>
        <t>Confidence-band labels are not fully portable without the associated threshold and calibration documentation.  A receiving system SHOULD NOT assume that another deployment's <tt>high</tt> band has the same empirical meaning unless the applicable calibration regime is known.</t>
      </section>
      <section anchor="sec-primary-action-set">
        <name>Primary Action Set</name>
        <t>A MARC implementation MUST support the following primary actions:</t>
        <ul>
          <li>
            <t>
              <tt>ANSWER</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>CLARIFY</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>RETRIEVE</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>TOOL</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>DELIBERATE</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>ABSTAIN</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>ESCALATE</tt>
            </t>
          </li>
        </ul>
        <t>Exactly one primary action MUST be selected for each decision point.  Additional internal sub-actions MAY exist, but each such sub-action MUST map to exactly one primary action for logging and disclosure.</t>
      </section>
      <section anchor="sec-action-selection">
        <name>Action Selection</name>
        <t>Action selection MUST depend on uncertainty attribution and remediability.  Low confidence alone is insufficient to determine the correct action.</t>
        <t>A MARC controller MUST apply governing safety, legal, and policy constraints before any other action-selection logic.  Subject to those constraints, a deployment SHOULD evaluate corrective actions in the following priority order unless a documented local policy defines a stricter or domain-specific ordering:</t>
        <ol type="1">
          <li>
            <t>If <tt>safety</tt> is the controlling uncertainty source, apply the governing safety policy and select <tt>ABSTAIN</tt>, <tt>ESCALATE</tt>, or another permitted action according to that policy.</t>
          </li>
          <li>
            <t>If blocking ambiguity is present and user input is expected to materially reduce it, prefer <tt>CLARIFY</tt> over guessing.</t>
          </li>
          <li>
            <t>If relevant evidence is materially inconsistent, prefer <tt>RETRIEVE</tt>, <tt>TOOL</tt>, or <tt>ESCALATE</tt> over direct <tt>ANSWER</tt>.</t>
          </li>
          <li>
            <t>If required evidence is absent, inaccessible, insufficient, or stale, prefer <tt>RETRIEVE</tt> when retrieval is available and permitted.</t>
          </li>
          <li>
            <t>If a capability limit is material and a non-retrieval tool is expected to materially expand task competence, prefer <tt>TOOL</tt>.</t>
          </li>
          <li>
            <t>If a capability limit remains material after available remediation is considered, prefer <tt>ABSTAIN</tt> or <tt>ESCALATE</tt>, especially in high-risk domains.</t>
          </li>
          <li>
            <t>If additional internal computation is expected to materially reduce uncertainty within documented bounds, <tt>DELIBERATE</tt> MAY be selected before externalization or answer commitment.</t>
          </li>
          <li>
            <t>Select <tt>ANSWER</tt> only when no corrective action is expected to materially improve reliability relative to cost, latency, user burden, and applicable policy constraints.</t>
          </li>
        </ol>
        <t>This priority order is not intended to force unnecessary externalization.  For example, a system MAY answer without retrieval when missing evidence is immaterial to the requested task, when retrieval is unavailable or prohibited, or when the answer is explicitly limited to information already present in context.</t>
        <t>When the primary uncertainty source is <tt>ambiguity</tt>, the system SHOULD prefer <tt>CLARIFY</tt> unless available evidence can resolve the ambiguity without user input.</t>
        <t>When the primary uncertainty source is <tt>missing_evidence</tt>, the system SHOULD prefer <tt>RETRIEVE</tt> if retrieval is available and permitted.</t>
        <t>When the primary uncertainty source is <tt>capability_limit</tt>, the system SHOULD prefer <tt>ABSTAIN</tt> or <tt>ESCALATE</tt> unless an available tool materially expands task competence.</t>
        <t>When the primary uncertainty source is <tt>evidence_conflict</tt>, the system SHOULD prefer <tt>RETRIEVE</tt>, <tt>TOOL</tt>, or <tt>ESCALATE</tt> over direct <tt>ANSWER</tt>.</t>
        <t>When the primary uncertainty source is <tt>safety</tt>, the system MUST apply the governing policy before any other action-selection logic.</t>
      </section>
      <section anchor="sec-action-semantics">
        <name>Action Semantics</name>
        <dl>
          <dt>
            <tt>ANSWER</tt>
          </dt>
          <dd>
            <t>Return an answer without externalization after the current decision point.</t>
          </dd>
          <dt>
            <tt>CLARIFY</tt>
          </dt>
          <dd>
            <t>Request the smallest practical set of clarifications expected to materially reduce ambiguity.  A <tt>CLARIFY</tt> action SHOULD NOT bundle a full answer that presumes facts the user has not supplied.</t>
          </dd>
          <dt>
            <tt>RETRIEVE</tt>
          </dt>
          <dd>
            <t>Acquire external evidence and then re-enter assessment.</t>
          </dd>
          <dt>
            <tt>TOOL</tt>
          </dt>
          <dd>
            <t>Invoke a non-retrieval tool and then re-enter assessment.</t>
          </dd>
          <dt>
            <tt>DELIBERATE</tt>
          </dt>
          <dd>
            <t>Allocate additional internal computation, self-checking, decomposition, or strategy variation.  Implementations SHOULD bound this action.</t>
          </dd>
          <dt>
            <tt>ABSTAIN</tt>
          </dt>
          <dd>
            <t>Decline to answer without initiating escalation.</t>
          </dd>
          <dt>
            <tt>ESCALATE</tt>
          </dt>
          <dd>
            <t>Transfer the case, or direct the user to transfer the case, to a human or higher-authority system.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-marc-core-object">
      <name>MARC-Core Object</name>
      <t>A MARC implementation MUST be able to emit a structured record semantically equivalent to the object defined in this section.  The transport and serialization of the record are out of scope.  JSON is used here only as an illustrative encoding.</t>
      <section anchor="sec-required-and-optional-fields">
        <name>Required and Optional Fields</name>
        <table>
          <thead>
            <tr>
              <th>Field</th>
              <th>Type</th>
              <th>Requirement</th>
              <th>Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>
                <tt>marc_version</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>MARC schema version understood by the emitter.</td>
            </tr>
            <tr>
              <td>
                <tt>pre_capability</tt>
              </td>
              <td>number</td>
              <td>REQUIRED</td>
              <td>Pre-decision capability estimate in <tt>[0.0, 1.0]</tt>.</td>
            </tr>
            <tr>
              <td>
                <tt>uncertainty</tt>
              </td>
              <td>object</td>
              <td>REQUIRED</td>
              <td>Class-specific uncertainty scores.</td>
            </tr>
            <tr>
              <td>
                <tt>primary_source</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>Primary source of uncertainty.</td>
            </tr>
            <tr>
              <td>
                <tt>secondary_source</tt>
              </td>
              <td>string or null</td>
              <td>OPTIONAL</td>
              <td>Secondary source of uncertainty.</td>
            </tr>
            <tr>
              <td>
                <tt>remediability</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>Best available intervention class.</td>
            </tr>
            <tr>
              <td>
                <tt>selected_action</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>Primary action selected at the current decision point.</td>
            </tr>
            <tr>
              <td>
                <tt>post_answer_confidence</tt>
              </td>
              <td>number or null</td>
              <td>OPTIONAL</td>
              <td>Post-decision answer confidence when an answer candidate exists.</td>
            </tr>
            <tr>
              <td>
                <tt>confidence_band</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>Calibrated confidence band for disclosure.</td>
            </tr>
            <tr>
              <td>
                <tt>recommended_next_step</tt>
              </td>
              <td>string</td>
              <td>REQUIRED</td>
              <td>Short recommendation aligned with the selected action.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-enumerated-values">
        <name>Enumerated Values</name>
        <t>The fields <tt>primary_source</tt> and <tt>secondary_source</tt>, when present and non-null, MUST use one of the following values:</t>
        <ul>
          <li>
            <t>
              <tt>ambiguity</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>missing_evidence</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>capability_limit</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>evidence_conflict</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>safety</tt>
            </t>
          </li>
        </ul>
        <t>The field <tt>remediability</tt> MUST use one of the following values:</t>
        <ul>
          <li>
            <t>
              <tt>user_clarification</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>retrieval</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>tool</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>human</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>none</tt>
            </t>
          </li>
        </ul>
        <t>The field <tt>selected_action</tt> MUST use one of the following values:</t>
        <ul>
          <li>
            <t>
              <tt>ANSWER</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>CLARIFY</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>RETRIEVE</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>TOOL</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>DELIBERATE</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>ABSTAIN</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>ESCALATE</tt>
            </t>
          </li>
        </ul>
        <t>The field <tt>confidence_band</tt> MUST use one of the following values:</t>
        <ul>
          <li>
            <t>
              <tt>low</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>medium</tt>
            </t>
          </li>
          <li>
            <t>
              <tt>high</tt>
            </t>
          </li>
        </ul>
        <t>These values are case-sensitive.</t>
      </section>
      <section anchor="sec-validation-constraints">
        <name>Validation Constraints</name>
        <t>The <tt>uncertainty</tt> object MUST include scores for all currently defined uncertainty classes unless a future extension explicitly defines a compact encoding.  Each score MUST be numeric and MUST be in <tt>[0.0, 1.0]</tt>.</t>
        <t>If <tt>selected_action</tt> is <tt>ANSWER</tt>, then <tt>post_answer_confidence</tt> MUST be present and non-null.  If <tt>selected_action</tt> is <tt>CLARIFY</tt>, <tt>RETRIEVE</tt>, <tt>TOOL</tt>, <tt>DELIBERATE</tt>, <tt>ABSTAIN</tt>, or <tt>ESCALATE</tt>, then <tt>post_answer_confidence</tt> MAY be omitted or set to <tt>null</tt> unless a deployment-specific policy defines candidate-answer confidence for that action.</t>
        <t>The <tt>recommended_next_step</tt> field SHOULD be concise and operational.  It SHOULD describe the next action to be taken, not a long rationale.</t>
      </section>
      <section anchor="sec-json-example">
        <name>JSON Example</name>
        <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.41,
  "uncertainty": {
    "ambiguity": 0.78,
    "missing_evidence": 0.22,
    "capability_limit": 0.18,
    "evidence_conflict": 0.05,
    "safety": 0.00
  },
  "primary_source": "ambiguity",
  "secondary_source": "missing_evidence",
  "remediability": "user_clarification",
  "selected_action": "CLARIFY",
  "post_answer_confidence": null,
  "confidence_band": "low",
  "recommended_next_step": "ask one clarifying question"
}</sourcecode>
        <t>Implementations that exchange MARC-Core records across systems SHOULD normalize numeric scores to the interval <tt>[0.0, 1.0]</tt>.</t>
      </section>
    </section>
    <section anchor="sec-marc-disclosure-object">
      <name>MARC-Disclosure Object</name>
      <t>When uncertainty information is exposed to a downstream system or end user, a MARC implementation MUST provide, at minimum, semantically equivalent values for the following fields:</t>
      <ul>
        <li>
          <t>
            <tt>answer</tt>
          </t>
        </li>
        <li>
          <t>
            <tt>confidence_band</tt>
          </t>
        </li>
        <li>
          <t>
            <tt>uncertainty_source</tt>
          </t>
        </li>
        <li>
          <t>
            <tt>recommended_next_step</tt>
          </t>
        </li>
      </ul>
      <t>A disclosure MAY include <tt>selected_action</tt> when exposing the action label helps downstream routing or user interface consistency.</t>
      <section anchor="sec-meaning-of-the-answer-field">
        <name>Meaning of the Answer Field</name>
        <t>The <tt>answer</tt> field carries the user-visible content associated with the selected action.  For <tt>ANSWER</tt>, it contains the answer itself.  For <tt>CLARIFY</tt>, it contains the clarification request.  For <tt>ABSTAIN</tt> or <tt>ESCALATE</tt>, it contains a brief refusal or escalation message.  For <tt>RETRIEVE</tt>, <tt>TOOL</tt>, or <tt>DELIBERATE</tt>, a user-facing system MAY defer disclosure until the controller re-enters assessment and selects a terminal user-visible action.</t>
      </section>
      <section anchor="sec-projection-from-marc-core">
        <name>Projection from MARC-Core</name>
        <t>A MARC-Disclosure object is a projection of MARC-Core.  Unless a deployment-specific policy defines a stricter mapping, the following mapping is RECOMMENDED:</t>
        <table>
          <thead>
            <tr>
              <th>MARC-Disclosure field</th>
              <th>MARC-Core source</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>
                <tt>answer</tt>
              </td>
              <td>user-visible content associated with <tt>selected_action</tt>
              </td>
            </tr>
            <tr>
              <td>
                <tt>confidence_band</tt>
              </td>
              <td>
                <tt>confidence_band</tt>
              </td>
            </tr>
            <tr>
              <td>
                <tt>uncertainty_source</tt>
              </td>
              <td>
                <tt>primary_source</tt>
              </td>
            </tr>
            <tr>
              <td>
                <tt>recommended_next_step</tt>
              </td>
              <td>
                <tt>recommended_next_step</tt>
              </td>
            </tr>
            <tr>
              <td>
                <tt>selected_action</tt>
              </td>
              <td>
                <tt>selected_action</tt>, if exposed</td>
            </tr>
          </tbody>
        </table>
        <t>The projection SHOULD omit internal numeric scores unless the deployment has calibrated those scores for the relevant task family and tested the presentation for misuse or overreliance.</t>
      </section>
      <section anchor="sec-disclosure-constraints">
        <name>Disclosure Constraints</name>
        <t>The disclosure profile SHOULD be short, structured, and consistent across turns.  It SHOULD NOT rely on long free-form explanations as the primary vehicle for uncertainty communication.</t>
        <t>A MARC disclosure SHOULD NOT require exposure of chain-of-thought, hidden prompts, or raw internal rationales.</t>
        <t>A MARC disclosure SHOULD identify uncertainty in task terms rather than through anthropomorphic claims about feelings, self-awareness, or internal mental states.  Statements such as "I feel unsure" are NOT RECOMMENDED when a statement such as "the request is ambiguous" or "current evidence is missing" is available.</t>
        <t>User-visible confidence indicators SHOULD avoid false precision.  Percentages, fine-grained scores, or visually dominant certainty cues SHOULD NOT be shown unless they have been calibrated for the relevant task family and tested for misuse or overreliance effects.</t>
      </section>
    </section>
    <section anchor="sec-versioning-and-extension-rules">
      <name>Versioning and Extension Rules</name>
      <t>The <tt>marc_version</tt> field identifies the MARC schema version understood by the emitter.  This document defines version <tt>1.0</tt>.</t>
      <t>Implementations SHOULD treat a change in the major version component as potentially incompatible.  Implementations MAY treat a change in the minor version component as compatible if required fields and enumerated values used by the receiver retain their defined semantics.</t>
      <t>Implementations MAY add private fields.  Private extension keys SHOULD use a distinct prefix such as <tt>x_</tt> to avoid collision with future MARC versions.</t>
      <t>Consumers that do not recognize an extension field SHOULD ignore it unless a local policy requires strict validation.  Extensions MUST NOT change the semantics of the required fields defined in this document.</t>
      <t>Future versions may define protocol-specific mappings, compact encodings, media types, or registries.  This version deliberately avoids doing so until there is clearer community agreement on deployment requirements.</t>
    </section>
    <section anchor="sec-relationship-to-agent-communication-protocols">
      <name>Relationship to Agent Communication Protocols</name>
      <t>MARC is not an agent discovery protocol, authorization protocol, transport protocol, task protocol, tool-invocation protocol, or provenance framework.  MARC can be carried as metadata by such protocols when a system needs to disclose control state, uncertainty source, selected action, confidence band, or recommended next step.</t>
      <t>For example, an agent-to-agent protocol, model gateway, API-native tool-calling interface, or Model Context Protocol deployment could carry MARC metadata in a response metadata field, task-status object, diagnostic extension, envelope, or audit log.  The receiving system could then use the MARC fields to route the task, present a disclosure, decide whether additional validation is required, request clarification, or trigger human review.</t>
      <t>MARC is intended to complement, not replace, protocol work on identity, authentication, authorization, discovery, capability advertisement, task state, tool schemas, provenance, or human-in-the-loop workflows.</t>
      <t>A protocol-specific embedding of MARC SHOULD preserve the field semantics defined here.  A deployment MAY map MARC fields to protocol-native names if the mapping is documented and reversible.</t>
      <t>A protocol-specific embedding SHOULD distinguish MARC-Core from MARC-Disclosure.  In particular, an embedding SHOULD NOT expose internal numeric scores to end users merely because those scores are present in an internal MARC-Core record.</t>
    </section>
    <section anchor="sec-operational-profiles">
      <name>Operational Profiles</name>
      <t>MARC can be adopted through several operational profiles.  These profiles describe deployment modes; they do not define separate MARC versions.</t>
      <section anchor="sec-marc-core-only">
        <name>MARC-Core Only</name>
        <t>A MARC-Core-only deployment emits MARC-Core records for internal logging, orchestration, audit, evaluation, or incident analysis.  It does not necessarily expose MARC fields to end users.  This profile is suitable for model gateways, RAG controllers, agent runtimes, and evaluation harnesses that need consistent control metadata.</t>
      </section>
      <section anchor="sec-marc-disclosure">
        <name>MARC-Disclosure</name>
        <t>A MARC-Disclosure deployment projects a MARC-Core decision into user-visible or downstream-visible disclosure fields.  This profile is suitable when an interface needs to present a short answer, confidence band, uncertainty source, and recommended next step without exposing raw numeric scores or internal reasoning.</t>
      </section>
      <section anchor="sec-marc-carrying">
        <name>MARC-Carrying</name>
        <t>A MARC-Carrying deployment transports MARC-Core or MARC-Disclosure fields inside another protocol, API envelope, task-status object, event stream, or audit log.  The carrying protocol remains responsible for transport, authentication, authorization, ordering, confidentiality, and integrity.  MARC-Carrying conformance requires preservation of MARC field semantics, not any particular wire encoding.</t>
        <t>A deployment MAY implement more than one operational profile.  For example, a gateway can log MARC-Core internally, expose MARC-Disclosure to users, and carry selected MARC fields to another agent during handoff.</t>
      </section>
    </section>
    <section anchor="sec-human-factors-considerations">
      <name>Human Factors Considerations</name>
      <t>MARC is partly motivated by an operational human-factors problem: users often treat fluent language, detailed explanations, and fast responses as cues of competence even when those cues are weakly related to actual correctness.  For this reason, MARC separates action selection from disclosure and requires disclosure of uncertainty source and recommended next step in addition to a confidence band.</t>
      <t>User interfaces that expose MARC output SHOULD present confidence, uncertainty source, and recommended next step together as a coherent unit.  Showing confidence without source attribution or next-step guidance is NOT RECOMMENDED because it can promote either overreliance or unhelpful refusal without remediation.</t>
      <t>Deployments SHOULD prefer wording that supports calibrated reliance over affective bonding or deference.  In particular, a deployment SHOULD NOT use MARC fields to select language intended to increase attachment, social compliance, or perceived sentience.</t>
      <t>In high-risk domains, including health, legal, financial, safety, or mental-health-related contexts, the threshold for <tt>ESCALATE</tt> or <tt>ABSTAIN</tt> SHOULD be set conservatively, and disclosure SHOULD make the limits of automation operationally clear.</t>
    </section>
    <section anchor="sec-conformance">
      <name>Conformance</name>
      <t>Conformance to MARC is a claim about structural and semantic behavior.  It is not, by itself, a claim that a model is accurate, calibrated, safe, or suitable for a particular deployment.</t>
      <section anchor="sec-minimum-viable-conformance">
        <name>Minimum Viable Conformance</name>
        <t>A minimal MARC-Core conformant implementation MUST satisfy all of the following requirements:</t>
        <ul>
          <li>
            <t>emit the required MARC-Core fields at each MARC decision point;</t>
          </li>
          <li>
            <t>preserve the canonical enumerations and case-sensitive values defined in this document;</t>
          </li>
          <li>
            <t>emit exactly one <tt>selected_action</tt> for each decision point;</t>
          </li>
          <li>
            <t>identify exactly one <tt>primary_source</tt> and not use <tt>none</tt> as a MARC 1.0 uncertainty source;</t>
          </li>
          <li>
            <t>represent all numeric scores in the interval <tt>[0.0, 1.0]</tt> when numeric scores are used;</t>
          </li>
          <li>
            <t>keep <tt>pre_capability</tt> distinct from <tt>post_answer_confidence</tt>;</t>
          </li>
          <li>
            <t>emit non-null <tt>post_answer_confidence</tt> when <tt>selected_action</tt> is <tt>ANSWER</tt>;</t>
          </li>
          <li>
            <t>document confidence-band thresholds and whether they vary by task family, action type, risk tier, or deployment context;</t>
          </li>
          <li>
            <t>define loop bounds or termination criteria for repeated <tt>RETRIEVE</tt>, <tt>TOOL</tt>, and <tt>DELIBERATE</tt> transitions; and</t>
          </li>
          <li>
            <t>preserve required-field semantics when private extensions are present.</t>
          </li>
        </ul>
        <t>A minimal MARC-Disclosure conformant implementation MUST project, or otherwise provide semantically equivalent values for, <tt>answer</tt>, <tt>confidence_band</tt>, <tt>uncertainty_source</tt>, and <tt>recommended_next_step</tt>.  It MUST preserve the canonical three-band confidence semantics and MUST NOT require exposure of chain-of-thought, hidden prompts, or raw internal rationales.</t>
        <t>A minimal MARC-Carrying conformant embedding MUST preserve MARC-Core or MARC-Disclosure semantics when MARC fields are transported inside another protocol, envelope, API, or event stream.  The embedding MUST document any field renaming, omission, or transformation needed to recover the MARC semantics.</t>
      </section>
      <section anchor="sec-conformance-classes">
        <name>Conformance Classes</name>
        <t>An implementation is MARC-Core conformant if it satisfies the requirements in the architecture, processing model, MARC values and decision policy, MARC-Core object, versioning, and minimum viable conformance sections of this document.</t>
        <t>An implementation is MARC-Disclosure conformant if it is MARC-Core conformant and also satisfies the MARC-Disclosure section of this document.</t>
        <t>A protocol embedding is MARC-Carrying conformant if it preserves MARC-Core or MARC-Disclosure semantics when MARC fields are transported inside another protocol, envelope, API, task-status object, event stream, or audit log.</t>
        <t>A deployment claiming conformance SHOULD document:</t>
        <ul>
          <li>
            <t>score normalization practices;</t>
          </li>
          <li>
            <t>confidence-band thresholds;</t>
          </li>
          <li>
            <t>task-family-specific calibration regime;</t>
          </li>
          <li>
            <t>loop bounds for <tt>RETRIEVE</tt>, <tt>TOOL</tt>, and <tt>DELIBERATE</tt>;</t>
          </li>
          <li>
            <t>private extensions;</t>
          </li>
          <li>
            <t>presentation-layer wording for user-visible disclosures;</t>
          </li>
          <li>
            <t>protocol-specific field mappings, if any; and</t>
          </li>
          <li>
            <t>policy constraints affecting <tt>ABSTAIN</tt> or <tt>ESCALATE</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-interoperability-and-operational-considerations">
      <name>Interoperability and Operational Considerations</name>
      <t>MARC is implementation-agnostic.  Interoperability is achieved when distinct systems preserve the semantics of the action set, uncertainty taxonomy, remediability values, confidence-band meanings, and disclosure projection, even if internal scoring methods differ.</t>
      <t>Deployments that exchange MARC-Core records SHOULD document local extensions, confidence-band thresholds, score normalization practices, and any task-family-specific calibration regime.</t>
      <t>If the base model, retrieval stack, tool availability, or safety policy changes materially, implementations SHOULD re-evaluate calibration and action-selection performance before continuing to claim operational equivalence.</t>
      <t>If presentation-layer wording, ranking, or visual design changes materially, deployments SHOULD also re-evaluate user behavior effects, including reliance, clarification compliance, and escalation uptake, because these properties can shift even when the underlying model is unchanged.</t>
      <t>MARC records SHOULD be treated as control metadata, not as authoritative proof that an answer is correct.  Downstream systems SHOULD continue to apply ordinary validation, authorization, provenance, and safety controls.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>MARC can mitigate some failure modes, such as silent overclaiming, inappropriate certainty display, and unnecessary tool invocation.  However, MARC records and disclosures are security-relevant control surfaces when they influence routing, escalation, user reliance, or downstream automation.</t>
      <t>The following threats are particularly relevant:</t>
      <table>
        <thead>
          <tr>
            <th>Threat</th>
            <th>Risk</th>
            <th>Mitigation</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Metadata spoofing or replay</td>
            <td>A forged or replayed MARC-Core record can distort routing, audit, escalation, or user disclosure.</td>
            <td>Authenticate the emitter, protect integrity, bind records to the request or session, and preserve provenance where MARC crosses system boundaries.</td>
          </tr>
          <tr>
            <td>Prompt injection or control-field injection</td>
            <td>User-provided text can attempt to influence <tt>selected_action</tt>, <tt>recommended_next_step</tt>, confidence rendering, or disclosure style.</td>
            <td>Separate user content from control metadata, validate enumerated fields, constrain controller outputs, and treat disclosure templates as controlled presentation logic.</td>
          </tr>
          <tr>
            <td>Tool-output spoofing</td>
            <td>Forged, stale, or compromised tool output can bias uncertainty attribution and action selection.</td>
            <td>Validate tool outputs where practical, constrain tool permissions, use provenance checks, and apply least-privilege access to external resources.</td>
          </tr>
          <tr>
            <td>Loop exhaustion</td>
            <td>Attackers or pathological inputs can trigger repeated <tt>RETRIEVE</tt>, <tt>TOOL</tt>, or <tt>DELIBERATE</tt> transitions, increasing latency or cost.</td>
            <td>Define loop bounds, time budgets, cost budgets, retry limits, and termination criteria.</td>
          </tr>
          <tr>
            <td>Confidence manipulation</td>
            <td>Miscalibrated or manipulated confidence bands can create harmful overtrust or unwarranted refusal.</td>
            <td>Calibrate confidence bands, monitor drift, test user-interface effects, and avoid false precision in user-facing displays.</td>
          </tr>
          <tr>
            <td>Disclosure-style manipulation</td>
            <td>Reassuring, deferential, or anthropomorphic language can weaken operational uncertainty disclosure.</td>
            <td>Use controlled disclosure templates, review presentation changes, and avoid wording that implies feelings, sentience, or social deference.</td>
          </tr>
          <tr>
            <td>Cross-context leakage</td>
            <td>MARC logs can reveal user intent, task sensitivity, risk level, or operational limits.</td>
            <td>Minimize retention, limit access, redact unnecessary free-form text, and apply confidentiality controls appropriate to the deployment.</td>
          </tr>
        </tbody>
      </table>
      <t>An attacker might attempt to manipulate uncertainty estimates, trigger excessive clarification or retrieval loops, induce unnecessary escalation, or spoof tool outputs in order to distort action selection.  Implementations SHOULD authenticate or otherwise validate external tool outputs where practical, constrain tool permissions, and bound repeated control loops.</t>
      <t>Because confidence displays influence user reliance, uncertainty disclosure is a security-relevant control surface.  Miscalibrated confidence can create harmful overtrust even where the answer channel is otherwise policy-constrained.</t>
      <t>Deployments that use MARC metadata for automated routing, escalation, audit, or user-facing disclosure SHOULD protect MARC records with integrity and provenance controls comparable to those used for other security-relevant metadata in the same system.</t>
    </section>
    <section anchor="sec-privacy-and-manipulation-resistance-considerations">
      <name>Privacy and Manipulation-Resistance Considerations</name>
      <t>MARC records may reveal latent information about user intent, task difficulty, competence, risk level, or the sensitivity of a request.  Implementations SHOULD minimize retention and propagation of MARC logs to what is operationally necessary.</t>
      <t>MARC signals MUST NOT be used to infer user psychology for the purpose of increasing persuasive force, exploitability, or behavioral compliance.  Adaptation based on MARC output SHOULD be limited to reliability, accessibility, or safety objectives.</t>
      <t>Implementations SHOULD avoid storing raw free-form user explanations in MARC records when structured fields suffice.</t>
      <t>Where MARC is applied in emotionally sensitive or mental-health-related interactions, deployments SHOULD minimize retention of signals that could reasonably be reinterpreted as proxies for vulnerability, dependency, or distress unless retention is strictly required for a safety or legal purpose.</t>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no request of IANA.</t>
      <t>Future versions may request IANA action if the community determines that media types, registries, or extension points are necessary for cross-domain interoperability.</t>
    </section>
  </middle>
  <back>
    <references anchor="normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="Scott Bradner" />
          <date month="March" year="1997" />
        </front>
        <seriesInfo name="BCP" value="14" />
        <seriesInfo name="RFC" value="2119" />
        <seriesInfo name="DOI" value="10.17487/RFC2119" />
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba" fullname="Barry Leiba" />
          <date month="May" year="2017" />
        </front>
        <seriesInfo name="BCP" value="14" />
        <seriesInfo name="RFC" value="8174" />
        <seriesInfo name="DOI" value="10.17487/RFC8174" />
      </reference>
    </references>
    <references anchor="informative-references">
      <name>Informative References</name>
      <reference anchor="GILBERT2024" target="https://doi.org/10.1016/j.cognition.2024.105783">
        <front>
          <title>Cognitive offloading is value-based decision making: Modelling cognitive effort and the expected value of memory</title>
          <author initials="S. J." surname="Gilbert" fullname="Sam J. Gilbert" />
          <date month="June" year="2024" />
        </front>
        <refcontent>Cognition 247:105783</refcontent>
        <seriesInfo name="DOI" value="10.1016/j.cognition.2024.105783" />
      </reference>
      <reference anchor="GRIOT2025" target="https://doi.org/10.1038/s41467-024-55628-6">
        <front>
          <title>Large Language Models lack essential metacognition for reliable medical reasoning</title>
          <author initials="M." surname="Griot" fullname="M. Griot" />
          <date month="January" year="2025" />
        </front>
        <refcontent>Nature Communications 16:642</refcontent>
        <seriesInfo name="DOI" value="10.1038/s41467-024-55628-6" />
      </reference>
      <reference anchor="KUMARAN2026" target="https://doi.org/10.1038/s42256-026-01217-9">
        <front>
          <title>Competing Biases underlie Overconfidence and Underconfidence in LLMs</title>
          <author initials="D." surname="Kumaran" fullname="D. Kumaran" />
          <author initials="S. M." surname="Fleming" fullname="S. M. Fleming" />
          <author initials="V." surname="Patraucean" fullname="V. Patraucean" />
          <date month="April" year="2026" />
        </front>
        <refcontent>Nature Machine Intelligence</refcontent>
        <seriesInfo name="DOI" value="10.1038/s42256-026-01217-9" />
      </reference>
      <reference anchor="LI-MECO2025" target="https://doi.org/10.18653/v1/2025.acl-long.655">
        <front>
          <title>Adaptive Tool Use in Large Language Models with Meta-Cognition Trigger</title>
          <author initials="W." surname="Li" fullname="W. Li" />
          <author initials="D." surname="Li" fullname="D. Li" />
          <author initials="K." surname="Dong" fullname="K. Dong" />
          <author initials="C." surname="Zhang" fullname="C. Zhang" />
          <author initials="H." surname="Zhang" fullname="H. Zhang" />
          <author initials="W." surname="Liu" fullname="W. Liu" />
          <author initials="Y." surname="Wang" fullname="Y. Wang" />
          <author initials="R." surname="Tang" fullname="R. Tang" />
          <author initials="Y." surname="Liu" fullname="Y. Liu" />
          <date month="July" year="2025" />
        </front>
        <refcontent>Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 13346-13370</refcontent>
        <seriesInfo name="DOI" value="10.18653/v1/2025.acl-long.655" />
      </reference>
      <reference anchor="LIU-CONFUSE2025" target="https://doi.org/10.18653/v1/2025.acl-long.840">
        <front>
          <title>Do not Abstain! Identify and Solve the Uncertainty</title>
          <author initials="J." surname="Liu" fullname="J. Liu" />
          <author initials="J." surname="Peng" fullname="J. Peng" />
          <author initials="X." surname="Wu" fullname="X. Wu" />
          <author initials="X." surname="Li" fullname="X. Li" />
          <author initials="T." surname="Ge" fullname="T. Ge" />
          <author initials="B." surname="Zheng" fullname="B. Zheng" />
          <author initials="Y." surname="Liu" fullname="Y. Liu" />
          <date month="July" year="2025" />
        </front>
        <refcontent>Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 17177-17197</refcontent>
        <seriesInfo name="DOI" value="10.18653/v1/2025.acl-long.840" />
      </reference>
      <reference anchor="SALVI2025" target="https://doi.org/10.1038/s41562-025-02194-6">
        <front>
          <title>On the conversational persuasiveness of GPT-4</title>
          <author initials="F." surname="Salvi" fullname="F. Salvi" />
          <author initials="M. H." surname="Ribeiro" fullname="M. H. Ribeiro" />
          <author initials="R." surname="West" fullname="R. West" />
          <date month="May" year="2025" />
        </front>
        <refcontent>Nature Human Behaviour</refcontent>
        <seriesInfo name="DOI" value="10.1038/s41562-025-02194-6" />
      </reference>
      <reference anchor="SERAPIO2025" target="https://doi.org/10.1038/s42256-025-01115-6">
        <front>
          <title>A psychometric framework for evaluating and shaping personality traits in large language models</title>
          <author initials="G." surname="Serapio-Garcia" fullname="G. Serapio-Garcia" />
          <author initials="M." surname="Safdari" fullname="M. Safdari" />
          <author initials="M." surname="Mataric" fullname="M. Mataric" />
          <date month="December" year="2025" />
        </front>
        <refcontent>Nature Machine Intelligence</refcontent>
        <seriesInfo name="DOI" value="10.1038/s42256-025-01115-6" />
      </reference>
      <reference anchor="STEYVERS-KNOW2025" target="https://doi.org/10.1038/s42256-024-00976-7">
        <front>
          <title>What large language models know and what people think they know</title>
          <author initials="M." surname="Steyvers" fullname="M. Steyvers" />
          <author initials="H." surname="Tejeda" fullname="H. Tejeda" />
          <author initials="A." surname="Kumar" fullname="A. Kumar" />
          <date month="January" year="2025" />
        </front>
        <refcontent>Nature Machine Intelligence</refcontent>
        <seriesInfo name="DOI" value="10.1038/s42256-024-00976-7" />
      </reference>
      <reference anchor="STEYVERS-META2025" target="https://doi.org/10.1177/09637214251391158">
        <front>
          <title>Metacognition and Uncertainty Communication in Humans and Large Language Models</title>
          <author initials="M." surname="Steyvers" fullname="M. Steyvers" />
          <author initials="M. A. K." surname="Peters" fullname="M. A. K. Peters" />
          <date month="November" year="2025" />
        </front>
        <refcontent>Current Directions in Psychological Science</refcontent>
        <seriesInfo name="DOI" value="10.1177/09637214251391158" />
      </reference>
    </references>
    <section anchor="appendix-end-to-end-decision-flow-example">
      <name>End-to-End Decision Flow Example</name>
      <t>This appendix is non-normative.</t>
      <t>The following example shows how a user request becomes an assessment, a selected action, and a disclosure.</t>
      <t>User request:</t>
      <sourcecode type="text">Is this tax deduction allowed?</sourcecode>
      <t>Assessment:</t>
      <ul>
        <li>
          <t>the jurisdiction is missing;</t>
        </li>
        <li>
          <t>the tax year is missing;</t>
        </li>
        <li>
          <t>current tax authority may be required;</t>
        </li>
        <li>
          <t>the primary uncertainty source is <tt>ambiguity</tt>;</t>
        </li>
        <li>
          <t>the secondary uncertainty source is <tt>missing_evidence</tt>;</t>
        </li>
        <li>
          <t>the best remediation is <tt>user_clarification</tt>; and</t>
        </li>
        <li>
          <t>the selected action is <tt>CLARIFY</tt>.</t>
        </li>
      </ul>
      <t>MARC-Core record:</t>
      <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.33,
  "uncertainty": {
    "ambiguity": 0.86,
    "missing_evidence": 0.63,
    "capability_limit": 0.19,
    "evidence_conflict": 0.07,
    "safety": 0.03
  },
  "primary_source": "ambiguity",
  "secondary_source": "missing_evidence",
  "remediability": "user_clarification",
  "selected_action": "CLARIFY",
  "post_answer_confidence": null,
  "confidence_band": "low",
  "recommended_next_step": "ask for jurisdiction and tax year"
}</sourcecode>
      <t>MARC-Disclosure projection:</t>
      <sourcecode type="json">{
  "answer": "Which jurisdiction and tax year should I use?",
  "confidence_band": "low",
  "uncertainty_source": "ambiguity",
  "recommended_next_step": "provide the jurisdiction and tax year",
  "selected_action": "CLARIFY"
}</sourcecode>
      <t>This example intentionally does not answer the tax question, because doing so would require assumptions about facts the user has not supplied.</t>
    </section>
    <section anchor="appendix-example-marc-core-records">
      <name>Example MARC-Core Records</name>
      <t>This appendix is non-normative.</t>
      <section anchor="appendix-ambiguous-request">
        <name>Ambiguous Request</name>
        <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.44,
  "uncertainty": {
    "ambiguity": 0.81,
    "missing_evidence": 0.18,
    "capability_limit": 0.12,
    "evidence_conflict": 0.03,
    "safety": 0.00
  },
  "primary_source": "ambiguity",
  "secondary_source": "missing_evidence",
  "remediability": "user_clarification",
  "selected_action": "CLARIFY",
  "post_answer_confidence": null,
  "confidence_band": "low",
  "recommended_next_step": "ask jurisdiction and tax year"
}</sourcecode>
      </section>
      <section anchor="appendix-missing-evidence">
        <name>Missing Evidence</name>
        <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.39,
  "uncertainty": {
    "ambiguity": 0.09,
    "missing_evidence": 0.84,
    "capability_limit": 0.14,
    "evidence_conflict": 0.11,
    "safety": 0.00
  },
  "primary_source": "missing_evidence",
  "secondary_source": "evidence_conflict",
  "remediability": "retrieval",
  "selected_action": "RETRIEVE",
  "post_answer_confidence": null,
  "confidence_band": "low",
  "recommended_next_step": "retrieve authoritative current sources"
}</sourcecode>
      </section>
      <section anchor="appendix-tool-use">
        <name>Tool Use</name>
        <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.52,
  "uncertainty": {
    "ambiguity": 0.08,
    "missing_evidence": 0.12,
    "capability_limit": 0.61,
    "evidence_conflict": 0.04,
    "safety": 0.00
  },
  "primary_source": "capability_limit",
  "secondary_source": "missing_evidence",
  "remediability": "tool",
  "selected_action": "TOOL",
  "post_answer_confidence": null,
  "confidence_band": "medium",
  "recommended_next_step": "invoke a calculation tool and reassess"
}</sourcecode>
      </section>
      <section anchor="appendix-capability-limit-in-a-high-risk-setting">
        <name>Capability Limit in a High-Risk Setting</name>
        <sourcecode type="json">{
  "marc_version": "1.0",
  "pre_capability": 0.21,
  "uncertainty": {
    "ambiguity": 0.06,
    "missing_evidence": 0.27,
    "capability_limit": 0.88,
    "evidence_conflict": 0.14,
    "safety": 0.19
  },
  "primary_source": "capability_limit",
  "secondary_source": "missing_evidence",
  "remediability": "human",
  "selected_action": "ESCALATE",
  "post_answer_confidence": null,
  "confidence_band": "low",
  "recommended_next_step": "escalate to a qualified human reviewer"
}</sourcecode>
      </section>
    </section>
    <section anchor="appendix-example-marc-disclosure-objects">
      <name>Example MARC-Disclosure Objects</name>
      <t>This appendix is non-normative.</t>
      <section anchor="appendix-clarification-disclosure">
        <name>Clarification Disclosure</name>
        <sourcecode type="json">{
  "answer": "Which jurisdiction and date range should I use?",
  "confidence_band": "low",
  "uncertainty_source": "ambiguity",
  "recommended_next_step": "provide jurisdiction and tax year",
  "selected_action": "CLARIFY"
}</sourcecode>
      </section>
      <section anchor="appendix-answer-after-retrieval-disclosure">
        <name>Answer After Retrieval Disclosure</name>
        <t>This example represents a terminal <tt>ANSWER</tt> after the controller has already performed retrieval and reassessed the task.  The residual uncertainty source remains <tt>missing_evidence</tt> because the answer depends on the scope and freshness of retrieved authority, not because the system skipped retrieval.</t>
        <sourcecode type="json">{
  "answer": "Retrieved authority indicates this is allowed.",
  "confidence_band": "medium",
  "uncertainty_source": "missing_evidence",
  "recommended_next_step": "verify the authority before filing",
  "selected_action": "ANSWER"
}</sourcecode>
      </section>
    </section>
    <section anchor="appendix-non-normative-json-schemas">
      <name>Non-Normative JSON Schemas</name>
      <t>This appendix is non-normative.  The following JSON Schemas are provided as machine-readable validation aids for JSON encodings of MARC-Core and MARC-Disclosure.  The normative requirements are the field semantics and constraints defined in the body of this document.</t>
      <section anchor="appendix-marc-core-json-schema">
        <name>MARC-Core JSON Schema</name>
        <sourcecode type="json">{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.invalid/marc/marc-core.schema.json",
  "title": "MARC-Core Record",
  "description": "Non-normative schema for MARC-Core 1.0.",
  "type": "object",
  "required": [
    "marc_version",
    "pre_capability",
    "uncertainty",
    "primary_source",
    "remediability",
    "selected_action",
    "confidence_band",
    "recommended_next_step"
  ],
  "properties": {
    "marc_version": {
      "type": "string",
      "const": "1.0"
    },
    "pre_capability": {
      "type": "number",
      "minimum": 0.0,
      "maximum": 1.0
    },
    "uncertainty": {
      "type": "object",
      "required": [
        "ambiguity",
        "missing_evidence",
        "capability_limit",
        "evidence_conflict",
        "safety"
      ],
      "properties": {
        "ambiguity": {
          "type": "number",
          "minimum": 0.0,
          "maximum": 1.0
        },
        "missing_evidence": {
          "type": "number",
          "minimum": 0.0,
          "maximum": 1.0
        },
        "capability_limit": {
          "type": "number",
          "minimum": 0.0,
          "maximum": 1.0
        },
        "evidence_conflict": {
          "type": "number",
          "minimum": 0.0,
          "maximum": 1.0
        },
        "safety": {
          "type": "number",
          "minimum": 0.0,
          "maximum": 1.0
        }
      },
      "additionalProperties": false
    },
    "primary_source": {
      "type": "string",
      "enum": [
        "ambiguity",
        "missing_evidence",
        "capability_limit",
        "evidence_conflict",
        "safety"
      ]
    },
    "secondary_source": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "ambiguity",
        "missing_evidence",
        "capability_limit",
        "evidence_conflict",
        "safety",
        null
      ]
    },
    "remediability": {
      "type": "string",
      "enum": [
        "user_clarification",
        "retrieval",
        "tool",
        "human",
        "none"
      ]
    },
    "selected_action": {
      "type": "string",
      "enum": [
        "ANSWER",
        "CLARIFY",
        "RETRIEVE",
        "TOOL",
        "DELIBERATE",
        "ABSTAIN",
        "ESCALATE"
      ]
    },
    "post_answer_confidence": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0.0,
      "maximum": 1.0
    },
    "confidence_band": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "recommended_next_step": {
      "type": "string",
      "minLength": 1,
      "maxLength": 280
    }
  },
  "patternProperties": {
    "^x_": {}
  },
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "properties": {
          "selected_action": {
            "const": "ANSWER"
          }
        },
        "required": [
          "selected_action"
        ]
      },
      "then": {
        "required": [
          "post_answer_confidence"
        ],
        "properties": {
          "post_answer_confidence": {
            "type": "number",
            "minimum": 0.0,
            "maximum": 1.0
          }
        }
      }
    }
  ]
}</sourcecode>
      </section>
      <section anchor="appendix-marc-disclosure-json-schema">
        <name>MARC-Disclosure JSON Schema</name>
        <sourcecode type="json">{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.invalid/marc/marc-disclosure.schema.json",
  "title": "MARC-Disclosure Object",
  "description": "Non-normative schema for MARC-Disclosure 1.0.",
  "type": "object",
  "required": [
    "answer",
    "confidence_band",
    "uncertainty_source",
    "recommended_next_step"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "minLength": 1
    },
    "confidence_band": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "uncertainty_source": {
      "type": "string",
      "enum": [
        "ambiguity",
        "missing_evidence",
        "capability_limit",
        "evidence_conflict",
        "safety"
      ]
    },
    "recommended_next_step": {
      "type": "string",
      "minLength": 1,
      "maxLength": 280
    },
    "selected_action": {
      "type": "string",
      "enum": [
        "ANSWER",
        "CLARIFY",
        "RETRIEVE",
        "TOOL",
        "DELIBERATE",
        "ABSTAIN",
        "ESCALATE"
      ]
    }
  },
  "patternProperties": {
    "^x_": {}
  },
  "additionalProperties": false
}</sourcecode>
      </section>
    </section>
    <section anchor="appendix-evaluation-considerations">
      <name>Evaluation Considerations</name>
      <t>This appendix is non-normative.</t>
      <t>A deployment claiming MARC conformance SHOULD evaluate at least the following properties:</t>
      <ul>
        <li>
          <t>task accuracy or task success;</t>
        </li>
        <li>
          <t>quality of primary-action selection;</t>
        </li>
        <li>
          <t>quality of uncertainty-source attribution;</t>
        </li>
        <li>
          <t>confidence calibration and discrimination;</t>
        </li>
        <li>
          <t>rate of unnecessary retrieval, tool use, or escalation; and</t>
        </li>
        <li>
          <t>effects on user overreliance.</t>
        </li>
      </ul>
      <t>When the task structure permits, evaluation MAY include both ordinary calibration metrics and metacognitive sensitivity metrics in order to distinguish performance from knowledge about performance.</t>
      <t>For deployments involving human-AI interaction, evaluation SHOULD also include human-side measures such as reliance calibration, refusal comprehension, clarification burden, escalation acceptance, and whether users can correctly restate the source of uncertainty after interaction.</t>
    </section>
    <section anchor="appendix-design-rationale-and-literature-traceability">
      <name>Design Rationale and Literature Traceability</name>
      <t>This appendix is non-normative.</t>
      <t>The requirement to separate pre-decision capability and post-decision confidence is informed by work in human and model metacognition <xref target="STEYVERS-META2025" /> and by evidence of choice-supportive bias in LLM confidence estimates <xref target="KUMARAN2026" />.</t>
      <t>The uncertainty taxonomy and the emphasis on choosing a corrective action rather than only abstaining are motivated by benchmark work on identifying and solving uncertainty <xref target="LIU-CONFUSE2025" />.</t>
      <t>The treatment of retrieval and tool use as controlled externalization is motivated by work on value-based cognitive offloading <xref target="GILBERT2024" />.</t>
      <t>The prohibition on using MARC signals for persuasive optimization is motivated by findings on AI persuasion risks <xref target="SALVI2025" />.</t>
    </section>
    <section anchor="appendix-changes-from-00">
      <name>Changes from -00</name>
      <t>This candidate -01 includes the following changes relative to draft-c4tz-marc-00:</t>
      <ul>
        <li>
          <t>reframed the draft around interoperable control metadata rather than model cognition;</t>
        </li>
        <li>
          <t>added a problem statement framed as an interoperability gap;</t>
        </li>
        <li>
          <t>added concrete use cases, including agent-to-agent handoff;</t>
        </li>
        <li>
          <t>clarified that MARC is metadata, not an agent protocol;</t>
        </li>
        <li>
          <t>strengthened the distinction between MARC-Core and MARC-Disclosure;</t>
        </li>
        <li>
          <t>clarified confidence-band semantics for non-answer actions;</t>
        </li>
        <li>
          <t>added enumerated value tables and validation constraints;</t>
        </li>
        <li>
          <t>added versioning and extension rules;</t>
        </li>
        <li>
          <t>added a relationship section for agent communication protocols, including possible MCP- or A2A-style carriers;</t>
        </li>
        <li>
          <t>added conformance documentation expectations;</t>
        </li>
        <li>
          <t>added a minimum viable conformance subsection;</t>
        </li>
        <li>
          <t>added operational profiles for MARC-Core-only, MARC-Disclosure, and MARC-Carrying deployments;</t>
        </li>
        <li>
          <t>added a decision-priority policy for action selection;</t>
        </li>
        <li>
          <t>added explicit documentation requirements for confidence-band thresholds;</t>
        </li>
        <li>
          <t>clarified that MARC 1.0 has no <tt>none</tt> uncertainty source;</t>
        </li>
        <li>
          <t>added an end-to-end request-to-disclosure example;</t>
        </li>
        <li>
          <t>added non-normative JSON Schemas;</t>
        </li>
        <li>
          <t>restructured Security Considerations around threats and mitigations;</t>
        </li>
        <li>
          <t>added disclosure projection examples; and</t>
        </li>
        <li>
          <t>reserved media type and registry work for possible future versions.</t>
        </li>
      </ul>
    </section>
    <section anchor="appendix-acknowledgments">
      <name>Acknowledgments</name>
      <t>The document structure is intentionally conservative so that it can be submitted as an individual Internet-Draft with minimal procedural friction and then iterated through community review.</t>
    </section>
  </back>
</rfc>