跳至主要内容

02|工程流程全家桶(mattpocock/skills)

工程流程全家桶

🎯 一句話:不是 24 個獨立工具,而是一條主流程——先把需求逼問清楚(grill)→ 寫成規格 → 拆成票 → TDD 實作 → 兩軸 Review。

mattpocock/skills README

副標直接表態:「我每天用來做真正工程的 agent skills——不是 vibe coding」。開頭段落還點名 GSD、BMAD、Spec-Kit 這些方法論,說明它想解決同一批問題但走不同路線。


作者背景

Matt Pocock(英國 Oxford)是全職的 TypeScript 教育者:

  • Total TypeScript 作者——業界公認的 TS 學習標準課程
  • Vercel developer advocate、XState 核心團隊成員
  • 現在經營 AI Hero,把 web 工程師訓練成 AI 工程師;其 AI Coding Cohort 有 2,500+ 學員用 Claude Code 實作兩週
  • 入行前是聲音教練——這大概能解釋為什麼他的 Skill 這麼在意「怎麼問問題」

repo 的副標是 "Straight from my .agents directory"——這是他自己每天在用的東西,不是為了教學而寫的示範,這也是它比多數 skill 收藏可靠的原因。


它想解決的四種失敗

失敗模式症狀對應 Skill
MisalignmentAgent 誤解你要什麼,寫完才發現方向錯grill-megrill-with-docs
Verbosity / 沒有共同語言每次都要重講一遍領域名詞domain-modelingCONTEXT.md + ADR)
Broken Code沒有回饋迴圈,改一處壞三處tdddiagnosing-bugs
Architectural Decay檔案越長越淺,越改越難改codebase-designimprove-codebase-architecture

主流程

grill-me / grill-with-docs ← 逼問,直到達成共識

to-spec ← 對話變規格(PRD),發到 issue tracker

to-tickets ← 規格拆成 tracer-bullet 票,標註 blocking 邊

implement ← 照票實作,在約定的 seam 上跑 /tdd

code-review ← Standards 軸 + Spec 軸,兩個子 agent 平行跑

第一次使用要先跑 setup-matt-pocock-skills,替這個 repo 設定 issue tracker(預設 GitHub,也支援本地 markdown)、triage 標籤字彙、領域文件位置。


使用者手動呼叫的 Skill

Skill特性
ask-matt路由器。「我現在該用哪個 skill?」不記得整套流程時先問它
grill-me把計畫攤成決策樹,一次問一題、每題附上建議答案,答完才准動手;能自己查的事實自己查,只把「決策」留給你
batch-grill-me同樣的決策樹,但改成一輪問完整個 frontier(所有前置已決的問題),適合你有整段時間可以一次回完
grill-with-docs逼問的同時把術語與決策寫進 CONTEXT.md 與 ADR——訪談結束就有文件
to-spec不再訪談,純粹把當前對話合成一份規格並發到 tracker
to-tickets拆票,每張票是一顆 tracer bullet(垂直切片),並宣告它被哪些票 blocking
implement依規格/票實作,規律跑型別檢查與單一測試檔,最後跑一次完整測試
triage把 issue 與外部 PR 推過一台狀態機:分類 → 驗證 → 必要時 grill → 產出 agent 可直接接手的 brief。PR 被視為「附程式碼的 issue」
wayfinder給「一個 session 裝不下」的大工程:先命名 destination,再把路線畫成 tracker 上的決策票,一次解一張,直到路徑清晰。強調 plan, don't do
improve-codebase-architecture掃描 codebase 找 deepening 機會,產成視覺化 HTML 報告,選一個再 grill 進去
handoff把對話壓縮成交接文件(存到 OS 暫存目錄),含「建議下一個 agent 使用哪些 skill」,且不重複已存在的 artifact,只給路徑
claude-handoff同樣的交接摘要,但直接 claude --bg --name "..." 開一個背景 agent 接手
teach有狀態的教學:把當前目錄當成教室,跨 session 保存學習進度
edit-article把文章切成段落,視為有向無環圖排序(先備知識先講),先與作者確認章節再改稿
setup-matt-pocock-skills每個 repo 跑一次的初始化
writing-great-skills寫 Skill 的方法論:核心價值是可預測性(每次走同樣流程,而非產同樣輸出),附 GLOSSARY.md

模型可自動觸發的 Skill

Skill特性
tdd紅→綠→重構。重點不在迴圈本身,而在「什麼是值得留下的測試」、測試放哪、反模式清單;探索程式碼時會先讀 CONTEXT.md 讓測試命名對齊領域語言
diagnosing-bugs難 bug 與效能退化的紀律:建立回饋迴圈 → 最小化 → 假設 → 埋 instrument → 修 → 補回歸測試。跳過任何一階都要說明理由
code-review兩軸審查:Standards(符合此 repo 的規範 + Fowler code smell 基線)與 Spec(是否忠實實作原始 issue/PRD),兩個子 agent 平行跑避免互相污染 context,最後彙整
codebase-designdeep module 的共同字彙:小介面、大行為、乾淨 seam、可透過介面測試。明確要求不要用「component / service / API / boundary」代換術語
domain-modeling主動打磨領域模型:挑戰用詞、用邊界情境壓力測試、當場更新 CONTEXT.md 與 ADR。只是「讀」CONTEXT.md 不算,這個 Skill 是用來模型的
resolving-merge-conflicts逐個 hunk 依「雙方原始意圖」解衝突(讀 commit message、PR、issue),衝突不可調和時選符合這次 merge 目標的一方並記錄取捨;永遠不准 --abort,最後跑專案的自動檢查
prototype拋棄式原型:先確認「要回答的是哪個問題」,再決定形狀——邏輯/狀態問題做成可跑的終端機小程式,UI 問題做成幾個可切換的版本
research背景 agent 去讀一手來源(官方文件、原始碼、規格、first-party API),把附引用的發現寫成 repo 內的 Markdown,並沿用專案既有的存放慣例

最值得學的三個觀念

  1. 決策樹式訪談:一次一題、附建議答案、事實自己查——把人的時間只花在決策上。
  2. 兩軸 Review:「合不合規範」與「有沒有做到需求」是兩件事,要分開跑、分開報。
  3. 可預測性 > 產出一致writing-great-skills 的立場是,Skill 的價值在於強迫每次走同一套流程。