在 AI 編程工具百花齊放的時代,多數人關注的是「如何使用」Claude Code,卻少有人深入研究「如何系統性地配置」它。Everything Claude Code 是一個來自 Anthropic 黑客松冠軍的實戰配置集合,歷經 10 個月以上的日常高強度使用淬煉而成。讀完這份原始碼,你能學到的不只是 Claude Code 的配置技巧,更是一套完整的「AI 助手知識管理架構」——如何讓 AI 從工具使用中持續學習、如何設計分層的品質防線、如何在 context window 的物理限制下最大化效率。
Everything Claude Code GitHub Repository — 完整的 Claude Code 配置集合,包含 agents、skills、hooks、commands、rules 與 MCP 配置
專案概覽
Everything Claude Code 不是一個傳統意義上的「軟體專案」——它是一個 Claude Code Plugin,由 Markdown 定義檔、JSON 配置和 Node.js 腳本組成。專案包含 301 個檔案,涵蓋 13 個 agent 定義、30+ 個 skill 工作流、20+ 個 slash command、8 個 rule 規範、完整的 hooks 生命週期管理,以及跨平台(Windows/macOS/Linux)的 Node.js 腳本基礎設施。
技術棧:Markdown(agent/skill/rule 定義)、JSON(hooks/plugin 配置)、Node.js(跨平台腳本)、Shell(legacy hooks)、Python(instinct CLI)。
架構總覽
everything-claude-code/
├── .claude-plugin/ # Plugin 元資料與 marketplace 配置
│ ├── plugin.json # 元件註冊表:宣告所有 agents、skills 的路徑
│ └── marketplace.json # 自託管 marketplace 目錄
│
├── agents/ # 專職子代理定義(Markdown + YAML frontmatter)
│ ├── planner.md # 規劃專家:分解需求為可執行步驟
│ ├── architect.md # 架構師:系統設計與技術決策
│ ├── code-reviewer.md # 程式碼審查:品質、安全、效能
│ ├── security-reviewer.md # 安全專家:OWASP Top 10 全面審查
│ ├── tdd-guide.md # TDD 專家:測試驅動開發流程
│ └── ... # 共 13 個專職代理
│
├── skills/ # 工作流定義與領域知識
│ ├── continuous-learning/ # v1: Stop hook 觸發的學習系統
│ ├── continuous-learning-v2/ # v2: Hook 驅動的 instinct 學習系統
│ ├── iterative-retrieval/ # 漸進式上下文檢索模式
│ ├── verification-loop/ # 驗證迴圈:建置/型別/測試/安全
│ ├── strategic-compact/ # 策略性 context 壓縮
│ ├── eval-harness/ # Eval-Driven Development 框架
│ └── ... # 含前後端模式、語言專屬知識
│
├── commands/ # Slash 命令:串接 agent 與 skill 的入口
│ ├── plan.md # /plan:規劃後等待確認才執行
│ ├── tdd.md # /tdd:測試驅動開發
│ ├── learn.md # /learn:手動萃取可複用模式
│ ├── verify.md # /verify:執行完整驗證迴圈
│ └── ...
│
├── rules/ # 永遠遵循的守則(模組化設計)
│ ├── security.md # 安全:無硬編碼密鑰、輸入驗證
│ ├── performance.md # 效能:模型選擇策略、context 管理
│ ├── agents.md # 代理協作:何時委派、平行執行
│ └── ...
│
├── hooks/ # 事件驅動的自動化
│ └── hooks.json # 完整生命週期 hook 配置
│
├── scripts/ # 跨平台 Node.js 基礎設施
│ ├── lib/utils.js # 共用工具函式庫
│ ├── lib/package-manager.js # 套件管理器偵測
│ └── hooks/ # Hook 實作腳本
│
├── contexts/ # 動態 system prompt 注入
│ ├── dev.md # 開發模式:寫碼優先
│ ├── review.md # 審查模式:品質優先
│ └── research.md # 研究模式:探索優先
│
└── mcp-configs/ # MCP Server 配置範本
└── mcp-servers.json # GitHub、Supabase、Vercel 等
Code language: PHP (php)這個結構揭示了一個核心設計理念:Claude Code 的配置不是一個扁平的設定檔,而是一個分層的知識架構。每一層都有明確的職責邊界。
核心設計解析
設計一:Plugin 元件註冊表——用 JSON Schema 統治所有定義
整個專案的入口是 .claude-plugin/plugin.json,它扮演著「元件註冊表」的角色,明確宣告哪些檔案是 agent、哪些路徑包含 skills。
.claude-plugin/plugin.json — Plugin 元資料入口,定義所有元件的註冊路徑
{
"name": "everything-claude-code",
"version": "1.2.0",
"skills": ["./skills/", "./commands/"],
"agents": [
"./agents/architect.md",
"./agents/build-error-resolver.md",
"./agents/code-reviewer.md",
...
]
}
Code language: JSON / JSON with Comments (json)值得注意的是,這裡刻意沒有宣告 "hooks" 欄位。這是因為 Claude Code v2.1+ 會自動載入 plugin 中的 hooks/hooks.json,如果再次顯式宣告會觸發「Duplicate hooks file detected」錯誤。這個設計決策經歷了多次 fix/revert 循環(#29、#52、#103),最終加入了 regression test 來防止回歸——這是在實際使用中踩坑後的防禦性設計。
設計二:Agent 定義的 YAML Frontmatter 協定
每個 agent 都以 Markdown 檔案定義,使用 YAML frontmatter 來宣告元資料。這個設計讓 agent 定義同時具備「機器可解析」和「人類可閱讀」的特性。
agents/planner.md — 規劃專家代理,負責將複雜需求分解為可執行的實作計畫
---
name: planner
description: Expert planning specialist for complex features and refactoring.
Use PROACTIVELY when users request feature implementation...
tools: ["Read", "Grep", "Glob"]
model: opus
---
Code language: CSS (css)三個關鍵的設計決策隱含在這個簡短的 frontmatter 中:
- 工具白名單(
tools):planner 只有 Read/Grep/Glob——它只能讀取,不能寫入。這落實了「規劃者不應該直接動手」的職責分離原則。相比之下,tdd-guide有["Read", "Write", "Edit", "Bash", "Grep"],因為它需要撰寫測試和執行測試。 - 模型選擇(
model):架構性思考使用opus(最深推理),而不是成本較低的haiku。這反映了 performance rule 中明確的模型選擇策略。 - 主動觸發描述:description 中寫著 “Use PROACTIVELY”——這不只是給人看的,也是給 Claude Code 的行為指令,讓它在偵測到相關場景時主動委派。
設計三:Hooks 生命週期管理——事件驅動的品質防線
hooks.json 是整個專案最精密的設計之一。它定義了從 session 開始到結束的完整生命週期 hook,涵蓋 SessionStart、PreToolUse、PostToolUse、PreCompact、Stop、SessionEnd 六個事件點。
hooks/hooks.json — 完整的生命週期 hook 配置,實作事件驅動的品質防線
以 PreToolUse 為例,這裡有一個精巧的 dev server 攔截器:
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"(npm run dev|pnpm( run)? dev|yarn dev|bun run dev)\"",
"hooks": [{
"type": "command",
"command": "node -e \"console.error('[Hook] BLOCKED: Dev server must run in tmux for log access');...;process.exit(1)\""
}],
"description": "Block dev servers outside tmux - ensures you can access logs"
}
Code language: JSON / JSON with Comments (json)這個 hook 會阻止 Claude 在非 tmux 環境下啟動 dev server,強制使用 tmux 以確保日誌可存取。設計理念是:AI 助手不應該啟動它自己無法持續監控的長期服務。
PostToolUse 中的多層 TypeScript 品質防線同樣值得注意:
[
{ "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx|js|jsx)$\"",
"command": "...npx prettier --write..." },
{ "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx)$\"",
"command": "...npx tsc --noEmit..." },
{ "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx|js|jsx)$\"",
"command": "...console.log detection..." }
]
Code language: JSON / JSON with Comments (json)每次編輯 TypeScript/JavaScript 檔案後,自動執行三個檢查:Prettier 格式化 → TypeScript 型別檢查 → console.log 偵測。這是一個分層防禦的設計:格式→型別→衛生,層層遞進。
設計四:記憶持久化——Session 生命週期的狀態管理
Session 記憶持久化是這個專案中最具工程深度的設計。它通過 SessionStart、SessionEnd、PreCompact 三個生命週期 hook 組成完整的狀態管理迴圈。
scripts/hooks/session-start.js — Session 啟動時載入前次狀態和偵測套件管理器
async function main() {
const sessionsDir = getSessionsDir();
const learnedDir = getLearnedSkillsDir();
ensureDir(sessionsDir);
ensureDir(learnedDir);
// 檢查近 7 天的 session 檔案
const recentSessions = findFiles(sessionsDir, '*-session.tmp', { maxAge: 7 });
if (recentSessions.length > 0) {
const latest = recentSessions[0];
log(`[SessionStart] Found ${recentSessions.length} recent session(s)`);
log(`[SessionStart] Latest: ${latest.path}`);
}
// 檢查已學習的技能
const learnedSkills = findFiles(learnedDir, '*.md');
// 偵測並回報套件管理器
const pm = getPackageManager();
log(`[SessionStart] Package manager: ${pm.name} (${pm.source})`);
}
Code language: JavaScript (javascript)scripts/hooks/session-end.js — Session 結束時建立或更新狀態檔
Session End hook 的檔案命名策略也值得注意:${today}-${shortId}-session.tmp,其中 shortId 是 CLAUDE_SESSION_ID 的最後 8 位。這讓同一天的多個 session 各自獨立追蹤,不會互相覆蓋。
scripts/hooks/pre-compact.js — Context 壓縮前保存當前狀態,防止重要資訊在摘要中遺失
PreCompact hook 在 context 壓縮前保存狀態——因為壓縮是有損的,重要上下文可能在摘要過程中遺失。這形成了一個防禦性的三角架構:啟動時恢復 → 壓縮前保存 → 結束時持久化。
設計五:策略性 Compact——在物理限制下的智慧妥協
Context window 是 LLM 最根本的物理限制。auto-compact 會在任意時間點觸發,經常打斷正在進行的任務。strategic-compact 的設計理念是:讓 compact 發生在邏輯上合理的時間點。
scripts/hooks/suggest-compact.js — 根據工具呼叫次數,在策略性時間點建議手動 compact
async function main() {
const sessionId = process.env.CLAUDE_SESSION_ID || process.ppid || 'default';
const counterFile = path.join(getTempDir(), `claude-tool-count-${sessionId}`);
const threshold = parseInt(process.env.COMPACT_THRESHOLD || '50', 10);
let count = 1;
const existing = readFile(counterFile);
if (existing) {
count = parseInt(existing.trim(), 10) + 1;
}
writeFile(counterFile, String(count));
// 在閾值時建議 compact
if (count === threshold) {
log(`[StrategicCompact] ${threshold} tool calls reached - consider /compact if transitioning phases`);
}
// 之後每 25 次工具呼叫提醒一次
if (count > threshold && count % 25 === 0) {
log(`[StrategicCompact] ${count} tool calls - good checkpoint for /compact if context is stale`);
}
}
Code language: JavaScript (javascript)關鍵在於它只是建議,不是強制——”consider /compact if transitioning phases”。這尊重了使用者的判斷,因為只有使用者知道當前是否處於任務邊界。
設計六:Continuous Learning v1 → v2 的架構演進
Continuous Learning 的版本演進是這個專案中最能體現設計迭代思維的部分。
skills/continuous-learning/SKILL.md — v1 學習系統:Stop hook 觸發,完整 skill 為學習單位
v1 的設計是在 session 結束時(Stop hook),評估整個 session 是否包含可萃取的模式,然後直接生成完整的 skill 檔案。問題在於:
- Stop hook 只觸發一次——如果 session 中途崩潰,學習就丟失了
- 學習粒度太粗——一個完整的 skill 可能包含多個不相關的模式
- 沒有信心度機制——無法區分「偶然觀察」和「確認的偏好」
skills/continuous-learning-v2/SKILL.md — v2 學習系統:Hook 驅動的 instinct 架構,帶信心度評分
v2 引入了三個根本性改變:
v1: Stop hook → 完整 skill
v2: PreToolUse/PostToolUse hooks → 觀察 → 原子 instinct(帶信心度)→ 聚類 → skill/command/agent
Code language: HTTP (http)Instinct(本能) 是 v2 的核心抽象——一個原子化的行為學習單位:
---
id: prefer-functional-style
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
source: "session-observation"
---
Code language: JavaScript (javascript)信心度評分系統的設計精妙之處在於其動態性:
- 重複觀察到 → 信心度上升
- 使用者糾正 → 信心度下降
- 長期未觀察 → 信心度衰減(
confidence_decay_rate: 0.02) - 達到
auto_approve_threshold: 0.7→ 自動應用
這模擬了人類學習的模式:反覆確認的行為成為直覺,被糾正的行為被抑制,長期未使用的行為逐漸遺忘。
設計七:Iterative Retrieval——解決子代理的上下文困境
當主代理委派任務給子代理時,面臨一個根本矛盾:子代理不知道它需要什麼上下文,而主代理不知道子代理會遇到什麼問題。
skills/iterative-retrieval/SKILL.md — 漸進式上下文檢索模式,解決多代理工作流中的上下文問題
標準方法的困境:
- 送出所有上下文 → 超過 context 限制
- 不送上下文 → 代理缺乏關鍵資訊
- 猜測需要什麼 → 經常猜錯
解決方案:四階段迭代檢索
DISPATCH(廣泛搜尋)→ EVALUATE(相關性評分)→ REFINE(精煉查詢)→ LOOP(最多 3 輪)
這個設計的精髓在於學習程式碼庫的術語。文件中舉了一個例子:搜尋 “rate limiting” 找不到結果,因為程式碼庫用的是 “throttle”——第一輪迭代就能發現這個術語差異,第二輪用正確的術語搜尋。最多 3 輪的限制防止了無限迴圈,同時 “3 個高相關性檔案勝過 10 個平庸的檔案” 的停止條件確保了效率。
設計八:Model 選擇策略——成本與能力的分層優化
Performance rule 中定義了明確的模型選擇策略,這個策略被 agent 定義中的 model 欄位具體實現。
rules/performance.md — 效能優化守則,包含模型選擇策略和 context 管理原則
**Haiku 4.5** (90% of Sonnet capability, 3x cost savings):
- Lightweight agents with frequent invocation
- Worker agents in multi-agent systems
**Sonnet 4.5** (Best coding model):
- Main development work
- Orchestrating multi-agent workflows
**Opus 4.5** (Deepest reasoning):
- Complex architectural decisions
- Maximum reasoning requirements
Code language: CSS (css)這不只是文字建議——它直接反映在 agent 定義中:planner、architect、code-reviewer、security-reviewer 使用 opus,而 continuous-learning-v2 的 observer 使用 haiku。設計原則是:一次性的深度思考用最強模型,高頻的輕量任務用最便宜的模型。
設計九:Agent 協作規範——何時委派、如何平行
Agent 協作不是隨意的——rules/agents.md 定義了明確的委派時機和平行執行規範。
rules/agents.md — 代理協作守則,定義委派時機和平行執行策略
## Immediate Agent Usage
No user prompt needed:
1. Complex feature requests → Use **planner** agent
2. Code just written/modified → Use **code-reviewer** agent
3. Bug fix or new feature → Use **tdd-guide** agent
4. Architectural decision → Use **architect** agent
## Parallel Task Execution
ALWAYS use parallel Task execution for independent operations
Code language: PHP (php)這裡的 “No user prompt needed” 是關鍵——代理會根據場景主動觸發,而不是等待使用者指示。再加上 “Multi-Perspective Analysis” 的設計(Factual reviewer + Senior engineer + Security expert + Consistency reviewer + Redundancy checker),形成了一個多視角品質保障的架構。
設計十:跨平台腳本基礎設施——用 Node.js 統一三大平台
所有 hook 腳本從最初的 Bash 遷移到了 Node.js,這是一個影響深遠的架構決策。
scripts/lib/utils.js — 跨平台工具函式庫,提供檔案操作、日期處理和系統資訊
const isWindows = process.platform === 'win32';
const isMacOS = process.platform === 'darwin';
const isLinux = process.platform === 'linux';
function commandExists(cmd) {
// 驗證命令名稱 - 只允許字母數字、連字符、底線、點
if (!/^[a-zA-Z0-9_.-]+$/.test(cmd)) {
return false;
}
try {
if (isWindows) {
const result = spawnSync('where', [cmd], { stdio: 'pipe' });
return result.status === 0;
} else {
const result = spawnSync('which', [cmd], { stdio: 'pipe' });
return result.status === 0;
}
} catch { return false; }
}
Code language: JavaScript (javascript)注意 commandExists 中的輸入驗證——/^[a-zA-Z0-9_.-]+$/ 正則表達式防止了 command injection 攻擊。使用 spawnSync 而非 execSync 避免了 shell 插值風險。這是 security rule 在基礎設施層的具體落實。
所有 hook 都遵循一個錯誤處理模式:
main().catch(err => {
console.error('[SessionStart] Error:', err.message);
process.exit(0); // Don't block on errors
});
Code language: PHP (php)process.exit(0) 而非 process.exit(1)——即使 hook 出錯也不阻塞 Claude 的主流程。這體現了「基礎設施不應該成為使用者的障礙」的設計原則。
設計理念萃取
- 分層知識架構:Rules(永遠遵循)→ Skills(按需啟用)→ Agents(專職委派)→ Commands(使用者入口)→ Hooks(自動觸發)。每層有明確的職責邊界,就像微服務架構的關注點分離。這種分層讓配置可以漸進式採用——從 rules 開始,逐步加入更多層級。
- 事件驅動的品質防線:不依賴使用者記住要做什麼檢查,而是把品質守則嵌入工具使用的生命週期中。每次編輯後自動格式化、型別檢查、console.log 偵測——這是「shift left」理念在 AI 編程助手中的極致實現。
- 學習系統的原子化設計:Continuous Learning v2 從完整 skill 演進到原子 instinct,帶信心度評分和衰減機制。這個設計可以借鏡到任何需要「從使用者行為中學習」的系統——與其試圖學習完整的工作流,不如學習原子化的行為偏好,再透過聚類組合。
- 防禦性的狀態管理:SessionStart/PreCompact/SessionEnd 三個 hook 形成的狀態管理三角,確保記憶不會因為 context 壓縮或 session 中斷而遺失。在任何涉及有損操作的系統中,「壓縮前保存」都是值得採用的模式。
- 建議而非強制:Strategic Compact 只是建議使用者在邏輯邊界處 compact,而不是自動觸發。在 AI 助手的設計中,區分「自動化」和「建議」的邊界至關重要——高風險的操作應該交由使用者判斷。
延伸思考
Everything Claude Code 展示了一種全新的思考方式:AI 編程助手的配置本身就是一個軟體工程問題。它需要架構設計(分層的元件結構)、狀態管理(session 持久化)、品質保障(hook 防線)、持續學習(instinct 系統)和跨平台支援(Node.js 基礎設施)。
如果你正在建構任何形式的 AI agent 系統,以下是可以直接借鏡的具體做法:
- 用 YAML frontmatter + Markdown 定義 agent——兼顧機器解析和人類可讀,同時透過
tools白名單落實最小權限原則。 - 設計生命週期 hook 而非一次性腳本——把品質檢查嵌入工具使用的事件流中,讓品質成為「預設行為」而非「額外步驟」。
- 為學習系統設計信心度和衰減機制——不是所有觀察都同等重要,時間會改變行為偏好的有效性。
- 在有損操作前保存狀態——無論是 context 壓縮、資料遷移還是系統升級,「壓縮前快照」是一個通用的防禦模式。
- 模型選擇要匹配任務特性——深度推理用最強模型,高頻輕量用最便宜的。這不只適用於 Claude Code,也適用於任何多模型 AI 系統的設計。
Vibe Coding:把觀念變成程式碼
以下是你可以直接給 AI 的 prompt 指令,將本文介紹的設計觀念應用到你的專案中:
事件驅動的品質防線
場景:你的專案有一些品質規範(格式化、型別檢查、安全掃描),但總是依賴開發者「記得」手動執行,想把這些檢查嵌入 Claude Code 的工具使用生命週期中。
給 AI 的指令:
我想為我的專案設計 Claude Code hooks,實作「事件驅動的品質防線」。請幫我建立 hooks.json,在以下時機自動觸發檢查:
1. PostToolUse:每次 Edit 或 Write 修改 [你的語言,例如 TypeScript] 檔案後,自動執行格式化工具([例如 Prettier])和型別檢查([例如 tsc –noEmit])
2. PreToolUse:攔截危險操作,例如阻止在非 tmux 環境下啟動 dev server、阻止直接刪除 production 設定檔
3. Stop:在每次對話結束時,自動執行完整的 lint 檢查
使用 Node.js 腳本而非 Bash,確保跨平台相容。每個 hook 腳本出錯時用 process.exit(0) 避免阻塞主流程——這是「基礎設施不應該成為使用者障礙」的原則。
我的專案使用 [你的技術棧],套件管理器是 [npm/pnpm/yarn/bun]。
效果:AI 會根據你的技術棧產生完整的 hooks.json 配置和對應的 Node.js 腳本,包含 matcher 正則表達式、分層的檢查邏輯,以及防禦性的錯誤處理。你會得到一個每次編輯後自動執行品質檢查的工作流。
用 YAML Frontmatter 定義專職子代理
場景:你的專案需要多個角色協作(例如規劃、實作、審查),想為 Claude Code 建立專職子代理,每個代理有明確的職責邊界和工具權限。
給 AI 的指令:
請幫我為專案建立一組 Claude Code 子代理(subagents),採用「YAML Frontmatter + Markdown」的定義格式。我需要以下角色:
1. 規劃代理(planner):只能讀取不能寫入,工具限定為 Read/Grep/Glob,使用 opus 模型進行深度推理
2. 實作代理(implementer):擁有完整的讀寫工具,使用 sonnet 模型
3. 審查代理(reviewer):只能讀取,使用 opus 模型,從程式碼品質、安全性、效能三個視角審查
每個代理的 description 要包含「Use PROACTIVELY when…」的主動觸發條件,讓 Claude Code 在偵測到相關場景時自動委派。工具白名單要落實最小權限原則——規劃者不應該直接動手寫程式碼。
我的專案是 [專案描述],主要語言是 [語言]。
效果:AI 會產生符合 Claude Code Agent 規格的 Markdown 檔案,每個檔案包含 YAML frontmatter(name、description、tools、model)和詳細的行為指令。你可以直接放入 .claude/agents/ 目錄使用。
防禦性的 Session 狀態管理
場景:你在使用 Claude Code 處理長期專案時,經常因為 context 壓縮或 session 中斷而遺失重要的工作脈絡,想建立一個「啟動時恢復、壓縮前保存、結束時持久化」的三角防禦架構。
給 AI 的指令:
請幫我實作 Claude Code 的 session 記憶持久化系統,採用「防禦性狀態管理三角」模式:
1. SessionStart hook:檢查近 7 天的 session 檔案,載入最近的工作狀態;偵測專案的套件管理器
2. PreCompact hook:在 context 壓縮前保存當前狀態——因為壓縮是有損的,重要上下文可能在摘要中遺失
3. SessionEnd hook:建立或更新狀態檔,檔名用${日期}-${sessionId後8位}-session.tmp格式,確保同一天多個 session 不會互相覆蓋
使用 Node.js 實作所有腳本,放在 scripts/hooks/ 目錄下,共用工具函式抽取到 scripts/lib/utils.js。狀態檔儲存在 .claude/sessions/ 目錄。
關鍵設計原則:即使 hook 出錯也不能阻塞 Claude 主流程(process.exit(0))。
效果:AI 會產生完整的三個 hook 腳本和共用工具函式庫,包含檔案操作、日期處理、session ID 解析等功能。你的 Claude Code 會在每次啟動時自動恢復上次的工作脈絡,在壓縮前自動保存關鍵資訊。
策略性 Context 管理
場景:你在使用 Claude Code 進行大型任務時,auto-compact 經常在不恰當的時間點觸發,打斷正在進行的工作。想實作策略性的 compact 提醒,在邏輯邊界處建議壓縮。
給 AI 的指令:
我想實作 Claude Code 的「策略性 Compact」機制。請建立一個 PostToolUse hook 腳本,功能如下:
1. 用計數器檔案追蹤本次 session 的工具呼叫次數(以 CLAUDE_SESSION_ID 區分)
2. 達到閾值(預設 50 次,可透過 COMPACT_THRESHOLD 環境變數調整)時,輸出建議訊息:「考慮在階段轉換時執行 /compact」
3. 之後每 25 次工具呼叫提醒一次
4. 關鍵:只是建議而非強制——因為只有使用者知道當前是否處於任務邊界
這是「建議而非強制」的設計原則——高風險的操作應該交由使用者判斷。
效果:AI 會產生一個輕量的計數器 hook 腳本,在合適的時機提醒你手動 compact,而不是被 auto-compact 突然打斷。你可以在完成一個子任務後再壓縮,保持工作流的連貫性。
模型選擇策略的分層優化
場景:你正在設計一個多代理系統(不限於 Claude Code),需要為不同類型的任務選擇合適的模型,在成本和能力之間取得平衡。
給 AI 的指令:
我正在設計一個多代理系統,需要制定模型選擇策略。請根據以下「成本與能力分層優化」原則,為我的系統中每個代理角色推薦合適的模型等級:
– 深度推理層(Opus 等級):複雜架構決策、安全審查、程式碼審查——一次性的深度思考
– 主力開發層(Sonnet 等級):日常開發、工作流編排——品質與成本的平衡點
– 高頻輕量層(Haiku 等級):行為觀察、格式檢查、簡單分類——高頻呼叫用最便宜的模型
我的系統包含以下角色:[列出你的代理角色和職責]
請為每個角色建議模型等級,並說明理由。同時估算在 [預期使用量] 下的月成本差異。
效果:AI 會為你的每個代理角色推薦具體的模型等級,附上選擇理由和成本估算。這個策略可以直接寫入你的 rules 或 agent 定義中,作為團隊的模型選擇規範。
延伸閱讀
- Everything Claude Code GitHub Repository — 本文解讀的專案原始碼,包含完整的 agents、skills、hooks、commands、rules 和 MCP 配置,MIT 授權可自由使用
- Claude Code: Best practices for agentic coding(Anthropic 官方) — Anthropic 工程團隊撰寫的 Claude Code 最佳實踐,涵蓋 CLAUDE.md 配置、TDD 工作流、extended thinking 觸發等核心觀念
- Hooks Reference — Claude Code 官方文件 — Claude Code hooks 的完整技術規格,包含所有生命週期事件、matcher 語法和配置範例
- Extend Claude with Skills — Claude Code 官方文件 — Skills 系統的官方指南,說明如何建立、安裝和管理 skill,以及 YAML frontmatter 的完整欄位定義
- Create Custom Subagents — Claude Code 官方文件 — 子代理的官方技術文件,涵蓋內建代理(Explore、Plan)和自訂代理的建立方式、工具權限控制和 context fork 機制
- Awesome Claude Code — 社群維護的 Claude Code 資源清單,收錄了大量高品質的 skills、hooks、slash commands、agent orchestrator 和 plugin,適合尋找靈感和即用配置