04 GitLab label 與看板

Issue 狀態 label 生命週期(互動圖:可切換主題、搜尋節點;全頁開啟)

互動版:diagrams/04-issue-labels.html(來源 diagrams/src/04-issue-labels.lifecycle.json)

看板就是 label

GitLab 專案的 Development board 是唯一看板:它的每個 list 就是一個狀態 label,改 label 等於移卡。狀態 label 互斥,只能透過 node scripts/issue-state.mjs --set <n> <label> [--expect …] 修改(人改狀態走 /issue-queue,這個腳本只給 skill 與 agent 內部用)。

看板欄位狀態 label
待討論needs-triage、needs-info,或沒有狀態 label
可開工ready-for-agent、ready-for-human
處理中in-progress
完成/不處理completed、wontfix、已關閉

分類 label(enhancement、wayfinder:*)不影響欄位。

每個 label 的下一步

label下一步
needs-triage/issue-queue 選這張釐清
needs-info補完資訊的人重跑 /issue-queue
ready-for-agent/issue-run <n>
ready-for-human說「開工 n」讓 agent 建 worktree 並設 in-progress,人在該 worktree 實作,完成後「結案 n」→ ! git push → 再「結案 n」
in-progress等 agent 回報(或人完成)→「結案 n」→ ! git push → 再「結案 n」
wontfix由 /issue-queue 設定並結案
completedclose-issue.mjs 結案時設定,無下一步

Issue body 的固定區塊

issue-create.mjs 直接開成 ready-for-* 時,body 必須有:

SQL prerequisite:無(理由)        ← 或 #<sql iid>(理由)

## 關聯
Blocked by: none                   ← 或 #<iid>, #<iid>
Parent: #<iid>                     ← 可省略
Wave: W<n>                         ← 可省略

## 關聯 只接受這三種行,其他文字放別的段落。依賴是否完成只從 GitLab 讀:關閉或 wontfix 才算。

沒有審查中

Issue 層級不開 MR,in-progress 直接結案;只有整合分支要進 develop 時才開 MR(用 pr skill 寫 body)。GitLab 自動 pipeline 已暫停,只接受手動 web pipeline,日常把關靠本地 pre-push 的 check-before-push.sh。