Knowledge base.

The retained corpus the Co-Analyst cites from — documents, the chunks it actually retrieves, and the reliability grading attached to both.

Why a corpus rather than a live search

An answer is only auditable if the thing it cites still exists in the form it was read. So documents are retained: fetched, stored with their fetch time, and cited by id. If an upstream page changes or disappears, the citation still resolves to what was actually used.

kb_sourcesgraded A1–F6kb_documentsretained + fetched_atkb_chunks+ embeddingretrievablequarantinedkept for review · excluded from every retrieval patha document is the unit of provenance · a chunk is the unit of retrievaltenant_id NULL = shared global corpus · set = that tenant only
Fig. Source to document to chunk. Quarantine excludes a document from retrieval without deleting it.

Documents and chunks

A document is the unit of provenance. A chunk is the unit of retrieval. Splitting matters because a 40-page report has one source but many independently relevant passages.

LevelTableCarries
Sourcekb_sourcesWhere documents come from, reliability grade, enabled flag
Documentkb_documentsTitle, source URL, fetched_at, confidence, quarantine flag, tenant_id
Chunkkb_chunksPassage text plus its pgvector embedding

Admiralty reliability codes

Sources are graded on the Admiralty scale, which separates how reliable the source is from how credible this particular claim is. Both travel with the evidence, so a high-confidence claim from a weak source is not silently laundered into a strong one.

AxisRangeMeans
Source reliabilityACompletely reliable — through F, cannot be judged
Information credibility1Confirmed by other sources — through 6, cannot be judged

So A1 is a reliable source with a corroborated claim; F6 is neither. The grade appears in the source catalogue and on the KB coverage surfaces.

Quarantine

Not everything fetched should be retrievable. A document can be quarantined, which keeps it stored for review but excludes it from retrieval, so it cannot end up cited under an answer.

  • Quarantined documents are filtered out of every retrieval path, not ranked lower.
  • The row is kept, so a review decision has something to act on.
  • Coverage reporting counts them separately from live documents.

Tenant scope

kb_documents.tenant_id is NULL for the shared global corpus and set for tenant-owned documents. A retrieval reads the global corpus plus the caller's own tenant rows — enforced by row-level security rather than by a filter the query has to remember.

What the retrieval path guarantees

Every answer is built from documents that were retained, hashed and scored before they were retrievable. Retrieval returns the chunk it matched, not a summary of it, so a claim can always be traced back to a specific stored document and the source it came from.

Capabilities land in the retrieval path only once they hold across the whole corpus rather than a sample. Where a limitation exists today it is stated on the page that covers it, rather than implied by silence.

Knowledge base — OmniIntel docs · OmniIntel