Tickets
The kanban board for units of work, the active ticket, and what agents can do with tickets.
Last updated:
On this page
The Tickets panel is a kanban board for the units of work inside a phase. You plan and track tickets here, and connected agents read them, move them, and report on them through MCP.
Where to find it
Select Tickets in the sidebar (item 4), or press Ctrl+4. The panel works on the project that is currently open.
A ticket is one unit of work. It has a name, a spec, constraints, acceptance criteria, a status, and a position (its order) inside its phase. On a team project it can also have an assignee. Every ticket belongs to exactly one phase, which is a named stage of the project plan that you manage in the Phase Planner. The board shows the tickets of one phase at a time.
What you see
The toolbar runs across the top of the panel:
- Phase: a dropdown that picks which phase the board shows. It opens on the first phase unless you picked one earlier, for example from the Phase Planner's dependency graph. Several phases can be active at once, so switch here to see each one.
- An assignee filter, on team projects only (see below).
- Add Task, which opens a blank ticket in the Backlog column.
Below the toolbar are 5 columns, always in this order:
| Column | Meaning |
|---|---|
| Backlog | Planned work not yet queued. New tickets land here by default. |
| Pending | Queued and ready to start. |
| In Progress | Being worked on now. |
| Review | Finished and waiting for a human check. |
| Done | Complete. |
Each column header shows a count and a + button that adds a ticket straight into that column. An empty column shows "No tasks".
Each card shows the ticket name, the start of its spec cut to one line, and 2 small badges. AC counts the non-empty lines in the acceptance criteria. R counts the reports attached to the ticket. The active ticket (defined below) has a highlighted ring around its card.
Team projects
On a project that is shared with a team, and when you are on a team plan, the board adds assignee features:
- A member chip with initials appears on each assigned card. Hover over it to see the full name.
- The assignee filter in the toolbar offers Anyone, Me, and each member of the organization. The filter only changes what the board shows. It never changes the tickets.
Solo projects show none of this.
How to use it
Create a ticket
- Select Add Task in the toolbar, or the + in the header of the column you want.
- Fill in Name, Spec, Constraints, and Acceptance Criteria. Write one acceptance criterion per line, because the AC badge counts lines.
- Select Create Task.
The new ticket goes to the bottom of its column. The assignee field stays disabled until the ticket exists, so assign it after you create it.
Move a ticket with the mouse
Drag a card to another column, or to a new position in the same column. The card moves while you drag, and it lands in the slot where you drop it.
A move between columns saves in 2 steps. Vibeless saves the new status first, then the card's position in the column. If the status save fails, the card returns to where it was and an error message appears. If the position save fails, the app retries once. If it still fails, the app puts the status back and the card returns. In the rare case that the status cannot be put back, the card stays in the new column and a message says its position could not be saved. A failed reorder inside one column also returns the card to its old place.
A plain click on a card does not start a drag. A click opens the ticket and makes it the active ticket.
Move a ticket with the keyboard
Tab to a card, then use these keys:
| Key | Action |
|---|---|
| Space | Pick up the card. Press Space again to drop it. |
| Left and Right arrows | Move the card to the neighboring column. |
| Up and Down arrows | Move the card within its column. |
| Enter | Open the ticket. While a card is picked up, Enter drops it. |
| Escape or Tab | Cancel the move. The card returns to where it started. |
Screen readers announce each pickup, position, and drop by ticket name, column, and position.
Change status without dragging
Open a ticket. On the Spec tab, pick a new value in Status. The ticket moves to the end of the chosen column, and a message confirms the move.
Edit or delete a ticket
Click a card to open the ticket sheet. Change any field on the Spec tab and select Save Changes. On a team project, pick a person in Assignee, or choose Unassigned.
To remove the ticket, select Delete ticket and confirm. Deletion cannot be undone. It also deletes every comment and report on the ticket. If the deleted ticket was the active ticket, the pin is cleared.
The ticket sheet
The sheet has 3 tabs. Reports and Comments are available once the ticket exists.
Spec tab
This tab holds Name, Status, Assignee (team projects only), Spec, Constraints, and Acceptance Criteria. Humans can edit every field at any time. Agents can never edit these fields.
Reports tab
A report is a logic certificate: a structured argument from the agent that the ticket meets its spec. Agents attach reports. You cannot write one in the app. Each report shows its date and an answer badge of YES, NO, or PARTIAL. The body has these sections: Definitions, Premises, Analysis, Edge Cases (only when present), Counterexample, Formal Conclusion, and Answer. The newest report is at the top.
Reports are off by default. To turn them on, open Dashboard, select the Agents tab, and in the Reports card check Enable semi-formal certificates on Review. When this is on, an agent that moves a ticket to Review is asked to file a certificate before handing the ticket over. Writing a report uses the agent's own tokens, not Vibeless credits.
Comments tab
Comments are the running record of what was done and how. Type in the box and select Add comment. Comments appear oldest first. A comment written by an agent carries an agent badge. Every comment shows its author detail and time.
Comments are append-only. Nobody can edit or delete a comment, in the app or through an agent. The only way a comment is removed is by deleting its ticket. A comment can be up to 10,000 bytes.
The active ticket
The active ticket is the one ticket per project that marks what is being worked on right now. Agents read it to know which ticket their current work belongs to. Its card shows a highlighted ring.
You set the active ticket in 3 ways:
- Click a card. This opens the ticket and pins it.
- Move a ticket into In Progress. Any move into In Progress pins that ticket. A drag, the Status field, and an agent status change all count.
- Ask the agent to pin a ticket with
vibeless_set_active_ticket.
Moving the pinned ticket out of In Progress clears the pin. Moving any other ticket between other columns leaves the pin alone. Deleting the pinned ticket also clears it.
An agent sees the active ticket in 2 places. The vibeless_get_project_context tool lists the active ticket's name and status. The SessionStart digest does not include it. The vibeless_get_active_ticket tool returns the full spec, constraints, and acceptance criteria. If the active ticket has sat in Done or Review for more than 7 days, that tool adds a stale-ticket note telling the agent to set a current ticket. Vibeless never clears a stale pin on its own.
How it connects to the rest of Vibeless
The board updates live. When an agent creates or moves a ticket, or another panel changes one, the board refreshes without a reload. On a team project, changes from teammates' devices arrive the same way. If you are mid-drag when a change arrives, the board waits until you drop, then applies it (within 10 seconds at most). While the window is visible, the panel also refreshes its tickets every 15 seconds as a backstop.
Search can open a ticket directly. Selecting a ticket in Search opens its sheet on this board.
What an agent can do
Agents connect through MCP (see Connecting agents) and work with tickets through these tools. The MCP tools reference lists every tool.
| Tool | What it does |
|---|---|
vibeless_list_open_tasks | Lists tickets that still need work (everything except Done) across all phases, or in one phase. Returns short summaries by default. |
vibeless_get_task_spec | Returns one ticket with its constraints merged with the project constraints and the phase boundary, plus the full comment thread. |
vibeless_create_task | Creates a ticket with a name and, optionally, a spec and acceptance criteria. It always lands at the bottom of Backlog in the chosen phase. |
vibeless_update_task_status | Changes a ticket's status and nothing else. Returns the next suggested ticket in the same phase. |
vibeless_set_active_ticket | Pins a ticket as the active ticket and reports what was pinned before. |
vibeless_get_active_ticket | Returns the active ticket in full. |
vibeless_add_task_comment | Appends a permanent comment, shown with the agent badge. |
vibeless_attach_report | Attaches a logic certificate to the ticket's Reports tab. |
The next suggested ticket follows a fixed order. Vibeless looks first at tickets assigned to you, then at unassigned tickets, then at everyone else's. Within each group it picks Pending before Backlog, and the ticket highest in the column comes first.
Agents never edit a ticket's text, never set constraints or an assignee, never reorder tickets, and never delete them. A ticket an agent creates is a permanent record of what was planned. People keep full control over every field in the app.
Rules and limits
- A viewer on a shared project can open the board and read every ticket. Any change a viewer tries is refused, and the sync indicator shows Read-only. Agents connected to a viewer's copy are refused the same writes.
- Editors and maintainers can create, edit, move, assign, and delete tickets.
- Assignees are set by people only. The assignee features need a shared project and a team plan (see Organization and team sync).
- Deleting a ticket cannot be undone and removes its comments and reports.
- Comments cannot be edited or deleted. Each comment is limited to 10,000 bytes.
- Reports come only from agents. The Reports setting decides whether agents are asked to file one when they move a ticket to Review.
If something looks wrong
- A card jumped back after you dropped it. The save failed, and the board restored the last saved state. Read the error message, then try the move again.
- A message says a ticket moved but its position could not be saved. The status changed, but the ticket may sit in a different slot in the column. Drag it to the right place.
- The board shows no tickets you expect. Check the Phase dropdown first, then the assignee filter. Me shows only tickets assigned to you.
- The Reports tab is empty after the agent finished. Check that Enable semi-formal certificates on Review is on in the Dashboard Agents tab, and that the agent moved the ticket to Review.
- The agent works on an old ticket. The active ticket may still point at it. Click the right card, or move it to In Progress, to pin it.
- You cannot change anything on a shared project. Your seat is view-only. Ask a maintainer for editor access.
Related
- Phase Planner for creating and ordering the phases that hold tickets.
- Logs for decisions an agent logs against a ticket and for the drift queue.
- Connecting agents and the MCP tools reference for the agent side of the board.
- Organization and team sync for shared projects, roles, and assignees.