Move an issue to another status (board drag = this call). Scrum + AI agent: only for issues in a sprint a person has started, else 409 `sprint_not_started` (D79). AI agent: a move out of another role's lane still happens but the result carries `warnings` (D136) — stop and tell the user.
transition_issueMove an issue to another status (board drag = this call). Scrum + AI agent: only for issues in a sprint a person has started, else 409 sprint_not_started (D79). AI agent: a move out of another role's lane still happens but the result carries warnings (D136) — stop and tell the user.
status must be a status id from get_project (never one marked removing: true — 409 column_removing). For several field changes at once use update_issue instead. On a pipeline board an issue moves Backlog → To Do → Developing → Dev Done → then, for each environment in environments order, Testing (env) testing_<id> → Passed (env) passed_<id> → … → Done. When testing fails in an environment, move it to Test Rejected (test_rejected) and it goes back to development. "Deployed to UAT" / "testing on UAT" means testing_<id of UAT>; "passed UAT" means passed_<id> — look the id up in get_project environments. Scrum boards (spec D79): you may change the status only of issues in a sprint a PERSON has started (list_sprints state active); otherwise 409 sprint_not_started — do not retry, ask the user to start the sprint in BoardMark. Backlog planning (create_issue, update_issue fields other than status, move_to_sprint, comments) is always fine. Move only the part of the flow that belongs to your role (developer: To Do → In Progress/Developing → In Review/Dev Done; QA: → Done/Passed (env) or Test Rejected; BA: up to To Do), unless the project's docs or the user say otherwise. Lanes (spec D136): each status belongs to a role (get_docs_context shows the Lane column). Pass as_role (e.g. Developer, QA) when the user told you your role; otherwise your token's role is used. The move always happens, but when it leaves another role's lane the result carries warnings (role_lane, skip_lane, self_review): stop there, tell the user what you did, and hand off with a comment — undo it (transition back to from) if the user did not want it.
WRITE: version must be the version from your latest read of this file (get_issue for issues, list_comments for comments, list_sprints for sprints, get_doc for project docs, read_file for md files). If the file changed since, the call fails with 409 version_conflict and the error contains the current file (details.current, details.current_version): re-read it, re-apply your change on top of the current content and retry with the new version. Never overwrite someone else's change blindly — if your change and theirs disagree, ask the user which to keep.
You act with exactly the rights of the user who owns this token; a project you cannot see returns not_found.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Status id; must exist in the project's `project.md` statuses. | |
| as_role | No | AI agents (spec D136): the role you work as in this session (e.g. Developer, QA, BA, DevOps) when the user told you one; else your token's role is used. Only changes lane warnings, never what you may do. Ignored for people. | |
| version | Yes | Optimistic-lock version of the file; +1 on every write. Every write must send the version it read. | |
| issue_key | Yes | Issue key `{PROJECT}-{n}`, e.g. `KJ-101`. | |
| project_key | Yes | Project key, e.g. `KJ`. 2–10 chars, uppercase letters and digits, starts with a letter. |