Files
tea-sdlc/prompts/sdlc-analyze.md
T
jiantw83 744eee04ba feat(sdlc-analyze): 加入交付優先確認流程
讓 sdlc-analyze 逐項確認七種交付文件與 PERT 三點估算,排序交付工作包並在確認前阻擋建立與排程;補上流程正本測試。
2026-09-22 15:06:08 +08:00

3.9 KiB

name: sdlc-analyze description: 僅由 /sdlc-analyze 指令叫用。對一顆需求議題執行可行性檢查,逐題問到共識後產生工作包議題並排上時程。

sdlc-analyze

輸入

一個需求議題編號。先用 scripts/issue-extract.js 讀取結構化內容;先看 未處理留言數。若有留言,直接走 /sdlc-sync 的流程,完成後自動接回這裡;不要要求使用者重打指令。接回前重新抽取一次拿到更新後的描述;若使用者不整併,繼續並在摘要註明。

第一段:可行性分析

依序讀取並逐條對照:

  1. references/feasibility-architecture.md
  2. references/feasibility-logic.md
  3. references/feasibility-data.md
  4. references/feasibility-schedule.md

能從程式碼查證的事項自行查證;只有需要使用者決策的事項才提問。架構、邏輯、資料、時程四類依序完成,每次只問一題,每題提供建議與理由,以及手動輸入的方式。最後輸出共識摘要、變更假設、未決事項與人天估算;摘要只印終端,不寫入 Gitea。

交付文件判斷

使用者確認共識摘要後,讀取 references/delivery-types.md,列出這次需求需要交付或驗收的文件,並依序逐一詢問:

  1. 需求描述概要
  2. WBS(工作分解結構)
  3. 流程圖
  4. 甘特圖
  5. PERT 圖
  6. 關鍵路徑圖
  7. API 契約文件

每一種文件都要先展示必要內容骨架,再給出是否需要的建議與理由,最後讓使用者確認、拒絕或手動調整;不得把七種文件合併成一次確認。確認結果要保留文件順序、必要內容、產出位置與 ELI5 變體規則。API 契約文件只能交付預覽或使用者確認的位置,禁止寫入目標專案 repo。

使用者未確認或拒絕任何一項時,立即停止,不建立工作包、不排程、不建立相依、不寫入 Milestone、看板或其他後續資料。

PERT 三點估算

對每一個需要排程的工作包,分別逐題詢問樂觀時間(O)、最可能時間(M)、悲觀時間(P);每題都提供建議、理由與手動輸入方式。三個值都確認後才納入排程資料,不得用單一人天估算代替,也不得在確認前建立工作包或排程。

第二段:產生工作包

確認交付/驗收項目與所有必要的 PERT 三點估算後,依共識切出可獨立完成的工作包,套用 templates/work-package-issue.md。每顆工作包的待辦與驗收都要可逐項勾選;對應已確認交付項目的待辦置於第一項。

工作包排序先放已確認的交付文件工作包,再放純程式碼工作包;排序只在不違反先決關係時生效,若交付文件工作包依賴其他工作包,仍以拓撲順序為準。每顆工作包只做一種交付,並在描述中保留文件類型、必要內容、產出位置與驗收方式。

每顆工作包先以 scripts/issue-create.js --dry-run 檢查,再移除旗標實跑。只使用既有標籤。建立後回報編號、標題與網址。 重跑同一需求時,先以既有議題與標題查重;已存在的工作包只沿用其編號與相依,不建立重複工作包。

第三段:排程

所有工作包建立且相依關係確認後,以 startDate、days 與 depends 組成計畫檔,執行 scripts/schedule.js 計算截止日;依序用 issue-link.js、issue-update.js 與 project-add.js 補上既有相依、Milestone、看板、截止日與人天估算。各腳本先 dry-run,再實跑。日期與人天是排程資料,不是耗時統計。

邊界

  • 不產生 HTML、SVG、manifest、截圖、附件或任何平台 preview。
  • 不建立 Milestone 或專案看板。
  • 不修改使用者專案檔案。
  • 不關閉或刪除既有議題。
  • 不把 API 契約文件寫入目標專案 repo。
  • 共識摘要、交付文件確認與 PERT 三點估算完成前,不建立任何工作包、不排程、不寫入後續資料。