Obsidian Vault を Claude Code に繋ぐ実践編 では、読み取り側(Vault → プロジェクト)の設定パターンを整理しました。本記事はその続編で、書き戻し(writeback)側(プロジェクト → Vault)の設計を扱います。
ここを設計しないと、Vault は「過去の自分が書いたノート集」のまま古びていきます。プロジェクトで詰まったこと・学んだこと・設計判断の根拠が Vault に還流して初めて、AI Agent が「3 ヶ月前のあの話、応用できないか?」を提案できるようになります。
書き戻し設計で外せない3つの原則
具体的なパターンに入る前に、絶対に外せないルールを確認します。
- AI に Vault の正本(
topics/やprojects/の本文)を直接書かせない Obsidian の[[リンク]]構造とノート間の整合は、人間が編集してきた歴史の積み重ねです。AI に直接書かせると、リンク切れ・重複ノート・タグ揺れが一気に発生します。 inbox/を必ず噛ませる AI は~/Documents/ObsidianVault/inbox/にしか書かない。inbox/は「下書き置き場」と割り切り、人間が後で内容を吟味して Vault 本体に統合します。- 書き戻す対象は「リポジトリに収まらない知見」だけ
コードや設計書はリポジトリの
docs/に書きます。Vault に書くのは、プロジェクトを跨いで再利用される可能性のあるメタ知識 だけです。
つまり「AI が inbox/ に下書きを溜める → 人間が週次レビューで Vault 本体に統合する」という二段階フローを基本形にします。AI は下書き工場、人間は編集長、という分業です。
permissions と MCP の分離設計
書き戻しを安全に行う最大のコツは、読み取り用 MCP と書き込み用 MCP を別サーバとして分離する ことです。前作で触れた permissions 設計 を一段深めます。
| |
これに加えて、<proj>/.claude/settings.json 側で symlink 越しの書き込みを禁止しておきます(前作で作った <proj>/.claude/knowledge/ — Vault のサブセットを symlink した読み取り専用ディレクトリ — を経由する書き込みを塞ぐ目的)。
| |
CLAUDE.md には次のように明示します。
| |
@modelcontextprotocol/server-filesystemは引数で渡したディレクトリ配下を書き込みも含めて扱えるため、サーバ単位で「見せたい範囲」を絞る のが最も簡単な防御です。このサーバは起動時引数のディレクトリ配下しか FS ツリーとして公開しないため、vault-readonlyセッションから見るとinbox/のパスはそもそも解決できず、書きようがありません。読み取り MCP と書き込み MCP を別サーバとして立てることが、構造的な「物理隔離」になります。
パターン1: AI スキルで都度サマリを inbox に吐く(最も汎用)
PR 作成時やセッション終了時に明示的に呼ぶ、プロジェクト固有スキルです。文脈が最も濃いタイミング(議論が決着した直後)で要点だけ抽出して書き戻します。
<proj>/.claude/skills/summary-back-to-vault/SKILL.md:
| |
このスキルを /summary-back-to-vault として呼び出すと、AI が会話履歴・diff・PR の議論を読み直し、再利用価値のある観点だけを inbox/ に吐き出します。
重複チェックを必ず入れる のがポイントです。これがないと inbox/ に同じトピックの似たノートが量産されてしまい、人間のレビュー負荷が爆発します。
パターン2: Daily Note に追記する(軽量・連続的)
PR 単位でなく、日次で薄く書き戻すパターンです。Obsidian の Daily Notes プラグインと相性がよく、横断的な学習ログが自動で蓄積されます。
~/.claude/skills/vault-daily-log/SKILL.md:
| |
利点は次の3つです。
- サマリほど重くない — 1 行で済むので心理的コストが低い
- 日付軸で横断検索しやすい — 「先週 Next.js で何を学んだか」を Daily Notes をスクロールするだけで思い出せる
- Vault のリンク構造を壊さない — Daily Notes はそもそも日次フローなので、頻繁な追記が前提
体系化されない雑多な気付きはこちらが向いています。## Learned のような特定見出しに 追記しかしない ルールを徹底するのがコツです。
セッション終了時に自動実行したい場合、Claude Code の
hooks(Stopフックなど)からvault-daily-logを呼ぶ運用もあります。ただし「文脈の薄いセッションでもノイズが入る」副作用があるため、最初は手動呼び出し(/vault-daily-log)で始めて、頻度が上がってきたら hook 化する順序がおすすめです。
パターン3: ADR(設計判断記録)の二重書き
設計判断は リポジトリの docs/adr/ が正本 で、Vault には 個人クロスリファレンス用のコピー を残すパターンです。
<proj>/docs/adr/0042-use-bun-instead-of-node.md ← 正本(コミット)
~/Documents/ObsidianVault/inbox/adr/0042-<proj>-use-bun.md ← 個人参照用
decision-log スキルを作り、ADR を書くときに必ず両方に出力させます。
| |
Vault 側のファイル名にプロジェクト名を含めるのは重要な工夫です。Vault 内で adr-*-use-bun.md を一覧したときに、どのプロジェクトでの判断だったかが即座にわかります。これがないと、後で見返したときに「どの文脈での Bun 採用か」を毎回開いて確認するハメになります。
どのトリガで書き戻すか
3 つのパターンは、起動タイミングで使い分けます。
| トリガ | 適したパターン | 理由 |
|---|---|---|
| PR マージ直前 | パターン1(サマリ) | 議論が決着した直後、文脈が最も濃い瞬間 |
| セッション終了時 | パターン2(Daily Note) | 「今日何を学んだか」を機械的に残す |
| 設計判断をした瞬間 | パターン3(ADR 二重書き) | あとから探すコストを下げる |
| 週次レビュー | (人間が inbox/ を promote) | 整理は人間の責務 |
「全部一度にやろう」とすると破綻するので、まずは パターン1 だけを /summary-back-to-vault で手動運用 するところから始めるのが現実的です。それで Vault に書き戻しの流れができてから、Daily Note や ADR 二重書きを足していくと、運用が定着しやすくなります。
inbox → 本棚への「昇格」運用
inbox/ は溜まる前提なので、人間側のレビュー運用がワークフローの肝です。
週次レビュー(15〜30 分)の手順:
- Obsidian で
inbox/を開き、新規ノートを一覧する。 - 各ノートに対して 4 つの選択肢から選ぶ:
- 昇格:
topics/<area>/またはconcepts/<name>/に移動・rename し、[[既存ノート]]でリンクを張る - 追記: 類似ノートが既にある場合、そちらに merge してから inbox 側を削除
- 保留: もう少し情報が溜まってから判断したい → タグ
#review-laterを付けて残す - 破棄: ただの作業ログで再利用価値なし → 削除
- 昇格:
- 2 週間以上
inbox/に残っているノートはアーカイブ(inbox/_archive/)または削除。ただし#review-laterタグが付いているノートは「意図的に保留中」なので archive 対象から除外し、別途月次でまとめてレビューする。
この運用にしておくと、Vault 本体は人間が手を入れたノートだけで構成され、リンクグラフが綺麗に保たれます。AI に「自動で昇格させる」役割を持たせると、ほぼ確実にリンク構造が壊れます。昇格判断だけは人間に残す のが、Vault を長期運用する上での生命線です。
書き戻すべきもの/避けるべきもの
最後に判断のチェックリストです。
書き戻すべきもの:
- 他プロジェクトでも同じ落とし穴に出会いそうな gotcha
- 「なぜこの設計にしたか」の意思決定の根拠
- 公式ドキュメントから読み取れない実運用での挙動
- 横断的に使えるコマンドスニペット・設定パターン
書き戻してはいけないもの:
- プロジェクト固有の業務ロジック(リポジトリの
docs/で十分) - 顧客名・認証情報・契約に関わる情報
- 進行中の ToDo(Issue で管理)
- 公開資料に既にある情報(リンクだけ Vault に残せばよい)
判断に迷ったとき: 「3 ヶ月後に別プロジェクトで同じ問題に出会ったとき、自分はこのノートを検索するか?」を自問してください。Yes なら書き戻す価値があります。
まとめ
書き戻しは、Vault を「資産」に変える最後のピースです。読み取り側だけ設定しても、Vault は過去の自分の知識のスナップショットのままで、AI Agent が「過去の自分から学ぶ」現象は起こりません。
設計の肝は次の 3 点です。
- inbox-first: AI は
inbox/にしか書かない。本棚は人間が編集する - 読み取り用と書き込み用の MCP サーバを分離: サーバ単位で「見せる範囲」を絞り、構造的に事故を防ぐ
- 書き戻すのはリポジトリに収まらないメタ知識だけ: コードや設計書はリポジトリ、Vault は横断知識
読み取り側の設定 と組み合わせると、「Vault から AI に文脈を渡す → プロジェクトで活用する → 得た知見を inbox に書き戻す → 週次レビューで昇格」という循環が回り始めます。シリーズの最初の問題提起である GitHubで全部完結する開発者にObsidianは本当に必要か? に立ち返ると、Obsidian の価値は 「個人の知の網が AI Agent 越しに自己強化される」ループ にあり、書き戻しの設計こそがそのループを閉じる役割を担っている、と言えます。