# Working the queue (https://docs.vitrinka.ai/dev/skills/queue)



## /vitrinka:listen [#listen]

Tunes a session into a board and works its queue continuously. The session is the worker half of an audit loop: someone annotates screens, you fix each one in **this** repository, attach visual proof, and go back to listening.

* **Armed on the best rung the harness offers** — a background Monitor on `vitrinka work watch` in Claude Code (one line per new annotation, each line re-invokes the session), the `vitrinka work listen` host for Codex, Gemini CLI and OpenCode, or one scoped drain that ends on idle — [listening](/dev/mcp/clients#listening).
* **Idle costs nothing** — while the queue is quiet it prints nothing and burns no context. Silence means healthy and idle, indefinitely.
* **Auto-scoped** — with no board argument it listens for exactly this repo and branch.

<Callout type="warn">
  This replaced an in-model loop that had two fatal flaws: a finished turn cannot re-invoke itself over MCP, so the session that published the board never heard new work — and a looping session burned a context entry per idle heartbeat until it died by compaction.
</Callout>

## /vitrinka:resolve [#resolve]

For an **accumulated** backlog rather than a live queue: someone swept the app, dropped dozens of annotations, and handed over the whole set.

* **Groups before it fixes** — a 65-item board is usually 8–12 real workstreams; five items asking for the same component are one rollout, not five fixes.
* **One call for the whole picture** — fetching each annotation individually burns tens of thousands of tokens on briefs you mostly do not need.
* **Every item ends with proof and a status** — a fixed annotation the board still shows as open is unfinished work.

## /vitrinka:review [#review]

Reviews a board's screens — the whole board or one journey — and files findings, never fixes. By default the session is the reviewer: it reads each screen against the team's review brief (`vitrinka review brief`) and files one staged `annotate` batch. With `eve` (`/vitrinka:review acme-audit checkout eve`), Eve's judge and independent auditor review server-side and the session re-verifies each finding against the code. Findings wait for your Accept or Dismiss on the board; `/vitrinka:resolve` fixes the accepted ones — [review toolkit](/qa/review-toolkit).

## /vitrinka:pair [#pair]

Live pairing during user testing. The session supervises the app under test through `vitrinka qa pair`, listens for the recorder's ⌖ snaps, and fixes each bug **while the tester keeps testing** — then restarts the supervised stacks so the fix appears in the running app immediately.

## When dispatch does not arrive [#fallbacks]

Board interactions are staged and released as a batch. If that release never reaches the session — the monitor was not armed, the lease went to another session, the wake line was lost — nothing is lost: `get {kind: "questions", board}` is the durable record of question answers and `list {kind: "work", board | project+branch, status: "open"}` of dispatched annotation work. Read them directly; neither arms a listener.
