Community程式設計與開發github.com

Gentleman-Programming/gentle-ai-work-unit-commits

將提交規劃為可審查的工作單元。觸發時機:實作、提交分割、鏈結 PR,或將測試與文件隨附於程式碼。

gentle-ai-work-unit-commits 是什麼?

此技能指導開發者與 AI 代理(如 Claude Code、Cursor、Codex)如何將變更拆分為邏輯清晰、可獨立審查的工作單元提交。其核心原則為「依工作單元提交」而非依檔案類型,確保每一次提交都包含可交付的行為、修正、遷移或文件,並將測試與文件緊密綁定在對應的變更中。技能支援多種平台,並在 SKILL.md 中提供明確規則表格、提交前檢查清單、以及分割範例,幫助維持審查者的認知負荷在合理範圍內。它與鏈結 PR(chained PRs)及 SDD 任務深度整合:當預測變更行數超過 400 行時,自動建議切片為鏈結 PR;若 SDD 工作量預測為高風險,則依照 delivery_strategy(如 ask-on-risk、auto-chain)執行分割,避免無意義地壓縮程式碼來迎合行數預算。最終目標是讓每次提交都像一個可獨立理解的故事,提升程式碼審查品質與協作效率。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Gentleman-Programming/gentle-shell/tree/main/skills/work-unit-commits

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

使用時機

當你需要決定每個提交或 PR 應包含哪些內容時,載入此技能。

適用於:

  • 將一個功能拆分為可審查的工作單元。
  • 在開啟 PR 前準備提交。
  • 將大型變更轉換為鏈結或堆疊式 PR。
  • 保持審查者的認知負荷在健康範圍內。
  • 應用 SDD 工作時,避免意外產生超過 400 行變更的 PR。

關鍵規則

規則要求
依工作單元提交一個提交代表一個可交付的行為、修正、遷移或文件單元。
不要依檔案類型提交避免先送 models,再送 services,然後 tests,如果單獨看沒有一個能獨立運作。
將測試隨附於程式碼測試應與其所驗證的行為在同一次提交中。
將文件隨附於使用者可見的變更文件應與其所說明的功能或流程放在一起。
說一個故事審查者應能從 diff 與提交訊息中理解每個提交存在的原因。
可作為未來 PR 的基礎當變更規模擴大時,每個提交應可成為一個鏈結 PR 的候選。
SDD 工作量防護如果 SDD 工作預測將產生超過 400 行的變更,請在實作前將提交分組為鏈結 PR 的切片。
預算不是程式碼精簡賽切記不要為了符合審查預算(預設 400 行,或 session 中的 review_budget_lines),而刪除註解、空行、文件或測試,或壓縮程式碼。請依工作單元切片,或回報超量情況。

工作單元檢查清單

提交前,請確認:

  • 該提交只有一個明確目的。
  • 僅套用此提交後,儲存庫仍然合理。
  • 若相關,該單元的測試或文件已包含在內。
  • 回退此提交時,不會一併回復無關的內容。
  • 提交訊息說明的是結果,而非檔案列表。

分割範例

不佳的分割較佳的工作單元分割
add modelsfeat(auth): add token validation domain model and tests
add servicesfeat(auth): wire token validation into login flow
add tests測試已包含在每個行為提交中
update docs文件已包含在使用者可見的變更中

PR 關係

將工作單元提交作為鏈結 PR 的基礎:

  1. 建立最小的獨立工作單元。
  2. 包含該單元的驗證。
  3. 使用 Conventional Commit 訊息提交。
  4. 如果 PR 接近 400 行變更,將提交或提交群組提升為鏈結 PR。

SDD 關係

當 sdd-tasks 產出審查工作量預測時:

  • 低風險:將工作單元提交保留在單一 PR 中。
  • 中風險:依工作單元提交,並在 PR 建立前監控變更行數。
  • 高風險:遵循 SDD delivery_strategy — 在 ask-on-risk 時詢問,在 auto-chain 時自動切片,在超預算的 single-pr 上要求 size:exception,或在 exception-ok 時記錄已接受的 size:exception。
  • 分割有界限:經過一次誠實的切片嘗試後,如果找不到能符合預算的連貫工作單元分割,請停止並回報最小誠實數量,附上 size:exception 建議。不要為了達到數字而反覆壓縮程式碼。

每個 SDD 工作單元應清晰地對應到一個提交或 PR,並具備:

  • 明確的起始狀態,
  • 明確的完成狀態,
  • 驗證位於同一單元內,
  • 回退時不會移除無關的內容。

指令

# 提交前檢視故事線
 git diff --stat
 git diff --cached --stat

# 查看近期提交風格
 git log --oneline -5

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

相關技能