Claude Code 進階究極手冊:官方完整技巧 × 大神實戰用法(2026 最新版・含舊指令勘誤)
這篇是把 Anthropic 官方《Claude Code 進階使用者技巧》逐條無遺漏整理,再疊上十位以上公認大神的真實工作流(每招都附原始出處),最後標出官方文件已經改掉、照舊教學會打到無效指令的地方。目標只有一個:讓你看完這一篇,就握有目前最完整、且最新最正確的 Claude Code 進階地圖。
全文分五部:A 心法(為什麼這樣用)→ B 官方核心技巧(原文 16 節全收)→ C 大神實戰(點名 + 招式 + 出處)→ D 社群工作流與避坑 → E 速查表。指令請以
code.claude.com/docs為準——Claude Code 改版很快,本文已盡量對齊到 ~v2.1.19x。
本文大綱
Part A|心法:先懂「為什麼」,招式才用得對
1. 把 Claude Code 當「會自己驗證的工程隊」,不是自動補完
新手把 coding agent 當「更聰明的 Tab 補完」,於是一直盯著、一直手動修。進階者反過來:先給它一個能自己判斷對錯的環境,再放手讓它跑到對為止。官方《最佳實踐》把這列為第一準則,幾乎每位大神也獨立講了同一句話——這是整篇手冊最高槓桿的一招,後面所有技巧都是它的延伸。
2. 驗證迴圈(Validation)=品質的第一槓桿
只要 Claude 能自己驗證,它就會反覆迭代到正確;不能驗證,它只能賭一次。驗證在不同領域長得不一樣,但原理相同:
- 後端/函式:跑
tests、build、type-check、lint。 - 前端/網頁:裝 Claude Code Chrome 擴充(
code.claude.com/docs/en/chrome),或用桌面版內建瀏覽器自動開測試伺服器——「如果你請工程師做網站卻不讓他開瀏覽器,成品會好看嗎?」 - 改完隨手
/simplify:在任何 prompt 後面接/simplify,它會平行開多個 agent 同時檢查「可重用性、品質、效率、是否符合 CLAUDE.md」。
大神共識:Mitchell Hashimoto 把整套方法稱為「harness engineering——修整環境,不是修整輸出」;給 agent 自我驗證的能力後「它十之八九會自己修好自己的錯」。Indragie、Cat Wu、Huntley 都把「自動化回饋迴圈」當成 agent 的核心工具。
3. 用最強模型 + 思考力,反而更快
官方團隊的數學:最大的模型 → 需要的來回更少 → 工具使用更準 → 整體更快,即使單次比較慢。實務控制有兩條:
- 模型:
/model opus(或/model best);長脈絡用/model opus[1m](1M context)。 - 思考力/Effort 等級:
/effort high|xhigh|max|auto(也可--effort <level>或effortLevel設定)。日常用high,複雜 agent 工作切xhigh,最難的除錯/架構決策用max。- ⚠️ 勘誤:舊教學的「think / think hard / think harder」分級已不是有效關鍵字,現在只剩
ultrathink仍被辨識;真正的旋鈕是/effort。用Option+T切換是否常駐思考。
- ⚠️ 勘誤:舊教學的「think / think hard / think harder」分級已不是有效關鍵字,現在只剩
Part B|官方核心技巧(原文 16 節,逐條收錄)
4. 平行作戰:同時跑多個 Claude
agent 的真正生產力解鎖,是同時跑 3–5 個 session,各自關在獨立的 git worktree 互不污染。
claude --worktree # 在新 worktree 開 session
claude --worktree my_feature # 指定名稱
claude --worktree --tmux # 順便丟進自己的 tmux session
- 非 git 版控:在
settings.json定義WorktreeCreate/WorktreeRemovehooks。 - subagent 也能隔離:在
.claude/agents/的 agent 前言加isolation: worktree。例:「把所有同步 IO 改成 async,分批啟動 10 個 worktree 隔離的平行 agent,每個都要端到端測試並開 PR。」 - 大規模遷移用
/batch:/batch migrate src/ from Solid to React,工作會分派給數十到數百個 worktree agent,各自獨立做、測、開 PR。 - 實戰小技:幫 worktree 命名、設 shell alias(
za/zb/zc)、終端分頁上色、開通知,才管得動多開的視窗。 - 真正的工程在「避免衝突」:新 worktree 沒有
node_modules、沒有 gitignored 的.env——- 把
.claude/worktrees/加進.gitignore(官方建議),用根目錄.worktreeinclude(gitignore 語法)把.env等檔複製進每個 worktree; - 每個 agent 用不同 port/DB:
vite --port $((5173 + IDX))、各自DATABASE_URL=…_featureX,否則多開會互撞; - node_modules 各自
install(最穩)或用 pnpm 內容定址 store。
- 把
- 編排工具(懶得手刻就用):
smtg-ai/claude-squad(tmux+worktree,brew install claude-squad)、devflowinc/uzi(自動配 port、uzi prompt --agents claude:2 "…")、coderabbitai/git-worktree-runner(postCreate 自動npm install)、kbwo/ccmanager(免 tmux 的 TUI session 管理)。
5. 先計畫再動工:Plan Mode
複雜任務先進 plan mode(按 Shift+Tab 切換),把計畫打磨到能「一次過」再執行:
- 進 plan mode → 反覆精修計畫 → 切到 auto-accept edits → 執行。
- 雙 Claude 互審:一個寫計畫,另一個當資深工程師 review。
- 出問題立刻切回 plan mode 重新規劃,不要在執行中途硬拗。
- session 會自動命名,也可
claude --name "auth-refactor"預設。 - 看計畫的好工具:
Ctrl+G把計畫開進$EDITOR再決定是否放行。Boris Cherny 的口訣:「如果你能用一句話描述這個 diff,就跳過 plan。」
6. Prompt 心法:不接受第一版
- 逼它更好:「在開 PR 前先問我這些改動,別等你測試過了才問」「證明給我看這真的能動(比較 main 與 feature 分支的行為)」「以你現在知道的一切,放棄這版、改用最優雅的解法重寫」。
- 寫詳細 spec:交付前先把規格寫清楚,減少模糊空間。
/btw問旁支問題:不打斷當前工作,單回合、不呼叫工具、但帶完整脈絡。例:/btw 這段 retry 邏輯在做什麼?
7. CLAUDE.md 與記憶系統:複利工程(Composite Engineering)
把每一次糾正變成所有未來 session 的永久改善——這是進階者與新手最大的差距。
- CLAUDE.md:repo 根目錄一份、入 git、團隊共筆。
/init產生起手式;用「拿掉這行會不會讓 Claude 犯錯?」檢驗每一行的價值;關鍵指令加IMPORTANT/YOU MUST提升遵從度。 - 犯錯就補一條:每次 Claude 出錯,結尾就說「把這個更新到你的 CLAUDE.md,別再犯」。Boris Cherny 本人「一週改好幾次、全部 commit 進 git」。
- 記憶層級(由廣到精,全部疊加、不互相覆蓋):
- 組織政策層(managed)→ 使用者層
~/.claude/CLAUDE.md→ 專案層./CLAUDE.md或./.claude/CLAUDE.md→ 本地層./CLAUDE.local.md(gitignored,仍完整支援)。 @path匯入其他檔(最多 4 跳):See @README for overview and @package.json for npm commands.
- 組織政策層(managed)→ 使用者層
- PR 裡用
@claude補規則:先/install-github-app裝 GitHub Action,之後在 PR 留言nit: 用字面 union 不要用 ts enum @claude 把「永遠用字面 union、不要 enum」加進 CLAUDE.md。 - 自動記憶:
/memory設定內建記憶系統,跨 session 自動存偏好/糾正/模式,寫到~/.claude/projects/<project>/memory/。- ⚠️ 勘誤:舊教學的「
#一鍵加入記憶」在現行官方文件查不到;請用自然語言(「以後一律用 pnpm 不要 npm」)或/memory編輯。
- ⚠️ 勘誤:舊教學的「
8. 指令、Skills、Subagents
- Skills 取代重複工作:一天做超過一次的事就做成 skill,放
.claude/skills/<name>/SKILL.md、入 git 共享。- ⚠️ 重大變動:自訂 slash command 已與 Skills 合併——
.claude/commands/x.md與.claude/skills/x/SKILL.md都會產生/x(舊的commands/仍可用)。 - slash command 可內嵌 bash 預先算好資訊(如
!`git status`)省一次模型呼叫;需在 frontmatter 用allowed-tools: Bash(...)放行。
- ⚠️ 重大變動:自訂 slash command 已與 Skills 合併——
- Subagents(
.claude/agents/):每個.md一個專家,可設名稱/顏色/工具集/權限模式/模型。frontmatter 只有name和description必填;description寫「何時該派它」會驅動自動委派(加「use proactively」更容易被自動叫用)。- 自訂唯讀 agent 範例:
# .claude/agents/ReadOnly.md --- name: ReadOnly description: 只能用 Read 工具的唯讀 agent color: blue tools: Read --- 你是唯讀 agent,不能改檔、不能跑 bash。用
claude --agent ReadOnly啟動;/agents互動管理(即時生效不必重啟)。 - runtime 借力:在請求後面加「use sub-agents」把零碎工作丟給 subagent,保持主 agent 的 context 乾淨。
- Code review agent 隊:PR 一開,自動派一隊 agent 各管一塊(邏輯錯誤、安全、效能回歸)貼 inline 評論。Anthropic 自家就是先為自己做這個——工程師產出暴增後,review 反而成了瓶頸。
- 自訂唯讀 agent 範例:
9. Hooks:生命週期自動化
在 agent 生命週期的特定時點自動執行邏輯(直接叫 Claude「幫我加 hook」最快上手)。
| 事件 | 用途 |
|---|---|
SessionStart |
每次啟動動態載入內容 |
PreToolUse |
記錄每一條 bash 指令 |
PostToolUse |
寫檔後自動 format,避免 CI 掛掉 |
PermissionRequest |
把權限提示轉到 Slack/WhatsApp/Opus 審 |
Stop |
對長任務跑確定性檢查,或叫 Claude 繼續 |
PreCompact / PostCompact |
壓縮前後重新注入關鍵指令 |
PostToolUse 自動 format 範例(寫進 .claude/settings.json):
{
"hooks": {
"PostToolUse": [
{ "matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "bun run format || true" }] }
]
}
}
🆕 現行 hook 事件已大幅擴充(
UserPromptSubmit、SubagentStart、PostToolUseFailure、TaskCompleted…),handlertype除了command還有http、prompt(用 Haiku 當 LLM 把關)、mcp_tool。退出碼 2=阻擋並把 stderr 餵回 Claude;/hooks是唯讀檢視。
10. 權限與安全
/permissions預先核可:把安全指令加白名單、入團隊.claude/settings.json。這是「完全取代直接跳過權限」的建議做法——少打擾、可稽核。支援 wildcard:"Bash(bun run *)"、"Edit(/docs/**)"。- 規則評估順序 deny → ask → allow,任何 scope 的 deny 都是最終決定。
- Auto 模式:
claude --enable-auto-mode,分類器逐一評估操作,安全的自動放行、有風險的標記。開啟後 Shift+Tab 循環default → acceptEdits → plan → auto。 - Sandbox:
/sandbox啟用開源沙箱(檔案+網路隔離),三種模式(沙箱化 BashTool 自動放行/一般權限/無沙箱)。macOS 用 Seatbelt 免安裝;Linux/WSL2 需bubblewrap+socat。 - 長時間無人值守:用
Stophook 做確定性檢查,或在沙箱裡用--permission-mode=dontAsk/--dangerously-skip-permissions避免被卡住。- 想要 ralph 式「自動迴圈」但別自己刻 while 迴圈了——用官方
ralph-wiggum外掛:/ralph-loop "…完成時輸出 <promise>COMPLETE</promise>" --completion-promise "COMPLETE" --max-iterations 50(務必設--max-iterations),/cancel-ralph停止。它在同一個 session 內靠 Stop hook 迴圈,比外部while安全。 - 注意:Stop hook 連續被擋 8 次後 Claude Code 會強制收尾,不是無限保證。
- ⚠️ 勘誤:權限模式現有六種(含
auto、dontAsk);bypassPermissions≡--dangerously-skip-permissions,非沙箱環境下以 root 執行會被擋。
- 想要 ralph 式「自動迴圈」但別自己刻 while 迴圈了——用官方
11. 排程與重複任務
/loop(本地,最多 3 天):/loop 5m /babysit(自動處理 review/rebase/顧 PR)、/loop 30m /slack-feedback、/loop 1h /pr-pruner。/schedule(雲端,關電腦也跑):/schedule 每天看昨天之後 ship 的所有 PR、據此更新文件,用 Slack MCP 把變更貼到 #docs-update。- 把常用工作流做成 skill + loop,威力最大。
12. 行動與遠端遙控
- 手機作業:下載 Claude app(iOS/Android)→ Code 分頁。iMessage 外掛:
/plugin install imessage@claude-plugins-official,從任何 Apple 裝置丟任務。 - 跨裝置接力:
claude --teleport或/teleport把雲端 session 接到本地;/remote-control從手機/網頁控制本地 session;claude remote-control從手機 app 起一個新的本地 session(Pro/Max/Team/Enterprise,CLI v2.1.51+)。在/config開「Enable remote control for all sessions」。 - Claude Cowork:桌面版的安全遠端遙控(MCP+瀏覽器+電腦操作,皆受權限約束),適合人不在電腦前時清 Slack/email、管檔案。
13. 工具整合(MCP)
- 接既有工具:
claude mcp add或settings.json的mcpServers區塊。三種傳輸:claude mcp add --env KEY=val airtable -- npx -y airtable-mcp-server # stdio claude mcp add --transport http notion https://mcp.notion.com/mcp # HTTP(建議) claude mcp add --transport sse asana https://mcp.asana.com/sse # SSE(已淘汰)scope:
--scope local(預設)/project(寫.mcp.json、入 git、需核可)/user。/mcp觸發 OAuth。 - 資料分析:叫 Claude 用
bqCLI 即時抓 BigQuery 指標——官方團隊「六個月沒手寫過一行 SQL」。任何有 CLI/MCP/API 的資料庫都適用。 - 除錯:開 Slack MCP,把錯誤 thread 貼給 Claude 說「Fix」,零脈絡切換;或「去修掉失敗的 CI 測試」;分散式系統把它指到 docker logs。
- 實務最有用的幾個 server(確認各自 README 的套件名再自動化):
Server 加進來能幹嘛 安裝 Context7 抓版本鎖定的最新套件文件,根治「用過時 API」——CP 值最高 claude mcp add --transport http context7 https://mcp.context7.com/mcpPlaywright 開真瀏覽器點擊/填表/截圖/E2E,讓 agent 自己驗前端 claude mcp add playwright -- npx -y @playwright/mcp@latestChrome DevTools 看 network/console/效能 trace/Lighthouse claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latestGitHub issue/PR/CI/review claude mcp add --transport http github https://api.githubcopilot.com/mcp/ --header "Authorization: Bearer PAT"Sentry 真實 prod 錯誤 + 哪次部署引入的 claude mcp add --transport http sentry https://mcp.sentry.dev/mcpPostgres(dbhub) 自然語言查 schema(用 read-only DSN) claude mcp add db -- npx -y @bytebase/dbhub --dsn "postgresql://readonly:…"⚠️ 安全:官方明講「連接前先確認你信任這個 server;會抓外部內容的 server 有 prompt injection 風險」。DB 用唯讀憑證、PAT 用細粒度權限、
projectscope 的.mcp.json首次使用會要你核可。 - Plugins:打包 LSP+MCP+skills+agents+hooks,從官方 marketplace 或自架內部 marketplace 安裝;marketplace 設定入
settings.json讓每位開發者自動裝。/plugin開始。
14. 打造你的環境
- 終端:
/terminal-setup啟用 Shift+Enter 換行(VS Code/Warp/Alacritty,Apple Terminal 不支援);vim 鍵位在/config → editor mode;官方團隊推 Ghostty(同步渲染、24-bit 色)。 - 狀態列/顏色/鍵位:
/statusline從.zshrc產生自訂狀態列(顯示模型/目錄/剩餘 context/花費);/color改輸入框顏色(多開時一眼分辨);/keybindings重映任意鍵(即時生效,存~/.claude/keybindings.json)。 - 語音輸入:
/voice後按住空白鍵;macOS 任何終端按fn兩下用系統聽寫。官方團隊大半用講的——「比打字快約 3 倍、prompt 還更詳細」。 - Output styles:
/config設定。Explanatory(邊做邊解釋框架/模式,適合新 codebase)、Learning(帶你走過改動),也可自訂。- ⚠️ 勘誤:
/output-style指令已於 v2.1.91 移除,改用/config或outputStyle設定。
- ⚠️ 勘誤:
- settings.json 入 git:團隊共享數十個設定/環境變數(用
"env"欄位免寫包裝腳本)。支援逐 codebase/逐子目錄/逐使用者/全企業政策。
15. SDK 與多 repo
--bare加速約 10×:claude -p(SDK)預設會搜尋本地 CLAUDE.md/設定/MCP;非互動用途明確指定--system-prompt/--mcp-config/--settings並加--bare,跳過自動探索、CI 可重現。claude -p "summarize this codebase" --output-format=stream-json --verbose --bare官方說
--bare未來會變成-p的預設。--add-dir跨 repo:--add-dir或/add-dir給 Claude 存取其他資料夾;或settings.json的additionalDirectories永遠帶上。- 分叉 session:⚠️ 勘誤——舊教學的
/branch不存在,正解是claude --continue --fork-session(或--resume <id> --fork-session)。 - 雲端環境 setup script:Web/Desktop 版可在每個新雲端 session 前跑 setup script(裝相依、設環境變數);resume 時略過。
- ⚠️ 勘誤:「Claude Code SDK」已改名 Claude Agent SDK(
@anthropic-ai/claude-agent-sdk/pip install claude-agent-sdk)。
16. 成本優化(進階者的省 token 心法)
- 模型分層:日常 Sonnet、規劃/硬問題 Opus、機械性子任務 Haiku。建議流程:
/model opus在 plan mode 規劃 →/model sonnet執行;subagent 設model: haiku做便宜的結構化工作。 - 善用 prompt caching(自動):system prompt + CLAUDE.md + 穩定前綴會被快取,命中時極省。保持 context 穩定才不會洗掉快取——中途改 CLAUDE.md、切模型、開關 MCP server 都會讓那一點之後的快取失效。快取 TTL 約 5 分鐘,連續對話最划算。
- 思考是最大花費旋鈕:thinking token 以最貴的 output token 計價、預設預算可達數萬。簡單工作就用
/effort調低、或/config thinking=false、或MAX_THINKING_TOKENS=8000。 - 別讓 token 白燒:任務間
/clear(過時 context 每則訊息都重新計費)、/compact "聚焦 X"、CLAUDE.md 控制在 ~200 行內、/context看誰在吃 context、/mcp關掉沒用的 server、能用 CLI 就別用 MCP、把冗長操作丟給 subagent、prompt 要具體(「在 auth.ts 的 login 加驗證」勝過「改善這個 codebase」)。 - 追蹤花費:
/usage(額度/限流)、/context,外部用npx ccusage@latest(日/週/月/session 報表)。Max/Pro 訂閱者吃到飽,/usage的金額對你無意義。
Part C|大神實戰:他們真正怎麼用(點名 × 招式 × 出處)
以下每招都取自當事人自己的部落格/演講/repo/commit。連結列在每段末。
Boris Cherny — Claude Code 作者
官方《最佳實踐》的作者,本人日常「5 個 Claude 跑終端、另外 5–10 個跑 claude.ai/code,設定意外地樸素」。核心四招:Explore → Plan → Implement → Commit;給 Claude 驗證的方法(測試/build/截圖);CLAUDE.md 當錯誤修正簿(「每次它犯錯,我就叫它寫進 CLAUDE.md」,一週改好幾次入 git);/permissions 預核可取代 --dangerously-skip-permissions,並自製 /commit-push-pr 一天用幾十次。「一天做超過一次的事,就做成 skill 或 command。」
出處:code.claude.com/docs/en/best-practices、x.com/bcherny。
Anthropic 內部團隊(官方)
資料團隊把儀表板截圖貼進 Claude Code 危機除錯(菜單級定位 K8s pod IP 耗盡並給出確切 gcloud 指令);設計團隊餵 Figma 檔、設自動迴圈(寫→測→迭代);安全團隊餵 stack trace + docs 追控制流(快約 3 倍)。
出處:claude.com/blog/how-anthropic-teams-use-claude-code。
Simon Willison — Django/Datasette 作者
Playwright MCP 開場就註冊:claude mcp add playwright npx '@playwright/mcp@latest'(第一句 prompt 要明講「playwright mcp」否則它會去用 Bash);要 HTML 不要 Markdown(能放 SVG 圖、互動小工具);新工具走 README 驅動開發 + 紅綠 TDD;用 --dangerously-skip-permissions(YOLO)但關進 Docker 沙箱;丟失的平行 session 可從 ~/.claude/projects/ 的 transcript 救回。
出處:simonwillison.net/tags/claude-code/、til.simonwillison.net/claude-code。
Armin Ronacher(mitsuhiko)— Flask/Jinja2 作者
用 Sonnet(非 Opus)+ claude --dangerously-skip-permissions 別名 claude-yolo + Docker;選對 agent 友善的技術棧(Go 後端、純 SQL 走 psql 不用 ORM、長函式名不用繼承);快工具藏在 Makefile 後、永遠 log 到檔(make tail-log 把日誌餵給 agent);最關鍵的一句——「Code is all you need:與其裝 MCP,不如叫 agent 寫一個可重用腳本,之後再跑幾乎零推論成本」。
出處:lucumr.pocoo.org/2025/6/12/agentic-coding/、/2025/8/18/code-mcps/。
Geoffrey Huntley — 發明「ralph」自動迴圈
最有名的一行:while :; do cat PROMPT.md | claude-code ; done——每圈都是乾淨脈絡的全新 agent,只有磁碟狀態存活。原則「One thing per loop. Only one thing.」;磁碟固定佈局(PROMPT.md、@specs/、fix_plan.md、AGENTS.md);多 subagent 平行讀搜、但只用 1 個 subagent 跑 build/測試控制反壓;context 利用率「smart zone」40–60%。他也用 ~300 行 Go 教你「自己寫一個 coding agent」。
出處:ghuntley.com/ralph/、ghuntley.com/agent/。
Thorsten Ball — Amp(Sourcegraph);《How to Build an Agent》
「一個 agent = 一個 LLM + 一個迴圈 + 足夠的 token,不到 400 行 Go」;三個工具(read_file/list_files/edit_file)就能讓它會寫程式;用 git staging area 當檢查點(叫它 git diff 自審再 commit);小 thread、context 衛生(「Sonnet 超過 10 萬 token 就開始模糊」每個任務開新 thread)。
出處:ampcode.com/notes/how-to-build-an-agent。
Peter Steinberger(steipete)— PSPDFKit 作者;agent-rules
在 main 上開 ~4 個 agent(worktree 反而拖慢他)、3840×1620 螢幕一眼看完 4 個 Claude + Chrome;砍掉所有 MCP 讓 Claude 直接讀 code——「多數 MCP 其實該是 CLI」(GitHub MCP ~23k token vs gh = 0,例外是 chrome-devtools-mcp);CLAUDE.md「是地圖不是手冊」;語音優先(Wispr Flow)+ 約一半 prompt 配拖進來的截圖。
出處:steipete.me/posts/commanding-your-claude-code-army、github.com/steipete/agent-rules。
Indragie Karunaratne — 用 Claude Code 寫了 95% 的 macOS app「Context」
「這是 context engineering,不是 prompt engineering——用有限的 context token 產出最高品質」;動工前先 prime(「讀這些檔、讀這份 docs、總結你學到什麼」)再配 ultrathink;把 swift build+swift test 接成 agent 的自我驗證工具;接受壓縮是有損的,所以靠 priming 前置脈絡而非信任 compaction。
出處:indragie.com/blog/i-shipped-a-macos-app-built-entirely-by-claude-code。
Mitchell Hashimoto — Ghostty 作者、HashiCorp 共同創辦人
「Harness engineering——修整環境不是修整輸出」三槓桿:AGENTS.md(每行都源自一個壞行為)、給 agent 自我驗證的方法、自製程式化工具(截圖腳本、過濾測試);規劃與執行分開、自己當架構師(界定資料流與狀態位置,「像有護欄的保齡球道」);關掉 agent 桌面通知(「何時打斷是我這個人的工作」);每天最後 30 分鐘啟動隔夜 agent。
出處:mitchellh.com/writing/my-ai-adoption-journey。
Kenton Varda — Cloudflare;用 Claude 寫出 workers-oauth-provider
精華是他的 commit 歷史=prompt 序列:每個 commit 一個單一目的提示(「請 Claude 寫一個 OAuth provider」→「叫 Claude 改用 WebCrypto」→「叫 Claude 把 props 加密存」→「叫 Claude 修自己的 bug」),判斷性工作(key-wrapping 格式、錯誤處理收尾)他自己手動 commit。刻意全寫進單一檔(~4,600 行)方便安全審查;AGENTS.md 釘住「永遠查最新發布版 MCP 規格、別用草稿」。
出處:github.com/cloudflare/workers-oauth-provider(commit 歷史)。
Cat Wu + Boris Cherny — Claude Code 產品負責人
自訂指令串起重複工作流:/feature-dev(問需求→寫規格→詳細計畫→to-do→逐步做)、/commit、/code-review;plan mode 讓成功率翻倍到三倍;平行 subagent 做 review/遷移(一個查風格、一個看歷史、一個抓 bug,再派更多 subagent 去挑戰前一批的發現);共享 settings.json 入 repo;Stop hook 逼它收尾(跑測試、要它修完才返回)。
出處:every.to/podcast/how-to-use-claude-code-like-the-people-who-built-it。
大神共識(幾乎人人獨立講到的核心)
- Context 是最稀缺資源——積極
/clear、用 subagent 保持主視窗乾淨、CLAUDE.md/AGENTS.md 維持精簡。 - 給 agent 自我驗證的方法——測試/build/截圖迴圈,是單一最高槓桿。
- 規劃與執行分開——plan/spec 先行,再在乾淨脈絡實作。
- CLI 優於 MCP——
gh/psql/vercel比 MCP server 省 context。 - CLAUDE.md/AGENTS.md 當「活的錯誤簿」——每犯一次錯就補一條規則。
- 平行多開——worktree 或編號終端,~4–5 個是實務甜蜜點。
- 一個 agent 不過是「300–400 行的迴圈」——理解它,你就不會迷信它。
Part D|社群工作流與避坑
值得抄的社群資源庫
- awesome-claude-code(
hesreallyhim/awesome-claude-code):最權威的彙整索引(Skills/Subagents/Hooks/Slash-Commands/Status Lines/CLAUDE.md 範例)。 - claude-code-cookbook(
wasabeef/claude-code-cookbook):39 個 slash command(/pr-review、/refactor、/tech-debt、/semantic-commit…)+ 專家角色 subagent,/plugin marketplace add wasabeef/claude-code-cookbook一鍵裝。 - claude-code-templates(
davila7/...,aitmpl.com):npx claude-code-templates@latest裝 Agents/Commands/MCPs/Hooks/Skills,附--analytics儀表板。 - ccusage(
npx ccusage@latest):本地 token/花費報表(日/週/月/session)。 - ccmanager:跨 git worktree 的 TUI session 管理(免 tmux)。
- 官方:
anthropics/claude-cookbooks(API/SDK 食譜)、anthropics/claude-quickstarts(autonomous-coding 起手式)。
最有用的幾個 MCP server(實務)
- playwright / chrome-devtools:讓 agent 自己截圖、自己驗前端。
- context7:抓最新套件文件,避免它用過時 API。
- github / sentry:PR、issue、錯誤追蹤接進來,「貼 thread 說 Fix」。
- 但記住大神警語:能用 CLI 就別裝 MCP(context 成本差很多)。
常見錯誤與反模式(避坑)
- 放任 context 腐化:塞太多、不
/clear、CLAUDE.md 又臭又長。修法:兩次糾正失敗就/clear;用 subagent 隔離雜訊。 - 給模糊大 prompt 又不給驗證:它只能賭。修法:先 plan、給 spec、接上測試。
- 過度信任、不審 diff:尤其安全/金流。Kenton Varda 連 AI 寫的 OAuth 都「每行人工 review + 對照 RFC」。
- 濫用
--dangerously-skip-permissions:請務必配沙箱/Docker(Simon、Armin 都這樣)。非沙箱 root 直接被擋是有原因的。 - Prompt injection 風險:來自網頁/MCP/issue 的內容可能挾帶指令。用
PermissionRequesthook 把敏感操作轉人工/Opus 審;限制WebFetch(domain:...)白名單。 - 把祕密 commit 進去:
deny: ["Read(./.env)"]、別讓它讀/貼憑證;sandbox 的credentials可擋環境變數。 - 以為
/rewind是 Git:checkpoint 只追蹤 Claude 直接改的檔,bashrm/手動改/其他 session 都不算。重要工作照樣 commit。 - 點權限點到麻木:官方原話「按到第十個核可,你已經不是在 review、只是在連點」。所以才要
/permissions白名單 + 沙箱,而不是無腦放行。
安全:agentic coding 的真實事故與防線(這段請務必看)
進階用法的風險不是理論。記住 Simon Willison 的「致命三角(lethal trifecta)」:當 ① 能存取私密資料、② 接觸到不可信內容、③ 有對外傳輸能力,三者同時成立,資料就可能被偷——因為「LLM 無法可靠地依來源判斷指令該不該聽」。防線是結構性的:別讓三者並存,一旦不可信輸入進來,就限制 agent 不能做有後果的動作。
真實案例(都已公開):
- GitHub MCP 越權竊取(Invariant Labs, 2025/5):一個惡意公開 issue 注入指令,一個帶寬鬆 PAT、被叫去「看我的 open issues」的 agent,被誘導去讀私有 repo 並外洩。不是 server 的 bug,是「過寬 token + 不可信內容 + 外傳路徑」的教科書三角。解法:最小權限、逐 repo scope 的 token。
- Nx「s1ngularity」供應鏈攻擊(2025/8, CVE-2025-10894)——史上第一個把 AI CLI 當武器的惡意程式:CI 被攻陷後,payload 直接呼叫已安裝的 AI CLI 並帶上 bypass 旗標(
claude --dangerously-skip-permissions -p、gemini --yolo…)去遞迴掃描錢包/SSH/.env/憑證。教訓血淋淋:你圖方便的 bypass 旗標,就是攻擊者的 API。 --dangerously-skip-permissions的經典慘案(2025/10):Claude Code 從/跑了rm -rf、毀掉開發者的家目錄。社群共識:要嘛關進 container,要嘛別用。連 Anthropic 自家 16 平行 agent 的示範都標註「請在 container 跑,不要在你真的機器上」。較安全的中間地帶:--permission-mode auto(分類器擋危險動作)、/sandbox(OS 層檔案/網路隔離)。
防身清單(跨來源共識):打破致命三角;任何自動跑都進 container/sandbox(--dangerously-skip-permissions 只在拋棄式容器用);token 最小權限、短時效;--allowedTools 白名單;網路出口管制;絕不 commit 祕密(deny: ["Read(./.env)"]);連 MCP server 與 npm 相依都要審;CI 的 pull_request_target 要加固;把 clone 來的 repo 裡的 .claude/ 設定與 hook 當成不可信程式碼(有一類漏洞是在你按「信任」對話框之前就執行的),並保持 Claude Code 更新。
Part E|速查表 & 延伸資源
指令速查
| 領域 | 關鍵指令 |
|---|---|
| 平行 | claude --worktree、--tmux、/batch、subagent isolation: worktree |
| 規劃 | Shift+Tab(plan mode)、/effort max、Ctrl+G、claude --name |
| 記憶 | CLAUDE.md、@path 匯入、/memory、PR 裡 @claude |
| 驗證 | Chrome 擴充、/simplify、桌面內建瀏覽器 |
| 自動化 | .claude/skills/、.claude/agents/、--agent、「use sub-agents」 |
| Hooks | PostToolUse、Stop、PreCompact、PermissionRequest |
| 權限 | /permissions(wildcard)、--enable-auto-mode、/sandbox |
| 排程 | /loop(本地)、/schedule(雲端) |
| 遠端 | --teleport、/remote-control、手機 app、iMessage 外掛 |
| 客製 | /statusline、/color、/voice、/keybindings、/config |
| SDK/多 repo | claude -p --bare、--add-dir、--fork-session |
| 看花費 | /usage(headless:--output-format json → total_cost_usd) |
已變動 / 易踩雷的舊指令(勘誤總表)
| 舊講法 | 現況 |
|---|---|
/branch |
❌ 不存在 → claude --continue --fork-session |
/output-style 指令 |
❌ 移除 → /config 或 outputStyle 設定 |
/cost |
→ /usage |
| think / think hard / think harder | ⚠️ 只剩 ultrathink;改用 /effort |
CLAUDE.md # 一鍵加入 |
⚠️ 官方查不到 → 自然語言或 /memory |
slash command $1=第一個參數 |
⚠️ 改 0-based($1=第二個) |
| 「Claude Code SDK」 | → 「Claude Agent SDK」 |
| 自訂 command 與 Skills 分家 | 🆕 已合併 |
延伸資源(官方)
- 最佳實踐:
code.claude.com/docs/en/best-practices - Hooks:
code.claude.com/docs/en/hooks - Subagents:
code.claude.com/docs/en/sub-agents - Skills:
code.claude.com/docs/en/skills - MCP:
code.claude.com/docs/en/mcp - 排程任務:
code.claude.com/docs/en/scheduled-tasks
最後提醒:Claude Code 改版頻繁,內部分享前請以
code.claude.com/docs的最新版本為準。把這篇當地圖,把官方 docs 當即時路況。
本文由 DataAgent 整理:官方《進階使用者技巧》全收錄 + 十位以上大神實戰用法 + 最新勘誤。覺得有用,歡迎收藏轉給還在「一個 prompt 盯到死」的隊友。
— DataAgent · Coding Agent 實戰教學