Communitygithub.com

scout

探索一個你尚不知如何處理的問題——先明確「完成」的樣貌,然後以廣度優先的方式展開所有開放問題,再逐一解決,直到路徑清晰為止。

scout 是什麼?

這個技能專為尚未有明確路徑的問題或想法而設計。它能引導使用者先界定「完成」的具體樣貌,作為後續所有決策的基準。接著會以廣度優先的方式掃描從起點到目的地之間的所有開放問題,避免過早深入第一個發現的問題。這些問題會被分類為「銳利」(可精確陳述但未必能立即回答)、「模糊」(只能粗略感覺) 或「超出範圍」(超越目的地),並按其解除阻塞的重要性排序逐一處理。本技能適用於 Claude Code 等支援 Markdown 技能的 AI 代理平台,預設在單一對話階段內完成,僅在必要時透過 `/handover-save` 跨越階段。其核心輸出是一張包含目的地、已決策事項、開放問題的「地圖」,而非程式碼或規格文件;若一開始就發現路徑清晰,則會直接停止並建議直接執行。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add AhmedMerza/claude-skills

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

/scout —— 我究竟要去哪,以及如何到達那裡?

你有一個問題或想法,但誠實的狀態是你還不知道如何處理它。不是「三種方法中選哪一種」——你還無法看透彼岸,以至於無法提出三種方法。此集合中的其他所有技能都假設目標已經存在。這個技能是去尋找目標的。

這項工作的任務是勘察地形,然後選擇路線——而不是直接衝向目的地,也不是開始建造第一眼看起來可以建的東西。

這不是什麼——以便你正確調用:

  • 不是 grill-me——那是針對你已有的計劃進行訪談,以深度優先的方式走一條決策樹。這是在計劃存在之前進行,並且特意採用廣度優先。當 scout 結束時,grill-me 是合理的下一步。
  • 不是 explain——那是用來映射已存在的程式碼。這用來映射尚未存在的工作。
  • 不是 root-cause——那是針對有已知症狀的損壞事物。如果某個東西出錯,先使用那個;如果修復不明顯,再對回應進行 scout。
  • 不是 validate-plan / ship-check——那些是用來評判計劃和差異的。Scout 在它們的上游運行,並產出它們要評判的內容。

克制閘門——先閱讀。 失敗的模式是製造一段旅程。如果初始的掃視顯示你已經可以陳述目的地和到達的步驟,就說出來並停止:「這不需要偵察——以下是計劃,開始執行。」大多數問題都是這樣的。在清晰的路徑上多做儀式是純粹的成本。同樣地,如果你主動使用了這個技能,而不是使用者輸入 /scout,請在開始前確認——未經請求的二十個問題訪談是個糟糕的驚喜。

各階段

1. 命名目的地——在任何其他問題之前

詢問完成的樣貌,並將其壓縮成一兩行。可能是鎖定一個決策、要移交的規格、原地完成的遷移、或一個端到端可運作的功能。不同的目的地會產生完全不同的路線,所以這是最優先解決的,且永遠不做假設。

目的地固定了範圍——以下每個問題都以此為衡量標準。如果使用者還無法命名,那就是首先要處理的事,在命名之前,其他什麼都不開始。

2. 展開——廣度優先,並抵制回答的誘惑

掃描從這裡到目的地之間的整個空間,收集所有的開放問題。暫時不要解決任何一個。立即回答第一個問題的衝動正是這個階段要克服的:你注意到的第一個問題很少是決定整體形狀的那個,過早回答它意味著非常仔細地規劃錯誤的事情。

要廣泛,不要深入。目標是浮現你原本不知道存在的問題。

可以查詢的事實;需要詢問的決策。 如果某件事可以查證——例如 schema、呼叫者、真實資料、函式庫的文件、程式碼目前的實際行為——就去查證,不要在問題上耗費唇舌。只有真正的決策才需要詢問使用者。

3. 分類為三個分類

分類測試方法你要做的事
銳利你現在可以精確地陳述這個問題處理它(第 4 階段)
模糊你感覺有個問題存在,但還無法表達清楚寫下一行粗略的描述,然後擱置
超出範圍它在目的地之外記錄下來;它不會再回來

銳利/模糊的測試是你是否能陳述它,而不是是否能回答它。 一個有困難或未知答案的問題仍然是銳利的,如果你能精確地表述它——那些往往是最重要的問題。

超出範圍使用一個不同的測試——範圍,而不是銳利度。某件事可以非常銳利但仍然超出範圍,因為它在目的地之外。明確地排除它並說明原因;它只會在目的地本身移動時才會回來,而那將是一次全新的 scout。

