git-commitlisted
Install: claude install-skill abs1294/fulin-claude-plugins
# Git Commit Skill — 並行審查流程
核心設計:兩軌審查(Codex+code-reviewer)前移到 commit **之前**,與使用者確認 message 三軌並行。BLOCK 只需改碼重 stage,無需 revert/reset,git 歷史永遠乾淨。
| 階段 | 動作 |
|------|------|
| Step 1 | `analyze` 分析 → `prepare` stage → **同一輪並行三軌**(1.3a 預覽+1.3b Codex+1.3c code-reviewer)→ 匯流 |
| Step 2 | `ship`(commit → push → 驗證) |
多步驟用 TaskCreate 追蹤、完成當下關、流程結束清空清單。三條紀律(本 skill 是跨場景通則在 commit 流程的具體化;通則同樣適用多檔案 Playwright 測試/多步驟前後端開發/skill 與 memory 維護/bug 追查修復):
1. **開始前立即 TaskCreate**:超過 2 步的工作先建清單。
2. **步驟開始與完成當下更新**:開始前 `in_progress`,完成**同一輪訊息內** `completed`,不拖到下一步。常見漏關:預覽類 task 送出後就該關、agent 審查類收到完成通知當下就關、批次指令(`flow.sh ship` 做 commit+push+verify)同一輪一起關多個 task。
3. **流程結束清空整個 task list**:最終一步完成的同一輪訊息內,`TaskList` 檢查全部 `completed`(補漏 `in_progress` 殘留)→ 全部 `TaskUpdate status=deleted` → 摘要中主動告訴使用者「task 清單已清空」。
禁止情境:流程明顯結束但 task list 還留 completed 條目;使用者已確認 OK 還留任務不處理;下次流程觸發時才發現上次 task 還在(2026-04-20 實證:預覽送出後漏關 task #8、結束後 9 個 completed 沒清,使用者提醒「任務結束了還沒有關閉」)。
## 核心原則(默許機制)
> Commit 觸發條件:**Codex 非 BLOCK ∧ code-reviewer 非 BLOCK ∧ 使用者未明確否決。**
1. 兩軌皆 PASS(或豁免)+使用者未回覆 → **自動 commit**(默許;local)。push 另需使用者當次明確核可(如「commit 並推上去」)才帶 `--push`。預覽時必須明講此行為。
2. **任一軌 BLOCK → 永不自動 commit**,列必修項等使用者——即使使用者已先回 OK。
3. 使用者明確否決(「等等」「先別上」、改 message、調 staging)→ 照使用者意思,不 commit。
4. PASS 附清單=「可 commit 但有建議」,預設放行;使用者要先修 → 改碼 → 重跑 `prepare` → 兩軌重送(diff 變了就重判豁免)。BLOCK 後重做同樣走完整 Step 1。禁止沿用先前確認過的 message 直接 commit(碼可能已變)。
5. **某一軌確定不可用** → 單軌降級(該軌記 `skipped: <原因>`、匯流視為 PASS),預覽明講已降為單軌,並由主 agent 補做該軌該查的項目。**兩軌都不可用 → 不可自動 commit**,