# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：卡颂 (@kasong2048) · 平台：X (Twitter) · 日期：2026-07-11

> 原始來源：https://x.com/kasong2048/status/2075425094915252235

## 中文摘要

# 總結 Grill-Me 中你能用上的專業術語

@mattpocockuk 的 Grill-Me 系列 Skill 設計非常簡潔優雅。打開 Skill 文件前，你很難相信功能強大的 Grill-Me 核心只有 3 句話。

其中一個關鍵原因是 —— 他用了許多 AI 能理解且含義豐富的專業術語。

本文總結 Matt 系列 Skills 中的高價值專業術語，看了立刻就能用在自己的 Skill 中。

## Tracer Bullet

來自《The Pragmatic Programmer》一書，直譯是「曳光彈」。夜間射擊時，機槍手看不清子彈軌跡。曳光彈射擊後會發光，可以幫助機槍手修正瞄準偏差。

![兩名身著迷彩服的軍事人員在夜間進行機槍實彈射擊訓練。](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/e2e84184e2bac72d.png)

<details class="chart-data"><summary>展開畫面重點</summary><div class="me-note">畫面顯示兩名身著迷彩服與配戴頭盔的軍事人員，正於夜間環境中使用機槍進行射擊訓練。槍口處產生強烈的火光與煙霧，並可見一道明顯的曳光彈軌跡向遠方延伸。地面散落著彈殼，整體場景呈現出高強度的軍事演練氛圍，光線主要由射擊產生的火光提供，將周圍環境染成深紅色。畫面中無任何文字資訊或數據圖表。</div></details>

在軟體工程領域，它指一種豎切的開發策略。舉個例子，你要做一個完整功能：

使用者上傳檔案 -> 後端解析 -> 存資料庫 -> 前端展示

如果直接讓 AI 幫你做，他會：

1. 實作 model 

1. 實作後端解析邏輯

1. 實作 API

1. 實作前端

這就是橫切的開發策略，也就是切（實作）完一層，再切下一層。

橫切的壞處是：

1. 回饋太晚：前端是最後一層

1. 容易做錯抽象：很容易先實作一些「後續層才會用的方法」，結果後續層實作時不一定用到

1. 不容易做整合測試、端到端測試

當你提到 Tracer Bullet 開發模式，AI 會先實作很薄的端到端路徑：

1. 上傳一個最簡單檔案

1. 後端讀到一行內容

1. 存一條最小紀錄

1. 前端顯示這一條紀錄

雖然簡陋，但它豎切了所有層，後續實作都能在此基礎上延伸，就像曳光彈一樣修正實作偏差。

在 Matt 的 Skills 中，`/to-tickets` Skill 使用這個詞創造豎切的執行計畫，同時也為後續 `/tdd` 提供整合測試、端到端測試的線索。

## Seam

來自《Working Effectively with Legacy Code》一書，直譯是「接縫」。比如衣服上兩塊布料連接的地方就是 seam。

也就是兩塊布料相接、可以拆開、替換、重新縫合的位置。

將布料理解為「應用程式中的模組」，seam 就是模組間的連接點，可以替換、測試、隔離。

舉個實際程式碼例子，你對 Agent 說：給如下模組寫測試

![這是一段使用 TypeScript 編寫的價格計算邏輯程式碼。](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/6d52df861087ae45.jpg)

<details class="chart-data"><summary>展開畫面重點</summary><div class="me-note">圖片中顯示了一個名為 `pricing.ts` 的檔案內容，包含兩個函式：
1. `finalPrice(total: number, isVip: boolean)`：此函式接收總金額與是否為 VIP 的布林值，並透過呼叫 `discount` 函式計算折扣後，回傳最終價格。
2. `discount(total: number, isVip: boolean)`：此函式負責計算折扣金額。若 `isVip` 為真（true），則回傳總金額的 20%（`total * 0.2`）；若為假（false），則回傳 0。</div></details>

Agent 很可能匯出並單獨測試 `discount` 方法：

如果對 Agent 說：先找到這個模組的 seam，再在 seam 上測試行為

Agent 會識別 `finalPrice` 才是 seam，也就是外部呼叫者真正接觸的介面。於是測試變成：

![這是一段使用 JavaScript 測試框架（如 Jest）撰寫的單元測試程式碼片段。](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/fb70d689d105a86e.jpg)

<details class="chart-data"><summary>展開畫面重點</summary><div class="me-note">畫面中顯示了兩行 JavaScript 測試語法：
1. `expect(finalPrice(100, true)).toBe(80);`
2. `expect(finalPrice(100, false)).toBe(100);`

這段程式碼是用於驗證 `finalPrice` 函式的邏輯：
- 第一行測試當傳入參數為 `100` 與 `true` 時，函式應回傳 `80`（可能代表套用了 20% 的折扣）。
- 第二行測試當傳入參數為 `100` 與 `false` 時，函式應回傳 `100`（代表未套用折扣）。</div></details>

總結來說：「先找到模組 seam」會把 AI 從「測試內部細節」拉回到「測試模組公開邊界上的行為」。

在 Matt 的 Skills 中，`/to-spec` 識別 seam，`/tdd` 將 seam 作為生成測試用例的切口。

## Design Tree

來自《The Design of Design》一書，這是設計領域的概念，把設計看成一棵相互依賴的決策樹，每個分支代表一個選擇、約束或待定問題。

主要作用於「人類與 AI 對齊需求」環節，比如 `/grilling` 中的用法：

> 遍歷 Design Tree 的每一個分支，逐一解決各決策之間的依賴關係。針對每個問題，給出你的建議答案

另一種常見的「對齊需求」方式是 Superpowers 的 brainstorming，兩者的區別：

- Design Tree 假設你腦海裡已有方案，只是缺少細節。類似廣度優先遍歷

- brainstorming 假設你只有模糊的想法，AI 就你的想法給你指方向。類似問路：路人給你指方向，你朝方向走一段路再問下個路人，直到到達目的地

從實作原理看，使用 Design Tree 會獲得更詳細的需求，代價是會被拷問更多細節。

## Throwaway Prototype

來自《The Pragmatic Programmer》，指「為了驗證結論而建立的用完即棄的原型」。他和上面介紹過的 Tracer Bullet 區別：

- Tracer Bullet：端到端原型，後續功能在此基礎上延伸

- Throwaway Prototype：得出結論後就廢棄的原型

如果你對 Agent 說：「幫我實作一個 Demo」，他傾向於實作一個最小可用品。

但如果說：「幫我實作一個 Throwaway Prototype，驗證 xxx」，他傾向於圍繞「你要驗證的問題」來設計 Demo，與目標不相關的其他領域（比如程式碼品質、基建、測試）會被忽略。

在 Matt 的 Skills 中，`/prototype` 用於在 `/grilling` 過程中遇到不確定的問題時驗證結論。

## 後記

其實還有些專業術語（比如 TDD）實在太有名了，就沒列出來。

如果大家對這篇文章的內容感興趣，請多給我回饋，後續我再從其他知名的 Skill 中收集專業術語。

## 標籤

Skills, 教學資源, Grill-Me
