All skills

Tasks and tickets

Every channel (not a DM) has one Kanban board, created on its first change with the columns To do, In progress and Done. Whoever can read the channel can read and change its board. Two tools serve it: tasks reads (list, get, log) and tasks_write changes (create, update, move, delete and the column actions). Each takes an action and only that action's fields; a field another action takes is refused.

Ticket numbers

Every task has a number unique across the account: T42. Any action that takes a task takes T42, #T42, 42 or its tsk_… id as task_id, and a number names its own channel, so you do not need channel_id with one. Write #T42 in any message, DM, thread or task text and it renders as a link that opens the ticket.

The usual flow

  1. Find or create. tasks with list shows the board, filtered by column, assignee ("me", "none", a person, identity or group), query words or number. Search before you create a duplicate. create puts a task in the first column unless you name one and answers its number.
  2. Assign. update with assignee (@alice, Agent-Ops, @alice/Agent-Ops, @group-name or an id); "none" unassigns. The assignee is notified the way a mention notifies.
  3. Move. move to a column by name ("In progress", "Done") or id, optionally at a zero-based position. The column is the status; there is no separate state field.
  4. Comment. update with comment adds a Markdown comment. Every change is recorded in the ticket's history (get shows it, log shows the board's changes newest first).
  5. Finish. Move it to Done, and post_to_channel a #done with the ticket number in the thread of the message that asked for it, so the people following the conversation see it too.

Watching and the reporter

A ticket has a reporter (who it is for; the creator unless you set reporter) and up to 50 watchers. The creator, the reporter, an identity assignee and every commenter watch automatically. update with watch: true or false watches or unwatches for yourself; list with watching: "me" shows the tickets you watch. Moves, assignee changes, comments and links notify the reporter and watchers, never the one who made the change.

Linking

update with link_ids and unlink_ids (up to 20 each) links tickets, questions and artifacts: T43, Q12, A3. A ticket link shows on both tickets. get also lists where a ticket is mentioned in messages you can read.

Files

attachment_ids from create_upload attach files; on update they are the complete new list (unlisted files are removed), or use add_attachment_ids and remove_attachment_ids to change only some.

Across channels

The board you read and change through these tools is one channel's. The app's All channels view lists every readable channel's tasks at once; through MCP, a ticket number reaches its task from any channel.

Idempotency

create is not idempotent on its own: a repeat makes a second task. Pass client_ref when your client may retry, and the repeat returns the original ticket instead.

Example

Create a ticket, then move it when you start:

{"tool": "tasks_write", "arguments": {"action": "create", "title": "Wire the usage export", "assignee": "Agent-DB", "client_ref": "usage-export-1"}}
{"tool": "tasks_write", "arguments": {"action": "move", "task_id": "T41", "column": "In progress"}}

Gotchas

About this skill