第三階段:交接
宣告式階段技能。由 prd-taskmaster 編排器在 current_phase 為 HANDOFF 時調用。絕不應由使用者直接呼叫。
唯一規則:偵測使用者擁有什麼,推薦一個模式,提供結構化選擇,分派所選模式。模式 D 僅在 tier=premium 時執行;否則為鎖定的預覽。
進入關卡
-
呼叫
mcp__plugin_prd_go__check_gate(phase="HANDOFF", evidence={})進行診斷。check_gate是一個出口關卡:它需要user_mode_choice和plan_file_exists——兩者均由 HANDOFF 本身產生,即用於前進的證據,而非用於進入。首次進入時兩者均不存在,因此gate_passed: false是預期中的——狀態機的合法轉換已保證僅有合法進入。- 首次進入(尚無證據):記錄結果並繼續執行程序。
- 重新進入:如果關卡報告違規,則報告違規並停止——這可防止重新執行已完成的階段或從 GENERATE 階段跳過。
-
讀取 GENERATE 階段的輸出——
.taskmaster/docs/prd.md、.taskmaster/tasks/tasks.json、.taskmaster/reports/task-complexity-report.json。如果缺少任何檔案,請報告並停止。關卡應已捕捉到此情況,但多做一層檢查。
交接檢查清單
在執行程序前,將以下內容複製到您的回應中:
交接檢查清單:
- [ ] 已偵測能力(層級 + 各能力旗標)
- [ ] 推薦模式:___(原因:___)
- [ ] 已顯示摘要(規格位置、任務數量、能力)
- [ ] 已附加 CLAUDE.md 任務工作流程(冪等)
- [ ] 已顯示 AskUserQuestion 模式選取器(若鉤子被封鎖,則降級為散文)
- [ ] 已分派使用者選擇(模式 A / B / C,或 tier=premium 時的 D)
- [ ] 已發出結案摘要框架(可選,靜默耐受)
- [ ] 交接完成
步驟 1:偵測能力
MCP(首選):mcp__plugin_prd_go__detect_capabilities()
CLI 備用方案:python3 script.py detect-capabilities
回傳一個 tier 欄位("free" 或 "premium")以及各能力的旗標。關鍵訊號:
| 能力 | 啟用的功能 |
|---|---|
| superpowers 外掛 | 模式 A、C(腦力激盪、計劃、子代理) |
| task-master-ai(CLI 或 MCP) | 模式 B(原生自動執行迴圈) |
| ralph-loop 外掛 | 模式 C(疊代執行迴圈) |
| atlas-launcher MCP(已授權) | 模式 D — Atlas Fleet(tier=premium) |
| atlas-loop / atlas-cdd 技能 | 舊模式 D 種子——已被 atlas-launcher 偵測取代 |
| 研究模型(task-master 或 MCP) | 每個任務的深度研究 |
| Playwright MCP | S 級瀏覽器驗證 |
模式 D(Atlas Fleet)僅在 tier: "premium" 時解鎖——即 detect_atlas_launcher() 偵測到已授權的 atlas-launcher MCP 註冊。本機的 atlas-loop/atlas-cdd 技能不會解鎖它。請參閱步驟 2 和下方的模式 D 區段。
步驟 2:推薦一個模式
決策邏輯(優先匹配):
superpowers+ralph-loop存在 → 模式 C(推薦免費)- 僅
superpowers→ 模式 A(僅計劃,手動驅動) - 僅
task-master-ai→ 模式 B(原生自動執行) - 備用 → 模式 A
外部工具模式(E–J:Cursor、RooCode、Codex、Gemini、CodeRabbit、Aider)會透過 alternative_modes 欄位作為替代方案提供,而非主要推薦。僅當 tier == "premium" 且任務圖表可並行化(>= 2 個獨立依賴鏈——檢查 fleet-waves 輸出:任何一波 >= 2 個區塊)時,才推薦模式 D。頂級 + 序列圖表:推薦最佳免費模式並說明原因(「您的任務形成單一依賴鏈——Verified Loop 是合適的工具」);Fleet 仍可選取,但非預設。免費層級:模式 D 是鎖定的 Atlas Pro 預覽,無論安裝了哪個本機外掛,都絕不可選取。
模式 A:僅計劃(手動)
推薦:僅計劃
superpowers:writing-plans 建立您的實作計劃
計劃引用 tasks.json 中的 TaskMaster 任務 ID
您手動驅動執行
模式 B:TaskMaster 自動執行(模式 B — 僅限 TaskMaster 後端)
推薦:TaskMaster 自動執行
MCP:mcp__task-master-ai__next_task -> implement -> set_task_status(id, "done")(模式 B — 僅限 TaskMaster 後端)
CLI:task-master next -> implement -> task-master set-status --id N --status done(模式 B — 僅限 TaskMaster 後端)
原生 TaskMaster 執行迴圈(無需外部編排器)
模式 C:計劃 + Ralph 迴圈(推薦免費)
推薦:計劃 + Ralph 迴圈
superpowers:writing-plans → 引用 tasks.json ID 的實作計劃
ralph-loop 包裝每個任務:
next_task → set_task_status("in-progress") → 若信心 < 80% 則研究
→ 子代理驅動開發 → 執行關卡(A+ 級證據)
→ 事後懷疑檢查 → 記錄到 .claude/verification-log.md
→ set_task_status("done") → TodoWrite → 重複
完成:懷疑代理在滿足承諾前檢視驗證日誌。
模式 D:Atlas Fleet(tier=premium 時可選取;免費時 🔒 鎖定預覽)
🔒 Atlas Fleet Atlas Pro · $29/月
跨 Claude、Codex 和 Gemini 的平行多會話執行:
您的任務圖表被分割成隔離 git 工作樹的依賴波
經檢查器門控合併到一個整合分支,一個最終 PR
持久的收件匣結果收集(已驗證,非敘述)
每個任務一個 CDD 證據卡;最後一個 SHIP_CHECK_OK
離開,回來時看到成果。
解鎖:https://atlas-ai.au/pro (上述免費模式永遠免費)
當 tier == "premium"(偵測到已授權的 atlas-launcher):模式 D 是真實、可選取的模式——分派它會調用 /prd:execute-fleet(波編排器技能)。顯示已解鎖卡片:
▸ Atlas Fleet ★ Pro · 已啟用授權
<N> 波 · 根據您的依賴圖表估算 · 可離開
當 tier == "free":模式 D 是鎖定的預覽——不可選取,永不執行。如果使用者在其鎖定時選取它,請回應:
"Atlas Fleet 是 Atlas Pro ($29/月) 的一部分。在此專案上,它會將您的任務分割成跨隔離工作樹的平行波,並進行檢查器門控合併和一個最終 PR。在 https://atlas-ai.au/pro 解鎖——您的規格和任務已儲存。同時,其他所有功能永遠免費:請在下方選取一個免費模式。"
然後重新調用模式選取器(AskUserQuestion),並從選項中移除模式 D。
替代模式 E–J(外部 AI 工具)
detect_capabilities 會在安裝這些工具時回傳 alternative_modes。使用者可以選取其中任何一個來替代模式 A–D。所有這些都是圍繞相同 .taskmaster/tasks/tasks.json 的工具無關包裝器。
| 模式 | 工具 | 調用方式 |
|---|---|---|
| E | Cursor Composer | cursor --open .taskmaster/tasks/tasks.json,在 Composer 中 @-引用 |
| F | RooCode | VS Code 命令面板 → RooCode: Run tasks.json |
| G | Codex CLI | `python3 script.py next-task |
| H | Gemini CLI | gemini --file .taskmaster/tasks/tasks.json implement next(透過 Google 免費) |
| I | CodeRabbit | 透過 A–H 實作,開啟 PR,CodeRabbit 審查每個任務。可與其他模式結合。 |
| J | Aider | aider --read .taskmaster/tasks/tasks.json — 結對程式設計風格 |
步驟 3:將任務工作流程附加到 CLAUDE.md
使用確定性子命令——請勿執行原始的 Read+Edit。此路徑是冪等的,在修改現有檔案時會建立時間戳備份,並使用 HTML 註解哨兵,以便重新執行時不執行任何操作。
-
工作流程內容每次執行都相同——將其寫入一個暫存檔:
## 任務執行工作流程 (prd-taskmaster) 實作任務時,偏好後端操作: 1. `python3 script.py next-task` — 取得下一個就緒任務 2. `python3 script.py set-status --id <id> --status in-progress` — 注意使用連字號;底線會被拒絕 3. 實作任務(遵循連結到此任務的計劃步驟) 4. `python3 script.py set-status --id <id> --status done` — 標記完成 5. 使用進度更新 TodoWrite 6. 從步驟 1 重複 有效狀態:`pending`、`in-progress`、`done`、`review`、`blocked`、`deferred`、`cancelled`。 ### 進度追蹤 - 在**每個任務前後**更新 TodoWrite - 未更新 TodoWrite 之前,無法繼續下一個任務 - TodoWrite = 使用者可見性。TaskMaster = 真相來源。 -
執行附加命令。不需要 Plan Mode 預覽——子命令本身是冪等的(HTML 註解哨門控寫入),因此資訊會在分派之前透過步驟 4 的摘要和 AskUserQuestion 選項(步驟 5)呈現給使用者,而不是透過計劃對話方塊:
python3 $SKILL_DIR/script.py append-workflow \ --target ./CLAUDE.md \ --content-file /tmp/pdtm-workflow-section.mdJSON 回應會報告以下之一:
action: "created"— 之前沒有 CLAUDE.md,建立包含標記的新檔案action: "skipped"(reason:markers_present) — 已連結,不執行任何操作action: "appended"— 現有 CLAUDE.md 除了附加的標記區塊外未被修改;backup_path指向CLAUDE.md.prd-taskmaster-backup-<ts>
如果使用者在寫入前想要預覽,請在 AskUserQuestion 選項中或作為步驟 4 摘要中的資訊段落,顯示計劃的內容——描述將要寫入的內容,而不調用任何計劃對話方塊工具。
步驟 4:顯示摘要
渲染交接面板並列印:MCP render_status(phase="HANDOFF") → 列印 rendered;CLI python3 script.py status --phase HANDOFF。(備用方案——在模式選取器之前發送一個緊湊區塊,以便使用者擁有完整上下文:)
規格已產生:.taskmaster/docs/prd.md
驗證:<等級>(<分數>/<滿分>)
任務:<數量> 個任務已解析並包含依賴(請參閱 .taskmaster/tasks/tasks.json)
複雜度:已透過 TaskMaster 分析(.taskmaster/reports/task-complexity-report.json)
研究:<已展開|已跳過>
能力:
[勾選] TaskMaster (MCP|CLI)
[勾選|圓圈] Playwright(瀏覽器驗證)
[勾選|圓圈] 研究提供者
[勾選|圓圈] Ralph-loop 外掛
[勾選|圓圈] Atlas Fleet(premium:可選取 · free:鎖定)
步驟 5:強制使用 AskUserQuestion 進行模式選擇
HANDOFF 是使用者決定權的時刻。散文推薦可以跳過;工具呼叫則不行。您必須在此步驟中調用 AskUserQuestion。這是硬性強制規定——僅使用散文的備用方案是一個錯誤,而非捷徑。
AskUserQuestion 為使用者提供一個明確、結構化、機器可讀的選擇。這是持久的交接記錄。使用者的選擇會以程式方式記錄,下游步驟會直接根據它進行分派——無需解析自然語言確認,沒有歧義。
順序
-
發出交接摘要,涵蓋:
- PRD 路徑 + 驗證等級
- 任務數量 + 複雜度細分
- 推薦模式 (A/B/C) + 一句話原因
- 可用的替代模式(偵測到 E–J 時,折疊在「使用其他工具…」下方)
- 模式 D 🔒 Atlas Fleet 預覽,附帶 Atlas Pro 價格和 /pro URL
- 針對推薦模式的「下一步」描述(例如,對於模式 B:「執行
task-master next」並顯示第一個就緒任務 ID (模式 B — 僅限 TaskMaster 後端))
-
呼叫
AskUserQuestion,使用一個多選項問題列出每個可用的執行模式。使用使用者面對的名稱(內部 ID 僅供此技能使用——絕不向使用者顯示):- 計劃與驅動 (模式 A) — 取得計劃,自行實作
- 自動執行 (模式 B) — TaskMaster 的原生迴圈,較輕量的驗證
- 已驗證迴圈 (模式 C) — 證據門控的單會話迴圈(當 superpowers 和迴圈執行器都存在時推薦)
- 🔒 Atlas Fleet (模式 D) — Atlas Pro $29/月,平行多會話
- 「使用其他工具…」 — 展開適用的 E–J 替代方案
- 「在決定前顯示更多詳細資訊」 — 迴圈回到步驟 4 摘要
將推薦模式標記為預設(僅當 tier=premium 且圖表可並行化時,Atlas Fleet 可能是預設)。在鎖定狀態下(免費層級)選取 Atlas Fleet 會回傳升級回應(請參閱步驟 2 中的模式 D 區塊),並僅使用免費模式(以及任何適用的替代方案)重新提示。
-
分派所選模式:
-
模式 A 交接:使用規格路徑
.taskmaster/docs/prd.md調用superpowers:writing-plans -
模式 B 交接 (模式 B — 僅限 TaskMaster 後端):顯示
task-master next命令 + 從.taskmaster/tasks/tasks.json取得的第一個就緒任務 ID -
模式 C 交接:寫入
.claude/atlas-loop-prompt.md描述任務執行合約,然後使用以下條件調用/goal:"SHIP_CHECK_OK 已由 .atlas-ai/ship-check.py 發出,且 .taskmaster/tasks/tasks.json 中的所有任務顯示 status=done,且此會話中已調用 /sync"/goal會話會持續到 Haiku 評估器驗證條件。每次疊代會執行 execute-task 13 步驟迴圈,並在步驟 13 後檢查條件。/sync必須是發出 SHIP_CHECK_OK 前的最後一個動作(根據 execute-task 終止條件)。(已於 2026-06-04 從/ralph-loop:ralph-loop遷移——Claude Code 的內建/goal評估器以結構化方式解決了控制器戴不同帽子進行三重驗證的常見問題,該問題已在 2026-06-03 稽核中被發現。) -
模式 D 交接(tier=premium):調用
/prd:execute-fleet——它負責波迴圈、工作者分派、驗證、合併和 SHIP_CHECK_OK 終止。(免費層級:僅限升級回應,重新提示)
-
鉤子被封鎖的備用方案(優雅降級)
如果 PreToolUse:AskUserQuestion 被鉤子封鎖(自動化 / 編排器 / fleet 會話),請降級為保留相同語意的散文選項表格——標籤、描述、模式 D 封鎖預覽以及正確的可選取性規則。在這種情況下,請記錄 `handoff_mode_selection: