SDD 生命週期鐵律遷移:單一活性制度上線(portal-auth=active,其餘 paused/draft)
- 鋪檔(自 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>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# SDD 生命週期鐵律(不可違反)
|
||||
|
||||
> 來源:leo 2026-07-17 拍板。
|
||||
> 適用:`system-dev/docs/3-specs/` 下的「規格 SDD」(requirements/design/tasks 三件式資料夾)。
|
||||
> **不適用**:派工表/sprint 檔、journeys/ 卷宗、TEMPLATE-sdd、README、pending-changes.md——它們不是 SDD,不掛 status。
|
||||
|
||||
## 狀態標記(機器可查)
|
||||
|
||||
每個 SDD 資料夾的 `design.md` 最上方掛 YAML frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
status: active # active | draft | paused | closed
|
||||
superseded_by: "" # closed 且被取代時填接替的 SDD 資料夾名
|
||||
---
|
||||
```
|
||||
|
||||
- `active`:現行規格,全 repo 開發任務唯一對應源。**任何時刻整個 repo 最多一份。**
|
||||
- `draft`:起草中,尚未採納。
|
||||
- `paused`:動過工、暫停中;恢復=升回 active(先收掉現任 active)或被新 SDD 繼承。
|
||||
- `closed`:已完成或被取代;被取代者填 `superseded_by` 並移入 `3-specs/archive/`。
|
||||
|
||||
## 五條鐵律
|
||||
|
||||
1. **單一活性**:任何時刻只允許一份 `status: active`。所有開發任務必須對應這份 SDD 的 tasks。找不到對應任務 → 停下來問,不准直接做。
|
||||
2. **禁止自行建立 SDD**:CC 在任何情況下不得主動建新 SDD。收到使用者意見先分類:澄清問題→回答即可不動文件;任務層變更(不影響核心設計)→更新現行 SDD 的 tasks 區段並標日期與原因;規格層變更(核心設計/方向改變)→走第 3 條,不准直接改 spec。
|
||||
3. **規格變更只有一條路**:產出 change proposal 寫入 `system-dev/docs/3-specs/pending-changes.md`(變更摘要與觸發原因+影響分析:現行 SDD 哪些任務作廢/修改/不受影響/尚未完成),然後**停止**,等使用者明說「confirm」。沒 confirm 就繼續依現行 SDD 工作。多個 proposal 可並存緩衝區、由人一次裁決——CC 的速度導向影響分析,不是規格增生。
|
||||
4. **開新 SDD 的唯一時機**:使用者 confirm 一份規格層 proposal 時,依序:
|
||||
a. 舊 SDD 未完成且仍有效的任務**逐條搬入**新 SDD 的 tasks——**這步做完前不准寫任何程式碼**(強迫顯式盤點,遺漏會在 d 的清單被看到,而不是三天後才發現)。
|
||||
b. 舊 SDD frontmatter 改 `status: closed, superseded_by: <新SDD>`,資料夾移入 `3-specs/archive/`。
|
||||
c. 新 SDD 的 changelog 首行記錄:繼承自哪份、為何取代。
|
||||
d. 向使用者列出「已搬移任務清單」與「已作廢任務清單」請求最終確認。
|
||||
5. **每次 session 開始**:先讀現行 active SDD 與 pending-changes.md,回報三個數字——「現行規格〈名稱〉+未完成任務 N+待裁決 proposal M」——再開始工作。若回報出現兩份 active=規則已被違反,當場糾正。
|
||||
|
||||
## 硬約束(不信任單點自律,用結構保證不變量)
|
||||
|
||||
- `.claude/hooks/sdd-guard.sh`(PreToolUse Write|Edit):active 數 >1 → 任何寫檔一律擋;寫 code 檔需恰好 1 份 active。
|
||||
- `scripts/sdd-active-check.sh`:獨立檢查,pre-commit / CI 可掛,違反 exit 1。
|
||||
- 誠實限制:hook 只擋語法層明顯違規,繞道可行但留痕可審;不聲稱不可繞過。
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design Document: arcrun MVP
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design Document: u6u Platform Evolution
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: draft
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Artifact Sharing — Design
|
||||
|
||||
> 狀態:草稿(待 review)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Auth Recipe System — SDD
|
||||
|
||||
> 文件類型:SDD(Software Design Document)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design Document: Credential Primitives TS → WASM 改寫
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Frontend Redesign — Design
|
||||
|
||||
> 讀此檔前請先讀 `requirements.md` 和 `design-source/index.html`。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design: KBDB Base —— 原子化萬用表(self-hosted 資料底座 + 官方核心)
|
||||
|
||||
> 2026-06-07 richblack 拍板。來源:壓測報告(`test_arcrun/docs/壓測報告.md`)暴露 self-hosted 無資料層 →
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# arcrun.dev Landing Page — SDD
|
||||
|
||||
> **目標**:給工程師一個門面,可以取得 API Key、管理 Key、探索 API(Swagger),同時藉此獲得會員 Email。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design Document: arcrun SDK Libraries + Website
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# search-console — arcrun 自帶搜尋/控制台頁(Gitea Arcrun#3 授權新建)
|
||||
|
||||
> 授權:Gitea `Leo/Arcrun#3`(leo 2026-07-02 拍板「本 issue 即 leo 授權」)。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design: Component Gatekeeping(零件投稿真把關)
|
||||
|
||||
> 2026-05-29。實作 requirements.md 的 R1-R6。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# SDD: arcrun Component Registry 正典化(Component Registry Canon)
|
||||
|
||||
> 2026-05-07 建立。狗糧發現的根本問題:registry 活著但 index 空的,AI 找不到零件就會繞回 Python。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design: 資料外流警示(Data Exfiltration Warning)
|
||||
|
||||
> 2026-05-30。實作 requirements.md。**本 design 需 richblack review 後才動 code。**
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design: LI (LLM Interface) for arcrun
|
||||
|
||||
> v0.1 — 2026-05-16
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Pending Changes(規格變更緩衝區)
|
||||
|
||||
> 規則來源:`SDD-LIFECYCLE.md` 第 3、4 條。
|
||||
> 規格層變更(核心設計/方向改變)**只有這一條路**:CC 把 change proposal 寫進「待裁決」——
|
||||
> 變更摘要與觸發原因+影響分析(現行 SDD 哪些任務作廢/修改/不受影響/尚未完成)——然後**停止**,
|
||||
> 等使用者明說「confirm」才依第 4 條開新 SDD;沒 confirm 就繼續依現行 SDD 工作。
|
||||
> 多個 proposal 可並存,由人一次裁決。本檔不是 SDD,不掛 status。
|
||||
|
||||
## 待裁決
|
||||
|
||||
(無)
|
||||
|
||||
## 已裁決
|
||||
|
||||
(無——裁決後從「待裁決」移到這裡留底,標 confirmed / rejected + 日期。)
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: active
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# portal-auth — Design(RAG Portal 多人授權)
|
||||
|
||||
> 狀態:**定案**(2026-07-14 總管審過+leo 裁 D-4=A/D-8=admin,PR #49)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# SDD: arcrun Recipe System(容器 + Recipe 模式)
|
||||
|
||||
> 2026-05-07 建立。吃狗糧寫 wiki 合成 workflow 時撞牆發現的平台缺口。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# SDD: Resumable Workflow(webhook callback 喚醒)
|
||||
|
||||
> 2026-05-07 建立。狗糧寫 wiki 合成 workflow 時,Mira daemon 對長草稿(>2KB)切非同步模式回 `{pending, task_id, poll_url}`,cypher-executor 沒處理就直接傳下游。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# thin-shell-alignment — Design
|
||||
|
||||
> **狀態**:草案,待確認。對應 `requirements.md`。
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# Design: 用戶 CC harness(acr install-harness)
|
||||
|
||||
> 2026-06-03。richblack 已授權建此 SDD(白名單已加)。**待 review design 後動 code。**
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
status: paused
|
||||
superseded_by: ""
|
||||
---
|
||||
|
||||
# workflow-discovery — Design
|
||||
|
||||
> **狀態**:草案,待確認。對應 `requirements.md`。
|
||||
|
||||
Reference in New Issue
Block a user