Recording by Provenance
An agent writes observed facts, claims made by sources, and its own inferences in the same style. Put them in one container and the next reader cannot tell them apart — and that next reader is often another agent.
Problem
When an agent researches and writes a record, every sentence arrives with the same face. A line actually present in a log, a sentence in official documentation, and the model's “this is probably so” sit beside one another as indistinguishable assertions. The writer is not lying; the style simply has no habit of marking provenance.
The problem appears weeks later, when the record is read again. No one can tell which parts were verified facts and which were unverified guesses. So all of them are treated as facts. An unverified sentence becomes a premise for the next decision.
Usually another agent does that rereading. Agents do not doubt a record: they read what is written and write their next work from it. An inference mixed in once is thereby promoted to fact over time. Nobody lies, while the record's reliability quietly declines.
“Write carefully” cannot stop this. A measure that demands discipline from the writer breaks first when the writer is tired, hurried, or an agent.
Context
Apply when:
- The record will be reread later — a disposable, one-time note does not need provenance; only a persistent record earns that rent
- The writer and reader differ (including across time) — memory supplements something you write and read today; your self three months later is someone else
- An agent will read the record to make its next decision — a human can reserve judgment with “this is suspicious,” while an agent treats what is written as a premise
- Claims have different weight by provenance — if observation, hearsay, and inference can properly have equal weight, there is no need to separate them
Do not apply when:
- The record has only one provenance. A raw-log or measurement list whose entries all originate the same way gains nothing from separate fields
- Freshness dominates provenance. Adding fields to a work note discarded in minutes merely pays rent
- Truth can be decided mechanically. A test, not a field in a record, decides whether it passes (see Separating Mechanical Gates from Semantic Gates)
Boundaries with adjacent patterns:
- Failure as Institutional Memory decides what to retain; this pattern decides how to preserve distinctions when retaining it. That page implements this pattern by separating observations from the auditor's judgment by section
- Making the Output Contract Explicit specifies output shape (length and grain). Separating provenance concerns attribution of content, a different axis
- Making the Verification Target Explicit decides what to verify. This pattern makes a record show what has already been verified and what has not
- Diff Review and Incremental Adoption decides how a human receives an artifact. This pattern is how that artifact is put into a record afterward
Solution
Why it works: provenance cannot be reconstructed from content. “The build finished in 3 minutes 12 seconds” does not say whether it is a measurement, someone's recollection, or a model estimate. Information that cannot be reconstructed must be put in a field when it is written; later it is already lost.
The remedy is therefore placement, not attention: headings, columns, or labels all work, provided that writing content also determines its provenance. Put it in an inference field and it remains an inference even if the writer never consciously labels it so. Put discipline in structure, not in a person or agent.
Split fields by how they can be checked: what you observed (measure again), what a source says (consult it), inference (requires an experiment), and judgment (a choice rather than a true-or-false claim). Do not put things checked differently in the same field. That alone says what requires later verification.
There is another field easily missed: “looked, but did not find it.” This is neither inference nor fact; it reports a checked range and says almost nothing without that range. This catalog gives it its own [Absence Confirmed] field and always states the materials, terms, and range checked.
Trade-offs
Benefits
- It determines what to verify later. Audit the inference field; without separation, the choice is to doubt everything or trust everything
- The reader receives the weight of a claim. One measurement and one official source are not equally strong; fields convey that difference without requiring interpretation
- Someone other than the author can audit it. Written provenance lets an independent party revisit the same source
- It is robust when handed to agents. Agents do not read between lines, but they do read fields
Costs
- Writing becomes heavier. Each line requires choosing a field; that is not worth paying for a disposable record
- Fields do not guarantee truth. ⚠ A number in an “observed” field is not thereby guaranteed to have been measured. Separation makes verification possible; it does not mean verification occurred. This catalog itself once contained a quote absent from its original source in a correctly structured record
- Too many fields break operation. If provenance is divided too finely, people hesitate and eventually throw everything into one field. Put things checked the same way together
- A writer can choose the wrong field. Especially when inference is placed as observation, self-review cannot substitute for checking by an independent party
GitHub Copilot in Practice
Within the material checked, neither vendor documents a counterpart to this pattern. Treat it as an operating practice, not a feature.
Surface-independent practice — put the provenance convention in an instruction file
Placement depends on the surface, but the instruction does not. For github.com and repository-wide use, place it in .github/copilot-instructions.md; to narrow its scope, use .github/instructions/NAME.instructions.md (Adding repository custom instructions for GitHub Copilot, retrieved 2026-07-26). VS Code reads the same files (Custom instructions, retrieved 2026-07-26).
Write the definition of the fields and what belongs in each, not “write accurately.” “Do not put things checked differently in the same field” is structural; “write accurately” merely restates default behavior and becomes the kind of noise the official material calls out (see the Official quote cited by Failure as Institutional Memory).
Compliance is not guaranteed. The github.com documentation states that, due to AI's non-determinism, custom instructions may not be followed exactly the same way every time (Official, docs.github.com). Make a field convention that must hold deterministically a mechanical gate, not an instruction (see Separating Mechanical Gates from Semantic Gates). This catalog takes that route: scripts check evidence-label notation and quote verification.
This catalog's implementation Measured
This site implements the pattern. It is an n=1 observation, not a general law.
- Claims in the body use four provenance labels:
[Official](a vendor's primary material),[Research](academic or public third-party research),[Measured](a result the author observed in their own environment), and[Absence Confirmed](primary material was checked and a description or source was not found) - Name sources use a separate label axis —
[Primary]/[Common]/[Descriptive]. Claim provenance and name provenance are checked differently, so they are not mixed in one label system - Failure as Institutional Memory separates the same research result by section into “what was observed Measured” and “what was not observed (the auditor's judgment, and not Measured)”. It states the reason: only what is visible without running a counterfactual may call itself
[Measured]
⚠ Even this structure did not guarantee truth of the contents. On 2026-07-25, the evidence ledger recorded an English verbatim quote ending in words absent from the original. The fields, URL, and retrieval date were correct, but the contents were wrong. No lint or build detected it. It was detected only when a separate party independently retrieved and checked the primary material.
Two things follow:
- A provenance field only makes verification possible. It uniquely determines which source to revisit; without it, one would not even know what to check
- The author cannot notice their own error. Self-review follows the same path as generation and returns to the same conclusion. Provenance fields exist for others to audit
The catalog now mechanically requires a verification record — search term, hit count, date, and verifier — beside every verbatim quote. That too is a provenance field; only its subject has moved to how the quote's content was checked.
Absence Confirmed — neither vendor describes it
On 2026-07-26, the full text of the following eight materials was retrieved (HTML stripped from the main element; .md as raw Markdown) and 22 terms were searched.
| Vendor | Material | Bytes |
|---|---|---|
| GitHub | Response customization | 892,478 |
| GitHub | Repository custom instructions | 698,276 |
| GitHub | Cloud agent risks and mitigations | 575,557 |
| GitHub | VS Code custom instructions | 114,884 |
| Anthropic | Prompting Claude Opus 5 | 11,225 |
| Anthropic | Claude Code memory | 616,932 |
| Anthropic | Agent Skills overview | 20,256 |
| Anthropic | Claude Code Skills | 953,891 |
observed facts / inference / assumption / hallucinat / cite / citation / provenance / do not fabricate / unverified / distinguish all returned zero across the materials (inference has one hit in Claude Code Skills, but it concerns inferring a project's startup method, not record provenance). separate and source do occur, but concern splitting instruction files or Skill components, not separating provenance within records written by an agent.
This is “not found,” not “denied.” Byte counts record full retrieval, not identity; dynamic sites vary by tens of bytes across requests.
Also Known As
| Name | Source |
|---|---|
| Recording by Provenance | Descriptive — this catalog's descriptive name; it has no primary-source use |
| Provenance | Descriptive — a broadly used general term for data history, but within the range checked it does not appear in primary material as the name of this practice for agent records (provenance has 0 hits in the eight materials above) |
No established name was found for the practice of separating provenance in records written by agents. Near terms — source attribution, quotation conventions, and audit trails — name one field, not the design of separating fields.
Related
- Failure as Institutional Memory — that pattern decides what to keep; this one decides how provenance survives the keeping. That page is itself a worked example of this pattern: it separates observation from judgment section by section
- Making the Verification Target Explicit — once the provenance fields are fixed, what needs verifying is fixed too. This pattern supplies that pattern's precondition
- Separating Mechanical Gates from Semantic Gates — whether field conventions are held by instruction or by machine. Whatever must hold deterministically goes on the mechanical side
- Auditing Past Decisions — rereads later what was recorded with provenance kept apart. This pattern builds the structure of the record; that one uses it
- Making the Output Contract Explicit — that pattern specifies the shape of the output. Provenance separation is about the attribution of content, not its shape — a different axis