全部技能

caveman-commit (JuliusBrussee/caveman)

依 Conventional Commits 規範寫出精簡的提交訊息,只說意圖與原因,不複述改了什麼。

caveman-commit:能寫出帶 breaking-change footer 的 Conventional Commits 訊息(對照組 4.0、技能 5.0、一句話提示 4.95),Token 用量差不多;對照組只寫一句白話,而把格式寫成一句話提示的效果也一樣好

視情況推薦安全

Codex CLI · gpt-6-astra

26.0 / 30

相對未使用技能的提升:+0.98 · 視情況推薦 · 18 次執行

視情況推薦:提升幅度 +0.98 低於 +1.0。推薦條件為總分至少 22/30、產出品質至少 3.5、提升幅度至少 +1.0。

SOTA

透過

使用 Codex 測試。

涵蓋 Codex, Claude Code

Codex CLI 0.166(SOTA 等級):18 次評分執行。依我們的等級規則,在這裡通過也涵蓋 Claude Code;但這不代表第二等級的結果。

分數

每個維度為 0 到 5 分,六個維度相加即為滿分 30 的總分。每個維度都是 5 分最好。成本 5 分代表便宜又快速;安裝 5 分代表容易安裝。

觸發可靠性
5.0
相對未使用技能的提升
3.0
產出品質
5.0
Token 與時間成本
5.0
安裝與可攜性
4.0
安全性
4.0

安全審查

安全

靜態掃描:0 CRITICAL / 0 HIGH / 0 MEDIUM。人工審查:可在無網路沙箱中安全執行(未發現問題)。掃描結果乾淨,不代表技能一定安全。

安裝

npx skills@latest add JuliusBrussee/caveman --skill caveman-commit

來源

固定 Commit: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

測試日期: 2026-11-02

我們測了什麼

  • 小型修正的 Commit 訊息 — 我需要一則 Commit 訊息。請為 change.diff 中的變更撰寫 Commit 訊息,並存到 COMMIT_MSG.txt(只要訊息本身)。
  • 新增端點的 Commit 訊息 — 請幫我寫一則 Commit。請為 change.diff 中的變更撰寫 Commit 訊息,並存到 COMMIT_MSG.txt(只要訊息本身)。
  • 破壞性變更的 Commit 訊息 — 寫一則 Commit 訊息。請為 change.diff 中的變更撰寫 Commit 訊息,並存到 COMMIT_MSG.txt(只要訊息本身)。

優點

  • 相對未使用技能,平均分數從 4.02 提升到 5.0(+0.98)。
  • 技能即使未被點名也會被採用:6/6 次實驗組執行都讀取了技能檔案。
  • 沒有 Token 額外負擔:Token 用量是未使用技能的 1.09 倍。
  • 使用技能後的絕對品質很高:5.0 / 5。

缺點

  • 一句話提示得分 4.95,使用技能則為 5.0(+0.05)。
  • 每個任務的每個組別 n=2;約 1 分以內的差異屬於雜訊。

評測

Codex CLI 0.166(gpt-6-astra,低推理)在專用的 Windows 測試電腦上執行,每次執行都使用全新的暫存專案與暫存 HOME/TMPDIR/快取;技能已安裝(實驗組)、未安裝(對照組),或未安裝但把技能的核心要求壓縮成一句話附加到提示詞(一句話提示組)。每個任務的每個組別執行 2 次,關閉網路,封鎖 /tmp 寫入。提示詞從未提及技能(除下方註明的措辭外)。三個 diff(修正分頁、新增 /health 端點、把設定鍵從 timeout 改名為 timeout_ms)。提示詞只要求把 Commit 訊息存到 COMMIT_MSG.txt,沒有指定格式。一句話提示組用一句話說明 Conventional Commits 格式及其規則。

三組對照

組別平均分數(0-5)每次執行 Token 用量
未使用技能4.0253k
一句話提示4.9548k
使用技能5.058k

以 Codex CLI 執行 18 次,採規則式檢查評分,不經 LLM 評審。總分 26.0 / 30,評級為 視情況推薦。

評定:視情況而定(26.0 / 30)。 來源:JuliusBrussee/caveman,skills/caveman-commit,固定於提交 9b68f7e。安裝:npx skills@latest add JuliusBrussee/caveman --skill caveman-commit。授權: MIT(儲存庫 LICENSE)。

這是什麼

caveman-commit 技能(JuliusBrussee/caveman)是一份提交訊息風格指南:採用 Conventional Commits 格式 type(scope): imperative summary,最多 50 個字元且結尾不加句號;只有在變更原因不夠明顯時才撰寫內文;發生破壞性變更時加上 BREAKING CHANGE 註記;並且不得出現 'this commit'、'I'、'we'、'now'、表情符號或 AI 署名。

測試方式

在專用的 Windows 測試電腦上使用 Codex CLI 0.166(gpt-6-astra,低推理),每次執行都建立全新的臨時專案,並使用臨時的 HOME/TMPDIR/快取;分別為安裝技能(技能組)、未安裝(對照組),以及未安裝但把技能核心要求濃縮成一句話附加在提示詞後(一句話組);每項任務的每組執行 2 次;關閉網路,並封鎖對 /tmp 的寫入。提示詞完全不會提到技能名稱(以下註明的措辭除外)。

共有三份 diff(修正分頁、新增 /health 端點、將設定鍵從 timeout 改名為 timeout_ms)。提示詞只要求把提交訊息存到 COMMIT_MSG.txt,並未指定格式。一句話版本則用一句話說明 Conventional Commits 格式及其規則。

  1. 小型修正的提交訊息 — 我需要一則提交訊息。請為 change.diff 中的變更撰寫提交訊息,並存到 COMMIT_MSG.txt(只存訊息本身)。
  2. 新增端點的提交訊息 — 請寫一則提交訊息。請為 change.diff 中的變更撰寫提交訊息,並存到 COMMIT_MSG.txt(只存訊息本身)。
  3. 破壞性變更的提交訊息 — 請寫一則提交訊息。請為 change.diff 中的變更撰寫提交訊息,並存到 COMMIT_MSG.txt(只存訊息本身)。

