From git-tools
分析 git diff 並產出 Conventional Commits 格式的 Commit Message。當使用者提到「diff-summary」、「分析 diff」、「產生 commit message」、「寫 commit」、「變更摘要」、「code change summary」時觸發此 Skill。
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-tools:diff-summaryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
分析當前 Git 工作目錄的變更內容,產出符合 Conventional Commits 標準的 Commit Message、建議 Branch Name、Git Label,以及使用者公告 JSON。
分析當前 Git 工作目錄的變更內容,產出符合 Conventional Commits 標準的 Commit Message、建議 Branch Name、Git Label,以及使用者公告 JSON。
依序執行以下指令收集差異資料:
# 概覽:哪些檔案改了、改了多少行
git diff HEAD --stat
# 已 staged 的變更概覽
git diff --cached --stat
# 詳細 diff,排除設定檔
git diff HEAD -- ':!**/application-*.yml' ':!**/application.yml' ':!*pom.xml' ':!**/*.properties'
若使用者帶入 $ARGUMENTS,按以下規則調整:
| 參數 | 行為 |
|---|---|
--cached | 只分析已 staged 的變更 |
--branch <name> | 改用 git diff <name>...HEAD 比較指定分支 |
| 無參數 | 預設分析所有未提交變更(含 staged + unstaged) |
當 diff 輸出超過 3,000 行時,切換為逐檔分析模式:
--stat 結果列出所有變更檔案清單git diff HEAD -- <filepath> 並摘要完全忽略以下檔案的變更,不寫入 Commit Message:
application-*.yml、application.yml(Spring 設定檔)pom.xml(Maven 設定檔)*.properties(環境設定檔)專注分析: Java、XML、SQL、JSP、JavaScript、HTML、CSS 等程式碼的邏輯變更。
閱讀每個檔案的變更,識別:
避免籠統敘述(如「修改程式碼」),應寫出具體內容(如「修正 WCS120 欄位長度檢核邏輯」)。
產出四個部分,全部包裹在一個 ``` 程式碼區塊中。格式規範與完整範例參照 references/commit-format.md。
摘要:
<type>(<scope>): <subject> + Body在 Commit Message 區塊之後,另外產出 JSON 格式的版本公告。以非技術人員能理解的語言描述變更。格式參照 references/announcement-format.md。
若偵測到多個不相關的功能變更混在一起,主動建議拆分成多個 Commit Message,並分別產出各自的完整結果。
| 情境 | 處理方式 |
|---|---|
| 只有 yml/pom/properties 變更 | 回報「無程式碼邏輯變更,僅設定檔異動」 |
| 沒有任何變更 | 回報「工作目錄乾淨,無待分析的變更」 |
| 變更跨多個不相關模組 | 建議拆分,分別產出 Commit Message |
references/commit-format.md — Conventional Commits 撰寫規範、Type 定義、完整輸出範例references/announcement-format.md — 版本公告 JSON 格式規範與範例Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mark22013333/forge --plugin git-tools