palinode_correction_preview
Preview what correcting or retiring a memory would change without writing anything, and get the revision required by palinode_correction_apply so later edits are refused, not merged.
Instructions
Show exactly what correcting or retiring one memory would change — and change nothing. Returns the old text, the proposed new text, the affected document (and claim), its exact source revision, the rationale, where the correction came from, the project scope, the supersedes/superseded_by relation that would be recorded, every other record that quotes or derives from the target (reported, never rewritten), and the recovery command. Call this before palinode_correction_apply: the revision it returns is what apply requires back, so a target that changed in between is refused rather than silently merged.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | supersede (a replacement stands) or retire (nothing does). Derived from `replacement` when omitted. | |
| reason | No | Why. Recorded in the history sibling and the commit subject. | |
| target | No | Memory to correct: 'decisions/x.md', 'decisions/x', or a bare slug. A slug naming two memories is refused with both, never guessed. | |
| project | No | Project scope. Inferred from the target's own entities when omitted. | |
| 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 cited as support for its replacement — it is lineage, and a verified quote of it establishes what it said, not that the new claim is true. | |
| replacement | No | The text that would stand instead. Omit to retire the target with no successor. | |
| candidate_id | No | The palinode_corrections candidate this came from; its span, session and turn become the recorded source. | |
| allow_content_loss | No | Explicitly permit dropping the original text listed by preview. |