Files
system-dev-template/docs/why.md
T
2026-06-08 16:06:18 +08:00

71 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 為什麼需要這個模板
## CC 是個優秀的工程師,但不是個好的專案經理
Claude Code 執行力強、速度快。小專案裡這是優點,大專案裡變成問題:
**問題一:改這個壞那個**
CC 沒有全局觀。它在每個 session 裡從零開始,不知道上次做了什麼、哪些東西不能動、
為什麼做了這個決定。結果就是:修了 A,壞了 B,下次又把 B 修回來,再壞了 A。
**問題二:文件越來越亂,記憶不可靠**
隨著開發,對話裡累積了大量決策、踩坑記錄、架構說明。但這些知識:
- 存在對話歷史裡,新 session 全部消失
- 就算寫成文件,散落在根目錄、各種 md 裡,CC 找不到
- 即使找到了,是給人看的語言,不是給 LLM 的格式
最後的結果:**你變成那個唯一的記憶**。你要重複解釋同樣的事,
CC 要重複犯同樣的錯。
---
## 兩套系統,解決兩個問題
### SDD 系統:給 CC 全局觀
靈感來自 Kiro 的做法。核心原則只有一條:**動手前必須有設計文件**。
```
使用者提需求
CC 找對應 SDDdocs/3-specs/[子系統]/design.md
找到 → 讀 design.md + tasks.md,宣告範圍再動手
找不到 → 停手問使用者,不自行猜測
```
SDD 強制 CC 在動手前先思考:這個修改影響哪些地方?有沒有超出範圍?
有沒有違反既定的技術限制?
### LLM Wiki:給 CC 可累積的記憶
靈感來自 Andrej Karpathy 的 LLM Wiki 概念——不用 embedding
只靠 pre-compile 把知識整理成 LLM 友善的格式。
**雙空間設計:**
- `docs/`:人寫的原始文件,依照開發生命週期分類
- `.claude/wiki/`:CC 整理的 LLM 友善知識,每次 session 累積
每次 session 開始,CC 讀 wiki,不需要重新學習。
每次 session 結束,CC 更新 wiki,知識不再消失。
---
## 設計原則
**疊加,不覆蓋**
接入已有專案時,現有的規範、文件、CLAUDE.md 全部保留,
新系統疊加上去,不破壞已有的東西。
**結構即協議**
固定的目錄結構讓 CC 和你共用同一套分類規則。
你把任何文件丟進來,CC 知道要收到哪裡。
**CLAUDE.md 不增長**
CLAUDE.md 是導航牌,不是內容倉庫。超過 100 行就是架構出問題,
不是加更多內容的信號。
**對話結論必須 capture**
最重要的知識往往在對話裡,不在文件裡。
`/wiki-capture` 解決這個問題:討論完當場存,知識不再隨對話消失。