計分採程式化方式(隱藏測試/預埋問題召回/限制條件檢查/視情況搭配渲染與 OCR),每次執行 0–5 分。分數並非由任何 LLM 評審決定。

結果

提供給第三組的一句話版本:「請撰寫一則 Conventional Commits 訊息:type(scope): imperative summary,最多 50 個字元且結尾不加句號;只有在原因不夠明顯時才寫內文(破壞性變更一定要有內文,並加上 BREAKING CHANGE 註記);不得出現 'this commit'、'I'、'we'、'now'、表情符號或 AI 署名。」

任務對照組分數一句話版本技能組對照組 token 數一句話版本 token 數技能組 token 數技能讀取
t1-fix4.495.05.047k48k49k2/2
t2-feature4.495.05.054k48k55k2/2
t3-breaking3.074.865.056k48k67k2/2

平均分數:無技能 4.02,技能組 5.0(差異 +0.98)。每次執行 token 數:53k 對 58k(1.09 倍);時間 42 秒對 40 秒。一句話組:4.95(技能相較一句話版本的增益:+0.05;一句話版本相較無技能的增益:+0.93);一句話版本每次執行 48k token,因此技能的 token 成本是一句話版本的 1.19 倍。

實際表現

  • 對照組 4.02、技能組 5.0、一句話版本 4.95(各 n=6)。對照組在 6/6 次執行中都只寫出直述的命令句('Fix pagination offset for one-based page numbers'),沒有 type(scope): 前綴,因此每次都未通過「慣例類型」規則;其他規則大多通過(其中一次執行的主旨超過 50 個字元)。
  • 破壞性變更任務:對照組在 2/2 次執行中都未標示破壞性變更(沒有 BREAKING CHANGE 註記,也沒有 !);不過內文確實提到移轉事宜。技能組兩次執行都拿到 5.0:使用 feat(config)!: 並附上 BREAKING CHANGE 頁腳。一句話版本在 2/2 次執行中也做到相同結果,但其中一次執行的訊息未通過慣例類型檢查。
  • Token:技能組每次執行 58k、一句話版本 48k、對照組 53k(為對照組的 1.09 倍)。技能組 6/6 次執行都有讀取技能。

各面向分數

面向分數原因
1_output_quality5.0

技能組平均分數 5.00/5(程式化檢查,詳見各任務 表格)。

2_lift_vs_no_skill2.98

相較無技能的 4.02 高出 +0.98 分(每項任務 n=2;約 1 分 以下的差異屬於雜訊)。

3_trigger5.0技能組 6/6 次執行都讀取了技能檔案。
4_instructions_portability4僅 SKILL.md。
5_efficiency5token 為 1.09 倍(每次執行 58k 對 53k),時間為 0.96 倍(40 秒對 42 秒)。
6_safety_hygiene4僅文字內容;詳見 security.md。

本測試的限制

  • 檢查是針對 COMMIT_MSG.txt 的規則式判斷(類型前綴、長度、時態、語氣、禁用詞、破壞性變更註記);除了關鍵詞檢查之外,並未評判訊息是否妥善描述 diff。
  • 對照組因為沒有猜出提示詞未要求的 Conventional Commits 慣例而被扣分。
  • 每格 n=2;共三份小型 diff。
  • 每項任務的每組 n = 2:約 1 分以下的差異屬於雜訊。
  • 規則式計分只能衡量檢查項目看得見的部分,無法評判品味,也無法判斷結果是否為最佳解。

安全性

詳見 security.md。掃描:0 CRITICAL / 0 HIGH / 0 MEDIUM。評定:可在無網路沙箱中安全執行。掃描結果乾淨並不代表技能一定安全。

總結

只要一句「寫一則提交訊息」的簡單提示,就能穩定取得帶有破壞性變更標記的 Conventional Commits 訊息。只要用一句話點明格式,也能得到相同結果,因此這項技能主要省下的是自己撰寫格式說明的功夫。

完整紀錄

執行日誌:caveman-commit (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
欄位:任務、組-輪次、得分(0-5)、token、秒、通過的檢查、代理開啟的 skill 檔案。

t1-fix control-1: 得分 4.49, token 47722, 秒 20.0, 檢查 2/3, 未開啟
t1-fix control-2: 得分 4.49, token 47848, 秒 20.8, 檢查 2/3, 未開啟
t1-fix oneliner-1: 得分 5.0, token 47948, 秒 29.4, 檢查 3/3, 未開啟
t1-fix oneliner-2: 得分 5.0, token 48277, 秒 21.1, 檢查 3/3, 未開啟
t1-fix treatment-1: 得分 5.0, token 49540, 秒 24.8, 檢查 3/3, 開啟 caveman-commit
t1-fix treatment-2: 得分 5.0, token 49614, 秒 16.5, 檢查 3/3, 開啟 caveman-commit
t2-feature control-1: 得分 4.49, token 48133, 秒 31.0, 檢查 2/3, 未開啟
t2-feature control-2: 得分 4.49, token 60402, 秒 101.3, 檢查 2/3, 未開啟
t2-feature oneliner-1: 得分 5.0, token 48035, 秒 107.1, 檢查 3/3, 未開啟

18 次執行、3 個產出檔案

範例產出

SOTA · 装了 skill:COMMIT_MSG.txt(t1-fix,第 1 次,Codex)

fix(api): correct offset for one-based pagination

檢視 Pro