核心命題: 當大多數 AI 編碼技能教你「如何更快地寫出更多代碼」,Matt Pocock 的技能系統反其道而行——教你如何用工程紀律駕馭 AI,防止代碼庫變成一團泥。
數據: 115,000+ Stars · 10,000+ Forks · 2,700,000+ 總安裝次數 · 35 個技能 · 60,000+ Newsletter 訂閱者 · MIT License
方法論: 安裝實錄 → 15 個技能逐一剖析 → 8 個日常場景示範 → 完整工作流程建議
前言:「Skills for Real Engineers, Not Vibe Coding」
Matt Pocock 是 TypeScript 生態圈中無人不曉的名字——Total TypeScript 創始人、X 上 200K+ 追隨者的技術教育家。他的 TypeScript 課程被全球開發者視為聖經。
2026 年 2 月,他做了一件震撼 AI 編碼圈的事:把自己每天在 Claude Code 中使用的技能直接開源到 GitHub。短短 4 個月內,這個倉庫獲得了 115,000+ Stars,成為 skills.sh 生態中最受歡迎的技能集合。
他的核心理念直接寫在 README 中:
"Developing real applications is hard. Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control."
這些技能的設計哲學是:小、易修改、可組合。 基於數十年軟體工程經驗,而非一時的 AI 炒作。
一、安裝過程實錄
1.1 一條命令安裝
npx skills@latest add mattpocock/skills
安裝程式會引導你完成三個步驟:
Step 1 — 選擇技能: 互動式多選介面,29 個技能可選。核心工程技能 14 個(強烈建議全選):
| 技能 | 用途 |
|---|---|
caveman |
Token 用量砍 75%,只留技術內容 |
diagnose |
科學化 Debug 六階段循環 |
grill-me |
深度需求拷問(非代碼場景) |
grill-with-docs |
需求拷問 + 建立共享語言文檔 |
handoff |
生成 Agent 任務交接文檔 |
improve-codebase-architecture |
代碼架構深化分析 |
prototype |
一次性原型(終端 App 或 UI 多變體) |
setup-matt-pocock-skills |
⚙️ 初始化配置(其他技能的前置條件) |
tdd |
紅-綠-重構測試驅動開發 |
to-issues |
PRD → 垂直切片 Issues |
to-prd |
對話上下文 → PRD → GitHub Issue |
triage |
Issue 狀態機分類管理 |
write-a-skill |
創建新技能腳手架 |
zoom-out |
系統層面鳥瞰代碼 |
Step 2 — 選擇 Agent 目標: 支援 71 個 Agent 平台,包括 Claude Code、Codex、Cursor、OpenClaw、Amp 等。
Step 3 — 安裝範圍: Project(當前目錄 .agents/skills/)或 Global(~/.agents/skills/)。
1.2 OpenClaw 相容性驗證
安裝後執行 openclaw skills check,全部 14 個技能被成功識別並載入:
✅ caveman
✅ diagnose
✅ grill-me
✅ grill-with-docs
✅ handoff
✅ improve-codebase-architecture
✅ prototype
✅ tdd
✅ to-issues
✅ to-prd
✅ triage
✅ write-a-skill
🔒 setup-matt-pocock-skills (隱藏指令,可用)
🔒 zoom-out (隱藏指令,可用)
二、設計理念:解決 AI 編碼的四大失敗模式
Matt Pocock 將 AI 編碼的常見失敗歸納為四個核心問題,每個都對應一組技能:
2.1 失敗模式 A:認知偏差(Misalignment)
The Problem: 你以為 Agent 懂你的需求,結果它做出來的東西完全不是你想要的。
這是最常見的失敗模式。Matt Pocock 引用《The Pragmatic Programmer》的名言:"No-one knows exactly what they want"——在 AI 時代,溝通鴻溝只會更大。
對應技能:
/grill-with-docs:最受歡迎的技能,深度拷問你的計劃/grill-me:非代碼場景的同等功能
2.2 失敗模式 B:冗長輸出(Verbosity)
The Problem: Agent 用 20 個詞講 1 個詞的內容,Token 浪費嚴重。
對應技能:
/grill-with-docs中建立的CONTEXT.md(共享語言文檔)/caveman:直接砍掉 75% Token 開銷
實例:
Before: "There's a problem when a lesson inside a section of a course is made 'real' (i.e. given a spot in the file system)"
After: "There's a problem with the materialization cascade"
九個字取代三十三個字。精準度不減。
2.3 失敗模式 C:代碼有 Bug(Broken Code)
The Problem: 有了需求共識,但 Agent 還是寫出無法運行的代碼——因為缺少反饋循環。
對應技能:
/tdd:紅-綠-重構循環/diagnose:科學化 Debug
2.4 失敗模式 D:代碼變泥(Software Entropy)
The Problem: AI 加速了編碼,也加速了軟體熵增。代碼庫以前所未有的速度變得複雜且難以修改。
引用 Kent Beck 的名言:"Invest in the design of the system every day."
對應技能:
/improve-codebase-architecture:找出深化機會/zoom-out:系統層面理解代碼/to-prd中的模塊設計問答
三、核心技能深度詳解
3.1 /grill-with-docs — 最受歡迎的技能
這是整個技能集的皇冠明珠。它不只是一個需求對齊工具——它是一個共享語言的建立過程。
工作流程:
-
逐條拷問:一個問題接一個問題,等待你回答後才問下一個
-
術語精煉:當你使用模糊詞彙時,立即提出精確術語
-
代碼交叉驗證:當你描述系統行為時,檢查代碼是否一致
-
場景壓力測試:發明邊界案例來挑戰你
-
即時寫入文檔:
CONTEXT.md:領域術語表(不包含實現細節)docs/adr/0001-xxx.md:架構決策記錄(滿足三個條件才創建)
實戰場景:
👤 你:/grill-with-docs 我要為 CSMS 加一個客戶服務到期自動提醒功能
🤖 AI(第一問):你說「服務」——是指 Audit、Company Secretary、定係全部?
👤 你:全部五類服務都要
🤖 AI(第二問):到期前多少天發送?你提到「30 天」——係工作日定係日曆日?
👤 你:日曆日,但可以配置
🤖 AI(第三問,檢查代碼後):你的 `Service` model 已經有 `endDate` 欄位,
但冇 `reminderSent` 標記。如果同一服務觸發多次提醒會點?
👤 你:加個 reminderSent 標記,每項服務最多發一次
🤖 AI(第四問,寫入 CONTEXT.md):我已將 "Service Reminder" 定義為
「服務到期前 N 個日曆日的自動通知事件」加入 CONTEXT.md。
現在確認:通知失敗(郵箱無效)點處理?
3.2 /tdd — 紅-綠-重構循環
核心原則: 測試應該通過公共接口驗證行為,而非測試實現細節。
好測試 vs 壞測試:
| 好測試 ✅ | 壞測試 ❌ |
|---|---|
| 「用戶可以用有效購物車結帳」 | 「calculateTotal() 返回預期數值」 |
| 通過 API 端點測試 | Mock 內部協作者 |
| 重構後不失效 | 改內部函數名就掛 |
禁止水平切片:
❌ WRONG (horizontal):
RED: test1, test2, test3, test4, test5
GREEN: impl1, impl2, impl3, impl4, impl5
✅ RIGHT (vertical):
RED→GREEN: test1→impl1
RED→GREEN: test2→impl2
RED→GREEN: test3→impl3
...
實戰場景:
👤 你:/tdd 為 CSMS 的客戶搜索加上模糊匹配
🤖 AI(Plan):接口:GET /api/clients?search=keyword → Client[]
測試範圍:精確匹配、模糊匹配、無結果、空搜索、特殊字符
確認以上?
👤 你:OK
🤖 AI(RED):寫第一個測試——精確匹配 "ABC Company" → 返回該客戶
Test FAILED ❌(搜索端點尚未實現模糊匹配)
🤖 AI(GREEN):在 Prisma query 加入 contains 條件
Test PASSED ✅
🤖 AI(RED):寫第二個測試——模糊匹配 "abc" → 返回 "ABC Company"
Test FAILED ❌(大小寫敏感)
🤖 AI(GREEN):加入 mode: 'insensitive'
Test PASSED ✅
🤖 AI(REFACTOR):提取 searchQuery builder 為可復用模塊
All tests still PASSED ✅
3.3 /diagnose — 科學化 Debug 六階段
核心心法:Phase 1 佔 90% 功夫。 如果你有一個快速、確定性、Agent 可運行的 pass/fail 信號,bug 已經 90% 解決。
六階段流程:
| 階段 | 內容 | 關鍵原則 |
|---|---|---|
| 1. Build Feedback Loop | 建立可重現的測試信號 | 花最多時間在這裡 |
| 2. Reproduce | 確認能穩定重現 | 必須是用戶描述的同一 bug |
| 3. Hypothesise | 提出 3-5 個可證偽假設 | 每個必須陳述預測 |
| 4. Instrument | 一次改一個變量 | 每次對應一個假設 |
| 5. Fix | 修復 | 驗證回歸 |
| 6. Regression Test | 回歸測試 | 加入測試套件 |
反饋循環的 10 種構建方式(按優先級排列):
- Failing test(單元/集成/E2E)
- Curl / HTTP 腳本(對運行中的 dev server)
- CLI 調用(固定輸入 vs 已知正確輸出)
- 無頭瀏覽器腳本(Playwright/Puppeteer)
- 重放捕獲的 trace
- 一次性測試套具
- 屬性/模糊測試循環(1000 次隨機輸入)
- 二分查找套具(
git bisect run) - 差分循環(新舊版本對比輸出)
- HITL bash 腳本(最後手段,需要人工點擊)
實戰場景:
👤 你:/diagnose CSMS 儀表板加載超過 10 秒
🤖 AI(Phase 1):建立反饋循環...
curl -w "@curl-format.txt" http://localhost:3000/api/dashboard
→ time_total: 12.3s
🤖 AI:循環已建立。現在讓它更快:
加了 --connect-timeout 5,排除 DNS 延遲。
→ time_total: 11.8s。不是 DNS 問題。
🤖 AI(Phase 2):連續 5 次確認可重現。
→ 12.1s, 11.9s, 12.4s, 12.0s, 12.2s ✅ 穩定重現
🤖 AI(Phase 3):假設排名:
1. N+1 query:Prisma 在 Dashboard query 中沒有 include 關聯
2. 大量數據:clients 表超過 10 萬行,無分頁
3. middleware 阻塞:Supabase Auth 每次請求都驗證 token
4. 前端渲染:Chart.js 在客戶端渲染大數據集
5. 外部 API 調用:Dashboard 可能依賴外部服務
🤖 AI(Phase 4):先測試假設 #1...
加入 eager loading → 12.1s,沒改善。假設 #1 排除。
測試假設 #2...加 LIMIT 20 → 0.8s!瓶頸在無分頁大數據集。
3.4 /improve-codebase-architecture — 架構深化
核心概念:Deep Modules
Deep module = small interface, deep implementation(小接口,深實現)
Shallow module = interface nearly as complex as implementation(接口跟實現一樣複雜)
刪除測試(Deletion Test):
假裝刪除這個模塊。如果複雜性消失 → pass-through(沒用)。
如果複雜性重新出現在 N 個調用者 → 它值得存在。
實戰場景:
👤 你:/improve-codebase-architecture
🤖 AI:正在探索代碼庫...(讀取 CONTEXT.md + ADRs)
發現 5 個候選重構機會:
1. [Strong] utils/formatters.ts
問題:60 個純函數,但 40 個只用一次
建議:合併到各自消費模塊
2. [Worth exploring] middleware 鏈
問題:7 個中間件,但 auth 和 logging 緊耦合
建議:拆分為獨立 adapter
3. [Speculative] API route handlers
問題:每個 route 重複相同的 error handling pattern
建議:提取為 wrapper
📄 HTML 報告已生成:/tmp/architecture-review-20260604.html
3.5 /caveman — Token 效率革命
規則: 砍掉冠詞、填充詞、客套話。代碼塊保持不變。技術準確度零損失。
持久性: 一旦觸發,持續生效直到說 /stop caveman。
實戰場景:
👤 你:/caveman
👤 你:CSMS Prisma schema 點加 soft delete?
🤖 AI:Add deletedAt DateTime? to model.
Middleware filter where deletedAt is null.
See Prisma docs client extensions.
(原本可能要 200 tokens → 現在 ~25 tokens,砍 87%)
四、完整工作流程建議
4.1 🚀 新功能開發標準流程
1️⃣ /grill-with-docs → 對齊需求 + 建立共享語言 + ADR
2️⃣ /to-prd → 自動合成 PRD → GitHub Issue
3️⃣ /to-issues → 拆成垂直切片 Issues
4️⃣ /tdd → 紅-綠-重構,逐個 Issue 實現
5️⃣ /improve-codebase-architecture → 每 2-3 天跑一次
4.2 🐛 Debug 流程
1️⃣ /diagnose → 科學化診斷(不解釋、不靠直覺)
2️⃣ /tdd → 用測試鎖定修復
4.3 🔄 接手舊代碼流程
1️⃣ /zoom-out → 系統級鳥瞰
2️⃣ /grill-with-docs → 建立領域語言
3️⃣ /improve-codebase-architecture → 找出重構機會
4.4 📋 日常管理流程
每朝: /triage → 整理新 Issues
每週: /to-prd → 將討論內容轉為正式規格
每週: /improve-codebase-architecture → 架構健康檢查
必要時: /handoff → 任務交接給另一個 Agent
五、與其他 AI 編碼方法論的對比
| 維度 | Matt Pocock Skills | GSD / BMAD | Spec-Kit | Vibe Coding |
|---|---|---|---|---|
| 控制權 | 🟢 開發者完全控制 | 🔴 流程由框架控制 | 🟡 共享控制 | 🔴 Agent 主導 |
| 可組合性 | 🟢 獨立技能自由組合 | 🔴 整體流程不可拆分 | 🟡 部分可拆分 | 🔴 無結構 |
| 學習曲線 | 🟡 需要工程基礎 | 🔴 需要學框架思維 | 🟡 中等 | 🟢 零學習 |
| 適用規模 | 🟢 任何規模 | 🟡 中大型項目 | 🟡 中大型項目 | 🔴 小型原型 |
| 長期維護 | 🟢 內建架構治理 | 🟡 取決於執行 | 🟡 取決於執行 | 🔴 必然技術債務 |
| 文檔產出 | 🟢 CONTEXT.md + ADR | 🟡 框架文檔 | 🟢 Spec 文檔 | 🔴 通常無 |
六、給君澤智庫的應用建議
6.1 立即可用的場景
- CSMS 開發:
/grill-with-docs+/tdd用於新功能開發 - CS Management 系統:
/improve-codebase-architecture防止快速原型變泥 - MemoryHub:
/diagnose排查性能問題 - Agentics 網站:
/to-prd+/to-issues管理內容開發
6.2 建議建立的 CONTEXT.md
為每個活躍項目建立領域語言表:
| 項目 | 核心術語舉例 |
|---|---|
| CSMS | Client, Service, Case, Compliance, Renewal |
| MemoryHub | Session, Observation, Consolidation, Dream, Capture |
| Sub2API | Channel, Pricing Rule, Model Pricing, Upstream |
七、總結
Matt Pocock Skills 是 AI 編碼時代的 《The Pragmatic Programmer》——它不教你用 AI 更快地寫代碼,而是教你用工程紀律確保代碼質量。
核心價值:
- 共享語言(Shared Language) — 用領域術語取代廢話,讓 Agent 真正理解你的項目
- 反饋循環(Feedback Loops) — TDD + 診斷,確保代碼能運行
- 架構治理(Architecture Governance) — 持續深化代碼結構,防止腐化
- 流程標準化(Process Standardization) — PRD → Issues → TDD,可重複的工程流程
一句話總結: 這些技能不是為了取代軟體工程——而是確保在 AI 加速一切的時代,我們仍然在做真正的工程。
本文基於 mattpocock/skills v1.5.10 版本撰寫。
技能倉庫:https://github.com/mattpocock/skills
安裝指令:npx skills@latest add mattpocock/skills