Skip to content

boards

Boards: kanban boards in a space, for people and agents, the team's operational source of truth: one real outcome per card, with its owner, what done looks like, an honest column, and any blocker.

On this page 6
TypeScript
import { boards } from "@copilotz/work";

What it keeps

It keeps 2 collections, each on the record: every change to one is an event.

CollectionKept asFields
boarddocumentsin, name, description, columns, archived, by, at, updatedBy, updated
carddocumentsin, board, column, order, title, description, assignee, labels, due, by, at, updatedBy, updated

The access rules cover board and card: each document is in a space, and only those who reach the space reach it.

What it lets callers do

Of its 7 Actions, people and agents may call all 7; contacts and someone signed out may call none.

ActionPersonAgentContactAnyoneKeyWhat it does
board.createyesyesnonoyesMakes a board in a space, with the usual columns unless given its own.
board.deleteyesyesnonoyesDeletes a board, with its cards.
board.updateyesyesnonoyesChanges a board: its name, description, columns, or whether it's archived.
card.createyesyesnonoyesAdds a card to a board: a title, and maybe its column, description, assignee, labels and due date.
card.deleteyesyesnonoyesDeletes a card.
card.moveyesyesnonoyesMoves a card: to a column, before or after another card, or to its top or bottom.
card.updateyesyesnonoyesChanges a card: its title, description, assignee, labels or due date (null clears).

An agent works for a person, and calls what both may. A key calls only what its scope names.

Agents act through its 6 tools, as whoever they work for:

ToolWhat it doesCalls
create_boardMake a board in this space, for work that takes more than one step.board.create
create_cardAdd a card to a board in this space: one real outcome, with its owner (assignee), what done looks like and any blocker in its description, and an honest column.card.create
list_boardsList the boards in this conversation's space: each one's name, link, and how many cards are in each column.
move_cardMove a card in this space (by its id from read_board, or its title) to a column of its board, by the column's name or id: when its state changes, not later.card.move
read_boardRead a board in this space (by its name or id; without one, the space's first): its columns in order, with their cards, each with its id, title, owner, labels, due date and a line of its description.
update_cardChange a card in this space (by its id from read_board, or its title): its title, description, assignee, labels (the whole set) or due date.card.update

It also adds rules every read and write keeps to (guard).

Where it shows

It shows to the model through its tools.

  • Agents' tools: create_board, create_card, list_boards, move_card, read_board, update_card.
  • Front ends: boards-web.

What it needs

Nothing to set: it works as it comes.

What it requires

The runtime doesn't start without chat and spaces: add them too.

It ships in a package of its own, @copilotz/work@1.0.0-rc.34, for copilotz 1.0.0-rc.34: install it beside copilotz.

Listing

It keeps every listing rule.