breferrari/obsidian-mind
breferrari/obsidian-mind has 5,528 GitHub stars and 612 forks. GitHot measured +4 stars in 24 hours and +40 in 7 days. Last checked 2026-11-11 15:04 UTC. Last push 2026-10-17.
A self-organizing Obsidian vault that gives AI coding agents persistent memory.
計測したスター増加
- 24時間
- +4
- 7日間
- +40
- 15日間
- 更新が遅れています
- 1か月
- 更新が遅れています
期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。
README.ja.md
オリジナル[!NOTE] この翻訳はAIの支援を受けて作成されました。不自然な表現や誤訳がありましたら、ぜひIssueやPull Requestでお知らせください。コミュニティからの修正を歓迎します。
Obsidian Mind
Claude Codeにすべてを記憶させるObsidianボールト。 セッションを開始して、日々のことを話すだけ — ノート、リンク、インデックス、パフォーマンス管理はClaudeが自動で処理します。すべての会話が前回の続きとして積み重なっていきます。
🔴 課題
AIコーディングエージェントは強力ですが、忘れてしまいます。毎回のセッションがゼロからの出発 — あなたの目標、チーム、パターン、実績に関するコンテキストがありません。同じことを何度も説明し直し、3回前の会話で下した決定が失われます。知識が蓄積されないのです。
🟢 解決策
エージェントに脳を与えましょう。
あなた: "セッション開始"
エージェント: *North Starを読み、アクティブなプロジェクトを確認し、最近の記憶をスキャン*
エージェント: "Project Alphaに取り組んでいますね。BEコントラクトでブロック中です。
前回のセッションでコーディネーターを分割することに決めましたね。
明日マネージャーとの1on1があります — レビューブリーフは準備完了です。"
shardmind install または git clone でインストール — どちらも同じボールトです。
⚡ 実際の動作
朝のキックオフ:
/om-standup
# → North Star、アクティブプロジェクト、未完了タスク、最近のgit変更を読み込み
# → "アクティブなプロジェクトが2つあります。認証リファクタリングはAPIコントラクト待ちです。
# 14時にSarahとの1on1があります — 前回、オブザーバビリティについて指摘がありました。"
ミーティング後のブレインダンプ:
/om-dump Just had a 1:1 with Sarah. She's happy with the auth work but wants
us to add error monitoring before release. Also, Tom mentioned the cache
migration is deferred to Q2 — we decided to focus on the API contract first.
Decision: defer Redis migration. Win: Sarah praised the auth architecture.
→ org/people/Sarah Chen.md をミーティングの内容で更新
→ work/1-1/Sarah 2026-03-26.md を作成(要点まとめ付き)
→ Decision Record を作成: 「RedisマイグレーションをQ2に延期」
→ perf/Brag Doc.md に追加: 「マネージャーから認証アーキテクチャを評価された」
→ work/active/Auth Refactor.md にエラーモニタリングタスクを追加
インシデント対応:
/om-incident-capture https://slack.com/archives/C0INCIDENT/p123456
# → slack-archaeologist がすべてのメッセージ、スレッド、プロフィールを読み取り
# → people-profiler が関係者のノートを作成
# → 完全なタイムライン、根本原因分析、Brag Docへのエントリー
一日の終わり:
あなた: "wrap up"
# → すべてのノートにリンクがあるか確認
# → インデックスを更新
# → brag-spotter が記録されていない実績を発見
# → 改善点を提案
🚀 クイックスタート
📦 ShardMindでインストール(推奨)
npm install -g shardmind
mkdir my-vault && cd my-vault
shardmind install github:breferrari/obsidian-mind
shardmind install はカレントディレクトリに書き込むため、先に新しいフォルダを作成して移動してください。ウィザードがあなたの名前、組織、ボールトの目的、含めるエージェント、QMDを有効化するかどうかを収集します。続いてShardMindがgitを初期化し、必要に応じてQMDをブートストラップし、あなたの回答に基づいてbrain/North Star.mdをパーソナライズします。その後:
- インストールされたフォルダをObsidianボールトとして開く
- 設定 → 一般でObsidian CLIを有効化(Obsidian 1.12以上が必要)
- ボールトディレクトリでエージェントを実行:
claude、codex、または**gemini**。Codex はフォルダーが信頼され、各フックが承認されるまでボールトのフックを実行しません:他のエージェントでの利用を参照。 - 仕事について話し始める
ShardMindはObsidianボールトテンプレートのパッケージマネージャーです。インストール時に.shardmind/サイドカーが追加され、ウィザード、オプションのモジュール(不要なものはスキップ可能)、3-wayマージのアップグレードを実現します。すべての値がデフォルトの場合、インストール結果はgit cloneとバイト等価 — クローン体験はそのまま保たれます。インストール済みボールトから.shardmind/とshard-values.yamlを削除しても動作し続けます:ShardMindは追加機能であり、必須ではありません。
または直接クローン
git clone https://github.com/breferrari/obsidian-mind.git
またはGitHubテンプレートとして使用。ウィザードをスキップし、素のテンプレートを取得します。その後、上記の4ステップを実行し、加えて**brain/North Star.md**に目標を記入してください(ShardMindウィザードを使えば自動で行われます)。
🔍 推奨:QMDセマンティック検索
ボールト全体のセマンティック検索(ノートのタイトルが「Redis Migration ADR」でも「キャッシュについて何を決めた?」で見つかる):
npm install -g @tobilu/qmd
node --experimental-strip-types .scripts/qmd-bootstrap.ts
ブートストラップは冪等で、再実行しても安全です。vault-manifest.json の qmd_index と qmd_context フィールドを読み取り、名前付きインデックスを登録してエンベディングを生成します(インデックス名は qmd_index が設定されていればその値、未設定ならボールトのフォルダ名をスラッグ化した値)。SessionStart フック、.mcp.json のラッパー、CLI コマンドはすべて同じマニフェストフィールドを参照するため、同一マシン上の他のボールトと QMD データが混ざりません。CLI 実行時は常に --index <名前> を渡してください:
qmd --index obsidian-mind query "キャッシュについて何を決めた?"
qmd --index obsidian-mind update # 一括編集後
qmd --index obsidian-mind embed # 多数の新規ノート後
MCPによるネイティブなエージェントツール。 .mcp.jsonにModel Context Protocolサーバーとして登録されています — QMDがインストールされていれば、mcp__qmd__query、mcp__qmd__get、mcp__qmd__multi_getがReadやEditと並んでエージェントのツールメニューに表示されます。サブエージェント、スラッシュコマンド、メイン会話はすべて同じ型付きコントラクトを呼び出します。後から別のMCP対応ツール(データベース、チケット管理、カレンダー)を追加しても、同じ方法でプラグインできます。
内部の仕組み
QMDは3つの小さなモデルをローカルで実行します。設定するAPIキーは不要で、クエリごとの費用もかからず、オフラインでも動作します:
| モデル | サイズ | 役割 |
|---|---|---|
embeddinggemma-300M |
~328MB | ノートとクエリをベクトルに変換 |
qmd-query-expansion-1.7B |
~1.28GB | クエリをより良い検索語に書き換え |
Qwen3-Reranker-0.6B |
~640MB | 候補を実際の関連性で並べ替え |
初回使用時にダウンロードされ、キャッシュされます。GPUが見つかればオフロードし(ディスクリートGPUではCUDA、Apple SiliconではMetal)、なければCPUにフォールバックします。qmd doctorで自分の環境を確認できます。
3つのCLIコマンドは、安い順にこのスタックへ対応します: qmd searchはモデルを一切使わないBM25キーワード検索、qmd vsearchはベクトルのみ、qmd queryは完全なハイブリッドです。大きなダウンロードを避けたい場合、searchだけでも十分実用的です。
MCPサーバーにとっての意味
omサーバーは字句クエリとベクトルクエリの両方を送るため、キーワードが一致しなくても質問に答えるノートを見つけられます。実務上の要点:
- 重いのは書き込みではなく読み取りです。 クエリは検索前にローカルで埋め込まれるため、クエリ付きの
recallは数秒かかり、クエリなしのrecallはほぼ即時です。ノートに対するsearchは高速で、コストがかかるのはベクトル処理の部分です。 - メモリの書き込みはモデルを待ちません。 インデックス更新は同期的なので新しいメモリはすぐ取得可能になり、ベクトル生成はバックグラウンドで行われます。ベクトルは順位にのみ影響し、見つかるかどうかには影響しないためです。
- インデックスが無くても動きます。 QMDが無い場合、サーバーは字句マッチにフォールバックします。順位は悪くなりますが、何も失われません。
📋 要件
- Obsidian 1.12以上(CLIサポートのため)
- Claude Code
- Node 22+ LTS(フックスクリプト用 — Claude Code / Codex / Gemini CLI と一緒に通常インストール済み)
- Git(バージョン履歴用)
- QMD(オプション、セマンティック検索用)
Node フラグについて。 フックスクリプトは Node の
--experimental-strip-typesフラグで TypeScript を直接実行します。このフラグは Node 22.6+(2024年8月)で安定し、Node 23.6+ ではデフォルトの動作になりました。実験的扱いではあるものの 22 LTS と 24 LTS で挙動は変わっていません。将来の Node リリースでフラグが廃止・改名された場合、.claude/settings.json、.codex/hooks.json、.gemini/settings.jsonのフックコマンドを1行修正する必要があります。
⚙️ 仕組み
手続き的コードが環境を所有し、エージェントがコンテンツを所有します。 .claude/scripts/のフックが分類、検証、インデックス作成、ライフサイクル注入を処理します — 決定論的で、テスト可能で、どのエージェントでも同じように動作します。ノートを書き、配置し、リンクし、ブリーフを作成する — それらは判断であり、エージェントに委ねられます。両者は小さなハンドオフで出会い(フックがコンテキストを注入し、エージェントがボールトを読む)、どちらも相手の仕事をする必要はありません。
フォルダは目的別にグループ化。リンクは意味別にグループ化。 ノートは1つのフォルダ(その居場所)に存在しますが、多くのノート(そのコンテキスト)にリンクします。エージェントがこのグラフを維持し、作業ノートを人物、意思決定、コンピテンシーに自動的にリンクします。レビューシーズンが来たとき、各コンピテンシーノートのバックリンクがそのままエビデンスの軌跡になっています。リンクのないノートはバグです。
ボールトファーストのメモリがセッション間・マシン間でコンテキストを保持します。永続的な知識はすべてbrain/のトピックノート(git管理、Obsidianで閲覧可能、リンク付き)に保存されます。Claude CodeのMEMORY.md(~/.claude/)はボールト内の場所を指す自動読み込みインデックスであり、ストレージそのものではありません。これにより、記憶はマシン変更後も生き残り、グラフの一部として機能します。
セッションには設計されたライフサイクルがあります。 SessionStartフックが自動的にNorth Starの目標、アクティブプロジェクト、最近の変更、未完了タスク、ボールト全体のファイル一覧、ボールト衛生フラグを注入します — Claudeは白紙からではなく、コンテキストを持ってセッションを開始します。終了時に「wrap up」と言えば、Claudeが/om-wrap-upを実行 — ノートの検証、インデックスの更新、記録漏れの実績の発見を行います。CLAUDE.mdがその間のすべてを統制します:ファイルの配置場所、リンクの仕方、ノートの分割タイミング、意思決定やインシデントの扱い方。
🔗 フック
5つのライフサイクルフックが自動的にルーティングを処理します:
| フック | タイミング | 内容 |
|---|---|---|
| 🚀 SessionStart | 起動/再開時 | QMD再インデックス+セルフヒール、North Starフォーカス・アクティブプロジェクト・最近の変更・タスク・ファイル一覧・ボールト衛生フラグを注入 — 全体はClaude Codeのフック出力上限に収まるバイトバジェットで抑えられ、最終行は注入サイズメーター |
| 💬 UserPromptSubmit | 全メッセージ | コンテンツを分類(意思決定、インシデント、実績、1on1、アーキテクチャ、人物、プロジェクト更新)してルーティングヒントを注入。前のターンのStopレポートもエージェントに渡す |
| ✍️ PostToolUse | .md書き込み後 |
フロントマター+ウィキリンクの検証、誤配置メモリファイルのブロック、肥大ノート(削るのではなく分割)と書き込み時トピッククラスタのフラグ |
| 💾 PreCompact | コンテキスト圧縮前 | セッション記録をthinking/session-logs/にバックアップ |
| 🏁 Stop | 各応答の終了時 | チェックリスト+具体的なドリフト検出(SessionStartと同じ衛生スキャン)。セッションごとに1回、内容が変わった時のみ再表示。あなたにはセクションごとに1行の短い要約、エージェントには次のメッセージと一緒に完全なレポートが届き、対応するかはエージェントが判断。対応はom-tidyへ |
[!TIP] ただ話すだけ。フックがルーティングを処理します。
🧩 Claude Code の mod
Claude Code 2.1.287 以降では、ボールトは mod も同梱しています。.claude/skills/obsidian-mind/ にある、Claude Code の内部で動くプラグインです。ボールト自身のフックスクリプトを実行し、その出力がセッションに届く経路だけを変えます。
- セッションコンテキストは、
CLAUDE.mdと同じく instruction ファイルとして届きます。 コンパクションや/clearの後もそのまま全体が読み直され(フック出力ではポインタに縮みます)、汎用サブエージェントにも届き(フック出力は届きません)、Claude Code のフック出力の 10,000 文字制限で切られません。予算はvault-manifest.jsonのeager_layer_instruction_budget_bytesです。オープンタスクのように縮まないセクションは、それを超えることがあります。/memoryには.claude/session-context.mdとして表示されます。 - Stop レポートは回答の下の 1 行になります。 指摘が変わると、Claude の返答の下に、mod の名前で始まる行
obsidian-mind: vault check: …が表示されます。Claude Code は Stop で応答したプラグインの名前を+で連結するため、他のプラグインも応答するとobsidian-mind+<プラグイン>: vault check: …のようになります。Claude は完全なレポートを次のメッセージと一緒に、表示されない形で受け取ります。緊急とマークされた指摘は、代わりにすぐ Claude に届きます(あなたのメッセージ 1 通につき 1 回まで。2 件目はレポートの中で待ちます)。テンプレート自身のレポートにはそれはありません。
mod は処理するイベントごとに、対応するフックに待機を伝えます。mod が読み込まれない場所では、フックはこれまでどおり動きます。Codex と Gemini、古い Claude Code、ボールトのサブフォルダで始めたセッション(ボールトのルートで起動するか、そこへ /cd して /clear)、信頼していないフォルダです。mod は、ボールトに対する Claude Code の信頼確認を承認した後にだけ読み込まれます。
mod はサンドボックス化されておらず、あなたの権限で動くコードです。フォルダを信頼する前に内容を確認してください。claude plugin validate .claude/skills/obsidian-mind が、フックするイベントと行う呼び出しをすべて一覧にします(ボールト自身のスクリプトを実行し、コンテキストファイルを書き、各セッションにどのレポートを見せたかを自分のストアに記録し、緊急の指摘があればプロンプトを送るだけです)。無効にするには、.claude/settings.local.json に "enabledPlugins": { "obsidian-mind@skills-dir": false } を追加します。
この版の mod で、その出力のうち確認すべき 2 行は次のとおりです:
❯ ./register.ts hooks: classic.SessionStart, prompt.context, classic.Stop, turn.complete, prompt.submit, turn.start
❯ ./register.ts calls: $.fs.write, $.process.run (via runScript), $.prompt.submit, $.session.root, $.state.get, $.state.set, $.store.get (via setShown, shownFor), $.store.set (via setShown), $.ui.invalidate
⚡ トークン効率
obsidian-mindはボールト全体をコンテキストに読み込みません。階層型ローディングでトークンコストを抑えます:
| 階層 | 内容 | タイミング | コスト |
|---|---|---|---|
| 常時 | CLAUDE.md + SessionStartコンテキスト(North Star抜粋、git概要、タスク、ボールトファイル一覧) |
セッション開始時 | マニフェストのバジェットが上限(それ自体もClaude Codeの10,000文字のフック出力上限の内側に抑えられる)。実サイズは毎セッション末尾のメーターが表示 |
| オンデマンド | QMDセマンティック検索結果 | エージェントが特定のコンテキストを必要とした時 | 対象のみ |
| トリガー | 分類ルーティングヒント | 毎メッセージ | ~100トークン |
| トリガー | PostToolUse検証 | .md書き込み後 |
~200トークン |
| まれ | ファイル全体の読み込み | 明示的に必要な場合のみ | 可変 |
SessionStartは軽量なコンテキストを読み込みます — 主要ファイルからの短い抜粋、ファイル名、git概要のみで、ノート全体は読み込みません。エージェントはQMDで意味検索してからファイルを読むため、関連する情報のみを取得します。分類フックはメッセージごとに軽量なNode呼び出し1回です。検証フックはMarkdown書き込み時のみ発火し、除外パスはスキップします。 ボールトが成長しても注入層を正直に保つ5つの仕組み: ソース認識注入(resume/compact時は揮発セクションのみ再注入 — 静的な大部分はすでに会話内にある)、全注入の最終行に付く注入サイズメーター、メーターが計測する値を実際に強制する注入バジェット(上限を超えると失っても影響の小さいセクションからポインタに縮退し、縮退したものはメーターに必ず名前が出る — 黙って失われる方が肥大化より悪いため)、書き込みごとのフック起動は1プロセスのみ(QMDリフレッシュは検証フックに同乗)、一覧の折りたたみ(ノート数のしきい値を超えたフォルダは1行のカウント表示に畳まれるので、誰も設定し忘れたフォルダ経由でボールトが上限を超えて育つことはない)。バジェットとしきい値はどちらも vault-manifest.json で調整できます。ただしバジェットは設定値にかかわらずClaude Codeの10,000文字のフック出力上限の内側に抑えられます。上限を超えると、セッションには2,000文字のプレビューしか届かないためです。
🌐 他のエージェントでの利用
obsidian-mindはClaude Code、Codex CLI、Gemini CLIで動作します。CLAUDE.mdのボールト規約、.claude/scripts/のフックスクリプト、.claude/commands/のコマンドはすべてエージェント非依存です — 純粋なMarkdown、TypeScript、シェルでSDK依存はありません。
Claude Code — フルサポート。フック、コマンド、サブエージェント、メモリシステムがすべてそのまま動作します。
Codex CLI — AGENTS.mdをネイティブに読み込みます。.codex/hooks.jsonのフック設定がClaude Codeと同じフックスクリプトを接続 — セッションコンテキスト、メッセージ分類、書き込み検証が自動的に動作します。
Codex がプロジェクトのフックを実行するには、2 つの信頼が必要です(Codex CLI 0.160.0 で確認、2026-10-13 時点、#345)。
- ボールトのフォルダーが信頼されていること。 Codex は
~/.codex/config.tomlの[projects.'<path>']に記録します。Windows ではキーが\\?\付きのパスになります(例:[projects.'\\?\C:\path\to\vault'])。 - 各フックが承認されていること。 Codex は各承認を
[hooks.state]のtrusted_hashとして保存します。対話型のcodexセッションで承認するとこれが書き込まれるはずです(推測:#345 の確認では、1 回の非対話実行用のフラグ--dangerously-bypass-hook-trustで代用しました)。
両方が揃うまで Codex はフックを一切実行せず、セッションにボールトのコンテキストは届きません。
Gemini CLI — GEMINI.mdをネイティブに読み込みます。.gemini/settings.jsonのフック設定がGeminiのイベント名を共有フックスクリプトにマッピングします。
その他のエージェント(Cursor、Windsurf、GitHub Copilot、JetBrains AI)— AGENTS.mdでボールト規約を読み取ります。フックサポートはエージェントにより異なります。
[!NOTE] フック、コマンド、サブエージェントプロンプト、ボールトメモリ(
brain/)はすべてエージェント非依存です。~/.claude/の自動メモリローダーのみがClaude Code専用です。詳細はAGENTS.mdをご覧ください。
🧠 どのリポジトリからでもボールトにアクセス
ボールトは通常、その中で作業しているときにしか役立ちません。om MCPサーバーがそれを変えます。他のあらゆるリポジトリのコーディングセッションが、ノートを検索し、読み、グラフをたどり、学んだことをボールトに記録できるようになります。
{
"mcpServers": {
"om": {
"command": "node",
"args": ["/path/to/your-vault/.claude/scripts/om-mcp.mjs"]
}
}
}
これは利用側プロジェクトの.mcp.jsonに記述します。次に、そのプロジェクト自身のCLAUDE.mdにボールトを指し示す短いセクションを追加してください。
[!IMPORTANT] 両方の手順が必須で、2つ目は事務作業ではありません。 実測: サーバーを接続してもリポジトリ側の指示がない場合、セッションはボールトを一度も呼び出さず、ボールトが明確に却下したと記録していた設計をそのまま実装しました。指示があった場合は、実装を拒否しノートを引用しました。
MCPの
instructionsフィールドにおける禁止事項は呼び出し側セッションへ確実に伝播します。一方「ボールトを参照せよ」という肯定的な指示は助言的で、より近い情報源があれば無視されます。サーバーはセッションを止められますが、セッションに探しに行かせられるのはそのプロジェクト自身の規約だけです。
セッションが得られるもの: search(セマンティック+キーワード)、expand(ノートのリンクと被リンク)、recall(そのリポジトリにスコープされた恒久的な教訓)、remember(教訓の記録)、record_work(作業内容の記録)、reason(複数ノートにまたがる判断)、health(配線は正常か)。加えて、ノートを読み取り可能なリソースとして提供します。
思考するのはreasonだけです。 他が検索するのに対し、これは2つ目のClaudeセッションでボールトを読み、ノートをまたぐ判断を要する問いに答えます — これから行おうとしていることは、これら6つのノートが決めた内容と整合しているか? 内部で先に検索を行うため、事前に検索する必要はありません。あなた自身のCLIデフォルトモデルで動くので、ボールトは今あなたが作業しているのと同じ水準で答えます。そして一切の上限はありません — これはあなたのマシン上で、あなたの認証のもとで動くClaudeです。呼び出しごとにコスト・ターン数・モデル・実経過時間が記録されます。回答はconfidence: inferredが付き、それ単体でメモリとして記録されることはありません — 残す価値があるかはあなたのセッションが決めます。
リポジトリはフォルダ名で識別されます。 これは通常正しく、稀に誤ります: apiという名前のリポジトリが2つあると同一の識別子を共有し、互いのメモリを受け取ってしまいます。リポジトリのルートに.om-projectファイルを置き、別の名前を書けば分離できます。healthがどのリポジトリとして認識しているか、その名前がどこから来たかを教えてくれます。
認識論的契約を伴うリポジトリ横断メモリ。 あるリポジトリで学んだ教訓は、スコープ指定されたリポジトリにのみ届きます。到達範囲は読み取り時に推測されるのではなく書き込み時に宣言されるため、兄弟プロジェクトが他方の制約を継承することはありません。記録されるすべてにconfidence: verified | inferred | unverified、変動しやすい事実の日付、そしてサーバー側で導出される来歴が付随します — セッションが自分とは異なるプロジェクトを名乗ることはできません。訂正は上書きではなく置き換えとして記録されるため、ストアは矛盾を蓄積するのではなく、成長するほど信頼性が高まります。
何が提供されるか。 あなたのボールト、あなたのノート、あなたのセッションです。デフォルトは、ボールトがすでに自分のコンテンツとして宣言しているもの(user_content_roots)を、書いたままの粒度で使います(work/全体ではなくwork/active/)。vault-manifest.jsonのmcp_exposed_rootsを設定するのは、あなたが共有する権限を持たない素材 — 雇用主の機密情報やクライアントのデータ — をこのボールトが抱えている場合だけです。privateタグの付いたノートは提供されず、メモリは独自のスコープを持つため通常のノートとしては提供されません。ひとつだけ両者をまたぐケースがあります。キャプチャのpromoted:マーカーがアンカーを持つ場合、recallはbrain/のそのブロックを提供するため、他リポジトリは最初に書かれたキャプチャではなく修正済みの版を受け取ります。これも同じポリシーに従うので、privateや非公開のノートはここでも拒否されます。すべての読み取りは呼び出し元リポジトリとともに記録されます。
[!NOTE] ボールトの内容を公開PRに出さないようにするのは、公開範囲リストではなく契約の仕事です。セッションはいずれにせよボールトを直接読めます。呼び出し側セッションに注入される禁止事項こそが、実測で効果を持つ部分です。
📅 日常ワークフロー
朝: /om-standupを実行。エージェントがNorth Star、アクティブプロジェクト、未完了タスク、最近の変更を読み込みます。構造化されたサマリーと優先度の提案が表示されます。
日中: 自然に話しましょう。下した決定、発生したインシデント、終わったばかりの1on1、覚えておきたい実績を伝えてください。分類フックがエージェントに各情報を正しく整理するよう促します。まとめてダンプしたい場合は/om-dumpを使い、すべてを一度に語ってください。
終業時: 「wrap up」と言えば、エージェントが/om-wrap-upを呼び出します — ノートの検証、インデックスの更新、リンクの確認、記録漏れの実績の発見を行います。
週次: /om-weeklyを実行してセッション横断の振り返り — North Starとの整合性確認、パターンの発見、記録漏れの実績、翌週の優先事項。/om-vault-auditを実行して孤立ノート、壊れたリンク、古くなったコンテンツを検出します。
レビューシーズン: /om-review-brief managerを実行すれば、エビデンスがすべてリンクされた構造化レビュー準備ドキュメントが生成されます。
🛠️ コマンド
.claude/commands/で定義されています。任意のClaude Codeセッションで実行できます。
| コマンド | 機能 |
|---|---|
/om-standup |
朝のキックオフ — コンテキスト読み込み、前日の振り返り、タスクの表示、優先度の提案 |
/om-dump |
フリーフォームキャプチャ — 何でも自然に話せば、適切なノートに振り分け |
/om-wrap-up |
セッション全体のレビュー — ノート、インデックス、リンクの検証、改善点の提案 |
/om-humanize |
文体の調整 — Claudeが書いたテキストをあなたが書いたように修正 |
/om-weekly |
週次振り返り — セッション横断のパターン、North Starとの整合性、記録漏れの実績 |
/om-prep-1on1 |
1on1の準備 — 相手のコンテキスト、未解決事項、提案アジェンダを読み込み |
/om-meeting |
トピック別ミーティング準備 — 未解決事項、ブロッカー、考慮すべきポイントを整理 |
/om-intake |
ミーティングノート受信箱を処理 — work/meetings/のファイルを分類して適切なノートに振り分け |
/om-capture-1on1 |
1on1ミーティングのトランスクリプトを構造化ボールトノートとしてキャプチャ |
/om-incident-capture |
Slack/チャンネルからインシデントを構造化ノートとしてキャプチャ |
/om-slack-scan |
Slackチャンネル/DMをエビデンス収集のためにディープスキャン |
/om-peer-scan |
レビュー準備のために同僚のGitHub PRをディープスキャン |
/om-review-brief |
レビューブリーフを生成(マネージャー版またはピア版) |
/om-self-review |
レビューシーズン用の自己評価を作成 — プロジェクト、コンピテンシー、原則 |
/om-review-peer |
ピアレビューを作成 — プロジェクト、原則、パフォーマンスサマリー |
/om-correct |
修正した事実を一括反映 — 単一の情報源に適用し、他ノートの記述はリンクに置換、日付付きの記録は保全 |
/om-vault-audit |
インデックス、リンク、孤立ノート、古いコンテキストを監査 |
/om-vault-upgrade |
既存ボールトからコンテンツをインポート — バージョン検出、分類、移行 |
/om-project-archive |
完了プロジェクトをactive/からarchive/に移動し、インデックスを更新 |
/om-tidy |
セルフメンテナンス — 衛生フラグに基づき、完了ノートのアーカイブ、クラスタのフォルダ化、肥大ノートの分割を実行。削除もコミットもしない |
🤖 サブエージェント
分離されたコンテキストウィンドウで実行される専門エージェント。メインの会話を汚さずに重い処理を担当します。
| エージェント | 目的 | 呼び出し元 |
|---|---|---|
brag-spotter |
記録漏れの実績やコンピテンシーギャップを発見 | /om-wrap-up, /om-weekly |
context-loader |
人物、プロジェクト、コンセプトに関するボールトコンテキストをすべて読み込み | 直接呼び出し |
cross-linker |
不足しているウィキリンク、孤立ノート、壊れたバックリンクを発見 | /om-vault-audit |
people-profiler |
Slackプロフィールから人物ノートを一括作成/更新 | /om-incident-capture |
review-prep |
レビュー期間のパフォーマンスエビデンスをすべて集約 | /om-review-brief |
slack-archaeologist |
Slackの完全な復元 — すべてのメッセージ、スレッド、プロフィール | /om-incident-capture |
vault-librarian |
ボールトの徹底メンテナンス — 孤立ノート、壊れたリンク、古いノート | /om-vault-audit |
review-fact-checker |
レビュー原稿のすべての主張をボールトのソースと照合して検証 | /om-self-review, /om-review-peer |
vault-migrator |
ソースボールトからコンテンツを分類、変換、移行 | /om-vault-upgrade |
[!NOTE] サブエージェントは
.claude/agents/で定義されています。ドメイン固有のワークフロー用に独自のエージェントを追加できます。
📊 パフォーマンスグラフ
ボールトはパフォーマンス追跡システムとしても機能します:
- コンピテンシーノート(
perf/competencies/)が組織のコンピテンシーフレームワークを定義 — コンピテンシーごとに1つのノート - 作業ノートが
## Relatedセクションでコンピテンシーにリンクし、何を実証したかを注記 - バックリンクが自動的に蓄積 — レビュー準備は各コンピテンシーノートのバックリンクパネルを読むだけ
- Brag Docが四半期ごとの実績をエビデンスノートへのリンク付きで集約
- **
/om-peer-scan**が同僚のGitHub PRをディープスキャンし、構造化されたエビデンスをperf/evidence/に記録 - **
/om-review-brief**がすべてを集約して完全なレビューブリーフを生成:Bragエントリー、意思決定、インシデント、コンピテンシーエビデンス、1on1フィードバック
[!TIP] 始め方:テンプレートからコンピテンシーノートを作成し、作業を進めながら作業ノートをリンクしていくだけ。あとはグラフが処理します。
📋 Bases
bases/フォルダには、ノートのフロントマタープロパティを検索するデータベースビューが格納されています。ノートが変更されると自動的に更新されます。
| Base | 表示内容 |
|---|---|
| Work Dashboard | 四半期でフィルタリングされ、ステータスでグループ化されたアクティブプロジェクト — 14日以上更新のないアクティブノートを示す Stale Actives ビュー付き |
| Recently Touched | 実際の更新時刻順の全ノート — 「最近何に取り組んだか」への正しい答え(生きたノートではファイル名の日付は当てにならない) |
| Incidents | 重要度と日付で並べ替えられた全インシデント |
| People Directory | org/people/の全員(役割、チーム付き) |
| 1:1 History | 人物と日付でソート可能な全1on1ノート |
| Review Evidence | 人物とサイクルでグループ化されたPRスキャンとエビデンス |
| Competency Map | バックリンクからのエビデンス数付きコンピテンシー一覧 |
| Templates | 全テンプレートへのクイックアクセス |
Home.mdがこれらのビューを埋め込んでおり、ボールトのダッシュボードとして機能します。
📁 ボールト構造
Home.md ボールトのエントリーポイント — 埋め込みBaseビュー、クイックリンク
CLAUDE.md 運用マニュアル — エージェントが毎セッション読み込み
AGENTS.md マルチエージェントガイド — Codex、Cursor、Windsurf等
GEMINI.md マルチエージェントガイド — Gemini CLI
vault-manifest.json テンプレートメタデータ — バージョン、構造、スキーマ
.shardmindignore `shardmind install` から除外されるファイル(CONTRIBUTING、翻訳、マーケティング素材)
CHANGELOG.md バージョン履歴
CONTRIBUTING.md テンプレート開発チェックリスト
README.md プロダクトドキュメント
LICENSE MITライセンス
bases/ 動的データベースビュー(Work Dashboard、Incidents、Peopleなど)
work/
active/ 現在のプロジェクト(常時1〜3ファイル)
archive/YYYY/ 完了した作業(年別に整理)
incidents/ インシデントドキュメント(メインノート + RCA + ディープダイブ)
1-1/ 1on1ミーティングノート — <人名> YYYY-MM-DD.md
Index.md 全作業のMap of Content
org/
people/ 人物ごとに1ノート — 役割、チーム、関係性、重要な出来事
teams/ チームごとに1ノート — メンバー、スコープ、関わり
People & Context.md 組織知識のMOC
perf/
Brag Doc.md 実績の継続記録(エビデンスへのリンク付き)
brag/ 四半期ごとのBragノート(各四半期1つ)
competencies/ コンピテンシーごとに1ノート(リンクターゲット)
evidence/ PRディープスキャン、レビュー用データ抽出
<cycle>/ レビューサイクルのブリーフとアーティファクト
brain/
North Star.md 目標とフォーカスエリア — 毎セッション読み込み
Memories.md 記憶トピックのインデックス
Key Decisions.md 重要な意思決定とその理由
Patterns.md 作業全体で観察された繰り返しパターン
Gotchas.md うまくいかなかったことその理由
Skills.md カスタムワークフローとスラッシュコマンド
reference/ コードベースの知識、アーキテクチャマップ、フロードキュメント
thinking/ ドラフト用スクラッチパッド — 知見を昇格させたら削除
templates/ YAMLフロントマター付きObsidianテンプレート
.claude/
commands/ 18個のスラッシュコマンド
agents/ 9個のサブエージェント
scripts/ フックスクリプト + charcount.tsユーティリティ
skills/ Obsidian + QMDスキル、obsidian-mind mod
settings.json 5つのフック設定
.scripts/ ボールトレベルのツール — QMDブートストラップ(新規クローン時に一度実行)
.shardmind/ ShardMindサイドカー — `shardmind install`でインストールした場合のみ使用
shard.yaml マニフェスト(名前、バージョン、モジュール、フック)
shard-schema.yaml ウィザードの値 + モジュールゲーティング
hooks/ bootstrap(git初期化 + QMD)、personalize(North Star)、post-update
[!NOTE]
.shardmind/は追加機能であり、必須ではありません。 クローンして開くボールトはこれを読み込みません。shardmindCLIだけが読み込みます。削除してもボールトは動作し続けます。v6レイアウト契約はshardmind/docs/SHARD-LAYOUT.mdを参照してください。
📝 テンプレート
YAMLフロントマター付きテンプレート。段階的開示のためのdescriptionフィールドを含みます:
- Work Note — date、description、project、status、quarter、tags
- Decision Record — date、description、status(proposed/accepted/deprecated)、owner、context
- Thinking Note — date、description、context、tags(スクラッチパッド — 昇格後に削除)
- Competency Note — date、description、current-level、target-level、proficiency table
- 1:1 Note — date、person、key takeaways、action items、quotes
- Incident Note — date、ticket、severity、role、timeline、root cause、impact
🔧 同梱内容
🧩 Obsidianスキル
kepano/obsidian-skillsが.claude/skills/にプリインストール済み:
- obsidian-markdown — Obsidianフレーバーのmarkdown(ウィキリンク、埋め込み、コールアウト、プロパティ)
- obsidian-cli — ボールト操作用CLIコマンド
- obsidian-bases — データベーススタイルの
.baseファイル - json-canvas — ビジュアル
.canvasファイル作成 - defuddle — WebページからMarkdownへの変換
🔍 QMDスキル
.claude/skills/qmd/にあるカスタムスキル。ClaudeにQMDセマンティック検索を積極的に活用するよう教えます — ファイルを読む前、ノートを作成する前(重複チェック)、ノートを作成した後(リンクすべき関連コンテンツの発見)に使用します。
🎨 カスタマイズ
これは出発点です。あなたの働き方に合わせて適応させてください:
| 対象 | 場所 |
|---|---|
| あなたの目標 | brain/North Star.md — すべてのセッションの基盤 |
| あなたの組織 | org/ — マネージャー、チーム、主要なコラボレーターを追加 |
| あなたのコンピテンシー | perf/competencies/ — 組織のフレームワークに合わせる |
| あなたのツール | .claude/commands/ — GitHub org、Slackワークスペースに合わせて編集 |
| あなたの規約 | CLAUDE.md — 運用マニュアル、使いながら進化させる |
| あなたのドメイン | フォルダの追加、.claude/agents/へのサブエージェント追加、.claude/scripts/への分類ルール追加 |
[!IMPORTANT]
CLAUDE.mdは運用マニュアルです。規約を変更したら更新してください — エージェントは毎セッション読み込みます。
🔄 アップグレード
エージェントに頼む
一番簡単な方法 — エージェントに伝えるだけ:
このボールトを最新のobsidian-mindに更新して https://github.com/breferrari/obsidian-mind
エージェントが最新の変更を取得し、コンフリクトを解消し、インフラファイルを更新します。Claude Code、Codex CLI、Gemini CLIで動作します。
既存クローンの更新
リポジトリを直接クローンした場合:
cd your-vault
git pull origin main
新しいファイル(AGENTS.md、GEMINI.md、.codex/、.gemini/)が自動的に追加され、フックスクリプトも更新されます。
フォークの更新
リポジトリをフォークした場合:
git remote add upstream https://github.com/breferrari/obsidian-mind.git
git fetch upstream
git merge upstream/main
カスタマイズしたファイル(通常はCLAUDE.md、brain/ノート)のコンフリクトを解消してください。インフラファイル(.claude/scripts/、.codex/、.gemini/)はクリーンにマージされます。
既存のクローンをShardMindに取り込む(v5.x → v6)
すでにobsidian-mindをクローンしていて、カスタマイズを失わずにウィザード、オプションのモジュール、3-wayマージのアップグレードが欲しい?shardmind adoptが既存のボールトを管理されたv6インストールへと整合させます — あなたの編集を1バイトも失わず、.shardmind/サイドカーとshard-values.yamlを追加するだけです:
npm install -g shardmind
shardmind adopt github:breferrari/obsidian-mind
2-way diffのUIがローカルの変更箇所を案内し、ファイルごとに何を残すか確認した上で、エンジンのメタデータを書き込みます。結果:既存のコンテンツが無傷のままのv6管理ボールトが手に入り、以降はshardmind updateが使えます。再クローン不要。
古いボールトからの移行(またはその他のボールト)
v5以前のobsidian-mindを使っている、または全く別のObsidianボールトから移行したい?/om-vault-upgradeコマンドがコンテンツを最新テンプレートに移行します:
# 1. 最新のobsidian-mindをクローン
git clone https://github.com/breferrari/obsidian-mind.git ~/new-vault
# 2. エージェントで開く
cd ~/new-vault && claude # または codex、gemini
# 3. 古いボールトを指定してアップグレードを実行
/om-vault-upgrade ~/my-old-vault
エージェントが以下を行います:
- 検出 — ボールトのバージョンを特定(v1〜v3.x、またはobsidian-mind以外のボールトとして識別)
- 棚卸し — すべてのファイルを分類(ユーザーコンテンツ、スキャフォールド、インフラ、未分類)
- 移行プランの提示 — コピー、変換、スキップされるものを正確に確認できます
- 承認後に実行 — フロントマターの変換、ウィキリンクの修正、インデックスの再構築
- 検証 — 孤立ノート、壊れたリンク、不足しているフロントマターをチェック
古いボールトは一切変更されません。--dry-runを使えば、実行せずにプランだけをプレビューできます。
[!NOTE] obsidian-mindだけでなく、あらゆるObsidianボールトで動作します。obsidian-mind以外のボールトの場合、エージェントは各ノートを読んで意味的に分類し、作業ノート、人物、インシデント、1on1、意思決定を適切なフォルダに振り分けます。
🗺️ ロードマップ
Issue とバグ報告を歓迎します。 コードのコントリビューションはアサイン制です。Issue にコメントして担当を申し出て、アサインされてから PR を開いてください。あなたにアサインされていない Issue への PR はレビューせずにクローズします。詳しくは CONTRIBUTING.md を参照してください。
🙏 設計上の影響を受けたもの
- kepano/obsidian-skills — 公式Obsidianエージェントスキル
- James Bedford — ボールト構造の哲学、AI生成コンテンツの分離
- arscontexta — descriptionフィールドによる段階的開示、セッションフック
👤 作者
Brenno Ferrari が作成 — ベルリン在住のシニアiOSエンジニア、Claude Codeで開発者ツールを構築中。
📄 ライセンス
MIT