knowledge_write
Upsert an entity knowledge page by slug with title, domain, markdown body, and supporting citations. Pages with only conversation citations are stored as provisional until sourced externally.
Instructions
Upsert an entity page by slug. On an existing slug: body REPLACES by default (mode: "append" adds to it instead), title/domain follow the write, and citations are always appended with exact-duplicate dedup — safe to re-send. Knowledge is true independent of Jonathan — if it is about Jonathan or our work, store it in memory instead. Epistemic gate (§E1): a page whose ONLY citation support is source_kind="conversation" is stored provisional, not sourced. Requires at least one citation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Synthesized markdown body for the entity page (max 64 KB) | |
| mode | No | Body combine mode when the slug already exists: "replace" (default) overwrites the stored body; "append" adds this body after the existing one. Citations are appended (deduped) in both modes. Ignored when creating a new page. | |
| slug | No | Entity key for upsert — stable URL-safe identifier. Derived from title if omitted. | |
| title | Yes | Page title — the entity name (e.g. "Mutable Instruments Rings") | |
| domain | Yes | Domain tag, e.g. "music/eurorack", "programming/typescript". Hierarchical string; sub-domains queryable via prefix filter. | |
| citations | Yes | Support citations. At least one required. All-conversation support → page stored provisional. | |
| freshness_anchor | No | The version/date the page's claims are valid as-of — e.g. "Syntakt OS 1.21" for a device, or "as of 2026-05" for a topic. Drives the verification engine: a page is re-verified when this anchor moves or the freshness SLA elapses. |