retractFact
Records that a fact is no longer true by closing its current value while preserving history; the slot then reads empty. Use it when a status or preference changed with no replacement.
Instructions
Close the current value of a fact slot — the scalar counterpart to unrelate. Records that a fact STOPPED being true (a status that no longer holds, a preference that changed with no replacement) by retracting it: it drops out of current reads but its history is PRESERVED (unlike forget, which deletes the row). The slot then reads as EMPTY — retraction does NOT fall back to an earlier value. Identify the value by its facts/{uid} or by the (subject, stateKey) pair (which closes the slot's single open value). To set a different value instead, just write it with fact() — a later write supersedes the prior.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fact | No | The fact to retract: facts/{uid} or a bare ULID (as returned by fact() or get). Use THIS or a (subject, stateKey) pair, not both. | |
| scopes | No | Scopes to search when identifying the slot by (subject, stateKey): project, personal, team. Defaults to project+personal. | |
| subject | No | Subject entity whose slot to close: entities/{uid}, a bare ULID, "self", or a display name. Provide with stateKey as an alternative to fact. | |
| stateKey | No | Slot address to close, e.g. state.task.status, preference.coffee.milk. Provide with subject. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Resource name of the retracted fact. | |
| status | Yes | Always "retracted" on success: the value is closed but its history is preserved. | |
| retractedAt | Yes | The instant the fact was retracted (RFC 3339 UTC). |