mcpField
O
obsidian-organizer

obsidian-organizer

github.com/agents365-ai生産性971.8k 回インストール2 週間前に更新
リポジトリ

obsidian-organizer について

obsidian-organizerは、大規模なObsidianの保管庫で、新規ノートの分類や既存フォルダーの監査を行うスキルです。保管庫内のMarkdownマップを分類基準とし、再編成は計画の確認後に実行します。

主な機能

  1. 01保管庫内のフォルダーマップで分類
  2. 02孤立ノートやリンク切れ終端ノートの確認
  3. 03重複候補のノートを比較
  4. 04再編成前に計画を提示
  5. 05CLI経由で移動、名前変更、削除

活用シーン

  1. 01新しいノートを適切な既存フォルダーに配置
  2. 02受信箱や特定テーマのフォルダーを整理
  3. 03重複、孤立ノート、リンクを確認
  4. 04実行前に移動や統合の計画を確認

インストール

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

$npx skills add https://github.com/agents365-ai/365-skills --skill obsidian-organizer

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

詳細

Obsidian Organizer

(1)新しいノートを最適なフォルダーに整理し、(2)既存の構成を監査・再編成することで、大規模な Obsidian の保管庫を長期にわたって整理された状態に保ちます。どちらのモードも、共通の考え方に基づいています。それは、「何をどこに置くか」を示すプレーンな Markdown のマップを保管庫内に置き、実際の状態とのずれを防ぐことです。

このスキルは、obsidian CLI(別の obsidian-cli スキルから提供)を操作し、起動中の Obsidian デスクトップアプリと通信します。アプリを開いておく必要があります。コマンドが接続または保管庫のエラーで失敗した場合は、推測せずに Obsidian を開くようユーザーに伝えてください。

マップを保管庫内に置く理由(最初にお読みください)

新しいノートを整理するたびに約650個のフォルダーを再列挙して配置先を決めるのはコストがかかり、推測も次第にずれていきます。フォルダー分類を Claude の非公開メモリにコピーすると、実際の保管庫と気付かないうちに食い違う古いコピーが生まれ、さらに悪い問題につながります。

解決策は、00_Index/Folder_Map.md という1つのファイルを保管庫自体に保存することです。このファイルを、ファイル整理の判断における唯一の信頼できる情報源とします。ファイルの整理や再編成を行う前に、コストの低い1回の呼び出しでこれを読み取ってください。マップが存在しない場合、またはユーザーから再構築を求められた場合を除き、obsidian folders で全体を再走査しないでください。

obsidian read path="00_Index/Folder_Map.md"

このファイルは、意図的にシンプルな Markdown(見出しと箇条書きのみで、必須のフロントマターはありません)にしてあります。そのため、新しいカテゴリができたときに、あなたも人間も手作業で追記できます。新しいフォルダーやカテゴリを作成したら、このファイルに1行追加して、次回の整理時に参照できるようにしてください。

マップが存在しない場合(削除された場合や、新しい保管庫の場合)は、このスキルに同梱されたコピーではなく、稼働中の保管庫から再構築してください。同梱されたコピーは実際の状態からずれてしまいます。それこそ、このファイルで防ごうとしている問題です。obsidian vault="MyVault" folders で実際の構成を一覧表示し(階層を確認する場合は folders folder=... を使用)、トップレベルの PARA フォルダーごとにまとめたプレーンな Markdown のマップを作成します。各フォルダーには「ここに入れるもの」の簡単な説明と、整理時の大まかなルールを記載してください。グループ分けをユーザーに確認してから、次のコマンドで作成します。 obsidian vault="MyVault" create path="00_Index/Folder_Map.md" content="..."

保管庫の指定

上記の MyVault はプレースホルダーです。すべての箇所で、ユーザーの実際の保管庫名に置き換えてください。ユーザーが複数の保管庫を持っている場合は、意図しない「最後にフォーカスした保管庫」の既定値によってノートが誤った場所に整理されないよう、すべてのコマンドで対象を明示してください。

