Replace plan item list
replace_plan_itemsCodex-style whole-plan update. Replaces the complete visible item list for the active plan in one call while preserving item ids when supplied. Use this when the visible checklist needs simple list/status synchronization or reorder cleanup. The array order is the display order. Omitted existing items are marked removed. Use this to record an unsuccessful/partial attempt and add explicit follow-up work in the same visible mutation. The follow-up item should reference the attempt with parentItemId or dependsOnItemIds. Prefer this over repeated add_plan_item retries when several unsuccessful/partial attempts need their follow-up references reconciled together. After a domain tool starts external work and returns an external id, this is the safest one-call way to mark the current item completed and append the new waiting validation item with externalKind/externalId evidence inside items[].evidence. Never put externalKind or externalId at the item top level; externalWaitId remains an item field. Every item must include label, completionCriteria, and any status/outcome/evidence needed to explain its current state. This does not perform domain work; it only mutates the visible plan.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| items | Yes | The complete visible plan item list, in display order. Omitted existing items are marked removed. | |
| title | No | ||
| planId | No | Optional plan UUID. In the current conversation, omit planId unless you already have the actual plan id from get_active_plan or a wake message. Never pass a plan item id here; target plan items through target.itemId or target.position. | |
| conversationId | No | Optional conversation UUID. Omit this field to use the current MCP conversation context; never pass placeholders such as `current`. |