Focus view
The seven columns answer what is there. They cannot answer whose turn it is — six cards sitting in In Progress look identical while meaning opposite things: one has an agent running in it right now, one was finished by the agent hours ago and is waiting for you to read it, one has been dead for three months.
Focus is the other question. It's a short list of the cards whose next move is yours.
The toggle
Focus | All lives in the board header, next to the search box. It is deliberately not behind a setting: a view that hides most of the board has to be one click from being checked.
What the board opens with is a preference — Settings → General → Board opens with:
| Choice | On launch |
|---|---|
| Focus | Always opens in Focus |
| All columns | Always opens on the seven columns |
| Last used (default) | Reopens whichever view you left open |
"Last used" exists so the setting can express a habit as well as a preference. Either way the header toggle stays where it is.
The project filter and the search box apply to Focus exactly as they do to the columns.
Your turn
The top block. Four states, in the order they earn attention:
| State | Row reads | Button | Opens |
|---|---|---|---|
| Blocked | rebase conflict · 3 files | Resolve | Detail tab |
| Your review | agent done · 4h ago | Review | Solution tab |
| Your test | 3/5 core ✓ · 2 left for you | Test | Tests tab |
| Your decision | verdict: yes · move to backlog? | Decide | Opinion tab |
Each state is derived, never stored:
- Blocked — the card's last merge attempt hit conflicts (
rebaseConflict). The detail line counts the conflicting files. - Your review — the card is in In Progress and no agent is running on it. If a worktree is attached, the line says
agent done, because a worktree only exists because a run created one; a card dragged into In Progress by hand readsin progressinstead. - Your test — the card is in Human Test. The line reports the core flow separately from the rest:
3/5 core ✓ · 2 left for you, thencore flow done · 4 optional leftonce the core group is finished. A checklist written before the core-flow contract falls back to the flat count. - Your decision — the card is in Ideation and an AI verdict has landed. The line names the verdict and the move it implies.
A card with an agent running on it is never in this block, even when it also has a conflict: while a run is in flight there is nothing for a human to resolve, and interrupting it is how you get a half-applied merge.
Sort order
- State, in the order above — blocked first, decisions last
- Priority (high → low)
- Most recently touched first — the thing you were in the middle of is the thing you're most likely coming back to
Agent running
The middle block: cards with a background job in flight. Each row names what the job is and when it started — running autonomously · started 12m ago, quick fix · started 3m ago, evaluating · started 1h ago.
Nothing here is actionable. It's there so that "nothing is waiting on you" reads as true rather than suspicious.
Waiting
The bottom block, collapsed to counts rather than rows. Cards that are neither yours to move nor being worked on — Backlog and Bugs mostly, plus anything sitting in a column with nothing to decide.
The heading count equals the sum of the line beneath it, and that sum includes stale cards. Stale is listed beside the columns rather than inside one: a card nobody has touched in three months is a decision to make, not a queue to work through, and it has already left its column's flow for the row at the column's foot (see Stale cards).
What Focus deliberately leaves out
- Completed and Withdrawn. Done is done.
- Stale cards, from Your turn. A card untouched past its column's threshold is not a task you forgot this morning. Putting it in the same list would make the list unreliable — and an unreliable "your turn" gets ignored wholesale. It's counted once, at the end.
Why nothing is stored
There is no focusState column on a card, and that is deliberate. It would be one more field to keep in sync with every status change, every run, every merge — and it would be wrong the moment any of those happened outside the app. Focus reads five fields that are already maintained for their own reasons: processingType, rebaseConflict, status, aiVerdict, updatedAt.
Prev: Board views Next: Card chains Up: User guide index