全部技能

caveman (JuliusBrussee/caveman, SKILL.md only)

用精簡的穴居人語氣回答,去掉廢話但保留每個技術事實。

caveman:提示詞裡已經有「be brief」時,技能沒有省下任何字,還多花 2.2 倍的 Token

視情況推薦安全

Codex CLI · gpt-6-astra

21.7 / 30

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

視情況推薦:總分 21.7/30 低於 22,並且提升幅度 +0.00 低於 +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
相對未使用技能的提升
2.0
產出品質
4.7
Token 與時間成本
1.0
安裝與可攜性
4.0
安全性
5.0

安全審查

安全

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

安裝

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

來源

固定 Commit: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

測試日期: 2026-11-02

我們測了什麼

  • 解釋無限迴圈的 useEffect — 在 React 元件裡我有 const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } 和 useEffect(() => { fetchData(); }, [fetchData]);。元件陷入無止盡的重新抓取迴圈。為什麼會這樣,該怎麼修?Be brie…
  • 修正緩慢的 Postgres 查詢 — Postgres:SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; 在只有主鍵索引的 50M 列 orders 表上要花好幾秒。我該怎麼做?Be brief; I'm paying per token.
  • 共用分支上該用 merge 還是 rebase — 我的團隊在一個共用功能分支上工作,其他人已經拉取過了。我想把最新的 main 帶進來。我該用 git merge 還是 git rebase,為什麼?Be brief; I'm paying per token.

優點

  • 技能即使未被點名也會被採用:6/6 次實驗組執行都讀取了技能檔案。
  • 使用技能後的絕對品質很高:4.67 / 5。

缺點

  • 相較於未使用技能,沒有可測量的提升(+0.00,落在雜訊範圍內)。
  • Token 用量是未使用技能的 2.2 倍。
  • 測試注意事項:只安裝了 SKILL.md,沒有安裝 hooks 與安裝程式。測試提示詞中含有「be brief」觸發詞。
  • 每個任務的每個組別 n=2;約 1 分以內的差異屬於雜訊。

評測

Codex CLI 0.166(gpt-6-astra,低推理)在 Mac 測試機上執行,每次執行都使用全新的暫存專案與暫存 HOME/TMPDIR/快取;技能已安裝(實驗組)、未安裝(對照組),或未安裝但把技能的核心要求壓縮成一句話附加到提示詞(一句話提示組)。每個任務的每個組別執行 2 次,關閉網路,封鎖 /tmp 寫入。提示詞從未提及技能(除下方註明的措辭外)。每個提示詞都是一個技術問題(useEffect 無限迴圈、緩慢的 Postgres 查詢、共用分支上該用 merge 還是 rebase),結尾是「Be brief; I'm paying per token.」。這句話本身就是技能的觸發詞之一,而對照組也會得到同一句話。因此這個測試要問的是:在單純要求「簡短」之上,技能還能多加什麼。

三組對照

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

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

揭露事項:只安裝了 SKILL.md,沒有安裝 hooks 與安裝程式。測試提示詞中含有「be brief」觸發詞。

判定:視情況而定(21.7 / 30)。 來源:JuliusBrussee/caveman,skills/caveman,固定於提交 9b68f7e。安裝:npx skills@latest add JuliusBrussee/caveman --skill caveman。授權條款: MIT(儲存庫 LICENSE;儲存庫中的 hooks 與安裝程式並未安裝或執行)。

這是什麼

caveman 技能(僅 skills/caveman/SKILL.md;儲存庫的 hooks 與安裝程式未安裝)。這是一種精簡回覆風格:先講答案、刪掉問候與重述、使用簡短詞彙、省略冠詞但絕不省略否定詞、程式碼/路徑/數字與錯誤訊息保持原樣、警告與不可逆操作則用平實的文字說明。它會在「caveman mode」、「be brief」、「less tokens」時觸發。約 600 字的 Markdown,沒有指令碼。

我們如何測試

