# 更新紀錄 CHANGELOG > 每次改了什麼,都記在這。版號對應 `template/.claude/VERSION`。 > 想更新到最新版?看 [README → 一鍵更新](README.md#-已安裝舊版一鍵更新)。 版號規則(語意化版本,簡化版): - **大版號**(1.x → 2.x):破壞性變動,舊專案更新後可能要手動調整。 - **中版號**(1.0 → 1.1):加了新功能,向下相容,更新即用。 - **小版號**(1.1.0 → 1.1.1):修 bug、改文件,無新功能。 --- ## 1.4.0 — wiki-init 新增「草稿改寫模式」:AI 當總編輯(issue #4) **背景**:在 Logseq vault(234 篇 pages + journals)壓測 `/wiki-init`,發現它整套指令語言只有「分類歸檔/導航」,把人和 AI 都導向做出一個 `[[原文檔名]]` 指回原文的**索引**。但 PKM / vault 使用者的心智模型常是相反的——原文只是**草稿**(轉錄稿、隨手記),要 AI **改寫萃取成自包含 wiki**,之後讀 wiki 就好、不必回原文。template 沒區分這兩種,且預設了「原文是成品」。 **新增** - `wiki-init.md` 開頭新增**模式分岔(第零步)**:索引模式 vs **草稿改寫模式(AI 當總編輯)**,附對照表講清楚原文角色、INDEX 連結、回答方式的差異。 - **偵測到 PKM vault(Logseq/Obsidian)→ 預設草稿改寫模式**,但明確問一句讓使用者可切回索引模式。 - **一般專案 → 預設索引模式**(維持原行為,向下相容)。 - 草稿改寫模式的產出規則(第五步):概念原子化、自包含、保留來源指針(可追溯但不必回讀)、`[[wikilink]]` 互連——與 claude.ai Cowork 的 `docs/SKILL.md` 改寫邏輯**一致**,CC / Cowork 兩條路徑產出同一種 wiki。 - `INDEX.md` 範本:草稿模式下改成「概念索引」指向 wiki **內部**改寫條目,而非指回原文。 **不變**:raw source 永遠唯讀,兩種模式都只往 `.claude/wiki/` 寫,絕不搬移/改名原文。 --- ## 1.3.1 — 修:update.sh 不再覆蓋客製的 pre-write-guard.sh(issue #3) **修正** - `scripts/update.sh` 原本把 `pre-write-guard.sh` 列在「覆蓋更新」區,**無條件**用模板空殼蓋掉。 但此檔的定位是「使用者手填的 guardrail 客製檔」(CHANGELOG 1.2.0),下游通常已塞滿自己的 enforcement, 且 `update_file` 覆蓋**無 `.bak` 備份**——跑一次 update 等於無聲關掉整套 guardrail(如 Arcrun 的 KNOWN_SDDS 白名單、薄殼原則強制等數百行)。 - 改法(issue 建議方案 1):新增 `keep_with_template()`,把 `pre-write-guard.sh` 移出覆蓋區。 **原檔永不覆蓋**,改把最新模板版另存成 `pre-write-guard.template.sh` 旁邊,更新結尾印出 `diff` 指令供使用者自行採納。 首次安裝(原檔不存在)才會直接抓本體。`install.sh` 路徑本就用 `download_if_missing`(已存在即跳過),無此問題。 --- ## 1.3.0 — vault 偵測(Logseq / Obsidian)+ Cowork 整理 skill **新增** - `install.sh` 在建立 `CLAUDE.md` 前**自動偵測資料夾類型**,把對應的「原始文件來源(raw source)」寫進 `CLAUDE.md`: - `logseq/` → raw source `pages/`、`journals/` - `.obsidian/` → raw source 根目錄下所有 `.md` - 都沒有 → `docs/`(維持原行為) 寫入的宣告是給 AI 讀的指令,對 vault **明令不得搬動/改名/重新分類 `.md`**,整理結果一律只寫進 `.claude/wiki/`, 面對筆記 vault 不會破壞它原本的結構。已有 `CLAUDE.md` 一律不覆蓋,改在結尾列出該補的宣告提醒手動貼。 - `docs/SKILL.md`:給 **claude.ai Cowork** 的 `wiki-cowork-scan` skill。 與 CC 的 `/wiki-init`、`/wiki-capture` 共用同一套規則,用**與 install.sh 一致的偵測邏輯**掃描 `~/Documents` 下所有裝了本模板的資料夾,只讀 raw source、只往 `.claude/wiki/` 增補(不覆蓋、不刪除), 絕不動 raw source、`CLAUDE.md`、`logseq/`、`.obsidian/`、`assets/`。讓整理 wiki 不再只限終端機裡的 CC。 **變更** - README 新增「不只程式碼,也認得 Logseq / Obsidian vault」「Cowork 也能整理 wiki」兩節,並更新目錄樹。 --- ## 1.2.0 — GitHub issue 指引 + pre-write-guard 定位釐清 **新增** - `/issue-handle` slash command(`template/.claude/commands/issue-handle.md`): CC 處理 GitHub issue 的普世指引,三層界線—— ①讀/回/結案自己 repo 的 issue(直接做); ②發 issue 給別的 repo(先問人,不擅自); ③**禁止掛 Actions/cron/webhook 自動輪詢 issue**(會觸發 GitHub 異常偵測、被 rate limit)。 屬共用指引,install/update 不分模組都裝。(issue #1) **變更** - `pre-write-guard.sh` 釐清定位(issue #2):它是「按需手填的空插槽」,不是裝上就生效的警察。 - 檔頭明講:**有 CC 在場時,直接叫 CC 寫貼合的 guard hook 更好**,這個空殼範本只對「手動 DIY」用戶有價值。 - 解決安全錯覺:install.sh / update.sh 安裝它時提示「預設不攔任何東西,要手填+掛 settings 才生效」, 讓用戶不會誤以為裝了就有保護。(hook 執行時維持安靜,避免每次 Write 洗版。) --- ## 1.1.0 — 一鍵更新 **新增** - `scripts/update.sh`:已安裝舊版的人,一行指令更新到最新版。 只覆蓋模板/邏輯檔(hooks、commands、TEMPLATE-*),**完全不碰**使用者資料 (`wiki/status.md`、`mistakes.md`、`decisions-summary.md`、`.wikiignore`、`settings.json`、`CLAUDE.md`)。 會先比對版本、列出新功能、依已裝模組自動偵測該更新什麼,跑完自我更新。 - `template/.claude/VERSION`:版本基準檔,讓「檢查新版」有依據。 - `CHANGELOG.md`(本檔)。 **第一次更新的雞生蛋問題**:舊版本機還沒有 `update.sh`,所以第一次靠 README 那行 `curl` 從遠端抓更新器來跑;跑完它把自己裝進 `scripts/update.sh`,之後直接跑本機的即可。 --- ## 1.0.0 — 模組化安裝(基準版) 此版本之前無 VERSION 檔,以下為依 git 歷史回溯的功能基準。 - `scripts/install.sh` 模組化安裝:`--wiki` / `--sdd` / `--all`,無參數則互動詢問。 - **LLM Wiki**:CC 記憶系統(INDEX / status / mistakes / decisions-summary) + 接關 hook(session-start-recall)+ 對應 slash commands。 - **wiki 機敏防護三層**:`.wikiignore`(檔案層)+行內標記(局部)+ `wiki-secret-scan.sh`(機械兜底攔截)。 - **SDD 強制**:動 code 前必須有 `design.md`,由 `sdd-guard.sh` hook 把關,附 TEMPLATE 範本。 - docs 分類結構(1-vision ~ 6-user)與 ADR 範本。