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

2.9 KiB
Raw Blame History

/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:萬一機敏值仍被寫進 wikiwiki-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