SDD 生命週期鐵律:單一活性+pending-changes 緩衝+硬約束 hook(leo 2026-07-17 拍板) #6

Closed
opened 2026-07-17 08:39:39 +00:00 by Leo · 1 comment
Owner

leo 拍板(源自 claude.ai 草案+總管適配):

  1. 單一活性:3-specs 下任何時刻只允許一份 status: active 的 SDD,所有開發任務對應它的 tasks
  2. CC 禁止自行建 SDD;使用者意見分類:澄清/任務層(改現行 tasks)/規格層(走 proposal)
  3. 規格變更唯一路徑=pending-changes.md 寫 proposal(含影響分析),等 confirm
  4. 開新 SDD:搬移未完成任務(做完前不准寫 code)→ 舊的 closed+superseded_by 入 archive/ → changelog 記繼承 → 列清單請最終確認
  5. session 開始回報三數字:現行規格+未完成任務數+待裁決 proposal 數

硬約束:sdd-guard.sh 升級(active>1 擋全部寫檔;寫 code 需恰好 1 active)+新 scripts/sdd-active-check.sh(pre-commit/CI 可掛)。

design.md 掛 YAML frontmatter:status: active|draft|paused|closed + superseded_by。

實作由總管 subagent 進行,本 issue 留底。

leo 拍板(源自 claude.ai 草案+總管適配): 1. 單一活性:3-specs 下任何時刻只允許一份 status: active 的 SDD,所有開發任務對應它的 tasks 2. CC 禁止自行建 SDD;使用者意見分類:澄清/任務層(改現行 tasks)/規格層(走 proposal) 3. 規格變更唯一路徑=pending-changes.md 寫 proposal(含影響分析),等 confirm 4. 開新 SDD:搬移未完成任務(做完前不准寫 code)→ 舊的 closed+superseded_by 入 archive/ → changelog 記繼承 → 列清單請最終確認 5. session 開始回報三數字:現行規格+未完成任務數+待裁決 proposal 數 硬約束:sdd-guard.sh 升級(active>1 擋全部寫檔;寫 code 需恰好 1 active)+新 scripts/sdd-active-check.sh(pre-commit/CI 可掛)。 design.md 掛 YAML frontmatter:status: active|draft|paused|closed + superseded_by。 實作由總管 subagent 進行,本 issue 留底。
Author
Owner

[system-dev-template CC] issue #6 完成,commit 7b83465 已推 main(版號 1.15.0——1.14.0 被 issue #5 vault 萃取先佔走)。

落地內容

  • 新增 template/system-dev/docs/3-specs/SDD-LIFECYCLE.md:規則真相源(frontmatter 狀態標記+五條鐵律,照 leo 2026-07-17 拍板全文)
  • 新增 template/system-dev/docs/3-specs/pending-changes.md:規格變更緩衝區骨架(待裁決/已裁決留底)
  • TEMPLATE-sdd/design.md 掛 frontmatter(status: draft),舊「> 狀態」blockquote 移除
  • sdd-guard.sh 升級:active>1 → 不論寫什麼檔一律 exit 2;寫 code 檔需恰好 1 份 active(=0 擋、指向 SDD-LIFECYCLE.md);向下相容——3-specs 無任何 frontmatter design.md(老 repo)退回舊行為;統計排除 archive/ 與 TEMPLATE(否則 update 一鋪新 TEMPLATE 老 repo 就誤判已遷移而全紅)
  • 新增 template/scripts/sdd-active-check.sh(+x):獨立硬約束,pre-commit/CI 可掛,>1 → 列清單 exit 1
  • /sdd-check 加「生命週期」段(五鐵律摘要+session 三數字回報格式+兩份 active 當場糾正)
  • template/CLAUDE.md 絕對鐵律指向 SDD-LIFECYCLE.md、濃縮五條
  • install.sh/update.sh 鋪齊全部新檔(SDD-LIFECYCLE→update_file、pending-changes→add_if_missing 不覆蓋用戶 proposal、sdd-active-check→system-dev/scripts/;issue #13 教訓已守)
  • 根目錄 dogfood 鏡像(.claude/hooks、.claude/commands、docs/3-specs)已同步(gitignored 本地副本)

測試(真跑,pipe-test fixture,已清)

情境 sdd-guard.sh sdd-active-check.sh
兩份 active exit 2(寫 code 檔、寫 md 檔都擋,列出兩份清單) exit 1(列清單)
恰好一份 active exit 0(放行+提醒現行 SDD) exit 0
零 frontmatter(老 repo) exit 0(退回舊行為放行+提醒補標記);完全無 design.md 時 exit 2 exit 0

另驗:0 份 active 但有 frontmatter → 寫 code 檔 exit 2;archive/ 內 active 與 TEMPLATE 的 draft frontmatter 不計入統計。

[system-dev-template CC] issue #6 完成,commit 7b83465 已推 main(版號 1.15.0——1.14.0 被 issue #5 vault 萃取先佔走)。 **落地內容** - 新增 `template/system-dev/docs/3-specs/SDD-LIFECYCLE.md`:規則真相源(frontmatter 狀態標記+五條鐵律,照 leo 2026-07-17 拍板全文) - 新增 `template/system-dev/docs/3-specs/pending-changes.md`:規格變更緩衝區骨架(待裁決/已裁決留底) - `TEMPLATE-sdd/design.md` 掛 frontmatter(`status: draft`),舊「> 狀態」blockquote 移除 - `sdd-guard.sh` 升級:active>1 → 不論寫什麼檔一律 exit 2;寫 code 檔需恰好 1 份 active(=0 擋、指向 SDD-LIFECYCLE.md);向下相容——3-specs 無任何 frontmatter design.md(老 repo)退回舊行為;統計排除 archive/ 與 TEMPLATE(否則 update 一鋪新 TEMPLATE 老 repo 就誤判已遷移而全紅) - 新增 `template/scripts/sdd-active-check.sh`(+x):獨立硬約束,pre-commit/CI 可掛,>1 → 列清單 exit 1 - `/sdd-check` 加「生命週期」段(五鐵律摘要+session 三數字回報格式+兩份 active 當場糾正) - `template/CLAUDE.md` 絕對鐵律指向 SDD-LIFECYCLE.md、濃縮五條 - install.sh/update.sh 鋪齊全部新檔(SDD-LIFECYCLE→update_file、pending-changes→add_if_missing 不覆蓋用戶 proposal、sdd-active-check→system-dev/scripts/;issue #13 教訓已守) - 根目錄 dogfood 鏡像(.claude/hooks、.claude/commands、docs/3-specs)已同步(gitignored 本地副本) **測試(真跑,pipe-test fixture,已清)** | 情境 | sdd-guard.sh | sdd-active-check.sh | |---|---|---| | 兩份 active | exit 2(寫 code 檔、寫 md 檔都擋,列出兩份清單) | exit 1(列清單) | | 恰好一份 active | exit 0(放行+提醒現行 SDD) | exit 0 | | 零 frontmatter(老 repo) | exit 0(退回舊行為放行+提醒補標記);完全無 design.md 時 exit 2 | exit 0 | 另驗:0 份 active 但有 frontmatter → 寫 code 檔 exit 2;archive/ 內 active 與 TEMPLATE 的 draft frontmatter 不計入統計。
Leo closed this issue 2026-07-17 08:54:00 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leo/system-dev-template#6