用於建立或維護個人 LLM 驅動的知識庫。觸發條件:將來源資料匯入 wiki、查詢 wiki 知識、檢查 wiki 品質、'add to wiki'、'what do I know about',或任何提及 'LLM wiki' 或 'Karpathy wiki' 的情況。
Karpathy LLM Wiki
使用 LLM 建立並維護個人知識庫。你管理兩個目錄:raw/(不可變的原始資料)和 wiki/(編譯後的知識文章)。來源資料放入 raw/,你將其編譯成 wiki 文章,而 wiki 會隨著時間累積成長。
來自 Karpathy 的核心概念:
- 「LLM 撰寫並維護 wiki;人類閱讀並提出問題。」
- 「Wiki 是一個持久且持續累積的產物。」
架構
三個層級,全部位於使用者的專案根目錄下:
raw/ — 不可變的原始資料。你只能讀取,絕不修改。按主題子目錄組織(例如 raw/machine-learning/)。
wiki/ — 編譯後的知識文章。你擁有完整的所有權。按主題子目錄組織,僅一層:wiki/<topic>/<article>.md。包含兩個特殊檔案:
wiki/index.md— 全域索引。每篇文章一行,按主題分組,包含連結、摘要和更新日期。wiki/log.md— 僅能附加的操作日誌。
SKILL.md(本檔案)— 結構層。定義結構和工作流程規則。
範本位於相對於此檔案的 references/ 目錄中。當你需要原始檔案、文章、封存頁面或索引的確切格式時,請讀取它們。
初始化
僅在首次匯入時觸發。檢查 raw/ 和 wiki/ 是否存在。僅建立缺少的部分;絕不覆寫現有檔案:
raw/目錄(含.gitkeep)wiki/目錄(含.gitkeep)wiki/index.md— 標題# Knowledge Base Index,空白內容wiki/log.md— 標題# Wiki Log,空白內容
如果查詢或檢查找不到 wiki 結構,請告訴使用者:「請先執行一次匯入以初始化 wiki。」不要自動建立。
匯入
將來源資料擷取到 raw/,然後編譯到 wiki/。兩個步驟都必須執行,沒有例外。
擷取(raw/)
-
使用環境提供的任何網頁或檔案工具取得來源內容。如果無法存取來源,請要求使用者直接貼上。
-
選擇一個主題目錄。先檢查現有的
raw/子目錄;如果主題相近,則重複使用。僅在主題確實不同時才建立新的子目錄。 -
儲存為
raw/<topic>/YYYY-MM-DD-descriptive-slug.md。- 從來源標題產生 slug,使用 kebab-case,最多 60 個字元。
- 如果發布日期未知,則從檔案名稱中省略日期前綴(例如
descriptive-slug.md)。中繼資料的 Published 欄位仍會出現,設為Unknown。 - 如果相同名稱的檔案已存在,則附加數字後綴(例如
descriptive-slug-2.md)。 - 包含中繼資料標頭:來源 URL、收集日期、發布日期。
- 保留原始文字。清除格式雜訊。不要改寫意見。
請參閱
references/raw-template.md以了解確切格式。
編譯(wiki/)
判斷新內容的歸屬:
- 與現有文章核心論點相同 → 合併到該文章。將新來源加入 Sources/Raw。更新受影響的章節。
- 新概念 → 在相關的主題目錄中建立新文章。以概念命名檔案,而非原始檔案名稱。
- 跨越多個主題 → 放在最相關的目錄中。在相關文章之間加入「另請參閱」交叉引用。
這些情況並非互斥。單一來源可能同時需要合併到一篇文章,並為其引入的不同概念建立另一篇文章。在所有情況下,檢查事實衝突:如果新來源與現有內容矛盾,請附上來源歸屬來說明分歧。合併時,在合併後的文章中註明衝突。當衝突內容位於不同文章時,在兩篇文章中都註明並交叉連結。
請參閱 references/article-template.md 了解文章格式。重點:
- Sources 欄位:作者、組織或出版品名稱 + 日期,以分號分隔。
- Raw 欄位:指向 raw/ 檔案的 Markdown 連結,以分號分隔。
- 從
wiki/<topic>/的相對路徑使用../../raw/<topic>/<file>.md(向上兩層到專案根目錄)。
連鎖更新
在主要文章之後,檢查連鎖效應:
- 掃描同一主題目錄中受新來源影響的文章。
- 掃描
wiki/index.md中其他主題的條目,尋找涵蓋相關概念的文章。 - 更新每篇內容受到實質影響的文章。每個更新過的檔案都會刷新其 Updated 日期。
封存頁面永遠不會進行連鎖更新(它們是時間點快照)。
匯入後
更新 wiki/index.md:為每篇受影響的文章新增或更新條目。新增主題區段時,包含一行描述。Updated 日期反映文章知識內容最後變更的時間,而非檔案系統時間戳。請參閱 references/index-template.md 了解格式。
附加到 wiki/log.md:
## [YYYY-MM-DD] ingest | <主要文章標題>
- Updated: <連鎖更新文章標題>
- Updated: <另一個連鎖更新文章標題>
如果沒有連鎖更新,則省略 - Updated: 行。
查詢
搜尋 wiki 並回答問題。觸發範例:
- 「我對 X 了解多少?」
- 「總結所有與 Y 相關的內容」
- 「根據我的 wiki 比較 A 和 B」
步驟
- 讀取
wiki/index.md以找到相關文章。 - 讀取那些文章並綜合出答案。
- 優先使用 wiki 內容而非你自己的訓練知識。使用 Markdown 連結引用來源:
[Article Title](wiki/topic/article.md)(對話引用中使用專案根目錄相對路徑;在 wiki/ 檔案內,使用相對於當前檔案的路徑)。 - 在對話中輸出答案。除非被要求,否則不要寫入檔案。
封存
當使用者明確要求將答案封存或儲存到 wiki 時:
- 將答案寫入新的 wiki 頁面。請參閱
references/archive-template.md。將對話引用轉換為封存頁面時,將專案根目錄相對路徑(例如wiki/topic/article.md)改寫為檔案相對路徑(例如../topic/article.md或同目錄的article.md)。- Sources:指向答案中引用的 wiki 文章的 Markdown 連結。
- 沒有 Raw 欄位(內容並非來自 raw/)。
- 檔案名稱反映查詢主題,例如
transformer-architectures-overview.md。 - 放在最相關的主題目錄中。
- 總是建立新頁面。絕不與現有文章合併(封存內容是綜合後的答案,而非原始資料)。
- 更新
wiki/index.md。在摘要前加上[Archived]。 - 附加到
wiki/log.md:## [YYYY-MM-DD] query | Archived: <頁面標題>
檢查
對 wiki 進行品質檢查。兩個類別具有不同的權限等級。
確定性檢查(自動修正)
自動修正這些問題:
索引一致性 — 比較 wiki/index.md 與實際的 wiki/ 檔案(排除 index.md 和 log.md):
- 檔案存在但索引中缺少 → 新增條目,摘要使用
(no summary)佔位符。Updated 日期優先使用文章的中繼資料 Updated 日期;否則使用檔案的最後修改日期。 - 索引條目指向不存在的檔案 → 在索引中標記為
[MISSING]。不要刪除條目;讓使用者決定。
內部連結 — 對於 wiki/ 文章檔案(正文和 Sources 中繼資料)中的每個 Markdown 連結,排除 Raw 欄位連結(由下方的 Raw 引用驗證)以及 index.md/log.md(已由上方處理):
- 目標不存在 → 在 wiki/ 中搜尋其他位置是否有相同名稱的檔案。
- 完全匹配一個 → 修正路徑。
- 零個或多個匹配 → 回報給使用者。
Raw 引用 — Raw 欄位中的每個連結必須指向現有的 raw/ 檔案:
- 目標不存在 → 在 raw/ 中搜尋其他位置是否有相同名稱的檔案。
- 完全匹配一個 → 修正路徑。
- 零個或多個匹配 → 回報給使用者。
另請參閱 — 在每個主題目錄內:
- 新增相關文章之間明顯缺少的交叉引用。
- 移除指向已刪除檔案的連結。
啟發式檢查(僅回報)
這些依賴你的判斷。回報發現的問題,但不自動修正:
- 文章之間的事實矛盾
- 被較新來源取代的過時主張
- 來源意見不一致時缺少衝突註解
- 沒有來自其他 wiki 文章入站連結的孤立頁面
- 缺少跨主題引用
- 經常被提及但缺乏專屬頁面的概念
- 封存頁面中引用的來源文章在封存後有大幅更新
檢查後
附加到 wiki/log.md:
## [YYYY-MM-DD] lint | 發現 <N> 個問題,自動修正 <M> 個
慣例
- 使用標準 Markdown,並在整個文件中使用相對連結。
- wiki/ 僅支援一層主題子目錄。不允許更深層的巢狀結構。
- 日誌條目、收集日期和封存日期使用今天的日期。Updated 日期反映文章知識內容最後變更的時間。Published 日期來自來源(無法取得時使用
Unknown)。 - 在 wiki/ 檔案內部,所有 Markdown 連結使用相對於當前檔案的路徑。在對話輸出中,使用專案根目錄相對路徑(例如
wiki/topic/article.md)。 - 匯入會更新
wiki/index.md和wiki/log.md。封存(來自查詢)會更新兩者。檢查會更新wiki/log.md(僅在自動修正索引條目時更新wiki/index.md)。單純的查詢不會寫入任何檔案。




