04 GitLab 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 設定並結案 |
completed | close-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。