39783cccc8
§1 接關機制(雙保險): - session-start-recall.sh:SessionStart 自動注入 status 重點 + 快照核實提醒 - /wiki-recall:fallback 命令,hook 失效時手動接關 §2 軟規範 → 硬攔截: - sdd-guard.sh:動 code 檔但無 SDD → exit 2 擋(/sdd-check 自動版) - pre-write-guard.sh:專案自訂禁令骨架(預設停用) - settings.json:掛 SessionStart + PreToolUse 配套:install.sh 下載 hooks/settings(settings 比照 CLAUDE.md 不覆蓋); README/CLAUDE.md 補文件 + 誠實限制聲明。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.5 KiB
4.5 KiB
system-dev-template
讓 Claude Code 從「猛衝的工程師」變成「有紀律的工程師」。
CC 是個優秀的工程師,但不是個好的專案經理。它會猛衝完成工作——小專案很好,大專案就會:
- 改這個壞那個:沒有全局觀,缺乏 SDD 約束
- 文件越來越亂:內建記憶不可靠,知識隨對話消失,而且它很喜歡寫文件,寫完也不去讀,還到處亂擺
這個模板用兩套系統解決這兩個問題:
| 系統 | 解決什麼 | 核心機制 |
|---|---|---|
| SDD 系統 | 全局觀、先想再做 | 動手前必須有 design.md + tasks.md |
| LLM Wiki | 記憶累積、文件有序 | 雙空間:docs/(人寫)+ .claude/wiki/(CC 整理) |
- SDD:它已經很流行了,做的最徹底應該是 Amazon Kiro,但台灣無法付費,用這個方式比什麼酷炫方式更好,逼 CC 不隨心所欲。
- LLM Wiki:是大神 Kaparthy 提出的最新的 RAG 想法,這是 Pre-compile 做法,比你公司買的用嵌入模型切割文件成向量的方式更優更不瑣碎,而且執行容易。
兩種使用方式
方式一:新專案
git clone https://github.com/uncle6me-web/system-dev-template
cp -r system-dev-template/template/. your-new-project/
cd your-new-project
然後在 CC 對話裡:
/wiki-init
方式二:已有專案(接入)
cd your-existing-project
curl -sSL https://raw.githubusercontent.com/uncle6me-web/system-dev-template/main/scripts/install.sh | bash
腳本只建立缺少的東西,已有的檔案一律不動。
安裝完後在 CC 對話裡:
/wiki-init
CC 會掃描現有文件、建立 wiki、整理 docs 結構。
CC 很喜歡寫文件到處亂擺,隨着專案越大、越久,檔案夾會很亂,但又不敢亂搬,現在把檔案夾如規範寫好,可以一次幫你把文件歸檔。 LLM Wiki 不會動你的原檔案,但它會另外建立 Wiki,修正你的入口就是 CLAUDE.md,所以它雖然搬動,你的文件不會消失。
目錄說明
system-dev-template/
├── template/ ← 複製到新專案的骨架
│ ├── CLAUDE.md ← 填空版導航牌
│ ├── docs/ ← 文件結構(六層分類)
│ └── .claude/
│ ├── wiki/ ← CC 的記憶空間
│ ├── commands/ ← Slash commands
│ ├── hooks/ ← 硬攔截(SessionStart 接關 + SDD 協議)
│ └── settings.json ← 掛 hooks
│
├── skills/
│ └── llm-wiki/ ← 複製到 Legacy-Workspace/.claude/skills/
│
├── scripts/
│ └── install.sh ← 已有專案接入腳本
│
└── docs/ ← 這個 repo 自己的說明
├── why.md ← 設計理念
├── sdd-guide.md ← SDD 系統說明
└── llm-wiki-guide.md
Slash Commands
安裝後在任何 CC 對話裡可用:
| Command | 做什麼 |
|---|---|
/wiki-init |
初始化 wiki(新專案或接入已有專案) |
/wiki-recall |
Session 開始,手動接關(hook 沒啟動時的 fallback) |
/wiki-capture |
把這次對話的結論存進 wiki |
/wiki-update |
Session 結束,更新 status.md |
/sdd-check |
確認當前任務有沒有對應 SDD |
命名閉環:init(建) → update(存,session 末) ↔ recall(接,session 初) → capture(隨時存結論)。
Hooks(軟規範 → 硬攔截)
規範不再只是 CLAUDE.md 的軟提醒,加了底線機制:
| Hook | 角色 |
|---|---|
session-start-recall.sh |
開 session 自動注入 status 重點,不靠 CC 自覺 |
sdd-guard.sh |
動 code 檔但沒有任何 SDD → 攔(exit 2),對應 /sdd-check 的自動版 |
pre-write-guard.sh |
專案自訂禁令範本骨架(預設停用,填 pattern 才生效) |
誠實限制:hook 擋語法層明顯違規(直接寫檔),擋不了藏在 helper / bash 裡的繞道。 價值是「想跳過會被抓到 + 留痕可審」,不是技術防偽——文檔(mindset)+ hook(底線)都不可省。
設計原則
- 疊加,不覆蓋:接入已有專案時,現有規範保留,wiki 系統疊上去
- 結構即協議:CC 和你共用同一個分類系統,不需要每次解釋
- CLAUDE.md 不增長:超過 100 行就是架構出問題,不是加更多內容
- 對話結論當場 capture:討論完用
/wiki-capture,知識不再消失