newChatArtifact.tsfeat(boards): a board born with columns, and a schema you edit as a ticket A new board arrived as a blank rectangle — the one thing it failed to teach was that it was a kanban. It is now created on a starter axis (`Column 1/2/3`), placeholder vocabulary that reads as "rename me" rather than Cedar deciding the board is a work ladder. `emptyBoardSchema` stays what a board READS as, so a failed parse still invents nothing. The 20rem schema dropdown becomes two controls, the same split as /tasks/kanban: - Schema, a modal shaped like an open ticket — title/description beside a rail of typed attributes, the geometry a person already knows from `CardDocumentView`. Identity writes to `documents` columns (`boards.setInfo`); shape writes to the Y.Doc, so an agent's edit merges rather than clobbers and shows live while the dialog is open. - Display, the `view` half alone — which attribute draws the columns, which show on the card face. Regrouping writes no card row, which is the whole reason it is a view. Renaming a column renames the value on every card in it (`boards.renameColumnValue`); renaming only the option drew a new empty column beside the old one, still full. Boards and cards also render in /brain now — a board's content is not its prosemirror fragment, so the prose branch drew an empty editor that wrote prose INTO the board. Both own their full surface, and the back gutter steps aside: at wide widths that invisible ~460px strip lay over the first kanban column, eating clicks and blocking drags. Co-Authored-By: Claude Opus 5 (1M context) <<email>>Sep 7, 2026, 3:28 PM