71 lines
2.5 KiB
Markdown
71 lines
2.5 KiB
Markdown
# 為什麼需要這個模板
|
||
|
||
## CC 是個優秀的工程師,但不是個好的專案經理
|
||
|
||
Claude Code 執行力強、速度快。小專案裡這是優點,大專案裡變成問題:
|
||
|
||
**問題一:改這個壞那個**
|
||
CC 沒有全局觀。它在每個 session 裡從零開始,不知道上次做了什麼、哪些東西不能動、
|
||
為什麼做了這個決定。結果就是:修了 A,壞了 B,下次又把 B 修回來,再壞了 A。
|
||
|
||
**問題二:文件越來越亂,記憶不可靠**
|
||
隨著開發,對話裡累積了大量決策、踩坑記錄、架構說明。但這些知識:
|
||
- 存在對話歷史裡,新 session 全部消失
|
||
- 就算寫成文件,散落在根目錄、各種 md 裡,CC 找不到
|
||
- 即使找到了,是給人看的語言,不是給 LLM 的格式
|
||
|
||
最後的結果:**你變成那個唯一的記憶**。你要重複解釋同樣的事,
|
||
CC 要重複犯同樣的錯。
|
||
|
||
---
|
||
|
||
## 兩套系統,解決兩個問題
|
||
|
||
### SDD 系統:給 CC 全局觀
|
||
|
||
靈感來自 Kiro 的做法。核心原則只有一條:**動手前必須有設計文件**。
|
||
|
||
```
|
||
使用者提需求
|
||
↓
|
||
CC 找對應 SDD(docs/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` 解決這個問題:討論完當場存,知識不再隨對話消失。
|