Files
system-dev-template/CHANGELOG.md
T
Leo c0a6b6a465 fix: update.sh 不再覆蓋客製 pre-write-guard.sh(issue #3)+ bump 1.3.1
update.sh 原把 pre-write-guard.sh 列在無條件覆蓋區,會用模板空殼
無聲蓋掉下游已客製的 guardrail,且 update_file 無 .bak 備份。

改法(issue 方案 1):新增 keep_with_template()——原檔永不覆蓋,
最新模板版另存 pre-write-guard.template.sh 旁邊,結尾印 diff 指令供採納。
首次安裝(原檔不存在)才走 update_file 抓本體。

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

88 lines
5.2 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.
# 更新紀錄 CHANGELOG
> 每次改了什麼,都記在這。版號對應 `template/.claude/VERSION`。
> 想更新到最新版?看 [README → 一鍵更新](README.md#-已安裝舊版一鍵更新)。
版號規則(語意化版本,簡化版):
- **大版號**(1.x → 2.x):破壞性變動,舊專案更新後可能要手動調整。
- **中版號**(1.0 → 1.1):加了新功能,向下相容,更新即用。
- **小版號**1.1.0 → 1.1.1):修 bug、改文件,無新功能。
---
## 1.3.1 — 修:update.sh 不再覆蓋客製的 pre-write-guard.shissue #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
+ 接關 hooksession-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 範本。