feature_update
Updates a feature's title, spec, gist, version (moves it), analyst or position (ord) at the user's request; only passed fields change. Changes shared team data; feature status transitions remain a human decision, not available here. Returns the link, product, version, ord, specRevision and changed fields.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Feature key #F12; not with featureID | |
| ord | No | Position in the version, as drag-and-drop in the web UI; features go by `ord` ascending (tasks the opposite): a value between two neighbours' ord goes between them, below the smallest - first, 0 - end of the version. Neighbours closer than 100 - the version, closed included, is renumbered top down in steps of +10000, the last one at Date.now(). | |
| gist | No | Gist: one or two sentences, "problem → solution", up to 300 characters of plain text (no Markdown, links or task keys), in the language of the workspace data; an empty string clears it. | |
| spec | No | New spec in Markdown (no HTML), in the language of the workspace data. Replaces the whole field: existing text, `::: doc` sections and `attach:`, `design:`, `color:` tokens stay only if included. | |
| title | No | New name | |
| analytic | No | New feature analyst: employee UUID or "any". | |
| featureID | No | Feature ID; not with key | |
| specPatch | No | Part of the spec, ops in order: replace / insertBefore / insertAfter / delete a section by heading ("## Chat"; text - whole section), append, find an exact unique fragment → replace. With expectedSpecRevision. | |
| versionID | No | Version ID to move the feature to. | |
| designUnlink | No | true - the new spec may drop design markers (`design:`), and designs left unlinked are deleted; otherwise losing a marker is rejected. | |
| expectedSpecRevision | No | The feature's current specRevision; required when spec or specPatch changes. A spec with a revision goes in a separate request, with only gist and designUnlink alongside. |