---
{
  "id": "platform.kanban.labels-commits-and-notes",
  "topic": "kanban",
  "title": "Labels, commit attachments, and note links",
  "locale": "en",
  "version": "2026-07-24",
  "summary": "Labels are board-scoped, commits use validated hashes and attachment IDs, and note links require same-owner resources.",
  "content": "A label belongs to one board. `add_label_to_card` only attaches an existing label from that card’s board; a cross-board label is reported as `resource_not_found`. Create a label with `create_label`, whose registry schema requires name and color and whose handler requires board write access. `delete_label` removes it from every card and requires UserConfirm with Strict drift.\n\nAdding or removing a label and linking or unlinking a note are idempotent, reversible operations without confirmation. A linked note must belong to the same owner or runtime returns `resource_not_found`. Use `list_card_notes` and `list_note_cards` for the two query directions.\n\n`add_commit` accepts a SHA only when it has exactly 40 or 64 hexadecimal characters. A malformed SHA currently surfaces as missing required `sha`, so inspect the format instead of assuming the field was omitted. `delete_commit` takes the attachment row’s `commitId`, obtained from `list_commits`, not the SHA; deletion requires UserConfirm with Strict drift.\n\nLabel, commit, and note-link operations update the board display but emit no Trigger events. Do not promise an automation event for these attachment changes; use the Kanban events card to choose an available card lifecycle event.\n",
  "aliases": [
    "card label",
    "create label",
    "commit attachment",
    "commitId",
    "git sha",
    "link note to card"
  ],
  "tags": [
    "kanban",
    "label",
    "commit",
    "note",
    "confirmation"
  ],
  "relatedActions": [
    "arinova.kanban.list_labels",
    "arinova.kanban.create_label",
    "arinova.kanban.add_label_to_card",
    "arinova.kanban.remove_label_from_card",
    "arinova.kanban.delete_label",
    "arinova.kanban.add_commit",
    "arinova.kanban.list_commits",
    "arinova.kanban.delete_commit",
    "arinova.kanban.link_note",
    "arinova.kanban.unlink_note",
    "arinova.kanban.list_card_notes",
    "arinova.kanban.list_note_cards"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/kanban/labels-commits-and-notes/"
}
---

A label belongs to one board. `add_label_to_card` only attaches an existing label from that card’s board; a cross-board label is reported as `resource_not_found`. Create a label with `create_label`, whose registry schema requires name and color and whose handler requires board write access. `delete_label` removes it from every card and requires UserConfirm with Strict drift.

Adding or removing a label and linking or unlinking a note are idempotent, reversible operations without confirmation. A linked note must belong to the same owner or runtime returns `resource_not_found`. Use `list_card_notes` and `list_note_cards` for the two query directions.

`add_commit` accepts a SHA only when it has exactly 40 or 64 hexadecimal characters. A malformed SHA currently surfaces as missing required `sha`, so inspect the format instead of assuming the field was omitted. `delete_commit` takes the attachment row’s `commitId`, obtained from `list_commits`, not the SHA; deletion requires UserConfirm with Strict drift.

Label, commit, and note-link operations update the board display but emit no Trigger events. Do not promise an automation event for these attachment changes; use the Kanban events card to choose an available card lifecycle event.
