> ## Documentation Index
> Fetch the complete documentation index at: https://vetta.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# vetta board

> Read and move cards on a team's shared board from a terminal.

The [team board](/docs/team/board) is the durable half of a [team](/docs/team/overview): a coordinator's transcript scrolls away, the card that says who holds what does not. These commands read and move cards on it.

`<board>` is a `brd_` id, or the `agt_` id — or the name — of the agent that owns the board. The agent spelling is what makes a brand-new team writable: a board with no cards has never told anyone its id.

## Commands

| Command                                  | Description                                                     |
| ---------------------------------------- | --------------------------------------------------------------- |
| `vetta board create <board>`             | Ensure the agent's board, and print it.                         |
| `vetta board show <board>`               | The whole board, in column order.                               |
| `vetta board get <board>`                | The board itself: its id, its owner, and its per-column counts. |
| `vetta board card <board> <card-id>`     | One card, in full.                                              |
| `vetta board add <board>`                | Add a card.                                                     |
| `vetta board move <board> <card-id>`     | Retitle, move, assign or block a card.                          |
| `vetta board comments <board> <card-id>` | Read a card's comments, oldest first.                           |
| `vetta board comment <board> <card-id>`  | Comment on a card.                                              |
| `vetta board done <board> <card-id>`     | Mark a card `done`.                                             |

## create

```bash theme={"system"}
vetta board create research-lead
```

Prints the board object: its `brd_` id, the agent that owns it, and how many cards stand in each of the four columns. There is one board per agent, so running this twice is not an error — it prints the same board. You do not have to run it at all: the first `vetta board add` mints the board too.

## show

```bash theme={"system"}
vetta board show research-lead
vetta board show research-lead --status blocked
```

Cards come back in column order — `todo`, `doing`, `blocked`, `done` — then oldest first. `--status` narrows to one column.

## add

```bash theme={"system"}
vetta board add research-lead \
  --title "Verify the Q3 numbers" \
  --assignee fact-checker \
  --status todo
```

Only `--title` is required; a card defaults to `todo`, unassigned and unblocked. `--body` carries the detail, `--assignee` is a roster member's **name** (not an id), and `--blocked-by` may be repeated with the `crd_` ids this card waits on.

## move

```bash theme={"system"}
vetta board move research-lead crd_8k12… --status doing --assignee web-researcher
vetta board move research-lead crd_8k12… --title "Verify the Q4 numbers"
```

Pass only what changes. `--assignee ""` unclaims the card; omitting a flag leaves that field alone.

`move` is the whole `PATCH`, so it also carries `--title` and `--body`. That is not a stretch of the name: it has always carried `--assignee` and `--blocked-by`, neither of which is a move across columns either, and there is one route here — a second verb over the same `PATCH` would leave you guessing which to reach for.

## get

```bash theme={"system"}
vetta board get research-lead
```

The board object — its `brd_` id, the agent that owns it, and how many cards stand in each of the four columns. `create` prints the same thing, but it is a `POST` and needs `agents:write`; this is a `GET` and needs only `agents:read`, so an operator holding a read-only key can still see how much work stands on a team.

`get` takes a board. `card` takes a card. They are told apart by their names, not by how many arguments you passed.

## card

```bash theme={"system"}
vetta board card research-lead crd_8k12…
```

One card, in full. `show` lists the board; this reads a single card by its `crd_` id.

## comments

```bash theme={"system"}
vetta board comments research-lead crd_8k12…
```

The card's comments, oldest first — the hand-off notes a team leaves each other. `show` lists cards without them, so this is the only way to read a card's conversation from a terminal.

## comment

```bash theme={"system"}
vetta board comment research-lead crd_8k12… --body "The Q3 figure is stale."
```

There is no `--author`. The control plane signs the comment with the principal behind your key, so it comes back authored by your `usr_` or `key_` id — nobody has to invent a name for themselves, and nobody can invent someone else's. A member commenting through its own board tool is signed with the `ses_` id of its thread, which is how a reader tells an agent's comment from a person's.

## done

```bash theme={"system"}
vetta board done research-lead crd_8k12…
```

Marks the card `done`, which is the documented terminal state. **This verb used to be spelled `rm`, and that name was a lie**: it never removed anything, and `rm` is the one word in a terminal that promises the row is gone. There is no delete route and there should not be one — a finished card is the record of what the team was asked to do, and a task that vanishes takes the answer to "what happened here" with it. So the verb was renamed to what it does. `vetta board rm` is no longer a command and exits `2`.
