13 - 實戰:套用在兩個 repo

12-設定檔與CLI旗標速查 | 00-Index | 下一篇 → 14-疑難排解與速查表


現況盤點

你已經在用的(做對的部分):

已有評語
兩份很完整的 CLAUDE.md✅ 規則清楚、有階層、有理由
.claude/skills/ 放在 repo 裡✅ 正確——雲端 / Routine session 讀不到 ~/.claude/skills/
Skill pipeline(orchestrator → writer → wiki-maintain)✅ 「唯一一次 commit」的設計是對的
PubMed MCP✅ 而且 CLAUDE.md §4 有寫「沒有 MCP 就別猜 PMID」的 fallback
_wiki_meta/lint.pytools/validate.py✅ 有機器可驗證的關卡

以下是根據官方文件可以再優化的地方


建議一:把 CLAUDE.md 拆成核心 + path-scoped rules ⭐

問題:官方建議每份 CLAUDE.md 200 行以內,理由是「越長吃越多 context,而且降低遵守率」。你的 vault CLAUDE.md 遠超過,而且裡面混了三種讀者情境(醫學筆記 / 語言筆記 / 理財筆記)。

做法

Obsidian-med-note/
├── CLAUDE.md                      ← 只留「永遠要在 context 裡」的
│   §0 三條鐵律(絕不捏造 / 必標源 / 寫檔後更新 wiki)
│   §1 medical-in-English 硬規則
│   §3 skill pipeline 與手動 SOP
│   §5 git(push 前 pull --rebase、衝突停手)

└── .claude/rules/
    ├── quartz-compat.md    paths: "**/*.md"          ← §6 圖片 ![[]] / YAML 合法性
    ├── lang-notes.md       paths: "語言/**"           ← §8 語言學習筆記(讀者不同)
    ├── finance.md          paths: "理財(FIN)/**"      ← §9 理財三任務守則
    └── note-format.md      paths: "**/*_overview.md"  ← §2 Pearl Card 格式

範例 .claude/rules/finance.md

---
paths:
  - "理財(FIN)/**"
---
 
# 理財區規則
 
⚠️ 這區的慣例跟醫學筆記**相反**:專有名詞要**中英並列**,不是一律英文。
 
1. 財務數字絕不捏造:股價 / 財報 / 估值 / 目標價一律 web 查證權威來源(財報、SEC、官方 fact sheet),標查證日;無法查證標「需查證」。
2. `transactions.csv` 是唯一真相:只記買 / 賣 / 配息事實,報酬率由 `compute.py` 算,**不手填**。DIV 現金流 = `shares × price − fee`(fee 欄放預扣稅)。
3. **不要在本地跑 `compute.py`**:sandbox proxy 擋 Yahoo Finance,抓價會失敗 → push 後由 GitHub Actions 執行(`--self-test` 可在本地驗 XIRR 數學)。
4. `specialty: FIN`;ETF 分析放 `理財(FIN)/筆記/ETF分析/`、個股放 `個股分析/`

效益:主檔案變短 → 核心醫學安全規則的遵守率上升。而且你寫腎臟科筆記時,理財規則根本不進 context。


建議二:把「最不能出錯的兩條」變成硬規則

CLAUDE.md 是上下文(軟),權限規則和 hook 是執行(硬)。挑兩條做硬的:

Obsidian-med-note/.claude/settings.json(進版控):

