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 追蹤、完成當下關、流程結束清空清單。
## 核心原則(默許機制)
> 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(碼可能已變)。
## Review 豁免規則
`Style`(純 CSS/`<style>` 區塊/template class 調整/i18n value/格式化)與 `Docs`(純 `.md`/註解文字/XML doc 內文)可**同時豁免兩軌**(不得只豁免一軌),敏感掃描仍必做,1.3a 預覽仍要出並標示「已豁免——未回覆將自動 commit + push」。
判斷原則一句話:**diff 觸及「會被執行到的程式邏輯」一律不豁免**——`.vue` 的 `<script>`、`v-if`/`@click` 綁定、i18n 的 **key**(value 不算)、任何 `.cs`/`.js`/`.ts` 邏輯行,都算。使用者標 Style/Docs 但 diff 含邏輯行 → 告知「diff 含邏輯修改,仍送審」,禁止私下豁免。
## flow.sh(必用)
`.claude/skills/git-commit/flow.sh` 包掉所有純 git 操作,**不要手動組 git 指令**:
| 指令 | 動作 |
|------|------|
| `flow.sh analyze <repo>` | 狀態分類+local-overrides 過濾+敏感字掃描 |
| `flow.sh prepare <repo> <files...>` | 逐檔 `git add` → staged diff 輸出到 `.claude/.git-commit-tmp/staged-<repo>.diff` |
| `flow.sh ship <repo> <type> <description> [