Spike 任務
在時間盒內回答一個問題,找出足以做出決策的答案。產出是決策記錄,不是合併的程式碼。
輸入
$ARGUMENTS
- 工單,必要:追蹤系統的鍵值(例如
ENG-130)或本地 ID(例如T-03),且該工單類型必須為spike。若不是 spike,請停止並指向/implement-task。 --tasks <file>:本地任務檔案。若未提供,則在專案本機、被 git 忽略的 RFC 資料夾(例如.rfcs/,然後docs/rfcs/)中,尋找包含該工單的*.tasks.md檔案。--branch <name>:如果需要原型,則為分支名稱。否則使用<使用者名稱>/<專案代碼>/spike-<任務分支>,命名規則與/implement-task相同。--unattended:由協調器啟動;無人可回答問題。請勿提問;當你想提問時,停止並在報告中說明。在自己的工作目錄中工作。
如果工單已發布,則從追蹤系統讀取(其內容以追蹤系統為準),否則從任務檔案讀取。本地 RFC 和任務檔案僅存在於主要專案資料夾中:如果你在一個工作目錄中,請使用 git worktree list(第一個條目)找到主資料夾,並透過絕對路徑讀取它們。除非是撰寫下方所述的決策記錄,否則絕不要在主資料夾中編輯檔案或執行 git 指令。
1. 釐清問題
在收集任何資料之前,先寫下:
- 問題,用一個可以回答的句子來表述(例如「Postgres 的 LISTEN/NOTIFY 在我們的實例規格下能否處理每秒 2000 個事件?」,而不是「研究事件處理機制」)。
- 它能解除哪個決策的阻塞,以及哪些工單依賴於此決策。
- 正在決定的選項,包括「什麼都不做」或在合理情況下最簡單的選項。
- 決策標準,盡可能從 RFC 的 DRIVE 章節中提取(限制、價值、關鍵成果),以便證據根據團隊已同意的重點來評判。
- 時間盒,來自工單(預設:大約一天的工作量)。「完成」代表問題已回答或時間盒已耗盡,以先發生者為準。
如果工單過於模糊,無法釐清問題,請停止並回報 blocked,並附上需要回答的問題。
2. 收集證據,從最經濟的開始
一旦證據足以回答問題就停止,不要為了完整性而繼續研究。
- 程式碼庫:現有模式、限制條件、先前嘗試、相關區域的註解和歷史(對相關路徑執行
git log)。 - 主要來源:官方文件、變更日誌、發行說明、相關函式庫或服務的問題追蹤系統。優先於部落格文章。如果有
deep-research技能可用,且問題需要廣泛的外部研究,則使用它。 - 度量:當閱讀無法解決問題時(例如效能、相容性、「這個 API 真的會這樣運作嗎」),從最新的 main 分支建立一個最小的原型或基準測試來回答問題,並放在 spike 分支上。它的存在是為了產出證據:除了度量所需的測試之外,不要寫任何測試,不進行打磨,且絕不會被合併。推送該分支以便證據可重現,但不要建立 PR。
記錄你得知每項資訊的方式:已度量(你實際執行了)、已記錄(主要來源如此說明)、或已假設(推論)。引用連結和檔案路徑。
3. 決定建議內容
- 使用證據,根據決策標準為每個選項評分。
- 建議一個選項,並附上信心水準:高(已度量或充分記錄)、中(有記錄但未在我們的環境中測試)、低(主要是推論)。
- 當信心水準低時,偏好最容易反轉的選項,並說明哪些信號會讓你改變選擇。
- 如果在問題回答之前時間盒已耗盡,請明確說明:報告已知事項,並建議最小的下一步(一個範圍更窄的後續 spike,或一個可逆轉的預設值以繼續進行)。
4. 提議待辦事項調整
決策通常會改變計畫。提出建議,但不要實際套用:
- 要新增的工單,使用與任務檔案相同的格式(標題、範圍、檔案、驗收標準、依賴關係),每個工單 1 個故事點。
- 要修改的工單(範圍、標準或依賴關係)以及要移除的工單,每個都需要說明理由。
- 需要更新的 RFC 章節。
5. 撰寫記錄與報告
- 使用 templates/decision.md 將決策記錄寫入主要專案資料夾中的
<rfc名稱>.<工單ID>.decision.md(放在任務檔案旁邊,這是你在那裡寫入的唯一檔案)。這是一個如同 RFC 的本地、未追蹤檔案。 - 如果工單已發布,請在追蹤系統的議題上發布一個簡短摘要:問題、建議內容和信心水準,以及三到五行的關鍵證據,並清楚標示為已提案,待核准。
- 如果你直接與使用者合作,請將任務檔案中的工單狀態設為
decision-proposed,引導他們了解建議內容,並請他們核准、選擇另一個選項或延長 spike 時間。在無人值守模式下,將狀態留給協調器處理。 - 以以下報告格式結尾:
RESULT: decision-proposed | inconclusive | blocked
TICKET: <本地 ID> / <追蹤系統鍵值或 "unpublished">
RECORD: <決策記錄的絕對路徑>
RECOMMENDATION: <一行摘要> (confidence: high | medium | low)
PROTOTYPE: <分支名稱或 "none">
NOTES: <待辦事項調整摘要,一行:+N 個工單,~N 個修改,-N 個移除;或說明為何 blocked>