7bd7b4b26a
- 鋪檔(自 system-dev-template v1.15.0):SDD-LIFECYCLE.md+pending-changes.md +sdd-guard.sh(覆蓋舊版,加單一活性檢查)+sdd-check.md+sdd-active-check.sh - settings.json PreToolUse(Write|Edit|MultiEdit)掛上 sdd-guard.sh - 全部 SDD design.md 掛 frontmatter:portal-auth=active(現行 portal 線, #61 demo 四件套剛 merge);artifact-sharing=draft(零任務動工); 其餘 16 份=paused(皆有未完成任務,無明顯死件,不硬 close) - CLAUDE.md 加「SDD 生命週期鐵律」段(指向 SDD-LIFECYCLE.md+濃縮五條) +SDD 速查表改以 frontmatter status: active 為現行判準 - 驗證:sdd-active-check exit 0(恰 1 份 active);guard pipe-test code 檔 exit 0 帶現行 SDD 提示;反向測試(造 2 份 active)guard exit 2/check exit 1 全擋 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
/sdd-check — 確認當前任務有沒有對應 SDD
動手前執行。確保 CC 有全局觀,不會在沒有設計文件的情況下猛衝。
生命週期(單一活性鐵律,全文見 system-dev/docs/3-specs/SDD-LIFECYCLE.md)
五條鐵律摘要:
-
單一活性:任何時刻整個 repo 只允許一份
status: active的 SDD;所有開發任務對應它的 tasks,找不到對應任務 → 停下來問,不准直接做。 -
禁止自行建立 SDD:澄清問題→回答不動文件;任務層變更→更新現行 SDD 的 tasks(標日期與原因);規格層變更→走第 3 條。
-
規格變更只有一條路:change proposal 寫進
system-dev/docs/3-specs/pending-changes.md(摘要+觸發原因+影響分析),然後停止等使用者「confirm」。 -
開新 SDD 的唯一時機:使用者 confirm 後——先把舊 SDD 未完成任務逐條搬入新 SDD(做完前不准寫 code)→ 舊的標
closed+superseded_by移入archive/→ 新 SDD changelog 記繼承 → 列搬移/作廢清單請最終確認。 -
每次 session 開始先讀 active SDD 與 pending-changes.md,回報三個數字:
📐 現行規格:〈SDD 名稱〉 📋 未完成任務:N ⚖️ 待裁決 proposal:M若出現兩份 active=規則已被違反,當場糾正(收斂到一份,其餘 paused/closed)。
執行流程
第一步:理解任務
確認使用者要做什麼:
- 涉及哪個子系統?
- 是新功能還是修改現有功能?
- 影響範圍?
第二步:尋找對應 SDD
在 system-dev/docs/3-specs/ 下尋找對應的子系統目錄,確認有沒有:
design.md(設計文件)tasks.md(任務清單)
第三步:根據結果回應
情況 A:找到對應 SDD
✅ 找到 SDD:system-dev/docs/3-specs/[子系統]/
📋 design.md:[確認]
📋 tasks.md:[確認,列出相關 task]
🎯 對應 task:[編號和描述]
繼續嗎?
情況 B:找不到 SDD,任務明確
⚠️ 找不到對應 SDD
任務:[描述]
建議在 system-dev/docs/3-specs/[建議子系統名]/ 建立 SDD
要我幫你起草 design.md 嗎?(需要你確認後才動手)
情況 C:找不到 SDD,任務模糊
⚠️ 找不到對應 SDD,而且任務範圍不夠清楚
請先回答:
1. 這個功能屬於哪個子系統?
2. 完成的標準是什麼?
3. 有沒有不能動的邊界?
注意
- 找不到 SDD 不等於可以直接動手
- 小修改(修 bug、改文字)可以豁免,但要明確說「這是小修改,範圍是 X」
- 新功能、架構變動、跨模組的修改 → 一定要有 SDD