在 Mac 測試機上使用 Codex CLI 0.166(gpt-6-astra,低推理),每次執行都使用全新的暫存專案與暫存 HOME/TMPDIR/快取,安裝技能(實驗組)、未安裝(對照組),或未安裝但將技能核心要求濃縮成一句話附加在提示詞後(一句話提示組),每個任務每組執行 2 次,網路關閉,/tmp 寫入封鎖。提示詞從未提及技能(以下註明的措辭除外)。

每個提示詞都是一個技術問題(無限迴圈的 useEffect、緩慢的 Postgres 查詢、共享分支上的 merge 與 rebase 之爭),結尾都是「請簡短;我按 Token 付費。」這句話是技能自身的觸發語之一,對照組也會收到同一句話。因此這項測試要問的是:在單純要求簡短之外,技能還額外帶來什麼。

  1. 解釋無限迴圈的 useEffect — 在一個 React 元件中,我有 const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } 以及 useEffect(() => { fetchData(); }, [fetchData]);。元件會陷入無止境的重複抓取。為什麼,該怎麼修?請簡短…
  2. 修正緩慢的 Postgres 查詢 — Postgres:SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; 在只有主鍵索引的 5,000 萬列 orders 資料表上要花好幾秒。我該怎麼做?請簡短;我按 Token 付費。
  3. 共享分支上該 merge 還是 rebase — 我的團隊在一個共享功能分支上工作,其他人已經拉取過該分支。我想把最新的 main 帶進來。我該用 git merge 還是 git rebase,為什麼?請簡短;我按 Token 付費。

評分方式為程式化檢查(隱藏測試/植入問題召回/限制條件檢查/視情況進行渲染與 OCR),每次執行 0–5 分。沒有任何 LLM 評審決定分數。

結果

提供給第三組的一句話提示:「簡潔回答:先講答案,不要問候、填充語、模糊保留或重述,省略不必要的冠詞,每個技術事實、程式碼、數字與否定詞都要保持精確。」

任務對照組分數一句話提示使用技能對照組 Token 數一句話提示 Token 數使用技能 Token 數技能讀取
t1-react-loop4.754.54.514k14k30k2/2
t2-pg-index5.05.05.014k14k34k2/2
t3-merge-rebase4.254.04.514k14k30k2/2

平均分數:未使用技能 4.67,使用技能 4.67(差異 +0.0)。每次執行 Token 數:14k 對 31k(2.20 倍);時間 12 秒對 19 秒。一句話提示組:4.5(技能相較一句話提示的增益:+0.17;一句話提示相較無技能的增益:-0.17);一句話提示每次執行 14k Token,因此技能的成本是一句話提示的 2.20 倍。

實際發生了什麼

  • 未使用技能時,代理在被要求簡短後就已經只回答約 59 個字(45-70);使用技能時為 52 個字(39-64),使用一句話版本時為 54 個字。7 個字的差距落在每次執行的變異範圍內。沒有任何一組使用填充式的開場或結尾;全部 18 則回答都保留了程式碼、指令與關鍵事實。
  • 事實保留程度相同:每一組的每則回答都保留了 5 項必要技術事實中的 3-5 項(保留比例:對照組 87%、一句話提示 80%、技能組 87%)。代理經常漏掉的那一項事實(狀態更新會讓元件重新渲染並重新執行 effect),三組都同樣漏掉。「不要對共享分支 rebase」這一點,我們的檢查在對照組 2 則中匹配 1 則、一句話提示 2 則中匹配 0 則、技能組 2 則中匹配 1 則;在我們閱讀的回答中,全部都建議 merge,並將 rebase 保留給私人或尚未發布的工作,因此那些未匹配有一部分是措辭造成的。
  • 技能在 6/6 次執行中被讀取,因為提示詞包含它的觸發語。每次執行花費 31k Token,對照組為 14k(2.2 倍),因為代理會先載入技能並執行兩個指令讀取它,才回答一個它原本就能直接回答的問題。一句話提示的成本與對照組相同。
  • 閱讀回答後,風格如出一轍:先講答案、片段式語句、簡短的程式碼區塊。我們無法分辨技能組與對照組的回答。

