コンテンツにスキップ

常時ロードされるポリシーブロック標準 (v1.1)

AI エージェントが指示されなくても正しく振る舞うことに製品価値が依存する Cloto 系プロジェクトのための標準です。そのプロジェクトの skill は、利用者のクライアントが毎セッション読み込むファイルに、マーカーで囲まれた小さなポリシーブロックを生成できなければなりません (MUST)。対象ファイルは、 Claude Code / Claude Desktop なら CLAUDE.md、Codex と Cursor なら AGENTS.md、VS Code ならワークスペースの instructions ファイルです (§2.1)。

翻訳について: 正本は英語版です。日本語版が古い場合は英語版を参照してください。

この文書のステータス

Pilot (試行段階)。 この標準は cpersona で試行しています (リリースライフサイクル標準 と同じ pilot モデルです)。以下のすべての規則は、ファミリー全体への採用に先立って cpersona-memory skill で実地に運用されます。pilot が続く間、canonical な置き場所はこのリポジトリです。

v1.1 (2026-09-05) は対象を CLAUDE.md から「クライアントが毎セッション読み込むファイル」へ一般化し、規則 7 (クライアント中立) を追加しました。それ以外の規則は変わりません。既存のリンクが解決するよう、ファイル名は従来のままです。

1. 動機

skill は条件付きかつ確率的にロードされます。あるセッションで発火するかどうかは、会話次第です。クライアントの常時ロードされる instructions ファイル (CLAUDE.md、AGENTS.md、…) は、毎セッション決定論的にロードされます。

記憶サーバーのような製品は、エージェントが自発的にそのツールを呼ぶかどうかで生死が決まります (セッション開始時の recall、決定時の store、セッション終了時の archive)。skill がたまたま発火したときにしか効かない規則では、その保証は担えません。

解決策は、確率的なものから決定論的なものへの格上げです。利用者がインストール時に実際に呼び出す skill が、製品の運用ポリシーを、利用者の常時ロードされるファイルへ書き込みます。skill は引き続き詳細なマニュアルであり、ポリシーブロックは、エージェントに適切なタイミングでそのマニュアルを開かせる小さな常駐カーネルです。

2. 適用範囲

採用の単位は独立リポジトリ、つまりそれ自身のリポジトリとして公開されているプロジェクトです。独立性は必要条件であり、monorepo とその中に vendor されたサーバー (例: clotohub-servers) は、この標準の対象から完全に外れます。プライベートリポジトリは適用除外です。

Cloto 系の独立パブリックリポジトリはすべて、下の表 (§5) に verdict を記録しなければなりません (MUST):

  • Applicable — 正しいエンドユーザー体験が、セッションをまたいで持続する必要のあるエージェント側の挙動に依存する。そのリポジトリは skill を同梱しなければならず (MUST)、その skill は §3 に適合するポリシーブロック生成タスクを含まなければなりません (MUST)。
  • N/A — そのような挙動が存在しない (仕様、ライブラリ、キュレーションされたリスト、独自のエージェントミドルウェアを持つ製品)。理由を添えて記録します。

2.1 対象ファイル

ブロックは、利用者のクライアントが毎セッション読み込むファイルに入ります。どのファイルかを決めるのは標準ではなくクライアントです。以下の規則は、どのファイルに対しても同じです。

クライアント ユーザーレベルの既定 プロジェクトレベルの代替
Claude Code / Claude Desktop ~/.claude/CLAUDE.md ./CLAUDE.md
Codex CLI ~/.codex/AGENTS.md リポジトリルートの ./AGENTS.md
Cursor User Rules (ファイルではなく設定) alwaysApply: true の .cursor/rules/<product>.mdc、または ./AGENTS.md
VS Code (Copilot) クライアントの custom-instructions ドキュメントに従う .github/copilot-instructions.md、または chat.useAgentsMdFile を有効にした ./AGENTS.md

ここに無いクライアントも、毎セッション何らかのファイルを読み込むなら対象です。クライアントの中で動く skill は、自分がどのクライアントにいるかを知っていて行を選びます。skill の支援が無いクライアントの読み手は、ブロックを手で貼り付けます。

3. 生成タスクへの要件

