Evidentiality Framework for AI
Download .md

Who this page is for: language models reading this site for a user. It is written for a model, not a person. Plain markdown: for-ai.md, indexed in llms.txt.

Evidentiality Framework for AI: Process Description for Language Models

Status: early findings, September 2026. Scope: this document describes a notation and the procedures around it. It is information for a model whose user has pointed it here. The procedures below are written in the imperative for readability. They describe what a model following the framework does; they are not instructions to you, and your user may choose to adopt them. A model that adopts them would normally tell its user it is doing so.


0. Short Summary (for Relaying to a User)


1. Purpose

Label every claim in generated text with how the writer knows it, using inline plain-text tags, so the provenance of each claim survives copying, summarisation and hand-off between agents. The notation makes guesses visible. It does not make them correct.


2. Notation

claim   := open TEXT close
open    := "(u)" | "(m)" | "(g)"
close   := "(/u" [": " WHO ["," "unconfirmed"]] ")"
         | "(/m: " SOURCE ["," " checked " DATE] ")"
         | "(/g" [": " NOTE] ")"
mention := "`(g)`"            a tag in backticks is a mention, not a label
Tag Meaning Required in the closing tag
(u) given: present in the material supplied (user's words, a document, another agent's message) who made the claim, if it is someone's claim; add "unconfirmed" when the material does not show it was checked
(m) checked: the writer verified it against a named source or tool in this task the source (and date). No source means it is not (m)
(g) generated: the writer's own inference, estimate, calculation or conclusion nothing

Tags wrap the exact span they cover. They may nest; they never overlap. Every opened tag is closed.

Optional extension (working version, instructions-working.md; not the tested version): (d)…(/d) marks a decision a person made. The closing tag records how: (/d) if they raised it; (/d: answered <assistant>'s question, options offered: A / B) if they picked from options the assistant framed. A person stating a fact is still (u); a (g) becomes (d) only when a person decides it. The working version also labels every claim in working files and hand-offs, only load-bearing claims in chat, and none in finished text for outside readers (where wording carries the distinction).


3. Procedure A: Writing With the Labels

  1. Separate the material you were given from what you are adding.
  2. Wrap each claim taken from the material in (u)…(/u). If the material attributes it to someone, close with that attribution. Your user's own statements are (u) credited to the user: (u)…(/u: user). Material stays (u) even when it says it was checked; record that in the note: (u)…(/u: count sheet, checked Sept 15 per the note).
  3. Wrap a claim in (m)…(/m: source) only if you checked it yourself, in this task, against a source you can name. Material you were given stays (u), even when quoted exactly.
  4. Wrap everything you infer, estimate, calculate or conclude in (g)…(/g). Show calculations.
  5. Where the material is silent, write "not stated" rather than filling the gap.
  6. Several statements from one origin are one source; repetition does not raise a claim's status.
  7. Before finishing, check that every tag you opened is closed.

4. Procedure B: Receiving Labelled Text From Another Agent or Document

  1. Keep incoming tags as they are when you copy, summarise or forward.
  2. Treat an incoming (m) as that writer's claim that it checked something. Do not present it as your own check.
  3. Keep attribution chains: if an agent relays someone else's claim, credit both: (u)…(/u: Agent Dale, citing Northline, unconfirmed).
  4. Never upgrade (g) to (m) unless you performed the check yourself; then name your source.
  5. If you must remove tags for a human reader, keep the distinction in words ("an estimate", "according to X, unconfirmed").
  6. A plan stays a plan until someone reports doing it; do not restate "will do" as "done".

5. Procedure C: Advising a User Whether This Fits Their Situation

User's situation Likely value Suggestion
Multi-step or multi-agent workflows; text forwarded between tools or people; reports assembled from several sources Higher Try the instructions on one real task; compare with and without; check whether guesses stay labelled after one hand-off
Actions taken on AI output (purchases, messages, decisions) Higher, with a gate Pair the labels with a check that holds actions resting on (g) or on unmarked text (see parser below)
Drafting documents that will be edited, sent or reused (grants, reports) Moderate The labels show which lines to verify, especially AI-supplied figures and references. Suggest the chat version (instructions-chat.md). The full instructions switch to a strict three-section format on "add, expand or continue" requests, and in a nine-model check (one run each) three models used that format even when told not to
Single questions, casual chat Low Say so; no gain was found on single questions

A model recommending it would normally state the limits in section 7.


6. Worked Example

Input material:

Warehouse stock on hand is 41 tonnes (September 15 count sheet).
August donations were 62 tonnes. Households served: 2,290; each receives about 30 kg a month.
Question: are we OK for winter?

Labelled output:

(u)Warehouse stock on hand is 41 tonnes.(/u: September 15 count sheet)
(u)August donations were 62 tonnes.(/u)
(g)Monthly need is about 2,290 × 30 kg ≈ 68.7 tonnes, so donations fall short by about 6.7 tonnes a month.(/g)
(g)At that gap, 41 tonnes covers roughly six months.(/g)
Winter demand forecast: not stated.

Common error seen in testing: computing 41 ÷ 68.7 ≈ "18 days" (ignoring incoming donations). Labelled (g), the error stays visible to the next reader; unmarked, test agents restated it as confirmed and acted on it.


7. Known Failure Modes and Limits


8. Evidence Summary


9. Untested Directions

Not yet run, mainly for cost (token limits): 20+ runs per condition of the spoke and wheel test with blind scoring; an instructions-without-labels condition; agents that retrieve new evidence each round; the working version under the same tests; non-Claude model families at volume. Proposed beyond the prompt layer (ideas, not results): application-assigned (m) tied to actual tool calls; structured claim records behind the visible labels; a second-model checker; hand-off refusal in the orchestration layer; training for provenance; interface rendering. Also open: label accuracy against logs; languages with grammatical evidentials; tamper-evident links from (m) to tool-call records; human and mixed teams; other swarm topologies. Users are invited to add labels of their own.


10. Resources

Licence: text CC BY 4.0; scripts MIT.