Commit Graph

22 Commits

Author SHA1 Message Date
Leo c95705c286 fix: update.sh 在 curl|bash 下崩潰(bash 3.2 多位元組,1.7.0 漏修)+ bump 1.8.2
第 54 行「已是最新版($LOCAL_VER)」中文全形括號緊貼裸變數,curl|bash 串流在
多位元組邊界切斷時 bash 3.2 誤判變數名 → LOCAL_VER�: unbound variable。觸發點
在「本機=遠端版本」分支,故「以為沒更新再跑一次」必中。

- $LOCAL_VER → ${LOCAL_VER}(同 1.7.0 install.sh 的修法,當時漏掉 update.sh)
- bash set -u 模擬該分支驗過不再崩

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 14:41:06 +08:00
Leo e0ff006564 fix: 補裝 Cowork wiki skill(docs/SKILL.md)+ CLAUDE.md 加 wiki/gloss 導航 + bump 1.8.1
Cowork(claude.ai)整理 wiki 的規則檔 docs/SKILL.md(含 typed-edge、frontmatter
標籤、gloss)從來沒被裝到用戶端:install.sh 沒下載、template/docs/ 發佈源也缺檔,
claude.ai 來掃時身上零規則。CC 平時讀的 CLAUDE.md 也沒指向採集規則,造成「CC 說
找不到 gloss 指引」。

- template/docs/SKILL.md 新增(補發佈源,install 才有得下載)
- install.sh 加下載 docs/SKILL.md(wiki 模組)
- update.sh 加 update_file docs/SKILL.md(可覆蓋規則檔)
- template/CLAUDE.md 加「整理 wiki 的方法」導航,CC+Cowork 雙明示 gloss 規則所在

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 14:13:42 +08:00
Leo f2c048c79f feat: wiki 採集加「萃 gloss」(node 一句說明,供下游語義 normalize)+ bump 1.8.0
issue #9:下游 KBDB 語義 normalize 要對「entity 名 + gloss」一起 embedding 自動
歸一同義詞,但採集只萃三元組沒萃 gloss。原則:gloss 在知識生產當下由 local
CC/Cowork 建,不留給下游 ingest 臨時補(下游視角編不出好 gloss)。

- 卡片 frontmatter 加 gloss: 欄位(選填、deep tier 才產)
- gloss ≠ 摘要:gloss 給機器 normalize,## 摘要 給人讀
- 對齊下游 envelope nodes[].gloss
- wiki-init.md(CC)與 docs/SKILL.md(Cowork)兩路徑同步

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 13:47:07 +08:00
Leo e9d6d78032 fix: install/update 雙語化(預設英文) + 修 macOS bash 3.2 安裝崩潰 + bump 1.7.0
- 修崩潰:bash 3.2 + set -u 展開空陣列會炸 unbound variable;移除多餘
  ${SKIPPED[*]} no-op;多位元組字串旁變數改用 ${VAR} 防 curl|bash 串流切斷
