探索
透過蘇格拉底式提問,將非結構化的利益關係人輸入轉換為可追蹤的需求。你不是轉錄員:捕捉已陳述和暗示的內容,標記不明確之處,並產生候選故事,讓 /refine-story 帶入衝刺規劃。輸入不支援的內容不進入;輸入暗示的內容作為有根據的推論進入;輸入未明確定義的內容則變成一個問題。
輸入:$ARGUMENTS
開始之前
閱讀工作區中的 docs/agents/refinement.md:它定義了操作模式、語言(en-US 或 pt-BR,預設為 en-US)和發佈路徑。如果缺少該檔案,請請求 /configure-refinement 並停止。如果參數是一個規格且 Status: open map(或 Status: mapa aberto),直接跳到「恢復決策地圖」。如果輸入來自 /meeting-minutes,它已區分陳述事實與假定:將假定協議視為未經確認。提問和產生的規格將遵循配置的工作區語言。
步驟
-
載入和分類。 讀取輸入、
CONTEXT.md,並為requirements-rigor調用技能工具。掃描反模式(單獨閱讀requirements-rigor中的ANTI-PATTERNS.md)以及總是觸發問題的術語:此掃描為分類奠定基礎。透過計算摘錄數量(而非文字量)進行分類:USABLE(每個摘錄都能結構化一個需求)、PARTIALLY USABLE(至少一個摘錄能結構化一個需求,且至少一個不能)、UNUSABLE(沒有摘錄能結構化一個需求)。UNUSABLE:陳述此結果並附上逐個摘錄的理由,列出 3 到 5 個最簡短的問題並附上收件人(除非能在詞彙表中識別出領域角色,否則為輸入的提供者),按照requirements-rigor中的QUESTIONNAIRE.md編寫一份問卷,告知使用者/requirements-discovery將在收到回覆後重新執行,然後停止,不再發佈其他工件;填充性故事對誰都沒幫助。PARTIAL:繼續進行,最終工件以一個列出未使用摘錄及其缺失內容的列表開頭。 完成條件:分類以一行陳述,當不是 USABLE 時,後面跟著逐個摘錄的理由。 -
廣度優先的映射。 在產生任何故事之前,掃描完整輸入:具有信心評級(高、中、低;低表示探索需要在後續對話中進行)的業務領域、具有類型(業務、技術、最終使用者)及其主張的利益關係人、具有複雜度 S、M、L 或 XL(並用一行證明其合理性)的史詩;沒有封閉列表或可衡量標準的摘錄暫時不會成為史詩,仍在部分處理中,直到提問為其界定範圍。當輸入是轉述時,筆記記錄者以類型「來源」進入利益關係人表格。兩個聲音在同一個需求上持相反立場:添加
[CONFLICT],記錄兩種立場,不單方面解決。由單一聲音陳述的需求,若確認至關重要,則添加[VALIDATE WITH TEAM]:未被滿足的角色需求、由非決策者做出的範圍決策;當兩個聲音討論不相關的主題時,不要標記所有內容。業務需求和技術限制來自不同的利益關係人,擁有不同的權重:區分它們。 完成條件:每個輸入摘錄都被映射到一個領域和史詩,或列為未開發。 -
在提問前搜尋事實。 檢查詞彙表、
.scratch/中的先前故事、工作區文件,以及在程式碼模式下,檢查程式碼庫:提到的整合是否已存在?門檻值是否已實作?找到的事實會成為帶有引用來源的建議答案。在無程式碼模式中,搜尋僅限於工作區文件,不涉及子代理;如果什麼都沒找到,在第一輪頂端用一行陳述此情況。 完成條件:每個候選問題都被標記為有來源回答或保持開放。 -
決定範圍大小。 為
socratic-examination調用技能工具,並進行廣度優先的提問:目標成果(此探索交付的內容)、範圍邊界、衝突以及影響史詩大小的因素。SLA、管道和邊緣情況屬於深度問題,推遲到步驟 5。如果在此輪結束時,問題邊界適合在單一工作階段內完成,則繼續步驟 5。如果仍然存在大量的迷霧(預期會需要做出決策,但由於依賴待定的答案而尚無法明確表述),則打開地圖:按照 TEMPLATE.md 發佈規格,設定Status: open map,每個可明確表述的待決決策在issues/NN-decision-<slug>.md中各有一個檔案,在依賴其他決策時標記Blocked by:,而無法明確表述的迷霧則放在「尚未指定」中。決策與迷霧之間的區別在於,你現在是否能精確地表述問題,而不是你是否能回答它。繪製迷霧地圖是某個工作階段的目標:停止並通知使用者/requirements-discovery <spec-path>每次工作階段解決一個決策。 完成條件:問題邊界適合在單一工作階段內,或者存在帶有開放地圖和待決決策檔案的規格。 -
提問。 逐個史詩進行
socratic-examination的深度輪次:角色、能力、成果、輸入提示的邊緣情況、依賴關係。解決的領域術語立即添加到CONTEXT.md中。沒有與會者知道的事實會收到[TO CONFIRM: whom](或[A CONFIRMAR: quem])並留在問題邊界中。 完成條件:問題邊界為空,或使用者要求關閉。 -
綜合。 按照 TEMPLATE.md 撰寫探索規格,並按照
skills/refine-story/TEMPLATE.md為每個故事建立一個候選故事檔案,帶有Status: candidate(或Status: candidata)和初步的 INVEST 計分卡。未通過 INVEST 的故事不會成為乾淨的卡片:它仍然是候選故事,但帶有[INVEST-FAIL]和解決指引。包含未宣告的依賴關係:故事要能實作所需的整合、外部服務和架構決策,每個都配對其所阻擋的故事和所需動作。候選故事中的每一行都必須符合輸入或有效的[INFERENCE: base];沒有依據的添加是鍍金,必須移除。 完成條件:規格和候選故事存在於docs/agents/refinement.md定義的路徑中,並附有最終免責聲明。 -
路由未決項目。 將會話外部的未決
[TO CONFIRM]項目路由給收件人:按照requirements-rigor中的QUESTIONNAIRE.md,為每個收件人編寫一份問卷,與規格一同放置。 完成條件:沒有留下未指定收件人或問卷的開放問題。 -
報告。 已建立的史詩、候選故事數量、未解決的衝突以及後續步驟:每個故事執行
/refine-story,或者如果地圖是開啟的,執行/requirements-discovery <spec-path>。
恢復決策地圖
當參數是一個帶有 Status: open map 的規格時:
- 讀取完整的規格和
issues/中的待決決策。一個決策在解除阻擋的條件是:它是開放的,且Blocked by:中的所有決策都已被解決。 完成條件:你知道哪些決策是解除阻擋的。 - 選擇決策:由使用者指定名稱,或按編號第一個解除阻擋的。在開始之前,將檔案中的狀態標記為
Status: in examination,以防止並行工作階段選取它。 完成條件:檔案狀態已更新。 - 使用
socratic-examination解決它,每次工作階段一個決策。研究型決策透過閱讀帶有引用的外部來源來解決,無需提問輪次。直接在檔案的## Answer下記錄答案,將狀態標記為Status: resolved,並在規格的「提問決策」部分添加一行摘要和路徑。 完成條件:決策已解決並從規格連結。 - 答案可能會清除周圍的迷霧:新可明確表述的項目離開「尚未指定」並成為新的待決決策;範圍外的項目移至「超出範圍」。任何被答案判定為無效的決策,都將以一行理由關閉。 完成條件:沒有待決決策與答案衝突,且迷霧已重新評估。
- 沒有待決決策開放時:將規格更新為
Status: in progress,並繼續進行主要步驟的步驟 5,如果上下文允許則在同一個工作階段內進行,否則在下次工作階段使用相同命令進行。 完成條件:規格離開開放地圖狀態,或者你報告還有多少決策待解決。
待決決策格式:
# 決策 NN:<一句話的問題>
狀態:<開放 | 提問中 | 已解決 | 已關閉>
被阻擋於:<NN, NN 或 無>
類型:<提問 | 研究>
## 問題
<必須決定什麼以及為什麼它阻礙進展>
## 答案
<解決時:決策內容、決策者、日期>
最終通知
⚠️ 此輸出為分析草稿。在進入衝刺規劃前需要人工審閱。驗證事項:技術可行性、合規性及未映射的依賴關係。