Skip to main content
An anchor is a normative claim: we decided X, Y is forbidden, Z must always hold. The drift detector later checks anchors against committed reality; the re-injection guard re-surfaces them before an agent acts. Anchors come only from explicit declaration — never from pattern-mining a transcript. If the user made a decision in conversation, the shortest path is remember({ content, anchor: {} }), which stores the memory and declares the anchor in one call. Use declare_anchor directly when you need the full set of fields.

Kinds

Parameters

Example

From now on, an Edit/Write/Bash containing mongoose gets this back before it runs:
Harden it (resolve_drift({ action: 'harden' })) and the same action is denied instead of warned.

A proposal

Returns anchor_id and candidate_id. Triage later with recall({ dream: true }) and settle with resolve_drift({ candidate_id, action: 'surface' | 'dismiss', rationale }).