obsidian vault="MyVault" read path="00_Index/Folder_Map.md"

vault= は最初のパラメーターである必要があります。このスキルで保管庫ごとに異なる値はこれだけです。それ以外はすべて、保管庫内の Folder_Map.md から取得します。

唯一の厳格な安全ルール:生のシェルで保管庫のファイルに触れない

ファイルを移動または名前変更するときは、必ず CLI 独自の move / rename コマンドを使用してください。これらは Obsidian の API 経由で実行されるため、Obsidian に組み込まれた「内部リンクを自動更新」する動作によって、保管庫内のすべての Wikilink とバックリンクが移動後のファイルを参照するように書き換えられます。保管庫内のパスに対して生の mv、rm、rmdir、find -delete を実行すると、こうした修復処理が行われず、古い場所を指す壊れたリンクが気付かないうちに残ってしまいます。

そのため、保管庫ディレクトリ内のすべての操作では、次のようにしてください。

  • 移動/名前変更 → obsidian move ... または obsidian rename ...
  • 削除 → obsidian delete ...(permanent を指定しない限り、ゴミ箱に移動します)
  • 保管庫内のパスに対して Bash の mv/rm/rmdir/find -delete は絶対に使用しないでください。

変更を加えないツールでファイルのバイト列を読み取ることは問題ありません。保管庫内のファイルを変更する場合は CLI のみを使用してください。


モード 1 — ノートを分類する

目的:ノート(既存のパス、またはこれから作成するタイトルと内容)を、最も適した単一のフォルダーに格納します。

  1. マップを一度読みます:obsidian vault="MyVault" read path="00_Index/Folder_Map.md".
  2. 照合します:マップの分類ルールを使って、ノートのトピックに合う保存先を選びます。一般的なフォルダーより、既存の具体的なサブフォルダーを優先します(例:Seurat のハウツーは、一般的な分類先ではなく 03_Research_Knowledge/Bioinformatics/seurat/ に格納します)。
  3. 最適な保存先に格納します:
    • 明確に一致するフォルダーがある → そこに格納します。
      • 新しいノート:obsidian vault="MyVault" create path="03_Research_Knowledge/Bioinformatics/seurat/My Note.md" content="..." silent
      • 移動する既存のノート:obsidian vault="MyVault" move path="00_Inbox/My Note.md" to="03_Research_Knowledge/Bioinformatics/seurat"(to にはフォルダーまたはフルパスを指定できます)。
    • おおむね適合するものの、完全には一致しない保存先がある(例:専用のサブフォルダーがないツール)→ マップのその他項目用の慣例(例:Bioinformatics/misc/)を使い、保存先をユーザーに伝えます。
    • 適切なカテゴリがない → フォルダーを新設する前に停止してユーザーに確認します。名前と場所を提案し、分類体系を黙って増やしてはいけません。
  4. 新しいカテゴリを記録します。 ユーザーが新しいフォルダーを承認したら、今後の分類判断に役立つよう、00_Index/Folder_Map.md の適切なセクションに説明行を追加します(obsidian append path="00_Index/Folder_Map.md" content="...")。
  5. 最終的なパスを簡潔に報告します。

CLI に関する注意:create は必要に応じて中間フォルダーを作成します。ノートを開いてフォーカスを奪わないよう、silent を追加してください。move の to には保存先フォルダーまたはフルパスを指定できます。タイトルをその場で変更するには rename name="New Title" を使います。


モード 2 — 監査/再整理

目的:対象範囲(フォルダーパス、「最近の受信箱のノート」、または「cellchat のノートを整理して」のような明示的な依頼)について、問題を見つけ、計画を提案し、明確な承認を得てから実行します。 一括での移動、統合、削除を黙って行ってはいけません。

