Obsidian Vault Keeper
Claude Code / Claude Cowork を Obsidian ボールトのノート作成コパイロットに変えます。セッションが終了すると消えてしまう返信の代わりに、Claude は構造化された Markdown をボールトに書き込みます — 研究、決定事項、プロジェクトステータス、会議、デイリーノート — すべて検索可能、リンク可能、AI が読みやすい形式で記録します。
このスキルをアクティブにするタイミング
以下のいずれかでトリガーします:
- 明示的: 「ログして」、「メモして」、「ボールトに保存」、「Obsidian に追加」、「catat ini」
- 研究 — ユーザーが URL を共有、調査を依頼、結果を要約、オプションを比較する場合。
- 決定 — ユーザーが「〜で行こう」、「〜に決定した」、「X より Y を選んだ」、「最終判断は〜」と言った場合。
- プロジェクト進捗 — ユーザーがステータスを報告、マイルストーンに到達、ブロッカーに言及、次のステップを設定する場合。
- 会議 — ユーザーが電話、1on1、同期ミーティング、スタンドアップに言及、または文字起こしを貼り付ける場合。
- セッション境界 — 新しい日の最初の実質的なメッセージ(デイリーノートを開く)、またはユーザーがまとめに入る場合(要約を追記)。
メッセージに複数のトリガーが含まれる場合、最も具体的なものから処理します(決定 > 研究 > プロジェクト > 会議 > 日次)。
ステップ 1 — ボールトパスの解決
ファイル書き込みの前に、VAULT を以下の順序で解決します。最初に見つかったもので停止します:
-
CWD から上に移動。 現在のワーキングディレクトリから開始し、
$HOMEまで上に移動します。.obsidian/フォルダの親がボールトです。それを使用します。 -
設定を読み込む。
~/.claude/second-brain.config.jsonのvaultPathキーを確認します。 -
一度だけ尋ねる。 何も解決できない場合、ユーザーにボールトの絶対パスを尋ねます。返答があったらそれを永続化します:
mkdir -p ~/.claude echo '{"vaultPath": "/absolute/path/to/vault"}' > ~/.claude/second-brain.config.json
VAULT の外に書き込んではいけません。ユーザーの既存のノートを破壊的に変更してはいけません — 追記するか新しいファイルを作成します。
ステップ 2 — 既存の構造を尊重する
フォルダを作成する前に、セッションごとに 1 回 ls "$VAULT" を実行し、フォルダ名をコンテキストにキャッシュします。ユーザーがすでに notes/、decisions/、meetings/ などを持っている場合、以下の標準フォルダを作成する代わりにそれらを使用します。同等のものが存在しない場合にのみ標準フォルダを作成します。
標準レイアウト(必要に応じて作成):
VAULT/
├── Daily/ YYYY-MM-DD.md
├── Research/ トピックベース、永続的
├── Decisions/ 決定ごとに 1 ファイル
├── Projects/
│ └── <プロジェクト名>/
│ ├── README.md コンテンツマップ (MOC)
│ └── Status.md 動的ステータス
├── Meetings/ YYYY-MM-DD-<スラグ>.md
└── Inbox/ クイックキャプチャ、未分類
ステップ 3 — 5 つのシナリオ
デフォルトの書き込みポリシー(上書き方法については下記「動作モード」を参照):
- サイレント自動書き込みの対象: デイリーノート(全操作)、会議ノート、プロジェクトステータス更新、既存の研究ファイルへの追記。そのまま書き込んで、パスを報告するだけです。
- 最初に確認が必要なのは次の 2 つだけ: 新しい ADR ファイルの作成(シナリオ B)と新しい研究トピックファイルの作成(シナリオ A、そのトピックの初回)。これらは唯一、真に新しく意味的に重いファイルであり、永続的に残るため、2 秒の確認に値します。
それ以外はすべて、中断するほど重要ではありません。各シナリオで、templates/ から該当するテンプレートを読み込み、プレースホルダを埋め、書き込み、ボールトからの相対パスを報告します。
シナリオ A — 研究
トリガー: ユーザーが情報源を共有するか、Claude に調査を依頼します。
- トピックスラグを特定または作成します(PascalCase または kebab-case — ボールトの規則に合わせます)。
- ターゲット:
Research/<Topic>.md。存在する場合は新しい日付のセクションを追記し、新しい場合はtemplates/research.mdを使用します。 - 以下の情報を埋めます: コンテキスト、情報源(URL 付き)、主要な発見、影響、未解決の質問、関連する
[[wikilinks]]。 - 今日のデイリーノートの
## Notes Createdにエントリを追加します。 - 完全なパスをユーザーに報告します。
シナリオ B — 決定(ADR)
トリガー: ユーザーが選択を確定します。
- ターゲット:
Decisions/YYYY-MM-DD-<スラグ>.md、templates/decision.mdを使用。 - 以下の情報を埋めます: コンテキスト、検討したオプション(各オプションの長所/短所)、選択したオプション、根拠、結果。
- プロジェクトに関連する場合、
Projects/<Project>/README.mdにバックリンクを追加します。 - 今日のデイリーノートの
## Decisionsに追記します。
シナリオ C — プロジェクト進捗
トリガー: ステータス更新、マイルストーン、ブロッカー、または次のステップ。
- ターゲット:
Projects/<Project>/Status.md。存在しない場合はtemplates/project-status.mdを使用して作成します。 - 本文を更新し、フロントマターの
updated:を更新します。 - 今日のデイリーノートの
## Project Updatesに、ステータスファイルへの[[wikilink]]を含む 1 行のエントリを追記します。 - 新しいマイルストーンが完了した場合は、取り消し線を引きます。削除はしません。
シナリオ D — 会議
トリガー: ユーザーが会議について説明するか、文字起こしを共有します。
- ターゲット:
Meetings/YYYY-MM-DD-<スラグ>.md、templates/meeting.mdを使用。 - 以下の情報を埋めます: 参加者、議題、議論、決定事項、アクションアイテム、フォローアップ。
- 会議内の重要な決定事項ごとに → シナリオ B も起動します(ADR を作成)。
- ユーザーに割り当てられたアクションアイテムごとに → 今日のデイリーノートの
## Action Itemsに追記します。
シナリオ E — デイリーノート
セッション開始時(新しい暦日の最初の実質的なメッセージ):
Daily/YYYY-MM-DD.mdを確認します。存在しない場合はtemplates/daily.mdから作成します。- 昨日のデイリーノートから未チェックのタスクを
## Carry-overセクションに移行します。 - 今日のフォーカスと持ち越し数をユーザーに伝えます。
セッション終了時(ユーザーがまとめに入る、/clear を押す、「今日はここまで」などと言う):
## Session Summaryセクションを追記し、以下をリストします: 完了した主要作業、行われた決定(リンク付き)、作成されたノート(リンク付き)。- ユーザーが次のステップに言及した場合、
## Tomorrowに情報を入れます。
ステップ 4 — 普遍的な規則
完全な仕様は conventions.md を参照してください。クイックリファレンス:
- すべてのノートにフロントマターがあります。 最小:
type、created、updated、tags。テンプレートに応じてタイプ固有のフィールドを追加します。 - 日付は ISO 形式。 すべての場所で
YYYY-MM-DD。今日の日付はシステム日付から解決され、推測はしません。 - Wikilinks
[[ノート名]]は、独自のノートを持つ(または持ちうる)エンティティ(プロジェクト、人、概念)に使用します。内容を複製するよりも wikilink を優先します。 - タグは名前空間化されています。
#research/competitor、#decision/tech、#project/<slug>、#meeting/1on1。 - ファイル名: 日付付きノート(会議、決定、日次)は
YYYY-MM-DD-スラグ.md。永続的なノート(研究、プロジェクト MOC)はPascalCase.mdまたはkebab-case.md— ボールトがすでに使用している規則に合わせます。 - Inbox フォールバック。 スニペットを分類できない場合は、
#inboxタグを付けてInbox/YYYY-MM-DD-<スラグ>.mdにドロップします — 無理に分類しようとしないでください。
動作モード
デフォルト: 混合 — ルーティンワークはサイレント自動書き込み、新しい ADR と新しい研究トピックファイルのみ確認(ステップ 3 で指定)。これが出荷時の設定です。
ユーザーはセッション中に口頭でモードを上書きできます。以下の合図を見つけて、残りのセッションで調整します:
| ユーザーの発言 | 動作 |
|---|---|
| 「自動モード」、「静かモード」、「自動でやって」、「確認をやめて」、「そのまま実行して」 | すべての確認を無効にします。新しい ADR や新しい研究ファイルを含め、すべてをサイレントに書き込みます。ただし、パスは報告します。 |
| 「デフォルトに戻して」、「確認モード」、「最初に聞いて」 | デフォルトの混合動作に戻します。 |
| 「これを保存」 / 「これをログ」(ワンショット) | モードに関係なく書き込みます。確認なし。 |
| 「それはログしないで」 / 「それはスキップ」(ワンショット、今言ったことを指して) | 推測されたノートを書き込みません。このターンですでに書き込まれている場合は、書き込んだことを報告し、削除を提案します。 |
モードの上書きはセッションスコープであり、永続化されません。ユーザーが恒久的な変更を希望する場合、そのように指示します — その場合、~/.claude/second-brain.config.json の defaultMode キー(auto | mixed | manual)に保存します。
manual モードは、ユーザーが設定を介して永続化した場合のみ存在します: ユーザーが明示的に「保存」「ログ」「メモ」と言った場合のみ書き込みます。
動作ルール
- 冪等性。 既存のノートに追記する前に、その内容をスキャンします。同じ情報がすでに存在する場合は、スキップするか、タイムスタンプのみの差分を追記します。
- アトミックな書き込み。 ツール呼び出しごとに 1 つの書き込み — 無関係な更新を 1 つのファイル編集にまとめないでください。
- パスを報告する。 書き込みのたびに、
Cmd+Oで開けるよう、VAULT/からの相対パスをユーザーに伝えます。 - 決して削除しない。 何かを置き換える必要がある場合は、古いコンテンツに
~~取り消し線~~を引くか、同じノート内のArchive/セクションに移動します。 - 誤検知ガード。 何かが該当するかどうか確信が持てない場合(例: ユーザーが「たぶんXを試してみる」と言った場合)、推測として扱います — 決定ファイルや研究ファイルは作成しません。疑わしい場合は黙って、ユーザーが明示的に尋ねるのを待ちます。
このスキルに含まれるファイル
SKILL.md— このファイル(Claude Code により自動的に読み込まれます)conventions.md— 完全な規則リファレンスtemplates/research.md、decision.md、project-status.md、meeting.md、daily.mdexamples/— 記入済みのサンプルノートREADME.md— インストール + ユーザー向け概要