工作流 10 min read

AI 逼問法 vs 需求訪談:grilling skill 三代拆解

mattpocock/skills(183k star)裡的 grilling 系列 skill,把「AI 動手前先逼問使用者」拆成三代演化:一次一題、一次一輪、邊問邊產文件。拆開三份 SKILL.md 原始碼,對照人類需求訪談「一次一題 vs 一次一輪」的老權衡,附今天這篇文章寫作過程本身當真實案例。

AI 逼問法 vs 需求訪談:grilling skill 三代拆解
本文目錄 · 5

今天要寫這篇文章前,我自己先被「逼問」了兩次。

我打算寫一篇介紹 mattpocock/skills 這個 GitHub repo 裡的 grilling skill,剛要動手就發現不對勁——同一個 repo 我五天前才寫過一篇《166k Star Skill 庫拆解》,FAQ 裡就點名過 grill-me。如果我照原計畫寫下去,會跟自己的舊文重疊。

我沒有自己決定要不要繼續寫、或者悄悄換個角度,而是停下來丟了兩個問題給 Bob:這篇要走發布還是草稿?角度重疊要不要換?兩題都等他回答才往下動。

這個「先問決策、不自己猜」的動作,剛好就是我要介紹的這套 skill 在做的事。

grilling 是什麼

skills/productivity/grilling/SKILL.md 的全文只有幾行:

Interview me relentlessly about every aspect of this until we reach a
shared understanding. Walk down each branch of the decision tree,
resolving dependencies between decisions one-by-one. For each question,
provide your recommended answer.

Ask the questions one at a time, waiting for feedback on each question
before continuing. Asking multiple questions at once is bewildering.

If a *fact* can be found by exploring the environment (filesystem, tools,
etc.), look it up rather than asking me. The *decisions*, though, are
mine — put each one to me and wait for my answer.

Do not act on it until I confirm we have reached a shared understanding.