ステップ 1 — 対象範囲の手掛かりを集める

まず状況を把握するためにマップを読み、その後、構造を調べるコマンドを使います。コマンドで指定できる場合は、リストの対象を該当フォルダーに絞ります。

  • obsidian vault="MyVault" files folder="<scope>" — 一覧を取得し、タイトルが似ているノートを探します(例:「CellChat analysis」と「CellChat Analysis v2」)。
  • obsidian vault="MyVault" orphans — 被リンクがないノート(どこからもリンクされていないノート。分類、統合、アーカイブの候補)を探します。
  • obsidian vault="MyVault" deadends — 発リンクがないノート(多くの場合、未完成のひな形や、作成後に発展しなかったメモ)を探します。
  • obsidian vault="MyVault" search:context query="<topic>" path="<scope>" — 統合を提案する前に、重複の疑いがあるノートの内容を比較します。
  • obsidian vault="MyVault" backlinks path="<file>" — ノートを統合または削除する前に、そのノートへのリンクを確認し、参照が途切れないようにします。

重複を調べる専用のコマンドはありません。files で取得したタイトルを比較し、search:context/read で確認して重複を検出します。

ステップ 2 — 計画を提案する(そして待つ)

具体的な項目別の計画を提示し、承認を得るまで停止します。実行内容ごとに分類します。

Proposed reorganization for Bioinformatics/cellchat/ (7 notes):

MERGE
- "CellChat analysis.md" + "CellChat analysis (1).md" → keep "CellChat analysis.md",
  fold unique content from the duplicate in, then delete the duplicate.

MOVE
- "Spatial CellChat.md" → Single_Cell/Spatial_Omics/ (topic is spatial, not the tool)

RENAME
- "untitled cellchat.md" → "CellChat LR database notes.md"

No change: 3 notes look fine.

Proceed? I won't move/merge/delete anything until you confirm.

不確かな点を明示し、ユーザーが却下できるようにしてください。

ステップ 3 — 「はい」の確認後にのみ実行する

承認後、リンクが保たれる順序で、CLI を使って移動/名前変更/削除を実行します(通常は、まず内容を統合し、その後、空になった重複ノートを削除します。両方行う場合は、名前変更より先に移動します)。統合には move、rename、delete、append/read を使い、シェルを直接使ってはいけません。変更内容を報告し、新たに作成したフォルダー/カテゴリがあれば 00_Index/Folder_Map.md に追加します。

既知の再編候補

Vault の Folder_Map.md に既知の問題箇所(新しいフォルダーと重複する旧フォルダー、類似タイトルが蓄積したサブフォルダーなど)が記載されている場合、対象範囲に含まれていれば候補として提示してください。ただし、何かに手を加える前に、引き続き提案して確認を得てください。


コマンド早見表

必要な操作コマンド
マップを読むobsidian vault="MyVault" read path="00_Index/Folder_Map.md"
新しいノートを作成/配置するobsidian vault="MyVault" create path="Folder/Note.md" content="..." silent
ノートを移動/再配置するobsidian vault="MyVault" move path="Old/Note.md" to="New/Folder"
同じ場所で名前を変更するobsidian vault="MyVault" rename path="Folder/Note.md" name="New Title"
削除する(ゴミ箱へ移動)obsidian vault="MyVault" delete path="Folder/Note.md"
フォルダー内のファイルを一覧表示するobsidian vault="MyVault" files folder="<scope>"
孤立ファイル/行き止まりobsidian vault="MyVault" orphans · ... deadends
コンテキスト付きで検索するobsidian vault="MyVault" search:context query="..." path="<scope>"
ノートへのバックリンクobsidian vault="MyVault" backlinks path="Folder/Note.md"
マップに追記するobsidian vault="MyVault" append path="00_Index/Folder_Map.md" content="- ..."

obsidian help <command> を実行して正確なパラメーターを確認してください。CLI を正としてください。

コメント