自動化とスクリプト

最終更新: 2026-07-15

Plainvaには、サードパーティのコードを実行するプラグインシステムはありません。その代わりに、保管庫そのものが拡張インターフェースです: あなたのノートは純粋なMarkdownで、データベースは純粋なYAML(.base)で、OKFの規約がすべてのファイルに予測可能な構造を与えます。ファイルを読み書きできるものであれば何でも——シェルスクリプト、Pythonプログラム、CLIツール、スケジュールされたジョブ、あるいはAIエージェントでも——Plainva固有のAPIを一切使わずに、あなたの保管庫を拡張し、生成し、再編成できます。

このページでは、それを安全に行う方法を説明します。すべてのファイルの正確なバイトレベルの形式はファイル形式リファレンスに別途文書化されています。このページはその実践的な補完です: ルール、ワークフロー、そしてAIアシスタントに何を渡すべきかです。

プラグインのサンドボックスではなくファイルを使う理由

Plainvaが標準で行わないことをしたい場合、プラグインを待つ必要はありません——ファイルを対象に小さなスクリプトを書けばよいのです。

保管庫を安全に読み取る

すべてはUTF-8テキストです:

読み取りには注意が一切不要です——テキストファイルは、読み取るだけで「破損」することはありません。以下のルールは、すべて書き込みに関するものです。

保管庫に安全に書き込む

これらのルールに従えば、Plainva(そしてObsidian)はあなたの変更を問題なく受け入れます。Plainvaは保管庫フォルダーを監視しています: 外部からの書き込みは自動的に検知され、通常は1秒以内に再インデックスされます。

  1. BOMなしのUTF-8で、LF改行で書き込んでください。 デフォルトでUTF-16またはCRLFを使うWindowsのツールは、Plainvaが同期のたびに「変更あり」と扱ってしまうファイルを生成します。
  2. アトミックに書き込んでください。 同じフォルダー内の一時ファイルに書き込み、その後それを対象ファイルの上にリネームしてください。(例えばクラッシュ後の)中途半端に書き込まれたノートは、変更なしより悪い結果を招きます。Plainva自身も、すべてのノートをこの方法で書き込んでいます。
  3. OKFフロントマターと未知のキーを保持してください。 ノートを書き直す際はtypeokf_versionを保持し、認識できないフロントマターキーを決して削除しないでください——変更せずに往復させてください。理解できないキーを「整理」しないでください。
  4. .plainva/には決して触れないでください。 このフォルダーには、Plainvaのデバイスローカルなインデックス、バックアップ、グラフのピン、同期状態が保持されています。これはあなたのコンテンツの一部ではなく、あなたのスクリプトによって書き込まれたり、同期されたり、Gitにコミットされたりしてはいけません。
  5. .baseのルールを守ってください。 .baseはObsidianの4つのトップレベルキー(filtersformulaspropertiesviews)だけを使います。すべてのビューにはnameが必要です。フィルターは単一ルートです。Plainva固有のデータはすべて、入れ子のplainva:サブキーの下に置かれます。完全な契約——両側のリレーションの例を含む——はファイル形式リファレンスにあります。
  6. エディターと競合しないでください。 ノートがPlainvaで開かれていてかつ未保存の変更がある場合、その瞬間にスクリプトから書き直すのは避けてください。Plainvaにはセーフティネットとして競合解決の仕組みがありますが、最もクリーンな方法は、アプリに先に保存させることです(あるいは、現在開かれていないノートを編集することです)。

パターン

よくある作業をいくつか挙げます——すべて単なるファイル操作です:

可能な限りスクリプトをべき等にしてください: 2回実行しても内容が重複しないようにします。

保管庫をAIアシスタントに渡す

保管庫フォルダーへの読み書きアクセス権を持つAIエージェントは、まさにこの設計が想定しているケースです。正しく動作させるには:

  1. ファイル形式リファレンスを渡してください。 これは機械が読むことを前提に書かれています: OKFフロントマターの契約、プロパティ→YAMLのシリアライズ、Obsidianの厳格なルールを含む完全な.baseスキーマ、index.mdの契約、そして安全性のルール——エージェントがファイルを壊さずに編集するために必要なすべてです。
  2. .plainva/フォルダーではなく、保管庫フォルダーを指定してください。 .plainva/が立入禁止であることを明確に伝えてください。
  3. アトミックで最小限の編集を求めてください。 1つのプロパティを変更するためにノート全体を書き直すエージェントは、フロントマターと本文の残りをそのまま保持すべきです。

契約は稼働中のAPIではなく文書であるため、オフラインでもオンラインでも、同じ指示がどんなアシスタントにも通用します。

安全性のまとめ

関連ページ