Features
Labels and card templates
Two workspace catalogues: one classifies, the other pre-fills.
Labels
A label is global within the workspace: there is no project label and no epic label. It classifies a card along whatever dimension the project does not cover (api, regression, urgent), and cuts across the whole hierarchy without belonging to any level of it.
On a card, tagIds is the FINAL list: whatever does not come is removed. In a batch edit, by contrast, labels travel as add/remove, so the labels each card already had are not erased.
Card templates
A template is a half-written card kept in the workspace catalogue: title, description, column and labels. It serves whatever gets created every week in the same shape: a bug report, a deploy task, a review.
The composition has one rule
Whatever came in the request wins; the template fills the rest. It holds the same for POST /api/cards and for the form in the interface.
- Empty in a template means “does not define”, never “erase”:
"",nulland[]leave the field to whoever asks. - A template's title is not trimmed: the space in a prefix such as
[BUG]is part of the title. - A template's column belongs to the WORKSPACE set. Translating it to the card's set, when the scope is per project, is the server's job.
- Deleting a template does not touch the cards already created from it.