各面向分數

面向分數原因
1_輸出品質4.67

使用技能時平均分數 4.67/5(程式化檢查,見各任務 表格)。

2_相較無技能的提升2.0

相較未使用技能的 4.67,+0.00 分(每項任務 n=2;約 1 分以下 屬於雜訊)。

3_觸發5.0技能檔案在 6/6 次實驗組執行中被讀取。
4_指令可攜性4

平實的 Markdown 規則;部分規則提到 hooks 與狀態列( /caveman status),這些只有在安裝儲存庫的 hooks 後才會存在。

5_效率12.20 倍 Token(每次執行 31k 對 14k)與 1.53 倍時間(19 秒對 12 秒)。
6_安全性與衛生5

單一 SKILL.md 的風格規則(已完整閱讀);儲存庫的 hooks/安裝程式未安裝也未審查。

這項測試的限制

  • 這項測試衡量的是技能在明確「請簡短」要求之上額外帶來的效果。技能的真正用途是持續性的:它會在整個工作階段中保持開啟,讓你不必每次都重複要求,而這項只有三個問題的測試並未涵蓋這一點。
  • 這裡計算的 Token 成本是每次對話一次性載入技能;在長時間的工作階段中,若每則回答能省下幾個字,長期下來可能回本;我們沒有測量這一點。
  • 只檢查了三個技術問題的聊天回答;提交訊息、程式碼審查留言與長時間的代理工作階段(技能在其中還有其他規則)並未測試。
  • 儲存庫的 hooks、狀態列與其他 caveman 技能並未安裝或執行。
  • 每項任務每組 n = 2:約 1 分以下的差異屬於雜訊。
  • 規則式評分只能衡量檢查看得到的部分;無法評判品味,也無法判斷結果是否為最佳可能。

安全性

見 security.md。掃描:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:可安全執行(網路關閉的沙箱)。乾淨的掃描結果不能證明技能安全。

總結

在單純的「請簡短」要求之上,caveman 並沒有以我們能測量的方式讓回答更短或更不準確,而載入它卻讓一則簡短回答的 Token 數翻倍。如果你希望代理在整個工作階段都保持精簡、不必每次要求,這項技能辦得到;如果你只是需要某個問題的回答簡短,直接在提示詞裡說就好。

完整紀錄

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

t1-react-loop control-1: 得分 5.0, token 14312, 秒 16.3, 檢查 3/3, 未開啟
t1-react-loop control-2: 得分 4.5, token 14318, 秒 10.7, 檢查 3/3, 未開啟
t1-react-loop oneliner-1: 得分 4.5, token 14348, 秒 16.9, 檢查 3/3, 未開啟
t1-react-loop oneliner-2: 得分 4.5, token 14341, 秒 8.7, 檢查 3/3, 未開啟
t1-react-loop treatment-1: 得分 4.5, token 30174, 秒 21.5, 檢查 3/3, 開啟 caveman
t1-react-loop treatment-2: 得分 4.5, token 30067, 秒 26.2, 檢查 3/3, 開啟 caveman
t2-pg-index control-1: 得分 5.0, token 14285, 秒 10.0, 檢查 3/3, 未開啟
t2-pg-index control-2: 得分 5.0, token 14301, 秒 10.5, 檢查 3/3, 未開啟
t2-pg-index oneliner-1: 得分 5.0, token 14362, 秒 12.3, 檢查 3/3, 未開啟

18 次執行、3 個產出檔案

範例產出

SOTA · 装了 skill:final message(t1-react-loop,第 1 次,Codex)

`fetchData` is a new function every render. The effect runs, `setItems` triggers another render, and the cycle repeats. Move the function inside the effect: ```jsx useEffect(() => { async function fetchData() { const r = await fetch('/api/items'); setItems(await r.json()); } fetchData(); }, []); ``` If needed elsewhere, stabilize `fetchData` with `useCallback` and its actual dependencies.

檢視 Pro