mcpField
M
memory-bridge

memory-bridge

github.com/ar9av生産性3.6k2.4k 回インストール1 日前に更新
リポジトリ

memory-bridge について

memory-bridgeは、情報を作成したAIツール別にObsidian wikiのページを閲覧・比較するスキルです。出典情報からページの由来やツール間の重複、抜けを確認できます。

主な機能

  1. 01ツール別のページ閲覧
  2. 02特定の出典内でのページ検索
  3. 03ツールごとのwiki範囲の比較
  4. 04ページの出典ツールの一覧化

活用シーン

  1. 01特定のAIツールが作成したページの検索
  2. 022つのツールの知識貢献の比較
  3. 03複数ツールに共通するトピックの特定
  4. 04wikiページの出典確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ar9av/obsidian-wiki --skill memory-bridge

インストール後、Claude Code で/memory-bridgeを入力して読み込まれたか確認します。

詳細

Memory Bridge — ツール横断ナレッジブラウザー

ユーザーが、元々どの AI ツールで作成されたかを基準に絞り込んだ Obsidian wiki のナレッジを閲覧・比較できるよう支援します。この wiki では .manifest.json とページの sources: フロントマターでソースの来歴を追跡しており、このスキルはそのメタデータをナビゲート可能なビューとして表示します。

開始する前に

  1. 設定を解決する — llm-wiki/SKILL.md の Config Resolution Protocol に従います(インラインの @name による上書き → CWD から上位階層へ .env を検索 → グローバル設定 → セットアップのプロンプト)。これにより OBSIDIAN_VAULT_PATH が得られます。
  2. $OBSIDIAN_VAULT_PATH/.manifest.json を読み取ります — どのツールが何を生成したかを示す信頼できる情報源です。
  3. ページタイトルと1行の説明を確認するため、$OBSIDIAN_VAULT_PATH/index.md を読み取ります。

コマンド

ユーザーの呼び出しを解析してモードを判断します。

呼び出しモード
/memory-bridge <tool>閲覧 — <tool> をソースとする wiki ページをすべて一覧表示します
/memory-bridge <tool> "<topic>"検索 — <tool> をソースとし、<topic> に言及しているページを表示します
/memory-bridge diff差分 — 各ツール固有のページ、重複、見落としを表示します
/memory-bridge diff <tool-a> <tool-b>差分 — 指定した2つのツールを比較します
/memory-bridge mapマップ — 完全な出所マトリックスを表示します。各ページと、関与したすべてのツールを示します

認識されるツール名:claude、codex、hermes、openclaw、copilot、pi、manual(手書き)、ingest(wiki-ingest ドキュメント)。

ステップ1:ソースマップを作成する

.manifest.json を読み取ります。各ソースエントリから、次の項目を抽出します。

  • source_type — ツール名に対応します。
    • claude_conversation、claude_memory、claude_audit_log、claude_desktop_session → claude
    • codex_rollout、codex_index、codex_history → codex
    • hermes_memory、hermes_session → hermes
    • openclaw_memory、openclaw_daily_note、openclaw_session、openclaw_dreams → openclaw
    • copilot_session、copilot_checkpoint、copilot_transcript、copilot_memory_artifact → copilot
    • pi_session → pi
    • document → ingest
    • その他すべて → manual
  • pages_created と pages_updated — このソースから作成された wiki ページ

マップを作成します。

tool_pages = {
  "claude": set(pages created/updated by claude sources),
  "codex":  set(pages created/updated by codex sources),
  ...
}

複数のツールがページに貢献している場合、そのページは複数のツールのセットに含まれることがあります。

ステップ2:モードを実行する

閲覧モード

tool_pages[<tool>] を絞り込み、グループ化したリストとして表示します。

## Knowledge from <tool> (<N> pages)

### By category
- concepts/ — N pages
- entities/ — N pages
- skills/   — N pages
...

### Pages
| Page | Category | Tags | Last updated |
|------|----------|------|--------------|
| [[page-name]] | concept | tag1, tag2 | 2026-04-10 |
...

一覧表示したページのフロントマターを読み取ります(^(title|category|tags|updated): を grep します)。ユーザーが求めない限り、ページ本文全体は読み取りません。

検索モード

絞り込んだページのセット内で、次を実行します。

rg -l "<topic>" <pages in tool set>

その後、一致箇所の周辺にあるセクション見出し(^##)を grep して、ページ全体を読み込まずに文脈を示します。一致した抜粋を含むランキング形式のリストとして結果を表示します。

差分モード

次を計算します。

  • only_in_a = tool_pages[a] − tool_pages[b]
  • only_in_b = tool_pages[b] − tool_pages[a]
  • shared = tool_pages[a] ∩ tool_pages[b]

特定のツールが指定されていない場合は、すべてのツールのペアを比較します(出力を簡潔に保つため、重複または固有のページが1つ以上あるペアに限定します)。

次の形式で表示します。

## Memory Bridge Diff — <tool-a> vs <tool-b>

### Only in <tool-a> (<N> pages)
These concepts exist in your wiki from <tool-a> sessions but <tool-b> has never touched them.
<list with one-line descriptions from index.md>

### Only in <tool-b> (<N> pages)
<list>

### Shared (<N> pages)
Both tools have contributed to these pages.
<list — only show if ≤15; otherwise just the count>

### Notable gaps
<highlight the most interesting asymmetries — e.g. "codex has 12 pages on build tooling that claude has never seen">
マップモード

各ページと、関与したツールをすべて示すマトリックスを作成します。行数は最大50行とし、関与したツール数の降順(ツール横断のページが最も多いものを先頭にします。これらは最も情報量の多いノードです)で並べます。

| Page | claude | codex | hermes | copilot | pi |
|------|--------|-------|--------|---------|----|
| [[react-patterns]] | ✓ | ✓ | — | ✓ | — |
| [[rust-ownership]] | — | ✓ | — | — | ✓ |

ステップ3:impl-validator を起動する(利用可能な場合)

出力を生成した後、現在の環境で impl-validator スキルが利用可能な場合は、サブエージェントとして起動します。

impl-validator check:
  goal: "Browse/diff wiki knowledge by source tool and surface cross-tool blind spots"
  artifacts: [the output you just generated]
  checks:
    - Did you correctly parse source_type from .manifest.json?
    - Are page counts plausible (not 0 unless vault is empty)?
    - Is the diff symmetric (a−b and b−a are disjoint)?
    - Did you avoid reading full page bodies when not needed?

ユーザーに出力を提示する前に、検出された問題を反映します。

ステップ4:記録する

$OBSIDIAN_VAULT_PATH/log.md に追記します。

- [TIMESTAMP] MEMORY-BRIDGE mode=<browse|search|diff|map> tool=<tool> pages_shown=N

出力の規則

  • 各ツールのサイロにどれだけのナレッジがあるかを把握できるよう、常にページ数を表示します。
  • ページ参照には [[wikilinks]] を使います(OBSIDIAN_LINK_FORMAT=markdown が設定されている場合は、標準の Markdown リンクを使用します)。
  • 差分モードでは、最も意外な非対称性を明示します。ユーザーが求めている洞察はそれです。
  • .manifest.json が空または存在しない場合は、その旨を明確に伝え、まず /wiki-history-ingest を実行するよう提案します。

コメント