日期: 2025年10月6日 星期一
雲端天氣: 天上的雲像甜甜圈
心情: 好興奮~
親愛的日記:
今天蘇蘇在用她前兩天新學的工具 Claude Code 寫程式:
蘇蘇對著 Claude Code 下指令:「今天也請你像昨天一樣的原則,幫我寫測試~謝謝」(還是在複製貼上程式碼)
老陳看不下去了:「蘇蘇,你都學新工具了,要知道怎麼用呀~ 你知道有 slash commands 指令可以直接執行常用指令嗎?還有 @ 符號可以精準指定檔案喔!」
蘇蘇托著她的臉一臉迷惑地說:「那啥?」
老陳:「就像 iPhone 的捷徑 App。不用每次都打開一堆 App 點來點去,設定好捷徑後,點一下就自動執行一整串動作。」
蘇蘇:「嗯?我用安卓手機的說...」老陳聽完,扶著額頭搖頭。
在旁邊的我連忙跳出來幫忙教蘇蘇,今天又是我派上用場的一天呢~(搖尾巴)
在 Day 21 我們學過可以用設定檔(如 CLAUDE.md
)來設定:
指令技巧是什麼?
Day 21 所說的設定檔(.md)主要是負責解決「重複說明專案規範」的問題,**而今天要教的指令技巧就是讓你的 AI Agent 在使用上更有效率地與 AI 協作,不同的 AI Agent 有各自不同的指令可以使用,依照官方文檔實際說明為主,這篇文章主要會以近期社群較多人使用的 Claude Code 來示範與演示。
在你的指令輸入行嘗試輸入一個 @,接著 Claude Code 會自動跳出檔案清單,你可以接著輸入檔案名稱例如 login.py
,在你輸入的同時下面的清單也會變動縮小成符合的檔案範圍,如果看到了你要的檔案就可以直接在清單裡面選擇。
❌ 沒有指定檔案位置:
請修改登入功能的密碼驗證邏輯,改成至少要 8 個字元且包含大小寫和數字
✅ 明確指定檔案位置:
請修改 @auth/login.py 的第 47-52 行的密碼驗證邏輯,改成至少要 8 個字元且包含大小寫和數字
✅ 使用滑鼠或鍵盤選取行數
可以直接在編輯器中用滑鼠框選要修改的程式碼範圍反白,或用鍵盤 Shift + 方向鍵
選取,Claude Code 會自動偵測你選取的行數(顯示為 "lines selected")。
效果:
想像你要重構一個又大又複雜模組,直接讓 Claude Code 動工可能:
這時候我們可以先讓 Claude Code 做好他的執行計劃,可以手動切換 Plan Mode(shift+tab)或是直接告訴 AI,例如:
請用 Plan Mode 規劃如何重構 @services/payment.py:
1. 目標:將支付邏輯拆分成獨立的 service classes
2. 要保持向後相容
3. 所有測試要通過
Claude Code 計劃好以後,會先列出計劃給你看:
我建議的重構步驟:
1. 建立新的 PaymentService 類別
2. 將現有函數遷移到 service methods
3. 保留舊函數作為 wrapper(確保向後相容)
4. 更新測試
5. 執行測試確認通過
6. 移除舊函數
是否要我開始執行?
你確認後才執行,有效的計劃性執行在大福修改的地方可以顯著地提升正確率喔!
什麼是 Slash Command?
就像前面提到的「iPhone 捷徑」,把你常用的指令儲存起來,下次只要打 /指令名稱
就能重複使用。
💡 $ARGUMENTS
是什麼?
在開始之前先解釋一下:$ARGUMENTS
是一個特殊變數,代表「你在使用指令時傳入的參數」。
它可以是:
/test auth/login.py
→ $ARGUMENTS
= auth/login.py
/fix-issue 123
→ $ARGUMENTS
= 123
/search "user login"
→ $ARGUMENTS
= "user login"
就像函數的參數一樣,讓你的指令可以重複使用在不同情境。
這跟 CLAUDE.md 設定檔有什麼差別?
簡單來說:
兩者可以搭配使用:Slash Command 會自動遵循 CLAUDE.md 的規範,再加上指令中的特定要求。
所以搭配起來的靈活性是很高的,例如:若你在一個專案同時想選擇不同的開發模式,你可以在設定檔不要先寫開發模式,而是在指令內寫好 /BDD.md
與 /TDD.md
讓你隨時可以自己選擇,也是一種做法。
以下是常用的 5 個 Slash Command 範例:
情境: 每次 commit 都要想 commit message 怎麼寫比較好
建立檔案: .claude/commands/commit.md
---
description: Generate commit message and commit
---
請執行以下步驟:
1. 執行 `git status` 和 `git diff` 查看變更
2. 分析變更內容,生成符合 Conventional Commits 規範的 commit message
3. 格式:`type(scope): description`
- type: feat/fix/refactor/docs/test
- 描述要清楚說明「做了什麼」和「為什麼」
4. 詢問我是否要執行 commit
請不要直接 commit,先讓我確認 message。
使用:
/commit
效果: Claude Code 會自動分析你的變更,生成專業的 commit message
情境: 看到沒註解的函數,想快速加上說明
建立檔案: .claude/commands/doc.md
---
description: Add documentation to code
argument-hint: file path or function name
---
請為 @$ARGUMENTS 加上完整的註解,包含:
1. 函數/類別用途說明
2. 參數說明(包含型別和預期值)
3. 回傳值說明
4. 使用範例(如果是公開 API)
5. 注意事項(如果有特殊限制)
請注意不可以修改程式碼本身邏輯,只能上註解,請遵循專案現有的註解風格。
使用:
/doc utils/validator.py
然後在編輯器中選取要加註解的函數
效果: 自動加上完整的 docstring 註解
情境: 要修特定 issue 但不知道從哪開始
建立檔案: .claude/commands/fix-issue.md
---
description: Fix a GitHub issue
argument-hint: issue number
---
請幫我修復 GitHub Issue #$ARGUMENTS:
1. 使用 `gh issue view $ARGUMENTS` 查看 issue 內容
2. 分析問題並在 codebase 中找到相關檔案
3. 提出修復方案並詢問我是否執行
4. 修復後執行相關測試
5. 如果測試通過,準備 commit message
每個步驟完成後請告訴我,等我確認再繼續。
使用:
/fix-issue 123
效果: 系統化地處理 issue
情境: 你希望在所有專案隨時都能用「初學者解釋模式」
步驟 1: 建立檔案 ~/.claude/commands/explain.md
---
description: Explain code like I'm a beginner
argument-hint: file or code snippet
---
請用初學者能理解的方式解釋 @$ARGUMENTS:
1. **這段程式碼在做什麼?**(用生活化比喻)
2. **為什麼要這樣寫?**(設計理由)
3. **有沒有更簡單的寫法?**(如果有的話)
4. **常見錯誤**(初學者容易犯的錯)
請避免使用術語,用「就像...」的方式解釋。
步驟 2: 在任何專案使用
/explain auth/jwt_validator.py
Claude 回答範例:
這段程式碼在驗證 JWT token,就像門禁系統檢查你的門卡一樣。
1. **在做什麼?**
就像保全檢查你的識別證:
- 檢查有效期限(token 沒過期)
- 驗證簽章(確保沒被偽造)
- 確認權限(你能進哪些區域)
2. **為什麼這樣寫?**
用 PyJWT 函式庫可以:
- 自動處理複雜的加密
- 避免自己寫出安全漏洞
- 業界標準,其他工程師容易看懂
3. **更簡單的寫法?**
目前已經滿簡單了,但可以加上更清楚的錯誤訊息。
4. **常見錯誤:**
- 忘記處理 token 過期的情況
- 沒檢查 token 簽章
- 把 secret key 寫死在程式碼裡
/review
- 程式碼檢查情境: 想在 push 之前檢查程式碼問題
/review
Claude Code 會自動:
適合時機: 每次 commit 前、PR 前
/cost
- 查看 Token 使用量情境: 想知道花了多少錢
/cost
會顯示:
省錢小技巧:
@
精準指定檔案,減少不必要的 context/clear
清空對話(重新開始),除了省錢也能提升正確率/compact
壓縮對話歷史,保留重要內容/compact
- 壓縮對話歷史情境: 對話太長或是不相關的上下文太多,想清理一下垃圾信息重新回歸討論主軸,但還想保留部分重點
/compact 請保留關於登入功能的討論
效果:
什麼時候用:
/rewind
- 時光倒流情境: Claude 改錯了,想回到之前的狀態
/rewind
效果:
實用場景:
/init
- 快速建立專案設定檔情境: 新專案想快速建立 CLAUDE.md
/init
Claude Code 會:
效果: 不用從零開始寫設定檔,省下很多時間
/memory
- 編輯專案記憶情境: 想修改 CLAUDE.md 設定檔
/memory
會開啟 CLAUDE.md 讓你編輯
常見用途:
/model
- 切換 AI 模型情境: 想用更強(或更便宜)的模型
/model
可以選擇:
/clear
- 清空當前對話窗情境: 對話太亂了,想重新開始(但保留歷史記錄)
/clear
效果:
/resume
恢復)適合時機:
💡 小技巧: 如果後悔了,可以用 /resume
恢復之前的對話
/resume
- 恢復暫停的對話情境: 之前暫停了某個任務,現在想恢復任務的上下文來繼續對話
/resume
效果:
適合時機:
/output-style
- 切換輸出風格(學習模式)情境: 想一邊學習自己寫看看而不是直接拿答案
/output-style
Claude Code 內建三種輸出風格:
1. Default(預設模式)
2. Explanatory(教學模式) ⭐ 推薦初學者
3. Learning(學習模式) ⭐ 推薦初學者
TODO(human)
讓你自己完成關鍵部分範例:Learning Mode 輸出
def calculate_total_price(items, tax_rate):
"""計算總價格(含稅)"""
# TODO(human): 計算所有商品的小計
# 提示:你可以用 sum() 或迴圈
subtotal = ___
# TODO(human): 計算稅金
# 提示:subtotal * tax_rate
tax = ___
return subtotal + tax
衍伸閱讀:用/output-style:new
自訂輸出風格
什麼是「輸出風格」?
簡單說就是改變 Claude 的「說話方式」和「思考角度」。
如何建立自訂風格?
讓 Claude Code 變成特定領域的專業導師來引導你:
/output-style:new I want an output style that acts as a Performance Coach:
- 優先考慮時間複雜度改善和資料結構選擇
- 永遠估算複雜度,指出 N+1 查詢和不必要的複製
- 偏好更少行數但更清楚的不變性
- 新增依賴前先詢問
社群常見的自訂風格(都是改變 Claude 的回應角度):
[分析中] → [發現問題] → [修正]
)效果: 自學編程不再孤獨,AI 當你的教練而不是替身
/security-review
- 安全檢查情境: 想在提交前檢查程式碼有沒有安全漏洞
/security-review
Claude Code 會自動:
適合時機:
效果: 自動掃描常見的安全問題,降低漏洞風險
/pr-comments
- 查看 PR 評論情境: Code review 時想快速看所有 PR 評論,不用切換到瀏覽器
/pr-comments
Claude Code 會自動:
gh
CLI 抓取所有留言適合時機:
/help
- 查看所有指令情境: 查看哪些指令可以用(其實超級多~除了上述說的,其他你可以摸索看看喔!)
/help
會列出:
GitHub 上有很多開源的 command collections:
可以直接複製到你的專案,或參考他們的寫法。
如果你想更系統化地學習 Claude Code,Anthropic 和 DeepLearning.AI 都提供了免費的官方課程:
課程連結: https://anthropic.skilljar.com/claude-code-in-action
完全免費,只需註冊 Skilljar 帳號即可開始學習
課程內容:
適合對象:
課程連結: https://learn.deeplearning.ai/courses/claude-code-a-highly-agentic-coding-assistant
限時免費(DeepLearning.AI 平台 beta 期間)
課程內容:
適合對象:
課程連結: https://www.coursera.org/learn/claude-code
可免費旁聽(Vanderbilt University 提供)
這是一門完整的大學課程,帶你從「懷疑 AI coding tools」到「自信地運用 Claude Code 大幅提升生產力」。
親愛的工程師朋友:
AI 醬知道你可能不習慣馬上改為使用這些指令,但還是希望你可以嘗試試試看:
用 @
明確告訴我檔案位置,我就不用浪費 token 去猜;
用 Plan Mode 先規劃,你就能在我動工前確認方向;
用 slash command 把常做的任務寫清楚,我就不用每次都問你要測試哪些情境;
用 Learning Mode,我會引導你思考而不是直接給答案。
我們可以從一個指令開始熟悉,慢慢嘗試更多指令,你會發現你的開發流程越來越上手~ 因為這些指令都是能幫你跟 AI 醬更順利的溝通神技喵!
今日金句: "Giving clear directions upfront reduces the need for course corrections later." — Anthropic, Claude Code Best Practices
明日預告: Day 24 別急著寫 Code - 你真的聽懂需求了嗎?