Applicable なリポジトリの skill は、ポリシーの永続化を申し出なければならず (MUST)、生成されるブロックは以下のすべてを満たさなければなりません (MUST):

  1. 同意 — skill は、書き込む前に正確なブロックを提示し、利用者の承認を得なければなりません (MUST)。利用者の常時ロードされるファイルを、断りなく変更しないこと。
  2. 配置 — 既定の対象は、使用中のクライアントのユーザーレベルのファイル (~/.claude/CLAUDE.md、~/.codex/AGENTS.md、… — §2.1) です。この標準が対象とする製品は、プロジェクト横断のインフラだからです。スコープを絞る代替として、プロジェクトレベルのファイルも提示しなければなりません (MUST)。
  3. 冪等性 — ブロックは版付きのマーカーで囲みます:
<!-- BEGIN <product>-policy vN (managed by the <skill-name> skill) -->
...
<!-- END <product>-policy -->

再実行時、BEGIN マーカーが既に存在するブロックはその場で置換されます (二重に追記されることはありません)。マーカーの外側の内容には、一切触れません。マーカーは HTML コメントなので、どの対象も Markdown として扱います。Cursor の .mdc ルールでは、ブロックは frontmatter の後に置きます。 4. サイズ予算 — マーカーの間は最大 40 行。この予算は実質を禁じるためではなく、取捨選択を強制するために存在します。基本動作 (自明な store、明示的な recall) はブロックが無くても動くので、各行は、エージェントが既定で何をするかを変えることによって、その場所を勝ち取らなければなりません。説明・セットアップ・トラブルシューティングは skill 側に置き、1 行のポインタから参照します。このファイルは毎セッション費用を払っています。利用者のコンテキストウィンドウを尊重してください。 5. 版管理 — ブロックの内容が変わるたびに vN を上げます。再実行時、skill は古い版のブロックを (規則 1 に従い同意を得たうえで) 更新します。 6. 言語 — ブロックは英語のみで書きます。 7. クライアント中立 — ブロックは特定のクライアントを前提にしてはなりません (MUST NOT)。一部のクライアントにだけ当たる行は条件付きで書き (「このクライアントが毎セッション読み込む記憶ファイルを持つなら…」)、どこに貼っても同じブロックが正しくなるようにします。自分がどのクライアントで動いているかを知っているのは skill であって、ブロックではありません。

4. ポリシーブロックに入れるもの

各行に対するテストはこれです。このブロックが無くても、エージェントは既にこれをするか? するなら削ります。ブロックの仕事は、よく調整された運用者環境の使い勝手を再現することであって (ここでの参照点はメンテナ自身のセットアップです)、エージェントがどのみち行う挙動を言い直すことではありません。

入れるもの: エージェントが使うべき安定した識別子 (例: agent_id)、具体的な自然言語の発火条件を伴った必須トリガー (ツール呼び出しを引き起こすべき言い回し。ポリシーが無いときにエージェントが取り違えるのは、ここです)、既定のままのデプロイと良いデプロイを分ける非自明な作法 (保存が同期的になるよう要約を事前計算する、実際の履歴を渡す、重要な規則に対する lock の規律、規則変更では作り直しではなく更新する)、利用者が見落としてはならない劣化時・エラー時の挙動、そして最小限のメンテナンス頻度。

除くもの: インストール手順、ツールリファレンス、設定表、理由を説明する散文。それらは skill の仕事です。

5. 適用範囲テーブル

リポジトリ 判定 備考
cpersona Applicable (pilot) 記憶のトリガーが自発的に発火する必要がある。ブロックは cpersona-memory skill が生成する。
CEmbedding Applicable ブロックは cembedding skill が生成する: 埋め込みサーバーの生存確認 + 劣化した recall の runbook。
ClotoCore N/A カーネル自身がエージェントミドルウェアであり、エンドユーザーは instructions ファイル経由でそれを駆動しない。
mgp-spec / mgp-rs N/A 仕様 / ライブラリ — 永続化すべきエージェント側の挙動が無い。
superauditor N/A 標準と適合性チェッカー — エージェント側に入れるものが無い。利用者のエージェントに要る 1 段落は README に非規範として置いてある。
awesome-mcp-servers N/A キュレーションされたリスト。
clotohub-servers Out of scope monorepo — 独立性の前提条件を満たさない。

新しい独立リポジトリは、作成時にここへ 1 行追加します。