Skip to content

D279 — One generic kb-ingest skill ingests any primary source, patching over creating

Decision. A bundled skill, kb-ingest, is the procedure for absorbing one primary source into an existing KB. It is source-agnostic: register the source (D278), distil it, find the page that owns each fact, patch it (create only when no page owns the subject), cite the source in provenance, record unknowns as gaps (D273), verify with gate_check, mark the source ingested. Kind-specific advice lives in one reference file, not in separate skills. The agent reads the source; the server never does (D28 as amended by D278). A change plan touching more than 5 pages or creating more than 2 is shown to the operator before any write; smaller ones proceed.

Why. Each agent otherwise improvises ingestion and fails the same ways: the same source twice, new pages where a patch belonged, silent overwrites, dropped unknowns, no trace of origin. The server pieces (reason D272, gaps D273, history D274, ledger D278) exist; the skill is what makes them one habit. The cost is a checkpoint that slows large ingestions on purpose.

Alternatives rejected. Extending kb-import: it maps the structure of a whole foreign corpus mechanically, the opposite shape of distilling one source's content. One skill per source kind: the procedure is identical, only the extraction hints differ. A server-side ingest tool: D28 and D278 keep fetching and parsing on the client. Overwriting a conflicting claim: a contradiction must stay visible, so the skill opens a Contradiction and leaves the page untouched.

Consequences. The 5-page and 2-page thresholds are written in the skill so every client applies the same ones; changing them is a skill version bump. A source's contradictions block the gate until an operator resolves them, by design. A new bundled skill is provisioned on the next cartographer sync. Credentials found in a source never reach a page: secret_set or flagged.