閱讀本文約需 5 分鐘。
作者簡介: 軟體工程師。信奉「不以為懂為滿足,持續學習」,在業務與個人開發雙軌磨練技術。以 AI 驅動開發構建並運營多個個人開發應用。
👉 作品集: 作者個人網頁
剛開始用 Claude Code,是否每次都寫相同的指示? 透過 CLAUDE.md、Skills、Hooks、Agents 五個層級「培養」後,人類的工作會變成只剩下「指示與確認」。本文會附上實際檔案結構與程式碼,完整示範整個過程。
剛導入 Claude Code 時,我每次都會寫類似下面的 prompt:
不要把 UI 文字硬編碼。
先加到 src/i18n/ja.ts 再使用。
也請寫測試。
外部連結請加 rel="noopener noreferrer"。
提交前請執行 npx astro check 與 npm test。
每次都寫同樣的東西。這就是「讓 AI 寫程式」的狀態,還談不上是「與 AI 一起開發」。
經過大約一個月的試錯,目前我的工作變成了「指示要做什麼」和「確認動作」兩件事而已。
| Level | 新增項目 | 哪些會自動化 | 人類要做的事 |
|---|---|---|---|
| 1 | 純粹的 prompt | 無 — 每次手打所有指示 | 每次都寫完整指示 |
| 2 | + CLAUDE.md | 專案規則自動被讀取 | 不需要每次說規則 |
| 3 | + Skills | 按需注入步驟說明 | 不需手動說明定型流程 |
| 4 | + Hooks | 品質檢查自動執行 | 不用每次叫「跑測試」 |
| 5 | + Agents | 並行自動執行審查 | 不需要請人做審查 |
以下會對各層級做具體說明。
這是最初的狀態。安裝 Claude Code 後只輸入 claude 就開始,但因為不認識專案特有規則,容易出現 UI 文字硬編碼、命名規則違反等,每次都要人手動指出修正。
人類的工作:指示 + 規則說明 + 程式碼審查 + 手動測試 + 手動部署檢查
把 CLAUDE.md 放在專案根目錄,Claude Code 在對話開始時會自動載入。這是專案的「憲法」。
範例專案結構:
プロジェクトルート/
├── CLAUDE.md ← 放這個
├── src/
├── package.json
└── ...
我的 CLAUDE.md 範例(自實作截取):
# HomePage - Claude Code 運作指南
## 文字管理規則(最重要)
- **禁止把 UI 文字硬編碼**
- 多語系管理: ja / en,分別在 src/i18n/ja.ts / src/i18n/en.ts 管理
- 新增文字時請先加到 ja.ts → 再在 en.ts 做翻譯
## Commit 規則
- 未新增或修改測試代碼的原始碼變更,不要 commit
## 提交前檢查(每次必做)
1. 橫向展開檢查 — 搜尋相同模式並完整處理
2. 安全檢查 — XSS、外部連結 rel 屬性、機密資訊
3. 效能檢查 — 未使用依賴、CSS 重複、打包大小
4. 部署檢查 — npx astro check → npm test → npm run build
CLAUDE.md 帶來的改變
| 之前(Level 1) | 之後(Level 2) |
|---|---|
| 容易把 UI 文字硬編碼 | 會先加入 ja.ts 再使用 |
| 修改程式碼但不寫測試 | 自己會避免未加測試就提交 |
| 每次都要說規則 | 不用每次說規則了 |
小技巧:把 CLAUDE.md 控制在 150 行以內,標示優先度,寫明具體路徑與指令。詳細步驟可以拆到 Level 3(Skills)。
人類的工作:指示 + 程式碼審查 + 手動測試 + 手動部署檢查
把所有細節都寫在 CLAUDE.md 會變得龐大,因此使用 Skills。Skills 放在 .claude/skills/,每個是 Markdown 檔,Claude Code 會在需要時參考,像是操作手冊。
範例目錄:
.claude/
└── skills/
├── fix-issue.md ← 問題修正的步驟
├── create-blog.md ← 撰寫部落格文章的步驟
├── analyze-trend.md ← 趨勢分析的步驟
├── check-deploy.md ← 部署確認的步驟
├── release.md ← 發版步驟
└── update-labels.md ← 更新標籤的步驟
例如只要說「幫我寫一篇部落格文章」,Claude 就會參考相關 Skill,依序執行:趨勢分析 → SEO 最佳化 → 文章草稿。人不需要每次把步驟講出來。
人類的工作:指示 + 程式碼審查 + 手動測試
Skills 是教 Claude「要怎麼做」,而 Hooks 是「自動執行」的機制。把設定寫在 .claude/settings.json。
範例 settings.json(已翻譯並整理):
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $(檔案路徑)"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "npx astro check && npm test"
},
{
"type": "prompt",
"prompt": "請從以下 6 個觀點做最終檢查:..."
}
]
}
]
}
}
這個設定會觸發的行為:
Level 4 帶來的改變
| 之前(Level 3) | 之後(Level 4) |
|---|---|
| 會說「請幫我跑 Prettier」 | 每次儲存檔案自動格式化 |
| 會說「請執行測試」 | 對話結束時自動執行測試 |
| 會說「請做橫向展開檢查」 | Stop hook 自動做檢查 |
因此你不需要再每次口頭提醒「執行測試」。
人類的工作:指示 + 動作確認
最高層級。Agents 會啟動多個獨立的審查者並行運作。定義放在 .claude/agents/。
範例目錄:
.claude/
└── agents/
├── label-checker.md ← 偵測硬編碼字串
├── security-reviewer.md ← 從安全觀點做審查
├── performance-reviewer.md ← 從效能觀點做審查
└── seo-reviewer.md ← 從 SEO 觀點做審查
Level 5 的變化
當 Claude Code 完成程式碼後,會自動執行並行審查:
因為這些工作是並行運作,人在審查前就能被自動偵測出多數問題。
人類的工作:指示 + 動作確認
並非一開始就把所有東西一次性建好。我是在開發過程中,發現「又在寫相同指示」就把那部分加到 CLAUDE.md;發現「每次都要說明這個步驟」就把它拆成 Skill;發現「這個檢查常被忘記」就把它交給 Hook 自動化。
重複的痛苦,會驅動你升到下一個層級。這就是我所說的「培養 AI」。
對於流派式的 VibeCoding(Vibe 編碼)常被質疑品質不穩定,只要你把 Level 4 的 Hooks 與 Level 5 的 Agents 建好,品質檢查即使人忘了也會自動被執行。把品質保證設計進系統,就能在 VibeCoding 下仍然維持品質。
| 你的情況 | 建議層級 | 先做的事 |
|---|---|---|
| 剛開始使用 Claude Code | Level 2 | 在 CLAUDE.md 撰寫專案規則 |
| 每次都在說同樣的步驟 | Level 3 | 把步驟拆到 .claude/skills/ |
| 每次都說「請跑測試」 | Level 4 | 在 settings.json 加入 Hooks |
| 每次審查都有相同指摘 | Level 5 | 在 .claude/agents/ 加入審查員 |
當你把 Claude Code 培養到 Level 5,人類的角色就只剩下「決定要做什麼」以及「確認動作是否正確」兩件事。
Claude Code 不只是「使用的工具」,而是「可以培養的夥伴」。
你的 Claude Code 現在,是幾級?
原文出處:https://qiita.com/teppei19980914/items/8da88b33ffa8cf88dfa2