Files
system-dev-template/docs/SKILL.md
T
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

4.6 KiB
Raw Blame History

name, description
name description
wiki-cowork-scan 掃描本機 Documents 下所有裝了 system-dev-template 的資料夾,自動整理 LLM Wiki。支援一般專案、Logseq vault、Obsidian vault 三種結構,偵測方式與 install.sh 一致。觸發時機:使用者說「整理 wiki」「幫我掃 wiki」「更新我的 wiki」「wiki 掃描」,或 Cowork cron 定期觸發。

Wiki Cowork Scan

核心原則

這個 skill 與 Claude Code 的 /wiki-init /wiki-capture 共用同一套規則:

規則
raw source 只讀,不動
.claude/wiki/ 唯一輸出地點,只增不覆
CLAUDE.md 不動
logseq/.obsidian/assets/ 絕對不動

CC 和 Cowork 輸出格式相同,任何一方整理過的內容,另一方看到就跳過或補充,不覆蓋。


第一步:發現所有目標資料夾

掃描 ~/Documents(遞迴深度 3 層),找出所有含 .claude/wiki/ 的資料夾。

~/Documents/
  project-a/.claude/wiki/     ← ✅ 目標
  Logseq/.claude/wiki/        ← ✅ 目標
  其他資料夾/                  ← ❌ 跳過

找到後列出清單,告訴使用者:「找到 N 個 wiki 資料夾,開始整理。」


第二步:對每個資料夾偵測 vault 類型

進入每個目標資料夾的根目錄.claude/wiki/ 的上兩層),依序判斷:

判斷順序(與 install.sh 一致)

if 根目錄有 logseq/ 資料夾
  → vault 類型:Logseq
  → raw sourcepages/、journals/
  → 忽略:logseq/、assets/

else if 根目錄有 .obsidian/ 資料夾
  → vault 類型:Obsidian
  → raw source:根目錄下所有 .md(排除 .obsidian/ 內的檔案)

else
  → vault 類型:一般專案
  → raw sourcedocs/ 下所有 .md

第三步:讀取現有 wiki 狀態

進入 .claude/wiki/,讀取:

  • INDEX.md:目前已有哪些 wiki 頁面
  • status.md:上次整理時間、進度
  • log.md(如果有):誰動過什麼

目的:知道哪些已整理過,只處理新增或有變動的 raw source,不重複整理。


第四步:整理規則

讀 raw source

逐一讀取 raw source 的 .md 檔。跳過:

  • 檔名以 . 開頭的隱藏檔
  • .wikiignore 裡列出的 glob pattern(如果存在)
  • 含有 <!-- wiki:ignore --> 標記的區段

整理邏輯

每個 raw source 檔案,判斷:

  1. INDEX.md 裡已有對應條目,且 raw source 未修改 → 跳過
  2. INDEX.md 裡已有條目,但 raw source 有新內容 → 更新對應 wiki 頁面,補充新資訊,不刪舊內容
  3. INDEX.md 裡沒有對應條目 → 新建 wiki 頁面

Wiki 頁面格式

# [主題名稱]

**來源**`[raw source 相對路徑]`
**最後更新**YYYY-MM-DD

## 摘要

[2-3 句話說明這份文件在講什麼]

## 重點

- [要點 1]
- [要點 2]

## 關聯

- [[相關 wiki 頁面]]

整理時,如果發現內容與其他 wiki 頁面有關聯,加上 [[頁面名稱]] 連結。這是 Karpathy LLM Wiki 的核心機制——知識會互相連結,不是孤立的筆記。


第五步:更新 INDEX.md 和 status.md

INDEX.md 格式

# Wiki Index

> 最後更新:YYYY-MM-DD HH:MM | 來源:cowork-scan | 總頁數:N

## 頁面列表

| 頁面 | 來源 | 摘要 | 最後更新 |
|------|------|------|----------|
| [[頁面名稱]] | `raw/path.md` | 一句話摘要 | YYYY-MM-DD |

status.md 更新

在現有內容末尾追加(不覆蓋):

## YYYY-MM-DD HH:MMcowork-scan

- vault 類型:[Logseq / Obsidian / 一般專案]
- 掃描檔案:N 個
- 新增頁面:N 個
- 更新頁面:N 個
- 跳過:N 個(未變動)

第六步:回報結果

整理完所有資料夾後,輸出摘要:

✅ Wiki 整理完成

資料夾 1~/Documents/project-a
  類型:一般專案
  新增:3 頁,更新:1 頁,跳過:12 頁

資料夾 2~/Documents/Logseq
  類型:Logseq vault
  新增:5 頁,更新:2 頁,跳過:47 頁

總計:8 頁新增,3 頁更新

絕對禁止

  • 修改任何 raw source 檔案
  • 修改 CLAUDE.md
  • logseq/.obsidian/assets/ 資料夾
  • 刪除 .claude/wiki/ 裡已有的頁面(只增補,不刪除)
  • 把機敏資訊(密碼、金鑰、個資)寫進 wiki(遇到跳過並記錄)
  • 整理沒有 .claude/wiki/ 的資料夾(那不是這個 skill 的目標)