知識分享 · AI 工作流
被下載 700 萬次的五行字:grill-me,與 Matt Pocock 馴服 AI 的整套工作流
最紅的 skill 打開來只有五行字。從讓 AI 反過來拷問你、規格禁寫程式碼、照功能拆任務、TDD 防作弊,到深模組為什麼對 AI 特別重要 —— 拆解一位 TypeScript 大神馴服 AI 的完整思路。
先看整條生產線
Matt Pocock 是 TypeScript 領域最頂尖的專家與教師之一,工程師圈的大神級人物。這一年他把重心搬到 AI 上,然後把自己的 AI 工作流整套開源 —— 一個裝滿 skill 的專案,從寫規格、拆任務到寫測試都有。講者說這個專案已被下載 700 萬次、超過 16 萬顆星(此為講者自述的當時數字),其中最先爆紅的就是 grill-me。
Matt 的出發點是:大量依賴 AI 開發之後,比寫程式速度更難的,是控制 AI —— 它本質上是個充滿隨機性的黑盒子。市面上的大框架(影片點名 Spec-Kit、Superpowers 等)想用一條又重又硬的固定流程接管整個開發過程,但前面一步定歪、錯誤就順著整條線傳染下去。Matt 走完全相反的路:每個 skill 都刻意做得很小、很好改、能自由拼裝。「小而模組化」就是他所有東西的底層邏輯。
整條生產線。跟大框架最大的差別:每一站都能單獨用。
grill-me —— 讓 AI 反過來拷問你的五行字
grill-me 的功能一句話:動工之前,強制讓 AI 反過來把你拷問一輪 —— 一題一題問,問到你完全扛不住、非得想清楚不可。打開這個被幾百萬人下載的 skill,裡面居然只有短短五行字。影片整理的五條規則,大意是:
# grill-me 五條規則的大意(影片轉述,非原文逐字翻譯)
① 在我們對計畫達成共識之前,把我往死裡問
② 像畫心智圖一樣順著我的思路延伸 ——
把每個決定會引發的連鎖反應一個一個抓出來問到底
③ 每次只問一個問題
④ 每個問題都要附上你的建議答案
⑤ 共識達成之前,絕對不准偷跑去寫程式為什麼大神特地寫這五行?因為寫程式的本質是連續做出幾百個微觀決定:防呆怎麼做?斷線怎麼辦?極端資料怎麼處理?把模糊的想法直接丟給 AI 憑感覺做(也就是 vibe coding),等於把這幾百個決定的決策權全部外包給黑盒子 —— 而 AI 為了討好你,常會瞎掰出一套最難維護的架構。
grill-me 的唯一目的,是把決策權搶回人類手裡。Matt 知道要人面對空白螢幕、從零寫出一份涵蓋所有極端狀況的完美企劃書太痛苦了,所以把「找漏洞」這件苦差事丟給 AI:AI 順著決策樹,無情地把你腦袋裡沒想清楚的盲點一個個挖出來;AI 只負責給選項,拍板定案的永遠是人。透過這種強制的一問一答,人才能穩穩坐在架構師的位置上。
to-spec 與 to-tickets —— 規格禁寫程式碼、任務照功能拆
to-spec:共識要趁熱寫下來,但禁止放程式碼
拷問完,你一關掉對話 AI 就失憶,吵出來的共識直接蒸發 —— 所以第二站是用 to-spec 把共識寫成規格書。有意思的是 Matt 在這個 skill 裡完全禁止 AI 在規格裡引用或撰寫任何程式碼。理由是軟體工程界最大的痛:文件永遠跟不上程式碼的更新速度。程式碼是最容易變動的東西;讓它進了規格,未來程式一改、規格對不上,下次 AI 照規格修改功能時就會被過期的舊碼搞混,越改越亂。封殺這個選項,規格書就永遠只專注在「這個功能到底要解決什麼問題」。
to-tickets:AI 拆任務的壞習慣,用功能切治好它
讓 AI 自己排待辦清單,它天生喜歡照技術架構分工:先建完全部資料庫、再寫完全部後端邏輯、最後才畫前端畫面。最可怕的盲點是 —— 在畫面出來之前,你完全沒辦法測試任何東西;要是第一步資料庫建錯了,得等到最後才發現,前面的心血全毀。to-tickets 強制 AI 改用使用者功能來拆:
| 照技術架構拆(AI 的壞習慣) | 照使用者功能拆(to-tickets 的做法) | |
|---|---|---|
| 任務長相 | ① 建好全部資料庫 ② 寫完全部後端 ③ 畫出全部前端 | ① 會員登入(含它的資料庫+邏輯+畫面)② 加入購物車(同樣一整套) |
| 什麼時候能測 | 最後一步之前,什麼都測不了 | 每做完一個功能,馬上開瀏覽器測 |
| 額外的好處 | — | 互不干擾的任務可以同時發包給好幾個 AI 平行處理,速度直接翻倍 |
implement 與 TDD —— AI 愛作弊,先把測試定死
任務排好,implement 這個 skill 照著清單開始寫程式,過程中用 TDD(Test-Driven Development,測試驅動開發)引導。所謂「測試」,就是一段用來檢查對錯的程式:你要做「滿千送百」的結帳功能,測試就是提早定下死規矩 ——「購物車滿 1,000 元時,結帳金額必須扣 100」。以後有人改壞了程式,測試一跑立刻報錯。而 TDD 的核心是:寫功能之前,必須先寫好測試。
為什麼這對 AI 開發特別重要?影片講得很直白:因為 AI 骨子裡是個作弊仔。
- 先寫程式、後補測試:AI 把「滿 1,000 扣 100」寫成了扣 200,它為了交差,會直接生出一個「滿 1,000 必須扣 200,檢查通過!」的假測試 —— 拿自己寫錯的邏輯配一個絕對會過的測試,你根本抓不出 bug。
- 先寫測試、後寫程式:測試先定死「只能扣 100」。這時程式還沒寫,測試一跑必定失敗、亮紅燈;紅燈出現了,才准 AI 開始寫真正的程式,直到紅燈變綠燈為止。亂寫交差的空間被徹底鎖死。
Code Review —— 把幾十年的爛 code 徵兆寫成清單
程式寫完、測試過了,流程會自動觸發審查 skill —— 而且是開一個全新的對話來做 Code Review,讓 AI 在最乾淨的狀態下檢查,不被寫程式時的記憶干擾。這個 skill 最值得學的地方是:它不是空泛的一句「幫我檢查有沒有 bug」,而是把軟體工程界幾十年公認的爛 code 徵兆(code smells)寫成具體的檢查清單 —— 影片說 Matt 一口氣點名了 12 種,全部出自經典名著《Refactoring》。挑三個新手最容易踩的:
| 徵兆(指引詞) | 症狀 | 處方 |
|---|---|---|
| Shotgun Surgery 散彈槍手術 |
只想改一個按鈕的顏色,卻要打開十幾個檔案 —— 每次改動都像散彈打出去,散落各處 | 把散落的相關邏輯重新集中起來 |
| Feature Envy 依戀情結 |
處理訂單的程式碼,老是跑去管庫存的檔案拿資料來算 | 邏輯放錯位置了 —— 搬去訂單那邊 |
| Data Clumps 資料泥團 |
買家姓名、電話、地址三個變數總是同時出現、散著傳來傳去 | 永遠綁在一起的東西,打包成一個「聯絡人」物件 |
寫 skill 的秘密 —— 修剪、指引詞、完成標準
Matt 的每個 skill 都非常短、非常精煉,每個字都是挑過的。專案裡有個 skill 叫 writing-great-skills,藏著他磨字句的三個原則:
- 修剪(pruning)。核心信念是:在 AI 面前,你多寫一句廢話,AI 就多一分分心的可能。廢話、會讓 AI 分心的文字、那些你不說模型也知道該怎麼做的指令 —— 全部刪掉。這就是 grill-me 只需要五行字的原因:每一句都有實際作用。
- 指引詞。字這麼少 AI 聽得懂嗎?靠的是「資訊被極度壓縮、含金量超高的專有名詞」。對 AI 說一句 Data Clumps,等於說了一百字的解釋 ——「請檢查程式碼裡有沒有總是綁在一起出現的變數,有的話打包成獨立物件」。這些深植在訓練資料裡的經典術語,一個字頂一百字。
- 完成標準。給 AI 一個明確的終點,它才知道什麼時候該收工,不會漫無目的地發散。
就像快退休的老教練給球員的一句話:聽起來簡單,裡面是幾十年的經驗。用最精簡的語言表達最深奧的道理,AI 就沒有分心或發散的空間。
深模組 —— AI 時代最重要的架構觀
流程再完整,專案還埋著一顆隱形炸彈:邏輯過度碎片化。AI 寫程式快,但天生沒有大局觀,最容易寫出一堆淺模組。影片的比喻很傳神:一棟房子,廚房客廳臥室分得很乾淨,但沒有大門 —— 進廚房要走窗戶、進客廳要爬煙囪。AI 寫購物車結帳就愛蓋這種房子:切成「算折扣、驗信用卡、建訂單、扣庫存、寄信」五個小房間,卻沒有一扇統一的大門把細節藏起來,主程式得親自處理五間房的資料傳遞。
淺模組讓 AI 迷路並瞎猜;深模組讓 AI 專注並精準打擊。
注意,深模組不是叫你把一萬行程式塞在同一個大房間不准切分 —— 而是蓋一扇極度簡單的大門,把複雜藏在裡面。為什麼這對 AI 特別重要?因為 AI 的 context window 有限:邏輯散落五個檔案,它就得來回跳轉,塞進太多瑣碎邏輯、超過記憶範圍,就開始瞎猜,最後連正常的程式都改壞。深模組有極強的局部性:出問題時 AI 只要專注讀這一個模組,所有來龍去脈都在眼前。
對付淺模組危機的工具是 improve-codebase-architecture。它的判斷方式很殘酷 —— 刪除測試:想像把某個模組直接拔掉、讓主程式自己來,會怎樣?拔掉後天下大亂、複雜邏輯全炸回主程式 —— 這是有在做事的深模組;拔掉後程式碼反而變清爽 —— 它根本沒隱藏任何細節,只是個害人迷路的空殼,清掉。Matt 建議把它當日常保養:每隔幾天跑一次,它會掃描專案、生成一份 HTML 診斷報告畫出前後架構對比,你挑一個最急迫的建議說「照這個方案重構」就行。
與 Superpowers 的對比,與臺灣讀者的編按
影片最後拿這套 skill 跟另一套熱門的開發框架 Superpowers 比較。Superpowers 最強的地方是把整套工作流定義得很完整 —— 用寫死的步驟逼你想清楚目標、寫好文件才准動工;在模型還不夠聰明、容易偏題的時代,這種保母級防呆非常管用。但講者認為,模型夠聰明之後,重度防呆反而變成累贅:
| Superpowers(大框架) | Matt Pocock(樂高積木) | |
|---|---|---|
| 哲學 | 完整流程接管:設計 → 計畫 → 執行一條龍 | 極簡與模組化:一個 skill 只解決一個問題,做完就收工 |
| 強項 | 確保不漏步驟,品質穩定 —— 模型較弱時的自動化生產線 | 不被死流程綁架:手上有規格(自己寫的、主管給的、別的 AI 產的)就能直接從 to-tickets 進場 |
| 弱點 | 產出的文件為自家下一步量身打造,別人難接手;前面定歪整條重跑 | 沒有保母 —— 該想清楚的還是得自己想(所以才有 grill-me) |
| 講者的結論 | 模型還笨的年代的好答案 | 模型夠聰明的現在,把主導權交還給人 |
一句話總結
整套系統說穿了就一件事:Matt 把幾十年的軟體工程功力用在兩個地方 —— 用經典方法論(深模組、code smells、TDD)規範 AI 的行為,用經典術語(指引詞)跟 AI 精準溝通。這也打破了一個迷思:有了 AI 就不用在自己的領域精進了嗎?恰恰相反 —— 只有成為專業領域的專家,你才能真正控制 AI。
互動實驗室:你卡在哪一站?
四個 AI 協作開發的常見慘狀,點選看這套工作流會開哪一帖藥:
參考與引用來源 (References & Sources)
- 1. 原影片來源 (Original Video) https://www.youtube.com/watch?v=aR97E7aKEgg
- 2. Matt Pocock 的 skills 專案(GitHub) https://github.com/mattpocock/skills
- 3. Superpowers(GitHub) https://github.com/obra/superpowers
- 4. Refactoring(Martin Fowler) https://martinfowler.com/books/refactoring.html
- 5. A Philosophy of Software Design(John Ousterhout) https://web.stanford.edu/~ouster/cgi-bin/book.php
- 6. Claude Code 的 Agent Skills 官方文件 https://docs.claude.com/en/docs/claude-code/skills