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>
This commit is contained in:
+177
@@ -0,0 +1,177 @@
|
||||
---
|
||||
name: wiki-cowork-scan
|
||||
description: "掃描本機 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 source:pages/、journals/
|
||||
→ 忽略:logseq/、assets/
|
||||
|
||||
else if 根目錄有 .obsidian/ 資料夾
|
||||
→ vault 類型:Obsidian
|
||||
→ raw source:根目錄下所有 .md(排除 .obsidian/ 內的檔案)
|
||||
|
||||
else
|
||||
→ vault 類型:一般專案
|
||||
→ raw source:docs/ 下所有 .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 頁面格式
|
||||
|
||||
```markdown
|
||||
# [主題名稱]
|
||||
|
||||
**來源**:`[raw source 相對路徑]`
|
||||
**最後更新**:YYYY-MM-DD
|
||||
|
||||
## 摘要
|
||||
|
||||
[2-3 句話說明這份文件在講什麼]
|
||||
|
||||
## 重點
|
||||
|
||||
- [要點 1]
|
||||
- [要點 2]
|
||||
|
||||
## 關聯
|
||||
|
||||
- [[相關 wiki 頁面]]
|
||||
```
|
||||
|
||||
### 使用 `[[wikilink]]` 語法
|
||||
|
||||
整理時,如果發現內容與其他 wiki 頁面有關聯,加上 `[[頁面名稱]]` 連結。這是 Karpathy LLM Wiki 的核心機制——知識會互相連結,不是孤立的筆記。
|
||||
|
||||
---
|
||||
|
||||
## 第五步:更新 INDEX.md 和 status.md
|
||||
|
||||
### INDEX.md 格式
|
||||
|
||||
```markdown
|
||||
# Wiki Index
|
||||
|
||||
> 最後更新:YYYY-MM-DD HH:MM | 來源:cowork-scan | 總頁數:N
|
||||
|
||||
## 頁面列表
|
||||
|
||||
| 頁面 | 來源 | 摘要 | 最後更新 |
|
||||
|------|------|------|----------|
|
||||
| [[頁面名稱]] | `raw/path.md` | 一句話摘要 | YYYY-MM-DD |
|
||||
```
|
||||
|
||||
### status.md 更新
|
||||
|
||||
在現有內容**末尾追加**(不覆蓋):
|
||||
|
||||
```markdown
|
||||
## YYYY-MM-DD HH:MM|cowork-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 的目標)
|
||||
Reference in New Issue
Block a user