7b83465acf
leo 2026-07-17 拍板:任何時刻每 repo 只有一份現行 SDD(status: active)。 - 新增 3-specs/SDD-LIFECYCLE.md:frontmatter 狀態標記(active|draft|paused|closed + superseded_by)+五條鐵律(單一活性/禁 CC 自建 SDD/規格變更走 pending-changes.md 等 confirm/開新 SDD 先逐條搬舊任務才准寫 code/session 開始回報三數字) - 新增 3-specs/pending-changes.md:規格變更緩衝區骨架(待裁決/已裁決留底) - TEMPLATE-sdd/design.md 掛 frontmatter(status: draft),移除舊「> 狀態」blockquote - sdd-guard.sh 升級:active>1 不論寫什麼檔一律 exit 2;寫 code 檔需恰好 1 份 active;老 repo 無 frontmatter 退回舊行為(統計排除 archive/ 與 TEMPLATE) - 新增 template/scripts/sdd-active-check.sh:獨立檢查,pre-commit/CI 可掛,>1 exit 1 - /sdd-check 加生命週期段(五鐵律摘要+三數字回報格式);template/CLAUDE.md 鐵律指向 SDD-LIFECYCLE.md - install.sh/update.sh 鋪齊新檔(issue #13 教訓:update 不補新檔=結構斷層) - 三情境 pipe-test 真跑通過:兩份 active 擋(2)/一份放行(0)/零 frontmatter 退舊行為(0) - 版號:遠端已被 issue #5(vault 萃取)佔走 1.14.0,本案改記 1.15.0 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
83 lines
3.1 KiB
Markdown
83 lines
3.1 KiB
Markdown
# CLAUDE.md — [專案名稱]
|
||
|
||
> 導航牌。細節在兩個地方,不在這裡。
|
||
> 這個檔案不增長——超過 100 行就是放錯地方了。
|
||
|
||
---
|
||
|
||
## 絕對鐵律(違反 = 停手)
|
||
|
||
1. **任何 code 變動前必須有對應 SDD**,且遵守 **SDD 生命週期鐵律**(全文:`system-dev/docs/3-specs/SDD-LIFECYCLE.md`):
|
||
- **單一活性**:任何時刻只有一份 `status: active` 的 SDD,所有任務對應它的 tasks
|
||
- **禁止自行建立 SDD**:找不到對應 → 停手問 [負責人]
|
||
- **規格層變更**:proposal 寫進 `3-specs/pending-changes.md`,等使用者「confirm」才動
|
||
- **開新 SDD**(confirm 後):先把舊 SDD 未完成任務搬進新 SDD,才准寫 code
|
||
- **session 開始**回報:「現行規格〈名稱〉+未完成任務 N+待裁決 proposal M」
|
||
2. [技術棧限制,例如:前端只用 React,不引入其他框架]
|
||
3. [其他專案特定限制]
|
||
|
||
---
|
||
|
||
## 工作流程(強制)
|
||
|
||
開始任一任務,按順序:
|
||
|
||
1. 讀 `system-dev/wiki/status.md`(3 分鐘,了解當前狀態)
|
||
2. 確認有對應 SDD(`system-dev/docs/3-specs/`)
|
||
3. 在回覆開頭宣告:
|
||
```
|
||
📋 已讀 SDD:<路徑>
|
||
🎯 對應 task:<編號>
|
||
🚧 執行範圍:<會動哪些檔案>
|
||
```
|
||
4. 完成後更新 `system-dev/wiki/status.md`
|
||
|
||
---
|
||
|
||
## Wiki 讀取順序
|
||
|
||
| 檔案 | 時機 | 用途 |
|
||
|------|------|------|
|
||
| `system-dev/wiki/status.md` | session 開始第一件事 | 當前進度、下一步 |
|
||
| `system-dev/wiki/mistakes.md` | 做新功能前 | 已知誤解 + 快速檢查清單 |
|
||
| `system-dev/wiki/decisions-summary.md` | 遇到設計判斷時 | 架構決策快速查 |
|
||
|
||
> 開 session 由 `SessionStart` hook 自動注入 status 重點。沒自動接關 → 打 `/wiki-recall`。
|
||
> status/wiki 是 **快照非即時狀態**:讀快照 **+ 核實快照**,不盲信。
|
||
|
||
---
|
||
|
||
## 整理 wiki 的方法(採集規則所在地)
|
||
|
||
> 要「採集/改寫 wiki」時,完整規則(三層架構、frontmatter 標籤、typed-edge 三元組、**gloss 定義句**)
|
||
> 不在本檔,而在下表。**動手採集前先讀對應那份**,不要憑印象做。
|
||
|
||
| 由誰整理 | 規則檔(採集當下必讀) |
|
||
|----------|------------------------|
|
||
| **Claude Code(CC)** | `/wiki-init`(初始化/採集)、`/wiki-capture`(存結論),規則寫在指令內文 |
|
||
| **Claude.ai(Cowork)** | `system-dev/docs/SKILL.md`(skill `wiki-cowork-scan`),與 CC 共用同一套規則 |
|
||
|
||
兩條路徑**輸出格式相同、規則一致**:gloss、typed-edge、標籤的寫法在兩份裡都有,任一方整理過另一方不覆蓋。
|
||
|
||
---
|
||
|
||
## 規範索引
|
||
|
||
| 檔案 | 內容 |
|
||
|------|------|
|
||
| `system-dev/docs/README.md` | 文件分類規則 |
|
||
| `system-dev/docs/3-specs/` | 所有 SDD |
|
||
| `system-dev/docs/2-architecture/decisions/` | 架構決策記錄 |
|
||
|
||
---
|
||
|
||
## 文件位置速查
|
||
|
||
| 類別 | 位置 |
|
||
|------|------|
|
||
| 架構決策 | `system-dev/docs/2-architecture/decisions/` |
|
||
| SDD | `system-dev/docs/3-specs/[子系統]/` |
|
||
| 操作手冊 | `system-dev/docs/4-guides/` |
|
||
| 事件記錄 | `system-dev/docs/5-records/incidents/` |
|
||
| 測試報告 | `system-dev/docs/5-records/test-reports/` |
|