拆開看,這幾行做了三件事:

  • 把「釐清一個計畫」畫成決策樹,一支一支走,不是丟一份問卷。

  • 每題附推薦答案,逼自己先想過,不是甩鍋給使用者選。

  • 事實自己查,決策才問人——這條界線劃得很死:能從檔案系統、工具查到的東西,agent 自己去查;只有真的沒人能替你決定的事才問。
  • 作者是 Matt Pocock,他把這份 skill 放在自己的 .agents 目錄公開分享,repo 目前(2026-07-23 查證)有 183,200 個 star,比我上次寫文章時的 166k 又漲了約 17k。

    三代演化:從一題一問,到一輪問完,到邊問邊產文件

    我以為 grilling 就這一份,翻了一下 repo 目錄樹才發現同一套邏輯其實有三個變體,各自解決不同的痛點。

    Skill位置問法解決的痛點
    grillingskills/productivity/一次一題,答完才問下一題原型:決策樹逐支走,避免同時丟一堆問題把人問懵
    batch-grill-meskills/in-progress/一輪問完整個「frontier」逐題問太慢,改成一次問完所有「前置條件已解決」的問題
    grill-with-docsskills/engineering/grilling + domain-modeling邊問邊順手產出 ADR、glossary,問完決策不必再回頭補文件
    batch-grill-me 的 SKILL.md 引入了兩個原創術語,「design tree(設計樹)」跟「frontier(前沿)」:
    Work the tree in rounds. The frontier is every decision whose
    prerequisites are already settled — the questions you can ask *now*
    without guessing at answers you haven't heard yet. Ask the whole
    frontier in one round: number each question and give your recommended
    answer. Then wait for the user's answers before the next round.
    

    Each round the user answers reshapes the tree — settled decisions push
    the frontier outward and unblock questions that depended on them.

    意思是:決策樹上有些問題彼此獨立,沒有誰依賴誰,那就一次全部問完(一輪),而不是逼使用者一題一題等。等使用者答完這一輪,樹的形狀變了,新的一批「前沿」問題才浮出來,再開下一輪。

    這個改動不是憑空拍腦袋。最近一次跟 grill 相關的 commit(2026-07-16,9603c1c)訊息寫著:

    batch-grill-me: granular fact-finding, don't block the round
    

    Fire fact-finding to a sub-agent and treat a running exploration as an
    unsettled prerequisite, so only the downstream questions wait — the
    rest of the frontier is asked now, instead of the whole next round
    blocking behind one lookup.

    這條 commit 修的問題是:如果一輪裡有個問題需要先查資料(丟給 sub-agent 查),舊做法會讓整輪都卡住等查完。新做法把「還在查」當成一個未解決的前置條件,只擋住依賴它的那幾題,其他該問的照樣先問。這是一個純粹的工程優化,跟需求訪談沒有直接關係,但它解決的排隊問題,任何做過訪談的人應該都眼熟。

    batch-grill-me 目前放在 skills/in-progress/,作者自己標成未定案,我這篇不把它當成穩定功能來寫,只當成演化中的一個實驗。

    跟人類的需求訪談對照,差在哪

    「一次一題 vs 一次一輪」不是 AI 發明的難題,是任何需求訪談或問卷設計都會撞上的老權衡:

    • 一次一題:使用者思路不被打斷,答案品質高,但如果有十五個決策點要問,訪談會拖很久,使用者中途容易失去耐性。
    • 一次一輪(一次丟一份問題清單):效率高,但常見副作用是使用者被問卷淹沒,隨手勾一勾應付了事,或者漏答,或者答案彼此矛盾——因為有些問題其實要等前面的答案出來才問得準。
    batch-grill-me 想解的正是後者:只問「當下真的問得出、答得準」的那一批,不是把整份問卷倒出來。畫一張「這題答案會不會影響下一題」的依賴圖,再決定哪些問題可以並成一輪——這是同一套邏輯,只是換了執行者。

    grilling 系列 skill 明文寫死一條界線:能從檔案系統、工具查到的東西(像「這個專案現在用什麼資料庫」這種本來就有答案、只是還沒去查的事),agent 自己想辦法查,不准丟給使用者當問題。這條規則要防的,是把「查得到的事」也塞進問題清單,白白占用使用者的決策頻寬——能查的事,agent 自己查,這條分界線寫在 SKILL.md 裡,不是靠 agent 自由心證判斷。

    這條線我在自己的工作流程裡也有一份對照。我的部落格 repo 的 CLAUDE.md 定義了一張「決策權分層」表,把工作分成實作層(自己決定)、設計層(列選項給人選)、業務層(一定要問)三級,判準包括「可逆性」「變動範圍」。跟 grilling 的「事實 vs 決策」二分比起來,我這套多了一層可逆性判斷——因為軟體工程裡「先斬後奏」的代價,遠比一份需求訪談答錯一題複雜得多。兩套規則解決的都是同一件事:把「誰該做決定」講清楚,不要讓執行者自己吞下不該他扛的判斷。

    能不能直接拿來用

    grilling 本身是 Claude Code 的一個 slash command skill,裝進 .claude/skills/ 之後打 /grilling 就能跑。它不挑語言、不挑框架,因為內容是流程描述而非程式碼——任何用 Claude Code 或類似 agent 工具、且願意讓 AI 在動手前先逼問一輪的場景都能用,例如寫技術方案前先釐清邊界條件、或是規劃一個含糊需求前先問清楚範圍。

    它不適合的場景也很明顯:如果你要的是快速產出草稿、之後再迭代修改,逐題確認的節奏反而是阻力;batch-grill-me 還在實驗階段,直接照搬到正式流程裡有風險。另外這套 skill 解決的是「問清楚再動手」,不解決「問題問得好不好」——推薦答案給得爛,使用者一樣會被牽著走答錯方向,工具本身不保證問題品質。

    常見問題

    grilling 跟 grill-me 是同一個東西嗎?

    是。grill-meskills/productivity/grill-me/SKILL.md 定義的一個 command,內容只有一行:「Run a /grilling session」,等於是 grilling 的別名,方便打字。

    這篇跟你上一篇《166k Star Skill 庫拆解》講的不是同一件事嗎?

    上一篇是拆整個 repo 的 6 個核心 skill,對應 4 個 agent 常見失控問題,是一篇全景介紹;grilling 在那篇只在 FAQ 提過一句。這篇只聚焦這一套「逼問」邏輯本身,把它的三個變體攤開對照,並且拉到跟人類需求訪談做比較——是同一個 repo 裡不同的切片,不是重寫。

    batch-grill-me 能拿去正式專案用嗎?

    作者自己把它放在 skills/in-progress/,最近一次相關 commit 是 2026-07-16,屬於還在調整中的實驗性功能。想試可以裝,但目前不建議當成穩定依賴。

    author
    陳彥彤

    AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

    support

    覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

    related

    相關文章

    [工作流] · 16min
    166k Star Skill 庫拆解:4 個 AI Agent 老問題,各自的解法
    GitHub 166k star 個人 Skill 庫實際拆解:6 個核心 skill 對應 4 個 AI agent 常見失控問題,Matt Pocock 怎麼用 vertical slice 逼 agent 先問清楚再動手。
    [AI 工具] · 17min
    OpenAI 官方外掛讓 Codex 進 Claude Code:實測兩種 review,一種漏掉兩個高風險問題
    OpenAI 在自己的 GitHub organization 下開源了給 Claude Code 用的官方外掛 codex-plugin-cc(Apache-2.0,撰文當下 30,993 顆星),裝上去就能在 Claude Code 裡直接叫 Codex 審 code 或把任務丟給它跑。我裝了 v1.0.6 並拿一段故意寫壞的批次退款程式碼實測:/codex:review 花 41 秒抓出 2 個 P1;同一份程式碼換 /codex:adversarial-review 抓出 4 個,多的兩個是「刪訂單摧毀稽核軌跡」與「完全沒有退款授權邊界」,標準 review 完全沒提。這篇把安裝步驟、7 個指令的實際差別,以及那個預設關閉、逾時或失敗都會 block 你 session 的 review gate 寫透。
    [AI 工具] · 17min
    錄教學影片時,游標為什麼錄不進去?一個 Claude Code 錄影 skill 的誕生
    想讓 AI 操作瀏覽器順便錄成教學影片,結果撞到作業系統層級的限制:單一視窗的錄影裡,滑鼠游標不可能出現。macOS `screencapture -l <windowid>` 能在視窗被完全蓋住時照錄乾淨內容(讀 window server backing store),但同樣的機制決定了它永遠沒有游標——游標是系統畫在所有視窗「之上」的獨立圖層,不屬於任何視窗。這篇記錄我怎麼查清這條物理限制、然後換掉前提:用 Playwright 錄自己起的瀏覽器,在頁面注入一顆 DOM 假游標(CSS transform 平滑移動 + 點擊漣漪),一次解掉「要游標/要畫面乾淨/要能同時做別的事」三難。最花時間的不是畫游標,是驗證它真的有出現——抽影片畫格檢查害我對著幻覺改了三輪程式碼。已開源成 MIT 授權的 Claude Code skill。