- install/update 訊息依 locale 雙語,預設英文(curl|bash 常 LANG=C),zh_TW 切繁中
- 寫進 CLAUDE.md 的 raw source 宣告依 locale 只寫一種語言(不撐爆 context)
- 修措辭:一般開發案不再顯示誤導的「偵測到 vault 類型:docs」
- 新增 README.en.md(繁中↔English 切換)
- gitignore dogfooding 自裝產物(CLAUDE.md/docs 子目錄/.claude/settings*)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 12:40:28 +08:00
Leo bc0fe3f01c docs: 釐清 taxonomy 是受控擴充非凍結(先查重再登記)+ bump 1.6.1
1.6.0「禁止自創」措辭過嚴,碰到新軸會逼 AI 硬塞或偷創。改成:
禁的是繞過字典直接冒新標籤,不是禁新增——遇裝不下的內容先查重
(非同義詞?)、確認是新軸才登記進該 repo 的 TAXONOMY.md 再用。
字典 per-repo,跨 repo 不共用。新增領域軸要慎,形態軸較安全。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 01:28:21 +08:00
Leo dccb97a6df feat: wiki 完整規劃方式(183 卡實證)三層架構+frontmatter標籤+多層索引(issue #8/#6/#7)
在 Logseq vault(234 篇 → 183 卡、571 typed-edge)完整跑一輪後定案的
「對 AI 最優」規劃方式,一次納入 wiki-init.md 與 docs/SKILL.md:

- 三層架構:INDEX(標籤視圖)→ cards/<bucket>/00-INDEX → 原子卡。
- frontmatter tags 分類(非行內 #tag、非資料夾),TAXONOMY.md 當字典禁自創。
- 桶子索引固定名 00-INDEX.md(#6);指它帶路徑 [[bucket/00-INDEX]](#7)。
- 新檔 TAXONOMY.md:install download_if_missing、update keep_file。
- 踩坑警語:subagent 絕不寫 raw source(git 驗證)、檔名全形字元一致、量大用 Haiku。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 01:20:40 +08:00
Leo 331e4d56a7 feat: wiki 連結升級成 typed-edge 三元組 A >> 謂詞 >> B(issue #5)
裸 [[wikilink]] 是弱連結——只說「有關」,沒說關係是什麼,下游要建
knowledge graph 還得回讀兩張卡。改寫成帶語義的三元組,下游 ingest 直接
parse 出帶類型的有向邊,把關係也預編譯。

- wiki-init.md + docs/SKILL.md 的 ## 關聯 改用 [[A]] >> 謂詞 >> [[B]]。
- 規則:方向性、謂詞用動詞、自由詞彙、向後相容(裸 [[A]] 仍合法)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 23:11:31 +08:00
Leo 6b49f35925 feat: wiki = AI 改寫的記憶(拿掉索引模式)+ 量大建議 Haiku(issue #4)
修正 1.4.0 方向:索引 vs 改寫不該是兩種並列模式。記憶系統的目的是
讓 AI 之後讀得快——不管 vault 或一般開發,原文都是亂的,只做指回原文
的索引等於每次重新解析、沒省到。wiki 的價值在「改寫一次,之後每次讀都便宜」。

- 拿掉索引模式,改寫成 wiki 是所有專案的唯一預設。
- 唯一例外:不可改動的正式文件(須逐字讀)才用指針指回原文。
- 量大時主動建議派 Haiku subagent 並行改寫,主模型負責切概念與審稿。
- INDEX.md 範本統一成概念索引指向 wiki 內部條目。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 21:51:30 +08:00
Leo 37070fe506 feat: wiki-init 新增草稿改寫模式(AI 當總編輯)+ bump 1.4.0(issue #4)
wiki-init 原本整套指令只有「分類歸檔/導航」,把人和 AI 都導向做出
[[原文檔名]] 指回原文的索引。但 PKM/vault 使用者常要的是相反的:
原文是草稿,要 AI 改寫萃取成自包含 wiki,讀 wiki 就好不必回原文。

- 開頭新增模式分岔(索引 vs 草稿改寫),附對照表。
- 偵測到 Logseq/Obsidian vault → 預設草稿改寫模式,但問一句可切回。
- 一般專案 → 維持索引模式(向下相容)。
- 草稿改寫格式寫進命令本身(概念原子化、自包含、來源指針、wikilink),
  與 Cowork docs/SKILL.md 一致。
- INDEX.md 範本支援兩種形狀。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 21:44:39 +08:00
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
Leo ba247428a8 chore: bump 1.3.0 + CHANGELOG(vault 偵測 + Cowork skill)
承接上一個 feat commit:補上版號與更新紀錄,讓 update.sh 能通知用戶有新版。
- template/.claude/VERSION:1.2.0 → 1.3.0(新功能、向下相容)
- CHANGELOG:新增 1.3.0 一節
- .gitignore:排除 dev repo 自裝的 .claude/commands/(比照 wiki/hooks 的自用不推慣例)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 20:06:28 +08:00
Leo d10659bd2d feat: install.sh 偵測 vault 類型寫入 raw source + Cowork 整理 skill
- install.sh:建立 CLAUDE.md 前偵測資料夾類型,寫入對應 raw source
  - logseq/ → pages/, journals/
  - .obsidian/ → 根目錄 .md
  - 都沒有 → docs/(維持原行為)
  宣告區塊對 vault 明令不得搬動/改名 .md,整理只寫進 .claude/wiki/。
  已有 CLAUDE.md 一律不覆蓋,改列提醒手動補。
- docs/SKILL.md:給 claude.ai Cowork 的 wiki-cowork-scan skill,
  與 CC 共用同一套偵測與整理規則。
- README:新增 vault 支援、Cowork 整理兩節,更新目錄樹。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 20:01:21 +08:00
Leo 25cb4d1f63 feat: v1.2.0 — issue 處理指引 + pre-write-guard 定位釐清 + 開發 wiki 隔離
issue #1:新增 /issue-handle slash command,CC 處理 GitHub issue 的
普世指引——讀回自己 repo 直接做、跨 repo 發要先問人、禁掛 Actions/cron
自動輪詢(會觸發 GitHub 異常偵測)。屬共用指引,install/update 不分模組裝。

issue #2:pre-write-guard.sh 釐清定位為「按需手填的空插槽」,非裝上就
生效的警察。檔頭明講有 CC 在場時直接叫 CC 寫貼合的 guard 更好;install/
update 安裝時提示「預設不攔,要手填才生效」,消除安全錯覺。hook 執行維持
安靜不洗版。

另:repo 自己裝了一套開發用 wiki(內部記錄),與 template/ 成品範本實體
隔離,.gitignore 排除 .claude/wiki/、.claude/hooks/、.claude/VERSION,
不推 GitHub。

升版 1.2.0,CHANGELOG 記錄。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 12:20:23 +08:00
Leo 68f71eab75 feat: 舊版一鍵更新 update.sh + VERSION + CHANGELOG
舊版使用者升級的雞生蛋問題:本機沒有 update.sh,第一次靠 README
的 curl 從遠端抓更新器來跑,跑完它把自己裝進 scripts/update.sh,
之後直接跑本機的即可。

update.sh 只覆蓋模板/邏輯檔(hooks、commands、TEMPLATE-*),完全
不碰使用者資料(wiki 內容、.wikiignore、settings.json、CLAUDE.md)。
依已裝模組自動偵測該更新什麼,並比對 VERSION 列出新功能。

新增 template/.claude/VERSION 作為版本基準、CHANGELOG.md 記錄每版
變動,README 加更新區段與 CHANGELOG 連結。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 11:40:57 +08:00
Leo 5c364aa592 chore: gitignore 排除 editorial-image skill(私房出圖工具不上傳)
editorial-image 是本機出圖輔助 skill,不屬於此公開模板的範圍,
留在本機使用,不入版控。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:23:31 +08:00
Leo 5553332efd docs: README 加致謝區段,修正 Karpathy 拼字
- 修 L17「Kaparthy」→「Karpathy」
- 新增致謝:Andrej Karpathy(LLM Wiki 概念,附 gist 與延伸閱讀連結)、
  Amazon Kiro(SDD 方法論學習來源,附官方文件)、Claude(結對共同作者)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 13:36:12 +08:00
Leo 2bbb8b30e0 docs: 修正 README 目錄樹(docs/ 實際只有 why.md + wishlist.md)
原列的 sdd-guide.md / llm-wiki-guide.md 不存在,改成實際的 wishlist.md。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 13:29:12 +08:00
Leo 9dcbe38021 feat: install.sh 模組化安裝(--wiki / --sdd / --all)
有時只需要 wiki 不需要 SDD。不 fork,改用同一入口模組選單:
- --wiki / --sdd / --all(預設),無參數 + 有 tty 則互動詢問
- curl|bash 無 tty 安全預設 --all
- settings.json 的 hooks 依選的模組自動組裝(不再下載單一靜態檔)

不 fork 的理由:使用者多半非工程背景,一個入口最友善;維護成本不翻倍。
模組邊界先劃好,未來功能達 3+ 個再演進成「模板組合器」。

同步 wishlist:§1 接關 / §2 hook 標記已完成(commit 39783cc),
新增 §3 機敏防護 / §4 模組化安裝並標完成。README 補三層防護與模組安裝說明。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 12:45:53 +08:00
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
Leo 39783cccc8 feat: 接關 hook + SDD 強制 hook(實作 wishlist 兩項)
§1 接關機制(雙保險):
- session-start-recall.sh:SessionStart 自動注入 status 重點 + 快照核實提醒
- /wiki-recall:fallback 命令,hook 失效時手動接關

§2 軟規範 → 硬攔截:
- sdd-guard.sh:動 code 檔但無 SDD → exit 2 擋(/sdd-check 自動版)
- pre-write-guard.sh:專案自訂禁令骨架(預設停用)
- settings.json:掛 SessionStart + PreToolUse

配套:install.sh 下載 hooks/settings(settings 比照 CLAUDE.md 不覆蓋);
README/CLAUDE.md 補文件 + 誠實限制聲明。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:04:58 +08:00
Leo 04e2cc3071 Fix install source to match uncle6me-web repo
install.sh REPO_URL and README install commands were hardcoded to
richblack/system-dev-template while this repo lives at
uncle6me-web/system-dev-template. The mismatch made the installer pull
executable config (.claude/commands/*.md) from a different repo name than
the one users name, which the classifier blocks. Point all sources at
uncle6me-web so the install source matches the repo name.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 17:25:39 +08:00
Leo 8aa1b68ca0 Initial commit 2026-06-08 16:06:18 +08:00