Concept
Dependencies & ready work
Connect tickets so the board knows the order of the work. A dependency-aware ready queue is how a fleet of agents picks up only what it can actually start.
The three relations
A dependency is a directed link between two tickets. There are three relations:
blocks— this ticket must finish before the other can start.blocked-by— the inverse; this ticket waits on the other.relates-to— a soft link that carries no ordering.
Declaring a dependency
The subject is the ticket you name first; the flag picks the relation and the counterpart. Add --remove to drop one:
# PRODUCT-1 waits on PRODUCT-2
tix ticket dep PRODUCT-1 --blocked-by PRODUCT-2
# a soft link
tix ticket dep PRODUCT-1 --relates-to PRODUCT-9
# remove it again
tix ticket dep PRODUCT-1 --blocked-by PRODUCT-2 --removeThe ready queue
tix ready returns only the tickets an agent can actually pick up right now: every blocked-by dependency is in a terminal state, and the ticket itself is not terminal. It is the agent's "what can I start" queue:
tix ready --board <board-id> --limit 10 --format json
# filter the queue like any list:
tix ready --board <board-id> --tag payments --type bugReady → claim
Pair the ready queue with claim/lease: list what is ready, then atomically claim one before starting so two agents never grab the same ticket.
How blocking resolves
Blocking is computed from ticket status, not set by hand. A ticket is blocked while any ticket it is blocked-by remains non-terminal. The moment those blockers reach a terminal status, the ticket drops into the ready queue on the next read — no sweep, no cron. Ticket list and view both carry the computed ready/blocked flags and the full dependency set, so an agent can reason about the graph from a single call.
With the graph in place, the last concept is who is acting on it — see Agents as actors.