From 331e4d56a74ffccca0f2b656c9ecfe2445003ac3 Mon Sep 17 00:00:00 2001 From: richblack Date: Thu, 25 Jun 2026 23:11:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20wiki=20=E9=80=A3=E7=B5=90=E5=8D=87?= =?UTF-8?q?=E7=B4=9A=E6=88=90=20typed-edge=20=E4=B8=89=E5=85=83=E7=B5=84?= =?UTF-8?q?=20A=20>>=20=E8=AC=82=E8=A9=9E=20>>=20B=EF=BC=88issue=20#5?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 裸 [[wikilink]] 是弱連結——只說「有關」,沒說關係是什麼,下游要建 knowledge graph 還得回讀兩張卡。改寫成帶語義的三元組,下游 ingest 直接 parse 出帶類型的有向邊,把關係也預編譯。 - wiki-init.md + docs/SKILL.md 的 ## 關聯 改用 [[A]] >> 謂詞 >> [[B]]。 - 規則:方向性、謂詞用動詞、自由詞彙、向後相容(裸 [[A]] 仍合法)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 11 +++++++++++ docs/SKILL.md | 15 ++++++++++++--- template/.claude/VERSION | 2 +- template/.claude/commands/wiki-init.md | 14 ++++++++++++-- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 536c4d6..f9452a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,17 @@ --- +## 1.5.0 — wiki 連結升級成 typed-edge 三元組(issue #5) + +**背景**:`## 關聯` 原本只列裸 `[[頁面]]`(沿用 Karpathy LLM Wiki)。但裸 `[[A]]` 是**弱連結**——只說「A 和本卡有關」,沒說關係是什麼。下游要從 wiki 抽 knowledge graph 時,拿到一堆無類型 edges,仍得回讀兩張卡才知道關係,等於關係沒被預編譯、退回 O(N²)。 + +**變更** +- `wiki-init.md` 與 `docs/SKILL.md` 的 `## 關聯` 升級成 **typed-edge 三元組**:`[[A]] >> 謂詞 >> [[B]]`。下游 ingest 可直接 parse 出帶類型的有向邊,全局 graph 不必再讀卡片內容就知道關係。 +- 規則:① 方向性——`A >> 謂詞 >> B` 須讀成「A(謂詞)B」一句通順的話,順序=主→賓真實方向;② 謂詞用動詞/動詞短語(天然帶方向);③ 謂詞自由書寫不受控詞彙(下游 embedding 會聚類同義謂詞,但方向靠書寫順序保證);④ 向後相容:純 `[[A]]` 仍合法(無類型邊)。 +- `>>` 為分隔語法,repo 可自選符號,全程一致即可。 + +--- + ## 1.4.1 — wiki = AI 改寫的記憶(拿掉索引模式)+ 量大建議 Haiku(issue #4) **修正 1.4.0 的方向**:1.4.0 把「索引 vs 改寫」做成兩種並列模式,預設一般專案走索引、只有 vault 走改寫。這方向錯了—— diff --git a/docs/SKILL.md b/docs/SKILL.md index 86aeeef..a8f676e 100644 --- a/docs/SKILL.md +++ b/docs/SKILL.md @@ -106,12 +106,21 @@ else ## 關聯 -- [[相關 wiki 頁面]] +- [[本主題]] >> 謂詞(動詞短語) >> [[相關主題]] +- [[原子筆記]] >> 是其最小單元 >> [[卡片盒筆記法]] ``` -### 使用 `[[wikilink]]` 語法 +### 使用 typed-edge 三元組(不只裸 `[[wikilink]]`) -整理時,如果發現內容與其他 wiki 頁面有關聯,加上 `[[頁面名稱]]` 連結。這是 Karpathy LLM Wiki 的核心機制——知識會互相連結,不是孤立的筆記。 +整理時,發現內容與其他頁面有關聯,用**帶語義的三元組**寫進 `## 關聯`,而非只列裸 `[[頁面]]`。裸 `[[A]]` 只說「有關」、沒說關係,下游要建 knowledge graph 還得回讀兩張卡;三元組把關係也預編譯,ingest 直接 parse 出帶類型的有向邊。 + +格式 `A >> 謂詞 >> B`,規則: +1. **方向性**:必須讀成「A(謂詞)B」一句通順的話;A、B 順序=主→賓真實方向。 +2. **謂詞用動詞 / 動詞短語**(反駁、奠基於、是…的實作),天然帶方向。 +3. **謂詞自由書寫**,不受控詞彙;下游對謂詞 embedding 時同義謂詞會自動聚類,但方向仍靠書寫順序保證。 +4. **向後相容**:純 `[[A]]` 仍合法(無類型邊),盡量補謂詞。 + +`>>` 為分隔語法,全程一致即可。這是 Karpathy LLM Wiki「知識互連」的強化版——連結不只存在,還帶類型與方向。 --- diff --git a/template/.claude/VERSION b/template/.claude/VERSION index 347f583..bc80560 100644 --- a/template/.claude/VERSION +++ b/template/.claude/VERSION @@ -1 +1 @@ -1.4.1 +1.5.0 diff --git a/template/.claude/commands/wiki-init.md b/template/.claude/commands/wiki-init.md index d7b52dd..6672854 100644 --- a/template/.claude/commands/wiki-init.md +++ b/template/.claude/commands/wiki-init.md @@ -96,7 +96,7 @@ docs/{1-vision,2-architecture/decisions,3-specs,4-guides,5-records/{incidents,te - **概念原子化**:一個 wiki 頁面講一個主題,不是一篇原文對一頁。原文太雜就拆,多份相關原文就合。 - **自包含**:讀 wiki 條目就懂,不必回去翻原文。把口語、重複、時間順序的流水帳,改寫成結構化的知識。 - **保留來源指針**:每條標 `**來源**:原文相對路徑`,是為了可追溯,不是要使用者回去讀。 -- **互相連結**:用 `[[頁面名稱]]` 連到相關條目(Karpathy LLM Wiki 的核心——知識互連,不是孤島)。 +- **互相連結(typed-edge 三元組)**:`## 關聯` 不要只列裸 `[[頁面]]`——那只說「有關」,沒說關係是什麼,下游要建 knowledge graph 還得回讀兩張卡。改寫成帶語義的三元組(見下方規則)。 wiki 條目格式: ```markdown @@ -112,9 +112,19 @@ wiki 條目格式: - [改寫後的要點,自包含、不依賴原文] ## 關聯 -- [[相關 wiki 頁面]] +- [[本主題]] >> 謂詞(動詞短語) >> [[相關主題]] +- [[原子筆記]] >> 是其最小單元 >> [[卡片盒筆記法]] +- [[筆記墳場]] >> 是的反面教訓 >> [[筆記要重複使用而非複製貼上]] ``` +**typed-edge 規則**(把「關係」也預編譯,下游 ingest 直接 parse 出帶類型的有向邊): +1. **方向性**:`A >> 謂詞 >> B` 必須能讀成「A(謂詞)B」一句通順的話;A、B 順序就是主→賓的真實方向。 +2. **謂詞用動詞 / 動詞短語**(反駁、奠基於、是…的實作),動詞天然帶方向。 +3. **謂詞自由書寫,不受控詞彙**:下游若對謂詞做 embedding,同義謂詞會自動聚類;但 embedding 分不清方向,方向仍靠書寫順序保證。 +4. **向後相容**:純 `[[A]]` 仍合法(視為無類型邊),但盡量補謂詞。 + +> `>>` 是分隔語法,repo 可自選慣例符號——但同一個 repo 全程一致。 + INDEX.md 是**概念索引**,指向 wiki 內部條目(非原文): ```markdown ## 概念索引