晚上好,我是 miruky。
正在使用 Claude Code 的你,是否已經撰寫 CLAUDE.md?
最近 Reddit 上有篇名為「The 5 Levels of Claude Code」的討論很受矚目。發文者 DevMoses 報告了他驚人的運作:在 32 個 session 中並行啟動 198 個代理(agents),合併衝突率僅 3.1%。
這篇操作的核心在於把 Claude Code 的熟練度分成 5 個等級。多數人停留在 Level 2 的 CLAUDE.md,但往前還有 Skills、Hooks、Orchestration 這個完全不同次元的世界。
本文根據官方文件與社群心得,系統性地說明 Claude Code 的 5 個等級。
出典:The 5 levels of Claude Code - Reddit r/ClaudeAI / Claude Code 官方文件
Claude Code 的熟練度可分為 5 個等級。每個等級都是為了解決前一個等級的痛點而向上堆疊,且不可跳級。
等級名稱 / 核心 / 代幣(Token)消耗
DevMoses 的重要洞察是:「你不會因為自己決定就畢業。你會撞到上限,摩擦會把你推上去。」
You don't graduate by deciding to. You graduate because you hit a ceiling and the friction forces you up.
換句話說,當 Level 2 的 CLAUDE.md 超過 ~150 行且遵守率下降時,自然會產生進入 Level 3(Skills)的需求;當 Skills 無法保證品質時,就會需要 Level 4(Hooks),以此類推。
安裝 Claude Code 後直接使用的階段:
claude
> 在這個 React 應用新增深色模式(dark mode)。
> 使用 Tailwind CSS,並做一個切換按鈕(toggle)。
對於小型任務這樣就足夠。Claude Code 很強,單一檔案變更通常沒問題。
隨著專案成長,會出現:
當這些摩擦累積到一定程度,就是升到 Level 2 的訊號。
CLAUDE.md 是 Claude Code 在 session 開始時會自動讀取的 Markdown 檔案。把專案規則、程式碼規範、建置指令等寫在裡面,就不需要每次再手動指示 Claude。
範例 CLAUDE.md:
# 專案概要
前端: React 19 + TypeScript + Tailwind CSS
後端: Hono + Drizzle ORM
測試: Vitest
# 程式碼規範
- 僅使用函式元件(禁止類別元件)
- 型別定義集中於 `types/` 目錄
- 匯入使用別名 `@/`
# 指令
- 建置: `pnpm build`
- 測試: `pnpm test`
- Lint: `pnpm lint`
CLAUDE.md 可以放在多個位置,且每個位置的作用域不同:
./CLAUDE.md:整個專案(團隊共用的程式碼規範與建置流程)./.claude/CLAUDE.md:整個專案(跟上面相同,但可隱藏於 .claude/ 目錄)~/.claude/CLAUDE.md:跨專案共用(個人偏好或工作流程)CLAUDE.md:該目錄以下有效(適合 monorepo 中的 package 特定規則)此外,執行 /init 指令會自動生成基礎 CLAUDE.md。若已存在 CLAUDE.md,則會提供改善建議。
.claude/rules/ 模組化當 CLAUDE.md 變長,可以把內容拆成 .claude/rules/ 的多個主題檔案:
your-project/
├── .claude/
│ ├── CLAUDE.md # 主要指示(精簡)
│ └── rules/
│ ├── code-style.md # 程式碼規範
│ ├── testing.md # 測試規範
│ └── security.md # 安全性需求
另外可以用 paths front matter 定義僅對特定檔案模式生效的規則:
---
paths:
- "src/api/**/*.ts"
---
# API 開發規則
- 對所有 endpoint 實作輸入驗證
- 使用標準錯誤回應格式
- 包含 OpenAPI 文件註解
Anthropic 官方建議 CLAUDE.md 保持在 200 行以內,社群有人回報約 77 行最佳。
常見問題:
這時就需要「只有在需要時才被讀取」的技能檔案(Skills)。
Skills 是放在 .claude/skills/ 目錄下的 Markdown 檔案,用來教 Claude 特定任務的流程。與 CLAUDE.md 最大的差別是:Skills 只有在被呼叫時才會被注入到上下文中。
Skill 檔案命名為 SKILL.md,由 YAML front matter 與 Markdown 內容組成,通常放結構如下:
.claude/skills/
├── deploy/
│ └── SKILL.md # 部署手順書
├── code-review/
│ └── SKILL.md # 程式碼審查手順書
└── fix-issue/
└── SKILL.md # Issue 修正手順書
以下為修正 GitHub Issue 的 Skill 範例:
---
name: fix-issue
description: 修正 GitHub Issue
disable-model-invocation: true
---
請按照以下步驟修正 GitHub Issue $ARGUMENTS:
1. 確認 Issue 內容
2. 調查相關程式碼
3. 實作修正
4. 新增測試
5. 建立 commit
front matter 欄位說明:
/fix-issue 呼叫)fork,表示在子代理(subagent)上下文中執行---
name: deep-research
description: 對程式碼庫進行深入調查
context: fork
agent: Explore
---
請針對 $ARGUMENTS 進行徹底調查:
1. 使用 glob 與 grep 找到相關檔案
2. 讀取並分析程式碼
3. 以具體檔案參考整理調查結果
---
name: pr-summary
description: 摘要 PR 的變更內容
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---
## PR 資訊
- PR 差異: !`gh pr diff`
- PR 評論: !`gh pr view --comments`
- 變更檔案列表: !`gh pr diff --name-only`
## 任務
請為此 PR 撰寫要約...
! 指令語法說明:
!<command> 會在 Skill 內容被送給 Claude 之前先執行 shell 指令,並把輸出結果取代該指令位置。Claude 接收到的是命令的輸出資料,而非命令本身。比較要點:
/skill-name 或由 Claude 自動判斷是否使用若想更深入 Skills 的實務技巧,筆者另有整理 10 種實戰模式:
→ 【2026 年最新版】Claude Code Skills 實踐技巧 10 選
Skills 是告訴 Claude「該怎麼做」,但不是用來「驗證 Claude 做了什麼」的機制。即便指示 Claude 執行測試,它也可能忘記去執行。
Skills 的限制:可以告訴 Claude「執行測試」,但無法保證 Claude 一定會去做。
這時需要把品質檢查變成自動執行的基礎設施,也就是 Level 4 的 Hooks。
Hooks 是在 Claude Code 的生命週期特定時點會自動執行的腳本。它不是告訴 Claude 去驗證,而是建立「用於驗證的基礎設施」。
範例說明:
Hooks 有許多事件可供攔截,覆蓋 Claude Code 生命週期的各個階段:
下面的 Hook 會自動攔截包含 rm -rf 的 Bash 命令。
設定檔(.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-rm.sh"
}
]
}
]
}
}
腳本(.claude/hooks/block-rm.sh):
#!/bin/bash
COMMAND=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$COMMAND" | grep -q 'rm -rf'; then
echo "Blocked: rm -rf commands are not allowed" >&2
exit 2 # exit 2 = block
fi
exit 0 # exit 0 = allow
每次 Claude 編輯檔案後,自動執行 lint 腳本。
設定檔:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh"
}
]
}
]
}
}
當 Claude 判定要「完成並停止」時,透過 Stop Hook 驗證任務是否真已完成。若使用 Prompt 型 Hook,可以把判定交給另一個 LLM。
設定範例(Stop 事件使用 prompt):
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "prompt",
"prompt": "請評估以下上下文: $ARGUMENTS\n\n1. 使用者要求的所有任務是否已完成?\n2. 是否仍有未處理的錯誤?\n3. 是否需要後續跟進?\n\n請以 JSON 格式回覆:{\"ok\": true} 代表允許停止,{\"ok\": false, \"reason\": \"理由\"} 代表需繼續",
"timeout": 30
}
]
}
]
}
}
非同步 Hook:
"async": true 可使 Hook 在背景執行而不阻塞 Claude,適合耗時流程如完整測試執行。若想完整了解 Hooks 的全部事件,筆者另有整理 21 個事件的詳解:
→ 【保存版】Claude Code Hooks 全 21 事件完全解說
可以在 Skill 的 front matter 裡定義 Hook,這樣該 Skill 在被啟用期間,相關 Hook 才會生效。
範例:
---
name: secure-operations
description: 以安全檢查流程進行操作
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/security-check.sh"
---
Hooks 能把品質變成基礎設施,但單一 Claude Code session 能處理的工作量依然有限。大規模重構、跨數十檔案的變更或多面向的審查,無法 realistic 地在一個 session 裡完成。
這時需要「並列啟動多個代理」的機制,也就是 Level 5。
到 Level 4 為止,優化仍是在「單一 Claude session」內。但實務上會遇到以下情境:
這些情況需要把任務切分並平行執行。
Claude Code 內建子代理(subagents),Claude 會自動把任務委派給它們。
常見子代理模型與用途:
自定義子代理:
.claude/agents/ 建 Markdown 檔來定義自訂子代理範例自訂子代理:
---
name: code-reviewer
description: 審查程式碼品質與最佳實踐
tools: Read, Grep, Glob, Bash
model: sonnet
---
你是資深程式碼審查員。啟動後:
1. 用 git diff 檢視近期變更
2. 專注於變更的檔案
3. 立即開始審查
審查清單:
- 程式碼是否清晰易讀
- 是否有適當的錯誤處理
- 是否存在資安問題
- 是否有足夠的測試覆蓋
註:子代理無法再產生其他子代理;若需巢狀委派,請從主會話串接(chain)處理。
Agent Teams 是讓多個 Claude Code 實例作為團隊協作的機制。與 Subagents 最大差異在於:團隊成員可以直接互相溝通。
比較:
Agent Teams 是實驗性功能,預設關閉。可透過設定啟用:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}
使用範例:並列程式碼審查
建立一個 agent team 來審查 PR #142。產生三位審查員:
- 一位專注於資安影響
- 一位檢查效能面向
- 一位驗證測試覆蓋
讓他們各自審查並回報發現。
由一位 lead 統籌,團隊成員各自獨立工作,最後由 lead 整合結果。
內建的 /batch skill 用於以並列代理執行大規模變更:
範例指令:
/batch migrate src/ from Solid to React
執行流程:
在 Reddit 上被分享的 DevMoses 報告了以下數據:
這套運作是透過名為 Citadel 的開源系統實現的。
Level 5 的注意事項:
最重要的原則:不要跳級。
每一層的基礎設施都是讓下一層成為可能的條件。如果沒有 CLAUDE.md,直接寫 Skills 也會因為基本規範未統一而導致 Skills 品質不穩。
建議流程:
Step 1:撰寫 CLAUDE.md(可用 /init 自動生成後再優化)
↓
Step 2:當 CLAUDE.md 變長,拆分到 .claude/rules/
↓
Step 3:把重複的工作流程切出成 Skills
↓
Step 4:在需要保證品質的環節加入 Hooks
↓
Step 5:用 Subagents 委派任務 → 以 Agent Teams 做並列化
目前狀態 / 下一步行動 / 預估所需時間
npm install -g @anthropic-ai/claude-code — 5 分鐘/init 自動生成 CLAUDE.md — 10 分鐘感謝閱讀至此。總結 Claude Code 的 5 個等級要點:
/batch 做並列統籌重要的是,不需要一次把所有層級都導入。當你撞到上限,就是升到下一層的時機。先從撰寫 CLAUDE.md 開始吧。
下次見。