palinode_correction_apply
Apply a confirmed correction to a memory, saving the replacement and retiring the original with superseded_by, while refusing if the target changed since preview.
Instructions
Apply a correction previewed by palinode_correction_preview. Requires confirm=true and the expect_revision that preview returned; a target that changed since the preview, or a ref matching more than one memory, is refused with what it found rather than resolved by guesswork. Writes only through the existing validated path — the replacement is saved and the original is archived with superseded_by, so the original stays on disk, in git and retrievable as history. An ordinary later observation must NOT be routed here: this is the explicit, confirmed path, and it is the only one that retires anything. applied: "partial" means the replacement was saved and the original was NOT retired — do not re-run the correction; run the complete_command it returns.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | supersede or retire. Derived from `replacement` when omitted. | |
| reason | No | Why. Recorded in the history sibling and the commit subject. | |
| target | Yes | Memory to correct, exactly as previewed. | |
| confirm | Yes | Must be true. Nothing is written without it. | |
| project | No | Project scope for the replacement. | |
| claim_id | No | Narrow the correction to one '<!-- fact:id -->' claim inside the target. | |
| backed_by | No | Records supporting the REPLACEMENT (category/slug refs). The superseded original is never among them. | |
| replacement | No | The text that stands instead. Omit to retire with no successor. | |
| candidate_id | No | The candidate this came from; it is marked applied in the queue. | |
| expect_revision | Yes | The revision palinode_correction_preview returned. A mismatch is refused. | |
| allow_content_loss | No | Explicitly permit dropping the original text listed by preview. |