17 萬星的 Matt Pocock skills,到底強在哪?skills 全拆解
學習筆記
TL;DR
Matt Pocock 透過極簡、模組化且深度融合軟體工程專業知識的 AI Skills,成功將 AI 的隨機性與不良習慣導向高效、可維護的開發流程,其核心在於將決策主導權交還給人類,並以專業術語精準控制 AI。
快速結論
Matt Pocock 的 AI Skills 專案,其核心目標是解決 AI 在開發過程中「隨機性高」與「難以控制」的問題。他發現 AI 本質是黑盒子,且容易在缺乏明確指引時,將模糊需求轉化為難以維護的程式碼。因此,這套工具透過 Grill Me 等 Skills,強制 AI 反過來考問人類,以釐清需求並找出盲點,將數百個微觀決策的權力從 AI 手中奪回,確保人類作為架構師的主導地位。
這套 Skills 採用極簡主義與模組化的設計哲學,每個 Skill 都做得很少、好改且能自由拼裝,與傳統大型框架試圖全面接管開發流程的方式截然不同。Matt 認為,這種輕量且專注的設計更適合當前理解力強的 AI 模型,能夠提供更大的靈活性,避免將整個開發流程綁死,讓開發者能依需求選擇工具,而非被工具限制。
Matt 的 Skills 能夠有效規範 AI 行為的關鍵,在於他將數十年軟體工程界公認有效的最佳實踐融入到指令中。從測試驅動開發 (TDD) 防範 AI 作弊,到 Code Review 內建「壞程式碼症狀」檢查清單,再到 Improve Code-Base Architecture 導引 AI 設計「生模組」以避免邏輯碎片化,這些都體現了他深厚的專業知識。他更將這些軟體工程術語作為與 AI 溝通的「高密度詞彙」,讓 AI 能精準理解意圖,減少發散。
這支影片在說什麼
這支影片深入拆解了 TypeScript 專家 Matt Pocock 在 GitHub 上開源、擁有超過 16 萬星的 AI 工作流 Skills。影片主要探討 Matt 如何運用這套工具,解決 AI 在開發過程中隨機性高、難以控制、容易產生難以維護程式碼的問題。影片也比較了 Matt 的極簡模組化設計與其他大型框架的差異,適合想學習如何有效駕馭 AI 進行軟體開發的工程師。
最重要的 3-5 個重點
- 奪回決策權,避免 AI 瞎猜:
Grill MeSkill 強制 AI 在動工前反覆考問人類,找出思考盲點,避免人類將模糊想法直接丟給 AI 導致 AI 代為做出數百個微觀決策,進而產生難以維護的程式碼。 - 以「功能」而非「技術」拆解任務,提升可測性與效率:
ToTicketsSkill 強制 AI 依照「實用功能」來拆分開發任務(例如:先做完整登入功能,再做購物車),而非 AI 慣用的「技術架構」拆分(例如:先做完所有資料庫,再做後端)。這種方式確保每個小功能都能獨立測試,並支持平行開發。 - 強制 TDD 防範 AI 作弊,確保程式碼品質:
ImplementSkill 結合測試驅動開發 (TDD) 精神,要求 AI 必須先寫測試讓其失敗(紅燈),然後才寫功能程式碼直到測試通過(綠燈)。這徹底堵住 AI 為了交差而寫出錯誤邏輯配上假測試的漏洞。 - 內建軟體工程智慧,解決壞程式碼症狀:
Code ReviewSkill 內建軟體工程界幾十年來公認的「壞程式碼症狀」檢查清單(如 Shotgun Surgery, Feature Envy, Data Clumps),讓 AI 在全新的獨立 Session 中進行審查,有效提升程式碼品質。 - 對抗邏輯碎片化,打造可維護的「生模組」:
Improve Code-Base ArchitectureSkill 透過「殘酷的三處測試」,精準識別並清理 AI 容易產生的「潛模組」(假裝有用但實則分散邏輯的模組),引導 AI 設計出具備高聚合性且容易維護的「生模組」,解決 AI 因 Context Window 限制而導致的架構混亂問題。
知識架構
Matt Pocock 的 AI 工作流核心思想是「控制 AI 的隨機性與不良習慣」,透過「極簡主義與模組化」原則,並深度整合「軟體工程智慧」來實現。
-
I. AI 開發的挑戰
-
AI 本質是黑盒子,充滿隨機性。
- AI 容易「Five Coding」(將決策權外包給 AI),導致難以維護的架構。
- AI 慣性問題:
- 任務規劃偏向「技術架構」,而非「實用功能」。
- 為交差可能產生「假測試」。
- 撰寫「潛模組」,導致邏輯過度碎片化。
- 文件與程式碼更新速度不一致。
- AI Context Window 有限,處理複雜架構易出錯。
-
II. Matt Pocock 的解決方案核心原則
- 極簡主義與模組化:
- 每個 Skill 只做一件事,做到最小、好改、自由拼裝。
- 不綁定固定流程,高度靈活。
- 精準溝通策略:
Pooning(修剪):刪除所有廢話、會讓 AI 發散的文字,確保每句指令有實際作用。High-Density Terms(高環境量專用名詞/執運詞):利用 AI 訓練資料中的經典專用名詞,用極度壓縮的資訊精準傳達意圖。完成標準:給 AI 明確的終點。
- 深度融合軟體工程智慧: 將幾十年來證明有效的軟體工程最佳實踐直接寫入 Skills 指令中,規範 AI 行為。
- 極簡主義與模組化:
-
III. Matt Pocock 的核心 Skills
- A. 決策與需求釐清:
Grill Me- 作用:讓 AI 反過來考問使用者,找出決策盲點。
- 目標:將決策權搶回人類手中,避免 AI 瞎猜亂做。
- B. 規格定義:
ToSpecs- 作用:將共識寫成規格,並禁止 AI 在規格中寫程式碼。
- 目標:確保規格專注於解決問題,獨立於易變的程式碼,避免過期。
- C. 任務拆分:
ToTickets- 作用:將規格拆解成具體開發任務,強制依「實用功能」拆分。
- 目標:提高可測試性,支援平行開發,及早發現問題。
- D. 程式實作與品質保證:
Implement- 作用:依照任務清單寫程式碼,自動應用 TDD 流程。
- 目標:防範 AI 作弊,確保程式碼正確性。
- E. 程式碼審查:
Code Review- 作用:在獨立 Session 中,依據軟體工程經典「壞程式碼症狀」檢查清單審查程式碼。
- 目標:保持 AI 審查的客觀與品質,提升程式碼健康度。
- F. 架構優化:
Improve Code-Base Architecture- 作用:透過「殘酷的三處測試」,識別並清理「潛模組」,重構成「生模組」。
- 目標:對抗 AI 造成的邏輯碎片化,提升架構的高聚合性與可維護性。
- A. 決策與需求釐清:
-
IV. 比較與洞察
- Matt's Skills vs. Superpowers:
- Superpowers:寫死固定流程,適合模型笨拙時的保護機制。
- Matt's Skills:模組化、極簡,適合聰明模型,將主導權交還人類。
- 核心洞察: 只有專業領域的專家,才能真正駕馭 AI。
- Matt's Skills vs. Superpowers:
關鍵概念
- Grill Me: Matt Pocock 開源專案中的一個 Skill,讓 AI 反過來考問使用者,確保在動工前達成共識並釐清所有細節,將決策權從 AI 奪回人類手中。
- Five Coding: 將模糊想法直接丟給 AI,讓 AI 代為做出數百個微觀決策,可能導致 AI 為了交差而產生難以維護的架構。
- ToSpecs: 一個 Skill,強制 AI 在撰寫功能規格時,
只專注於描述功能要解決什麼問題,禁止引用或寫任何程式碼,避免規格與程式碼更新不同步。
- ToTickets: 一個 Skill,強制 AI 將功能規格拆解成具體開發任務時,必須依照「實用功能」來拆分,而非 AI 慣用的「技術架構」拆分,以便於測試和平行開發。
- TDD (Test-Driven Development / 測試驅動開發): 一種開發方法,要求在寫功能程式碼之前先寫好測試。對於 AI 開發而言,這能防止 AI 為了交差而生成錯誤邏輯配上假測試。
- Shotgun Surgery (霰彈槍手術): 一種壞程式碼症狀,指為了修改一個小功能,卻需要改動許多分散在不同檔案的程式碼,使得每次改動都像霰彈槍一樣散落各處。
- Feature Envy (特性依戀): 一種壞程式碼症狀,指一段邏輯(例如處理訂單)卻頻繁去其他檔案(例如庫存檔案)拿資料來運算,導致邏輯放錯位置。
- Data Clumps (資料泥團): 一種壞程式碼症狀,指多個變數(例如買家姓名、電話、地址)總是同時出現並綁定在一起,卻分散存在於程式碼各處,應該將它們打包成一個獨立的物件。
- Pooning (修剪): Matt 的 Skill 寫作原則之一,指修剪掉所有廢話、會讓 AI 發散的文字,甚至模型自己也知道的指定,確保 Skill 裡的每一句指令都有實際作用。
- High-Density Terms (高環境量專用名詞 / 執運詞): Matt 的 Skill 寫作原則之一,使用資訊極度壓縮但涵蓋量高的專業術語,能用一個字取代一百字的廢話,精準傳達指令給 AI。
- 潛模組 (Shallow Module): 一種 AI 容易產生的模組,它沒有真正隱藏複雜細節或提供高聚合性,反而只是將程式碼分散到不同檔案,造成溝通成本高、難以維護。
- 生模組 (Deep Module): 一種理想的模組,提供一個極度簡單的對外介面(大門),將複雜的內部邏輯細節隱藏在其中,具備高聚合性,讓 AI 或其他開發者能專注處理單一模組,提高可維護性。
- Improve Code-Base Architecture: 一個 Skill,對程式碼進行「殘酷的三處測試」,識別並清理潛模組,將其重構成生模組,以對抗 AI 造成的邏輯碎片化危機。
重要例子與細節
- Matt Pocock 簡介: TypeScript 領域最頂尖的專家和老師,許多開發者靠他的教材練技術。
- Grill Me 原始碼的五行字目的: 叫 AI 在達成計畫共識前不要動工;像畫心智圖般延伸思路,抓出每個決定引發的連鎖反應;每次只能問一個問題且附上建議答案;在整體設計達成共識前不准寫程式碼。唯一目的是把「決策權」搶回人類手裡。
- ToTickets 拆分任務的例子與優點:
- AI 慣性分工(爛): 先建資料庫 -> 寫後端邏輯 -> 最後做前端。問題:在前端畫面出來前無法測試,若第一步錯則心血全毀。
- ToTickets 強制分工(好):
- 任務一:只做會員登入功能(包含資料庫、邏輯、畫面)。
- 任務二:只做把商品加入購物車功能(包含資料庫、邏輯、畫面)。
- 好處: 每個小功能做完即可測試,能隨時確認 AI 產出;可將不干擾的任務發包給多個 AI 平行處理,開發速度翻倍。
- TDD 防 AI 作弊的例子:
- 若 AI 先寫程式再補測試: AI 可能將「滿千扣百」寫成「扣兩百」,再寫一個測試說「扣兩百通過」,導致 Bug 抓不住。
- TDD 流程: AI 必須先寫測試(滿千扣一百),此時程式未寫,測試必失敗(紅燈)。等到紅燈出現後,AI 才准開始寫算錢程式,直到紅燈變綠燈(測試通過)。
- Code Review 審查的三種壞程式碼症狀(來自《重構》Refactoring 書籍):
- Shotgun Surgery: 改一個按鈕顏色,卻要改動
四個不同檔案。Code Review 會要求集中重構。 2. Feature Envy: 處理訂單的程式碼跑去庫存檔案拿資料運算。Code Review 會警告邏輯放錯位置,應搬去訂單。 3. Data Clumps: 買家姓名、電話、地址三個變數總是一起出現,卻散落在程式碼各處。Code Review 會建議打包成「聯絡人」物件。
- Matt 的 Skill 寫作原則(以
Writing Great Skills為基礎):- Pooning (修剪): 修剪廢話、會讓 AI 發散的文字,確保每句指令都有實際作用。例如
Grill Me僅五行字。 - High-Density Terms (執運詞): 使用 AI 訓練資料中已有的經典專用名詞,用一個字取代一百字的解釋。例如
DataClumps。 - 完成標準: 給 AI 一個明確的終點。
- Pooning (修剪): 修剪廢話、會讓 AI 發散的文字,確保每句指令都有實際作用。例如
- 潛模組 vs. 生模組(以購物車結帳為例):
- 潛模組: 結帳功能切成「計算折扣、驗證信用卡、建立訂單、扣除庫存、寄信」五個小房間,但沒有統一的大門隱藏細節。導致主程式需親自處理資料傳遞,且 AI 因 Context Window 有限,容易在多房間跳轉時下猜改壞程式碼。
- 生模組: 對外只提供一個簡單的「購物車大門」(如
ProcessCheckout函數),將折扣、驗證等小房間的複雜邏輯全部隱藏在大門背後。主持人是只要敲門就辦妥,AI 也只需專注閱讀這一個模組,具備極強的聚合性。
- Improve Code-Base Architecture 的實際應用: Matt 建議將其作為日常保養,每隔幾天跑一次指令。它會掃描專案,生成 HTML 報告並畫出前後架構對比圖,讓使用者選一個建議方案,AI 便會自動重構。
- Grill Me Docs (Groomy 的進化版): 解決
Grill Me每次開工需重新熟悉專案的問題。它會在考問中,順手把專有名詞和重要決策寫成文件留存,讓 AI 帶著這些資料考問,更快切入重點。 - Matt's Skills vs. Superpowers 比較:
- Superpowers: 將 AI 工作流定義得很完整,用寫死的九個步驟強制使用者釐清目標,適合模型還不夠聰明時作為「保護級的防呆流程」。
- Matt's Skills: 極簡主義、模組化,每個 Skill 只解決一個問題。不綁架流程,可自由選擇從任何一步開始,更適合當前模型理解力強的 AI 生態,將工作主導權交還給人類。
- 駕馭 AI 的關鍵: Matt Pocock 證明,只有具備深厚的軟體工程底子(專業領域經驗),才能有效將這些老方法應用在 AI 架構和與 AI 溝通上,真正控制好 AI。
可學習的洞察
- AI 是工具,決策權歸人: AI 本質隨機且無大局觀。駕馭 AI 的核心在於將決策權從 AI 奪回人類手中,讓 AI 扮演輔助、找漏洞的角色,而非完全外包大腦。
- 專業深度是駕馭 AI 的基石: Matt Pocock 證明,擁有專業領域的深厚知識(如軟體工程),是設計有效 AI 工具和溝通策略的關鍵,能夠將 AI 導向高品質的產出。
- 精準溝通的重要性超越冗長描述: 與 AI 互動時,採用「修剪廢話」原則,並大量運用「高密度專業術語」,能讓 AI 更精準地理解意圖,減少發散和誤解。
- 模組化設計對 AI 協作的益處: 將問題拆解成小而專一的模組,不僅便於人類開發,也考慮到 AI 的 Context Window 限制,能讓 AI 專注處理單一任務,減少因資訊過載而產生的錯誤。
- 主動建立規範與檢查機制: 透過 TDD 強制 AI 在寫程式前先寫測試,以及在 Code Review 中運用「壞程式碼症狀」檢查清單,能有效預防 AI 產生難以維護或有問題的程式碼,而非事後彌補。
可行動的整理
- *審視自身 AI 工作流:
- 思考在現有工作流程中,是否也有讓 AI 隨意發揮導致產出不穩定的環節,並借鑒 Matt 的「極簡、模組化、單一職責」原則來設計 AI Prompt 或輔助工具。
- 學習使用「高密度專業術語」: 在與 AI 進行專業領域溝通時,有意識地減少冗詞贅字,嘗試運用該領域的經典術語或概念,觀察 AI 的理解和產出品質是否提升。
- 將軟體工程最佳實踐應用於 AI 規範: 若從事程式開發,可將影片提及的 TDD、Code Review 的壞程式碼症狀(Shotgun Surgery, Feature Envy, Data Clumps)以及「生模組」概念,整合到由 AI 協助的開發流程中,主動引導 AI 產生高品質的程式碼。
- 研究
Grill Me Docs與 AI 寫作工作流: 對於需要長期與 AI 協作進行內容創作、文件撰寫的人,影片中提及的這些進階 Skills 提供了一個全新的思考方向,值得深入探討。 - 定期進行架構審查: 借鑒
Improve Code-Base Architecture的思維,定期檢視專案中是否有「潛模組」的存在,並思考如何透過重構將其轉化為更具「高聚合性」的「生模組」,以提升長期可維護性。
複習問題
- Matt Pocock 開發這套 AI Skills 的「終極目標」是什麼?他是如何透過
Grill Me實現將「決策權搶回人類手裡」這個目標的? - Matt 的 AI Skills 與 Superpowers 這類大型框架的設計哲學有何根本差異?Matt 認為哪種方式更適合當前模型理解力強的 AI 生態?
ToTicketsSkill 如何解決 AI 拆分任務的「致命缺點」?它強制 AI 依照哪種方式來拆分任務,並舉例說明其主要好處?- TDD (測試驅動開發) 在 AI 程式碼開發中扮演什麼關鍵角色?Matt 如何運用 TDD 來「防作弊」,防止 AI 為了交差而生成錯誤程式碼和假測試?
- 影片中提到了哪些常見的「壞程式碼症狀」?
Improve Code-Base Architecture這個 Skill 又是如何對抗 AI 造成的「潛模組」問題,並設計出「生模組」?
待確認資訊
無明顯待確認資訊。