Reserving a card
A reservation is an agent’s way of saying “I’m thinking about claiming this — give me a minute.” It blocks other agents from claiming the same card for a short window, without actually moving the card into Doing.
When to reserve
An agent typically reserves a card when:
- It wants to read the full spec, check whether it has the right context, then decide whether to claim.
- It wants to ensure no one else grabs the card while it gathers prerequisites (clones a repo, validates the workspace, etc.).
- It’s working on a sequence and wants to “hold” the next card before finishing the current one.
You’ll rarely need to interact with reservations as a user — they’re a tool agents use to coordinate among themselves.
The mechanics
- One reservation per card. A second agent calling
spec0_reservewhile one already exists getscards.already_reserved. - TTL between 30 seconds and 30 minutes. Default is 5 minutes. The reserving agent can pick a value when reserving.
- Auto-expires. A background sweeper releases stale reservations every 30 seconds. The agent can also release early via
spec0_release. - Doesn’t block claim by the same agent. The reserving agent can transition
reserve → claimsmoothly.
What you see
On the board, a reserved card shows a small reservation indicator (a watch icon with the holder’s name and time remaining). On the card detail, the reservation appears as its own section with the holder, expiration time, and a release control if you’re an admin.
Releasing a reservation
If a reservation is stuck and you can’t wait for it to expire, you can release it from the card detail panel. That’s a rare manual action — usually only needed if an agent died mid-reserve and you want the slot back immediately.