{
  "permissions": {
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Edit(.quartzsite/**)",
      "Write(.quartzsite/**)",
      "Bash(git push --force *)",
      "Bash(git push -f *)"
    ]
  }
}

對應 CLAUDE.md §6「不要動 .quartzsite/」和 §5「絕不可覆蓋掉使用者的筆記內容」。

Taiwan_IM_board/.claude/settings.json

{
  "permissions": {
    "deny": [
      "Bash(git push --force *)"
    ],
    "allow": [
      "Bash(python3 tools/validate.py)",
      "Bash(python3 tools/build_index.py)",
      "Bash(npm run validate)"
    ]
  }
}

allow 那幾條是純驗證、無副作用的指令,讓它不用每次問。


建議三:用 hook 把「一定要做」的事釘死

CLAUDE.md §7 自己列出的「已知雷區」第三條就是:「寫完筆記忘了跑 §3 維護 → 最常見錯誤」

這是 hook 的教科書級用例。三個候選:

規則Hook 事件做什麼
改動筆記要更新 modifiedPostToolUse(matcher Edit|Write跑腳本把當天日期蓋上去
不准動 .quartzsite/PreToolUse比對路徑,中了就 exit 非零擋下
YAML 壞掉會讓整站 build 失敗PostToolUse跑一次 YAML 驗證,壞了就報錯

⚠️ Hook 的完整 JSON 輸入 / 輸出 schema 和擋下語義請對照官方 Hooks reference。本教學 09-Hooks自動化 給的是觀念與骨架,部署前自己測一次


建議四:做一個唯讀的盤點 subagent

Obsidian-med-note/.claude/agents/inventory.md

---
name: inventory
description: 盤點某個專科資料夾的筆記時效性,產出報告。當使用者要求「盤點」「哪幾篇該更新」「檢查時效」時使用。
tools: Read, Glob, Grep
model: haiku
color: cyan
---
 
你是筆記盤點員。**你只讀,不寫任何檔案。**
 
掃描指定資料夾的所有 `*_overview.md`,輸出表格:
 
| 檔案 | updated | modified | 內文最新 guideline 年份 | PMID 數 |
 
規則:
- guideline 年份從「⚡ 資料更新至:」行與 Key References 區抓
- **不要判斷哪個 guideline 比較新**——那需要 PubMed,是主 agent 的工作
- 不確定填「?」,不要猜
 
只回表格 + 一句總結。

為什麼值得

  • tools: Read, Glob, Grep物理上不可能改到你的筆記
  • model: haiku → 純掃描不用貴模型
  • 它在自己的 context 裡掃 30 篇筆記,主對話只收到一張表
  • 你拿到表就能決定「哪 3 篇值得花 PubMed 額度去 review」

建議五:搭配 Herdr 時的分工

這條是把三份教學接起來:

Claude Code(大腦)
├── 自己做:規劃、PubMed 查證、醫學正確性判斷、wiki 維護、唯一一次 commit
├── subagent:唯讀盤點、探索(省 context,但仍花 Claude 額度)
└── 透過 Herdr 外包給 Codex:格式稽核、批次改寫、圖片處理、資料轉換
                              (省 Claude 額度,換成 ChatGPT Plus 額度)

完整做法見 Herdr 08Herdr 10


一個典型的 vault 工作 session

cd ~/Obsidian-med-note
claude
/context                    # 確認 CLAUDE.md 有載入
/plan 幫我 review NEP 科的 CKD 筆記,看資料是否為最新

→ 它進 plan mode 研究,提計畫(要查哪幾個 guideline、要改哪幾段) → Ctrl+G 把計畫開在編輯器裡,把你不同意的部分刪掉 → 核准 → 它用 PubMed MCP 查證、改檔 → /diff 看變更 → 跑 !python3 _wiki_meta/lint.py 驗證 → 叫它跑 wiki-maintain 並 commit push

關鍵是第二步和第三步:plan mode + Ctrl+G 編輯計畫,是「醫學內容零錯誤優先」在工具層面的具體落實。


一個典型的刷題網站工作 session

cd ~/Taiwan_IM_board
claude
/plan 114 年心臟血管科 001-012 題的詳解草稿

規則提醒(CLAUDE.md 已有,但值得在 prompt 再講):

  • 五段式、每個選項都要分析
  • status 一律 draftAI 永遠不可改成 reviewed
  • 正解依該考試年度當時的標準
  • PMID / DOI 必須查證為真,查不到改原則性描述

做完:

!python3 tools/validate.py

⚠️ 別忘了 CLAUDE.md §2:改功能 = changelog + 使用說明 + README 三件事一起改。這條規則需要判斷(「這算不算使用者看得到的更動」),所以不適合做成 hook,但很適合放進一個 skill 的檢查清單。


🔗 相關筆記


最後更新:2026-08-04