Files
system-dev-template/template/.claude/commands/wiki-init.md
T
Leo 29e3636bd2 feat: wiki 機敏防護三層(.wikiignore + 行內標記 + secret-scan hook)
不想被編入 wiki 的內容(密碼/金鑰/個資)三層防線:
- L1 .wikiignore:整個機敏檔不編入(glob,像 .gitignore)
- L2 行內標記 <!-- wiki:ignore -->:檔案內某段不編入
- L3 wiki-secret-scan.sh hook:機敏值真寫進 .claude/wiki/ → exit 2 擋

L3 偵測密碼賦值/PEM 私鑰/AWS·GitHub·Slack·Google·Stripe 金鑰/JWT/
連線字串帳密/台灣身分證/信用卡號;wiki-secret-ok 行尾標記可豁免誤判。
wiki-init/wiki-capture/SKILL 寫入 L1+L2 協議。

誠實限制:L1/L2 靠 CC 自律、L3 靠 regex(有偽陽/偽陰),減少意外外洩
非保險箱——真正的密鑰本就不該進版控。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 12:45:28 +08:00

87 lines
2.9 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.
# /wiki-init — 初始化或接入 LLM Wiki 系統
初始化這個專案的 LLM Wiki 記憶系統。
新專案建立空白結構,已有專案掃描現有文件並建立 wiki。
---
## 執行流程
### 第一步:偵測專案狀態
檢查以下項目,判斷是新專案還是已有專案:
- 根目錄有沒有 `.claude/wiki/`
- 根目錄有沒有 `docs/`
- 有沒有散落的 `.md` 檔案
**新專案**(幾乎空的)→ 直接建立結構,跳到第三步
**已有專案**(有文件)→ 執行第二步
### 第二步:已有專案的掃描(已有專案才執行)
1. 遞迴找出所有 `.md` 檔案
2. **先套用 `.claude/wiki/.wikiignore`**:命中 pattern 的檔案整個排除,不讀不編入。
-`.wikiignore` 不存在,從範本建立一份(預設排除 `.env`/`*.pem`/`*secret*` 等)
- 被排除的檔案在清單裡標「🚫 .wikiignore 排除」,**不可被覆蓋**
3. 對其餘檔案標注建議位置和信心度
4. 列出清單給使用者確認,**停下來等確認**
> 機敏防護(三層):
> - **L1 .wikiignore**:整檔排除(這一步)
> - **L2 行內標記**:檔案要編入但某段不要 → 遇到 `<!-- wiki:ignore -->` … `<!-- wiki:end -->` 之間的內容**略過**,只留「(此處機敏,已略過)」
> - **L3 hook**:萬一機敏值仍被寫進 wiki`wiki-secret-scan.sh` 會 exit 2 擋下
> 編入任何檔案前,先檢查是否含密碼/金鑰/個資——有就改記「位置」而非「值」。
分類規則:
```
有明確子系統 + 設計內容 → docs/3-specs/[子系統]/
解釋為什麼做某個決定 → docs/2-architecture/decisions/
說明怎麼操作 → docs/4-guides/
記錄發生過的事 → docs/5-records/
給外部使用者看的 → docs/6-user/
不確定 → 列為「待確認」,問使用者
```
### 第三步:建立缺少的結構
只建立不存在的目錄和檔案,**已有的一律不動**:
目錄:
```
docs/{1-vision,2-architecture/decisions,3-specs,4-guides,5-records/{incidents,test-reports},6-user}
.claude/wiki/
```
檔案(不存在才建):
- `.claude/wiki/INDEX.md`
- `.claude/wiki/status.md`
- `.claude/wiki/mistakes.md`
- `.claude/wiki/decisions-summary.md`
- `docs/README.md`
### 第四步:訪談(每次一個問題)
依序問:
1. 這個專案做什麼?(一句話)
2. 有哪些絕對不能違反的限制?(技術棧、架構原則等)
3. 現在進行到哪個階段?
4. 有沒有 CC 曾經犯過的錯要先記下來?
把答案填進 `CLAUDE.md`(如果存在)或建立新的。
### 第五步:已有專案的文件歸檔
(第二步確認後執行)
按照確認好的分類移動檔案,完成後更新 `CLAUDE.md` 的路徑引用。
### 第六步:完成報告
告知:
```
✅ wiki-init 完成
建立了:[列出新建的目錄和檔案]
跳過了:[列出已有因此不動的]
下一步:用 /wiki-capture 把重要決策存進 wiki
```