然後將銳利的問題按最能解除阻塞的順序排序——能夠消除最多其他問題的那個答案優先。

4. 逐個解決

一次問一個問題並等待。每個問題都附上你推薦的答案——但這是推薦,決定權在使用者手中。永遠不要代替他們做決定,也永遠不要批量提問;一次提出五個問題會讓人不知所措,並得到一個敷衍的回答。

每次回答後,更新分類:

  • 它是否將模糊的問題銳化成一個真實、可陳述的問題?升級它。
  • 它是否消滅了不再重要的問題?刪除它們。
  • 它是否改變了目的地?大聲說出來,並根據新的目的地重新檢查其他分類——一切都是以舊的界線為衡量的。

不要為了讓自己看起來有效率而將模糊的問題預先切割成假問題。模糊是一個路標,不是待辦事項清單。

5. 當路徑清晰時停止

完成意味著:沒有遺留的銳利問題,而剩餘的模糊問題確實可以推遲或超出範圍。最後總結目的地、達成的決策以及具體的下一步。

然後移交——不要開始建構。 Scout 產出的是路線,而不是可交付成果。轉到計劃模式(或如果計劃從中產生則轉到 /validate-plan),然後再實作。如果你發現自己在 scout 階段內撰寫正式程式碼,你已經超出了這個技能的範圍。

唯一的例外是拋棄式原型——當一個問題確實無法在紙上解決時(例如「這個狀態模型感覺對嗎」、「這應該長什麼樣子」),建立一個能回答問題的最小粗糙版本,看一看它,保留答案並丟棄程式碼。

跨越對話階段——只有當真正需要時

預設為單一階段,不儲存檔案。大多數 scout 都符合這個範圍,為一個二十分鐘後就結束的對話寫一個檔案只是徒增雜物。

僅在以下其中一種情況成立時升級到 /handover-save:

  • 對話時間變長到你可能會失去脈絡,
  • 使用者想要停下來稍後再繼續,
  • 某個問題被對話外的因素阻塞(其他人的回覆、權限申請、需先收集的資料)。

交接文件會承載目的地和三個分類。用 /handover-resume 恢復,它會在繼續之前重新同步偏移。跨越階段在這裡是一個逃生艙口,而不是設計目標。

輸出格式

在地圖發生實質變化時顯示它——在目的地命名後、展開後、以及當某個答案重新調整了分類時。不是每次轉折都顯示。

## 偵察:<想法,一行>

**目的地:** <完成的樣貌——以下所有內容都以這個為衡量標準>

**已決定**
- <問題> → <答案>

**開放——銳利**
1. <精確陳述的問題>   ← 正在處理這個
2. <...>

**仍然模糊**
- <粗略的一行描述> — 一旦 <X> 確定後就會變得銳利

**超出範圍**
- <被排除的內容> — <為何它在目的地之外>

結束時包含:目的地、按順序排列的決策,以及單一的下一個步驟。

護欄

  • 廣度先於深度。 在你看清整個空間之前就回答第一個問題,正是這個技能要防止的失敗。
  • 去查詢,不要問問題。 一個你原本可以用 grep 回答的問題,是在浪費使用者的回合和他們的耐心。
  • 一次一個問題,然後等待。 每次都推薦一個答案;永遠不要代替他們決定。
  • 銳利度 ≠ 可回答性。 模糊測試是「我能陳述它」,而不是「我能回答它」。
  • 模糊不是待辦事項。 讓它保持鬆散。預先將其切割成任務,會創造出下一個答案可能刪除的工作。
  • 超出範圍是範圍判斷,不是一個步驟。 它放在自己的分類中,永遠不會進入決策列表。
  • 目的地可以移動——移動時要宣布。 默默地重新瞄準會使之前做出的所有判斷失效。
  • 不要建構。 輸出的是決策,而不是可交付成果。拋棄式原型是唯一的例外。
  • 預設不留檔案。 僅在工作確實超出當前階段時才使用 /handover-save。
  • 克制閘門。 「這裡沒有模糊地帶——你已經知道如何處理這個」是一個真實且有價值的結果。永遠不要為了證明使用這個技能的正當性而發明開放問題。

以目的地為優先的框架、廣度優先的展開、陳述它 vs 回答它的模糊測試,以及範圍 vs 銳利度的區分,改編自 Matt Pocock 的 wayfinder(github.com/mattpocock/skills)。其問題追蹤地圖、子任務機制以及一任務一階段的規則被刻意移除——這個集合透過 /handover-save 跨階段持續存在。

相關技能