MCP save_work_item can only replace a whole description, not edit part of it

Problem

To change one section, table row or sentence in a work item description, an agent has to send the entire description to save_work_item. For long descriptions, such as epics with several tables, that means:

  • Resending thousands of characters inline to change a few words, which costs tokens and invites mistakes in the parts that weren't meant to change.
  • No protection against overwriting someone else's edit. If a person changed the description after the agent read it, the agent's full replacement silently undoes their change.

Proposal

  1. Add a targeted edit to save_work_item, for example a list of {old_str, new_str} replacements applied to the current description, like the old_str/new_str actions add_commit already accepts for files. Fail with a clear error if old_str isn't found exactly once.
  2. Add an optional guard so the update is refused if the description changed since the agent read it, for example the updated_at timestamp or a description version returned by get_work_item.

Open questions for engineering

  • Whether the same targeted edit should apply to merge request descriptions in save_merge_request.
  • Which value works best as the guard: updated_at, a description version, or a hash of the current text.