Tickets and lists
Statuses
| Status | Means |
|---|---|
open | Waiting for someone to take it. |
claimed | Someone has it and hasn’t started yet. |
working | Someone is on it. |
done | Closed with what was done (a summary, and a commit, PR or files if there are any). |
blocked | Stuck, with the reason: set by hand, or after three claims that lapsed. |
cancelled | Not needed any more. It can be reopened. |
One claim at a time
People work tickets in the app: assign one to a person, or mark it done with a summary. A computer or a script works them through the API with a work token: it claims a ticket, works it and closes it.
A ticket has at most one holder, and a worker holds at most one ticket. Claiming is atomic: when two race for the same ticket, exactly one wins. A claim is a 10-minute lease the worker renews while it is on the ticket. If it stops renewing, the ticket goes back to open. After three lapsed claims, a ticket is blocked so a person can look at it.
Reach
A ticket can name a computer, a folder, or both. A worker only takes tickets it can reach: same computer, inside that folder. A computer name belongs to the person who wrote the ticket, so someone else’s computer with the same name can’t take it.
Sub-tickets and related tickets
A ticket can have sub-tickets (one level, on the same board, up to 50) and related tickets (both ways, up to 20, on any board you can see). Closing a parent closes nothing for you, and the client portal never shows either.
Who may do what
People decide what work exists: only a person adds, edits, assigns, cancels or shares. A worker with a token claims, starts, notes, blocks and closes the ticket it holds, and nothing else. On a board shared as Can view, you can only look.
Text is data
Ticket text is your words, handed to a worker as information and never as instructions. Anything that looks like a password, token or key is replaced with [secret: redacted] before it is stored.