Update Ticket
update_ticketChange a ticket's lifecycle, dependencies, identity, and annotations: claim, resolve, drop, reopen, release, retitle/type, set triage, comment, or tick criteria—no cycles.
Instructions
Change one Ticket. Lifecycle: claim, resolve with a one-line gist, drop with a reason, reopen with a reason, or release a claim — at most one of those per call. Graph: replace the Edges, refused if they close a cycle. Identity: title, kind, and type. Annotations: triage role, a comment, ticking acceptance criteria; these touch no part of the graph. Any of the four groups may accompany the others or stand alone.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket id, or the <effort>#<order> handle of a Legacy Ticket. | |
| drop | No | Close the Ticket as work ruled out of scope. | |
| kind | No | Replace the Ticket kind. | |
| root | No | Workspace directory. Defaults to the session workspace. | |
| tick | No | Acceptance criteria to check off, matched on their text. Wrapped criteria match both as get_tickets returns them and re-joined onto one line. All references resolve before anything is written — one unmatched name fails the whole call and leaves the file untouched. | |
| type | No | Replace the decision type — research, prototype, grilling, or task. | |
| claim | No | Take the Ticket. Fails if another holder already has it. | |
| title | No | Replace the Ticket title. | |
| reopen | No | Return a resolved or dropped Ticket to open. | |
| status | No | Not settable directly — use claim, resolve, drop, reopen, or release. Named here to say so. | |
| triage | No | Set the triage role. A separate field from status; neither touches the other. | |
| comment | No | Append to the comment log, stored exactly as written. | |
| release | No | Release the claim on a claimed Ticket and return it to open. Pass { release: true }. | |
| resolve | No | Close the Ticket as a step on the route. | |
| blocked_by | No | Replace the Edges outright, each a plain Ticket id resolved repo-wide. An empty list clears them. A cycle is refused. |