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>
This commit is contained in:
2026-06-20 12:45:28 +08:00
parent 39783cccc8
commit 29e3636bd2
6 changed files with 192 additions and 2 deletions
+20
View File
@@ -57,6 +57,26 @@ description: >-
---
## 機敏內容防護(三層)
有些內容不該被編入 wiki——密碼、API 金鑰、私鑰、個資。三層防線:
| 層 | 機制 | 擋什麼 | 性質 |
|----|------|--------|------|
| **L1** | `.claude/wiki/.wikiignore`glob,像 .gitignore | 整個機敏檔不編入 | 協議(CC 遵守) |
| **L2** | 行內標記 `<!-- wiki:ignore -->``<!-- wiki:end -->` | 檔案內某段不編入 | 協議(CC 遵守) |
| **L3** | `wiki-secret-scan.sh` hookPreToolUse | 機敏值真的寫進 wiki → exit 2 擋 | 硬攔截(機械偵測) |
**CC 的守則**
1. init/migrate 掃描時,**先套 `.wikiignore`** 再分類;命中的檔案不讀不編入。
2. 編入任何內容前,自檢有無密碼/金鑰/個資——有就記「位置」不記「值」。
3. L3 是兜底底線,不是藉口:別把機敏值帶到寫入那一刻才靠 hook 攔。
> 誠實限制:L1/L2 靠 CC 自律,L3 靠 regex 特徵(有偽陽/偽陰)。
> 這是「減少意外外洩」的機制,不是保險箱。真正的密鑰本就不該進版控。
---
## 流程 A:新專案 Init
1. 建立目錄結構