---
{
  "id": "platform.kanban.completion-wip-and-done",
  "topic": "kanban",
  "title": "完成、Done 欄與 WIP limit",
  "locale": "zh-TW",
  "version": "2026-07-24",
  "summary": "完成卡片是移入 Done-type column；transactional WIP limit 會保護所有把卡納入欄位的操作。",
  "content": "`complete_card` 會把卡移到同 board 上 `column_type = done` 的欄；「完成」是位置，不是 Boolean 卡片欄位。若沒有 Done 欄，runtime 回 `resource_not_found`。Agent 不能建立 column，應請使用者到 Kanban UI 設定 Done 欄。\n\nCompletion 有獨立 `kanban:card:complete` scope，因此可只授「標記完成」而不授一般編輯，但仍需要該 board 的 write 權限。卡片已在 Done 欄時再次 complete 會 no-op 成功，且不發 move events。\n\n選填 WIP limit 會在 transaction 內檢查 `create_card`、跨欄 `update_card`/`move_card`、`complete_card` 與 `unarchive_card`。同欄欄位更新不檢查，archived 卡不計數。欄已滿時回 `resource_conflict`，details 為 `{error: \"COLUMN_WIP_LIMIT_REACHED\", limit, current, columnId}`。\n\n不可 blind retry。應回報實際欄位與 limit，建議清出欄內工作、改選目標欄，或請使用者在 UI 調整 WIP；runtime error details 與目前狀態高於本卡。\n",
  "aliases": [
    "完成卡片",
    "Done 欄",
    "WIP limit",
    "欄位已滿",
    "COLUMN_WIP_LIMIT_REACHED",
    "標記任務完成"
  ],
  "tags": [
    "kanban",
    "completion",
    "wip",
    "done",
    "debugging"
  ],
  "relatedActions": [
    "arinova.kanban.complete_card",
    "arinova.kanban.create_card",
    "arinova.kanban.update_card",
    "arinova.kanban.move_card",
    "arinova.kanban.unarchive_card",
    "arinova.kanban.list_columns"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/zh-tw/kb/kanban/completion-wip-and-done/"
}
---

`complete_card` 會把卡移到同 board 上 `column_type = done` 的欄；「完成」是位置，不是 Boolean 卡片欄位。若沒有 Done 欄，runtime 回 `resource_not_found`。Agent 不能建立 column，應請使用者到 Kanban UI 設定 Done 欄。

Completion 有獨立 `kanban:card:complete` scope，因此可只授「標記完成」而不授一般編輯，但仍需要該 board 的 write 權限。卡片已在 Done 欄時再次 complete 會 no-op 成功，且不發 move events。

選填 WIP limit 會在 transaction 內檢查 `create_card`、跨欄 `update_card`/`move_card`、`complete_card` 與 `unarchive_card`。同欄欄位更新不檢查，archived 卡不計數。欄已滿時回 `resource_conflict`，details 為 `{error: "COLUMN_WIP_LIMIT_REACHED", limit, current, columnId}`。

不可 blind retry。應回報實際欄位與 limit，建議清出欄內工作、改選目標欄，或請使用者在 UI 調整 WIP；runtime error details 與目前狀態高於本卡。
