Leo
|
10f25e53e3
|
feat: tasks.md ⇄ GitHub Project 單向投影 optional 模組(issue #16)+ bump 1.13.0
裝了 SDD 的專案可把 docs/3-specs/*/tasks.md 待辦單向投影成唯讀 GitHub Project。
md 唯一真相源、Project 永遠唯讀,無反向同步、不會兩個真相源打架。預設不逼:
沒裝 Arcrun/答不要的用戶完全 no-op,純 md 不受影響。
- 投影 workflow template/system-dev/workflows/tasks-project-sync.yaml(Arcrun
workflow):foreach 增量 → switch 動作 → http_request 打 GitHub API:新 task→
issue create / [ ]→[x]→close / 文字改→edit / 行刪→archive(not_planned),並用
GraphQL addProjectV2ItemById 投影進 Projects v2。auth 走 {{creds.github_token}}。
- 本地觸發端 tasks-project-sync.local.sh:因 Arcrun workflow 跑遠端 CF Workers、
沒本地 fs/git,「讀 tasks.md / git diff / 回寫 <!-- gh:id -->」由本地端做完再
acr run 餵增量。本地一半 + 遠端一半,職責邊界清楚。薄殼不自刻 parser。
- 防複發核實:每個 component 經 acr parts 核實存在(registry 無 github 零件,全用
http_request 打 REST/GraphQL)。acr validate --offline 通過(7 三元組、config 完整)。
- 啟用判準=對話 + 能力,不掃檔(Arcrun workflow 存遠端 KV、零本地檔也能用 →
掃檔 false negative)。install/init 問一句 → 查環境有 Arcrun 就 acr push 啟用、
沒有就一次性溫和廣告。帶檔 ≠ 啟用。install/update 隨 SDD 模組帶 workflow(add_if_missing)。
- 守 flag 紅線:push 後本機觸發單次,禁定期輪詢、禁 GitHub Actions fan-out。
⚠️ 端到端(acr push 真部署 + acr run 真投影)待 leo21c 驗,本版為 code-done 骨架。
SDD(內部,gitignore 不推):docs/3-specs/tasks-project-projection/。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 16:24:33 +08:00 |
|
Leo
|
5d803c3971
|
feat: 跨 repo issue/comment 署名鐵律 [<repo> CC](issue #12)+ bump 1.12.0
所有 repo 共用 uncle6me-web 一帳號發 issue/comment,author 看不出來源。
issue-handle skill 加第 3 節「跨 repo 署名」:comment 開頭一律 [<本 repo> CC],
總管用 [InkStoneCo 總管],內容層溯源(平台無 per-repo 身份)。第 1 節範例帶署名,
原 flag 界線順延第 4 節。落點選 skill 不選 CLAUDE.md(導航牌不增長)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 18:15:01 +08:00 |
|
Leo
|
93420cea4e
|
feat: 採集規範升級三元組抓內文實體+## 實體 區塊(issue #11)+ bump 1.11.0
Logseq 183 卡落地暴露:現行三元組只示範卡對卡(既有雙鏈加動詞、資訊量沒增加);
gloss 只描述卡標題一個 node,內文實體無處放描述。只談採集端,ingest 另立。
- 三元組改抓內文實體關係(原子筆記>>對立於>>傳統筆記,A/B 是內文概念)
- 卡片新增 ## 實體 區塊:正規名(同義詞)— 描述,供 embedding normalize,集中不重複
- ## 關聯 拆兩層:內文知識關係(端點裸文字)+卡片關係(卡對卡 [[]])
- ★端點硬自檢★:端點須與 ## 實體 一字不差,逐條比對。實證 Haiku 對不齊 14→0
- 謂詞限定動詞禁名詞(否則 Haiku 寫 >> 存儲格式 >> 讀不通)
- 兩路徑同步 SKILL(Cowork)+wiki-init(CC)
對應 SDD: wiki-architecture(內部,不推)。Closes #11
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 18:02:25 +08:00 |
|
Leo
|
21ba319934
|
fix: install 防重複安裝,已裝過導去 update(杜絕 wiki 並存)+ bump 1.10.1
實測:裝過舊版的專案「先 install 發現裝過再 update」→ install 先建空殼,
update 遷移見目的地已存在就冪等跳過 → 真資料卡舊位置、空殼佔新位置、並存。
職責切分:install 只管全新安裝,一切已裝過的後續歸 update。
- install 防呆:偵測裝過沒(system-dev/ 或 .claude/wiki/ 或 .claude/VERSION
任一存在,不分新舊版)→ 不動任何東西,導去 update。源頭杜絕並存。
- update 偵測並存:migrate_dir 遇目的地已存在但舊位置仍有真資料 → COEXIST
警告需合併,不靜默跳過、不自動合併(絕不覆蓋用戶資料),引導 CC 逐檔合併。
- install↔update 互相導向,閉環無死結。
- 沙盒驗證:四種狀態(新結構/舊wiki/舊VERSION/全新)防呆正確、並存偵測不吃資料。
對應 SDD: install-layout(內部,不推)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 17:51:18 +08:00 |
|
Leo
|
671503fd70
|
feat: wiki 資訊架構 push/pull 判準 + principles 原則 push 檔 + bump 1.10.0
從「用戶所有檔案一律改寫成 wiki」前提,用 push(行動前必看見)vs pull(按需查)
重新推導 wiki/ 每個檔存廢——wiki 主要給 AI 看,判準是 CC 做事會不會被動看見。
對應 SDD: wiki-architecture(內部,依原則不推)。
- 新增 principles.md(push 全文):收跨全局原則(不污染根目錄、low-code…),
原則是會被遺忘的盲區,沒推到眼前 CC 設計時不服從。一行一條 ≤15。
- mistakes 改 push 摘要(標題+症狀,全文按需展開,量大不撐爆 context)
- decisions-summary 降級為 cards + INDEX 決策視圖(既有相容)
- INDEX 升級多角度視圖的家:新增角度只改 INDEX,不開檔不問用戶
- session-start hook 三類 push:principles 全文→status→mistakes 標題;>15 警告
- install 補 principles download;update 加 add_if_missing(補範本/已有則保留)
- push/pull 判準寫進 wiki-init + SKILL,CC/Cowork 共用
- 沙盒驗證:三類注入順序與量受控、add_if_missing 不覆蓋用戶內容、全 bash -n 過
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 17:34:26 +08:00 |
|
Leo
|
ead3593109
|
fix: 遷移後 CLAUDE.md 殘留舊路徑 → hook 偵測並提示 CC 代修 + bump 1.9.3
升級 1.9.x 後 wiki 已搬 system-dev/,但 update.sh 鐵則絕不碰 CLAUDE.md(用戶資料),
CLAUDE.md 內仍寫 .claude/wiki 舊路徑,CC 照它找錯位置(KB 端升級後發現)。
- session-start hook 偵測:wiki 已遷移但 CLAUDE.md 有 .claude/wiki → 接關後提示 CC 代修
- 由 CC 代改而非腳本盲 sed:避免誤傷用戶自寫內容、不破鐵則
- SDD install-layout 補一條決策(小修,不重寫)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 16:09:11 +08:00 |
|
Leo
|
c24c42c99f
|
fix: 修 SKILL.md typed-edge 三元組整節重複貼兩次(issue #10)+ bump 1.9.2
加 gloss 節時複製貼上沒清掉舊段,### 使用 typed-edge 三元組 在 SKILL.md
出現兩次、byte-identical(KB 端讀 skill 時發現)。
- 刪重複第二份,保留第一份(順序合理,gloss 節緊接其後)
- 兩來源檔同步:docs/SKILL.md + template/system-dev/docs/SKILL.md
Closes #10
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 15:35:22 +08:00 |
|
Leo
|
e097c02b9d
|
fix: 修 1.8.x 舊腳本升級撞 404 + VERSION 被污染 + bump 1.9.1
1.9.0 把 VERSION 搬到 system-dev/,但 1.8.x 舊用戶本機 update.sh 寫死抓舊路徑,
curl 對 404 把「404:NotFound」當內容寫進 VERSION,且第一次跑不遷移。
- 發佈源保留相容墊片 template/.claude/VERSION(與 system-dev/VERSION 同步)
- 新 update.sh 驗 REMOTE_VER 須像 X.Y.Z,否則視為取不到,永不寫進 VERSION
(404/HTML/空 全擋,未來路徑變動也不會再污染版號)
照 README curl main/scripts/update.sh 升級者抓遠端新腳本、一次遷移不受影響;
只有跑本機舊 scripts/update.sh 才中,這版修掉。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 15:27:55 +08:00 |
|
Leo
|
ecf1f882c6
|
feat: 安裝結構收進 system-dev/(不污染用戶根目錄)+ 舊版自動遷移 + bump 1.9.0
工具產物原散在用戶根目錄(docs 七層、scripts),又把 wiki/VERSION 寄生在 CC 原生
.claude/ 裡,用戶分不清哪個 docs 是工具的。這版徹底收斂:除 .claude/(settings/
commands/hooks)與 CLAUDE.md 留根,工具所有資料收進 system-dev/。
對應 SDD: system-dev/docs/3-specs/install-layout/(內部記錄,依原則不推)。
- 新結構 system-dev/{VERSION,wiki/,docs/,scripts/};.claude/ 只剩 CC 機制檔
- wiki 改寫產物落點正式化:install 建 system-dev/wiki/cards/(.gitkeep)
- docs 雙語義拆開:工具文件→system-dev/docs/;用戶 raw source 維持原處只讀
- scripts 一開始就裝進 system-dev/scripts/
- 舊版自動遷移雙保險:update.sh 冪等搬移(wiki 含 .git、docs 白名單)
+ session-start hook 偵測舊結構未遷移時提示(low-code 用戶兜底)
- wiki-secret-scan 觸發路徑改 system-dev/wiki/**(否則新結構防護失效)
- 全套路徑引用同步:CLAUDE/SKILL/wiki-*/sdd-*/hooks/INDEX/README(中英)
- 沙盒驗證:遷移含 .git commit 一致、冪等、用戶自填 docs 保留;全 bash -n 過
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-26 15:13:43 +08:00 |
|
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
|
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 |
|