The tick tool
How an agent marks a task or request done or opens it again, what happens on a branch that isn't merged, and what it refuses.
tick marks work done. Its title is Mark an item done, and its
description, as the agent reads it:
Mark a task or request done (done: false opens it again). Drops your claim on it.
Arguments
| Argument | Type | What the agent is told |
|---|---|---|
key |
string, required | B-k3f9@7c: the key, with the version you read (your own changes don't make it stale) |
done |
boolean | false opens it again |
What it does
- The item is done, signed by the agent, and its claim is let go. The other agents hear it in their news.
- Items that waited on it, and on nothing else, are free now.
- Ticking a request is how an agent records that you did it, when you tell it so in chat. You can also tick it yourself on the board.
- A task with open subtasks can't be ticked; its subtasks go first. Ticking the last open subtask reminds the agent to look at the parent.
- On a branch. If the program says the agent works on a branch other than the one its repo merges into, the task is done on that branch only. It stays that way, and holds up what waits on it, until the program sees the work merged. Then the news says merged, and later pushed. See Git.
- A session ticking again what it ticked itself is fine; ticking what someone else finished is refused, so two agents don't both count it.
Calls and replies
Three subtasks, the last one with its note. In Claude Code:
⏺ hamloy - Mark an item done (MCP)(key: "B-4yo9")
⎿ [x] B-4yo9@2 Sign in with Apple (done by claude on 2026-10-10) (subtask of B-mh1c)
⏺ hamloy - Mark an item done (MCP)(key: "B-giwo")
⎿ [x] B-giwo@2 Merge edits made offline (done by claude on 2026-10-10) (subtask of B-mh1c)
note: that was the last open subtask of B-mh1c "Sync habits across devices"; tick it too unless something of its own is left
⏺ hamloy - Mark an item done (MCP)(key: "B-mh1c")
⎿ [x] B-mh1c@2 Sync habits across devices (3 of 3 subtasks done; done by claude on 2026-10-10)
Ticked on a branch that isn't merged yet:
⏺ hamloy - Mark an item done (MCP)(key: "B-chzz")
⎿ [x] B-chzz@3 Streak counter on the home screen prio:high (done by claude on 2026-10-10; on streak-counter, not merged into main yet)
• Ran swift test
└ Test Suite 'All tests' passed: 48 tests
• Called hamloy.tick({"key":"B-se4t@4"})
└ [x] B-se4t@5 Offline sync with a local SQLite cache (done by codex on 2026-10-09; on feat/offline, not merged into main yet)
• Offline sync is done on feat/offline. Merging it into main.
Recently done
Offline sync with a local SQLite cache
Recent changes
• Ran git switch main && git merge feat/offline
└ Updating 3e1a9c0..b72d4f1 Fast-forward 6 files changed, 412 insertions(+)
• Ran git push
└ 3e1a9c0..b72d4f1 main -> main
Opening it again, in Codex:
• Called hamloy.tick({"key":"B-mh1c","done":false})
└ B-mh1c@3 Sync habits across devices (3 of 3 subtasks done)
What it refuses
B-mh1c still has open subtasks: B-nh37, B-4yo9, B-giwo. Tick those first
B-nh37 is claimed by codex (session 8b17e0d4); leave it to them or message them with the message tool (to: B-nh37). If the human asked you to finish it, claim it with force first
B-mh1c "Sync habits across devices" is already done by claude; pick another task (the list tool with status ready)
Q-q0ae is a question: answer it (answer tool, or on the page) instead of ticking it
A question isn't ticked. You answer it, or an agent records your answer with answer.
Done means done
The rules ask agents to tick a task when it's done, not when they stop. An
agent that stops without finishing lets go with claim's release, and the
task stays open for the next one. Work you call off is deleted with
edit, not ticked, so it doesn't count as done.
Claude Code shows hamloy - Mark an item done (MCP); Codex shows
Called hamloy.tick.