---
title: "Source Verification"
slug: "source-verification"
category: "knowledge-vaults"
tags: ["knowledge-vaults", "sources", "citations", "verification", "research", "provenance"]
status: "stable"
last_updated: 2026-08-29
summary: "Link every empirical claim to a source note, track how many atoms each source produced, date verification so it expires, and gate publishable claims on corroboration."
related: ["[[knowledge-vaults/atomic-notes]]", "[[knowledge-vaults/vault-frontmatter-schema]]", "[[knowledge-vaults/linking-and-tags]]", "[[knowledge-vaults/decision-journals]]", "[[knowledge-vaults/vault-audit]]", "[[knowledge-vaults/rigor-frameworks]]", "[[ai-agents/rag-citations]]"]
---

## Overview

Every empirical claim in a vault links to the source it came from. A claim with no source is a ghost fact: it reads as knowledge, gets cited by later notes, and cannot be checked or corrected. Sourcing is what separates a vault you can act on from a pile of remembered assertions. The atom-level requirement is stated in [[knowledge-vaults/atomic-notes]]; this page covers the source layer itself.

## Link every empirical claim to a source note

Atoms carry a `sources` array of wikilinks into `10-Sources/`. Claims carry a non-empty one, enforced by the auditor. "I read this somewhere" is not a source, and neither is a bare URL in the body.

Self-derived claims are legitimate and get marked as such rather than dressed up. Set `confidence: low` and flag the note as self-derived, so a later query can separate what you concluded from what you read. Both are useful; conflating them is not.

## Create one source note per work, not per highlight

A source note represents a book, paper, podcast episode, talk, dataset, or article. Highlights and quotes live inside it as referenceable blocks; the claims mined from it live in `20-Atoms/` and link back.

```yaml
---
id: 202608291431
title: "@Minto (1987) — The Pyramid Principle"
type: source
status: status/processed
source_type: book        # book | paper | podcast | talk | dataset | article | video
author: ["Barbara Minto"]
year: 1987
atoms_extracted: 6
---
```

Filename convention: `@author-year-short-title.md`. The `@` prefix sorts sources together and makes a source link visually distinct from an atom link in running prose.

## Track atoms_extracted to catch collected-but-unread sources

`atoms_extracted` is the honest signal of whether a source was digested or merely filed. A source note sitting at zero atoms 30 days after capture was collected, not read.

Query for those and treat the result as a reading queue rather than a failure. The same number, aggregated, diagnoses the intake pipeline: if 40 sources produced 12 atoms, the vault is a library, not a Zettelkasten.

Watch the inverse too. If one author or one book supplies most of the citations in a domain, the vault has a source monoculture and its conclusions inherit that author's blind spots. Count citations per author and per source type during the monthly review.

## Date the verification and let it expire

Empirical claims decay. A `last_verified` date plus a staleness threshold turns that decay into a query instead of a surprise.

```yaml
confidence: high            # high | medium | low
last_verified: 2026-08-29
decision_relevant: true     # surfaces in the stale-verification gate
```

Set the threshold to the domain's actual half-life, with 180 days as a starting default. When a decision-relevant claim goes stale, the resolution is to re-verify it against the source or to downgrade `confidence`. Silently keeping `high` on an unchecked two-year-old claim is how a vault starts lying to the person who built it. Decision-time use of these claims is covered in [[knowledge-vaults/decision-journals]].

## Gate publishable claims on corroboration and review

In domains where a claim goes out into the world (journalism, accountability research, regulated work), publishability is a gate with several conditions that must be satisfied together.

```yaml
source_tier: on-record        # primary-document | on-record | on-background | anonymous
corroboration_count: 2        # independent sources, minimum set per vault
legal_review_status: cleared  # not-reviewed | in-review | cleared | held
publishable: "yes"            # quote it, or YAML coerces yes to true
```

Flipping `publishable` while `corroboration_count` is 0 or review is pending should fail the audit as a critical, not a warning. The gate exists precisely for the moment someone is in a hurry. Which fields apply is a function of the domain framework in [[knowledge-vaults/rigor-frameworks]].

## Make provenance survive the trip into an agent's context

When an agent reads the vault, the source link is what lets it cite rather than assert. Keep the source note resolvable from the atom alone, so a retrieved atom carries its provenance without loading the whole vault. This is the same discipline that makes retrieval answers checkable in [[ai-agents/rag-citations]].

## Related

- [[knowledge-vaults/atomic-notes]]
- [[knowledge-vaults/vault-frontmatter-schema]]
- [[knowledge-vaults/linking-and-tags]]
- [[knowledge-vaults/decision-journals]]
- [[knowledge-vaults/vault-audit]]
- [[knowledge-vaults/rigor-frameworks]]
- [[ai-agents/rag-citations]]
