重點摘要
- Superpowers skills 有幾條「隱藏規則」會在你不注意時改變 Claude 的行為
- 最常見的問題:skill 自動選 Haiku 做本該 Sonnet/Opus 的工作
- 三個簡單設定可以避開 90% 的干擾:dev branch、AGENTS.md 指定 model、關閉 feedback survey
- 文末附 CLAUDE.md 覆寫規則範本,直接貼進去就能用
用 Claude Code 跑 Agent Team 一段時間後,你可能會發現:明明設定都正確,Claude 還是會跑來問奇怪的問題、用錯 model、或在不該停的地方停下來。這篇文章整理了 Superpowers plugin 裡幾條「你不一定知道」的隱藏規則,以及最簡單的避開方法。
為什麼 Agent Team 會「自己做決定」?
Claude Code 的 Superpowers plugin 提供了一套 skill 系統,讓 Claude 在執行任務時有明確的工作流程可依循。這些 skill 設計上是給通用場景用的,因此內建了一些「省成本、保安全」的預設行為。
問題是:這些預設行為有時候和你的需求相衝突,而且你很難從文件上看出來。
隱藏規則 1:Skill 會自動選最便宜的 Model
來源: subagent-driven-development skill
這條規則直接寫在 skill 裡:
“Use the least powerful model that can handle each role to conserve cost and increase speed. Mechanical implementation tasks: use a fast, cheap model.”
也就是說,當 Claude 判斷一個 task 是「機械性的」(1-2 個檔案、規格清楚),它就會選 Haiku。這對一般的 CRUD 功能可能沒問題,但對複雜業務邏輯(像 iDempiere plugin、Taiwan 發票系統)來說,Haiku 根本不夠用。
Skill 的 Model 選擇邏輯
| Task 類型 | Skill 的選擇 | 適合複雜專案? |
|---|---|---|
| Mechanical(1-2 files, clear spec) | Haiku(最便宜) | ❌ 通常不夠用 |
| Integration(多 file、需判斷) | Sonnet(標準) | ✅ 通常足夠 |
| Architecture / Review | Opus(最強) | ✅ 正確 |
避開方法:在 AGENTS.md 明確指定 Model
最簡單的解法是在每個專案的 AGENTS.md 裡明確寫好每個 agent 的 model。Claude 在 dispatch subagent 時,如果 AGENTS.md 有寫,就應該照抄,不用自己判斷。
| Agent | Model | Role |
|-------|-------|------|
| pack-builder | sonnet | Build 2Pack XML + ZIP |
| model-fixer | sonnet | Fix Model classes |
| idempiere-expert | opus | Technical reviewer |
同樣地,在 IMPLEMENTATION_PLAN.md 每個 phase 標上 model,讓 LEAD 照單全收:
## Phase 0.1:建立 PackOut.xml [pack-builder / sonnet]
## Phase 0.2:Activator 邏輯 [activator-fixer / sonnet]
## Review Gate [idempiere-expert / opus]
隱藏規則 2:在 main/master 上工作會被詢問確認
來源: 幾乎所有 implementation skill
所有 skill 都有這條規則:“Never start implementation on main/master without explicit user consent.” 只要你的 working branch 叫 main 或 master,Claude 每次開始實作前都會停下來問你確認。
避開方法:永遠從 dev branch 開工
一條指令解決:
git checkout -b dev
在 dev branch 上,這條保護規則不會觸發。這也是好的 git 習慣,順手為之即可。
隱藏規則 3:Subagent 不繼承你的對話 Context
來源: 所有使用 subagent 的 skill
這是設計上的特性,不是 bug:每個 subagent 都是 fresh 啟動,完全不知道你之前跟 LEAD 說過什麼。LEAD 要把所有需要的 context 手動打包給 subagent。
這代表你告訴 LEAD「不要動 X 檔案」、「記得用 Y 方式」,subagent 不一定會知道,除非 LEAD 把這些資訊包進去。
避開方法:把規則寫進文件,不要只說給 LEAD 聽
任何重要的約定,放進 AGENTS.md、CLAUDE.md 或 IMPLEMENTATION_PLAN.md。這些檔案 subagent 啟動時會讀到,不依賴 LEAD 的記憶。
隱藏規則 4:Feedback Survey 會擋住畫面
Claude Code 會隨機彈出「How is Claude doing this session?」的評分畫面。這個畫面不是 blocking prompt,按 Enter 沒有用,要按 0 才能 dismiss。
更乾脆的做法是直接關閉它。在 ~/.claude/settings.json 加一行:
{
"feedbackSurveyRate": 0
}
設為 0 後,這個 survey 就永遠不會出現了。
完整 CLAUDE.md 覆寫規則範本
把以下內容加進你的 CLAUDE.md,可以覆寫 skill 的預設行為:
## Superpowers Skill Override Rules
### Model Selection (OVERRIDES subagent-driven-development skill)
NEVER use haiku for implementation tasks. Follow this mapping regardless
of what the skill says about "mechanical" tasks:
- opus: architecture decisions, code review, cross-file reasoning
- sonnet: all implementation tasks (CRUD, API, forms, tests, services)
- haiku: file scanning, directory listing, config comparison ONLY
When dispatching subagents, ALWAYS check AGENTS.md for the assigned model.
If AGENTS.md specifies a model, use it. Do not override with cheaper model.
### Git Branch
Never ask for branch confirmation if already on a non-main/master branch.
Treat any branch that is not named "main" or "master" as pre-approved for
implementation work.
一次性設定清單
以下是只需要做一次的設定,之後每個專案都受益:
| 設定 | 位置 | 效果 |
|---|---|---|
"feedbackSurveyRate": 0 | ~/.claude/settings.json | 永久關閉 feedback survey |
"defaultMode": "bypassPermissions" | ~/.claude/settings.json | 工具不再逐一詢問確認 |
| Model 覆寫規則 | ~/.claude/CLAUDE.md | 強制 sonnet 做實作工作 |
以下是每個新專案開始時的習慣:
git checkout -b dev(避開 main/master 保護規則)- 建立
AGENTS.md並寫好每個 agent 的 model - 在
IMPLEMENTATION_PLAN.md每個 phase 標記 model
為什麼這些規則存在?
這些 skill 是為「通用場景」設計的,預設行為是合理的:
- 省成本: 對大多數用戶來說,Haiku 做簡單任務確實夠用,費用少一半
- 保安全: 不讓 Claude 在 main branch 亂動是好習慣
- 隔離 context: Fresh subagent 避免舊 context 污染新任務
問題不是規則本身,而是當你的專案比「通用場景」複雜時,這些預設值就不夠精準了。透過明確的文件(AGENTS.md、CLAUDE.md)和一次性的 settings.json 設定,你可以讓 Claude 按照你的規格工作,而不是照 skill 的預設值工作。
延伸閱讀:
發佈留言