CLAUDE.md ポリシー生成標準 (v1.0)¶
AI エージェントが指示されなくても正しく振る舞うことに製品価値が依存する
Cloto 系プロジェクトのための標準です: そのプロジェクトの skill は、利用者の
CLAUDE.md (または同等の、常時ロードされるエージェントメモリファイル) に、
マーカーで囲まれた小さなポリシーブロックを生成できなければなりません
(MUST)。
翻訳について: 正本は英語版です。日本語版が古い場合は英語版を参照してください。
この文書のステータス¶
Pilot (試行段階)。 この標準は cpersona で試行しています
(リリースライフサイクル標準 と同じ pilot
モデルです)。以下のすべての規則は、ファミリー全体への採用に先立って
cpersona-memory skill で実地に運用されます。pilot が続く間、canonical な
置き場所はこのリポジトリです。
1. 動機¶
skill は条件付きかつ確率的にロードされます — あるセッションで発火するか
どうかは会話次第です。CLAUDE.md は毎セッション決定論的にロードされます。
記憶サーバーのような製品は、エージェントが自発的にそのツールを呼ぶかどうかで
生死が決まります (セッション開始時の recall、決定時の store、セッション終了時の
archive)。skill がたまたま発火したときにしか効かない規則では、その保証は
担えません。
解決策は、確率的なものから決定論的なものへの格上げです: 利用者がインストール時に
実際に呼び出す skill が、製品の運用ポリシーを、利用者の常時ロードされる
CLAUDE.md へ書き込みます。skill は引き続き詳細なマニュアルであり、ポリシー
ブロックは、エージェントに適切なタイミングでそのマニュアルを開かせる小さな
常駐カーネルです。
2. 適用範囲¶
採用の単位は独立リポジトリです: それ自身のリポジトリとして公開されている
プロジェクトのことです。独立性は必要条件であり、monorepo とその中に vendor
されたサーバー (例: clotohub-servers) は、この標準の対象から完全に外れます。
プライベートリポジトリは適用除外です。
Cloto 系の独立パブリックリポジトリはすべて、下の表 (§5) に verdict を記録 しなければなりません (MUST):
- Applicable — 正しいエンドユーザー体験が、セッションをまたいで持続する 必要のあるエージェント側の挙動に依存する。そのリポジトリは skill を同梱 しなければならず (MUST)、その skill は §3 に適合するポリシーブロック生成 タスクを含まなければなりません (MUST)。
- N/A — そのような挙動が存在しない (仕様、ライブラリ、キュレーションされた リスト、独自のエージェントミドルウェアを持つ製品)。理由を添えて記録します。
3. 生成タスクへの要件¶
Applicable なリポジトリの skill は、ポリシーの永続化を申し出なければならず (MUST)、生成されるブロックは以下のすべてを満たさなければなりません (MUST):
- 同意 — skill は、書き込む前に正確なブロックを提示し、利用者の承認を
得なければなりません (MUST)。利用者の
CLAUDE.mdを黙って変更しないこと。 - 配置 — 既定の対象はユーザーレベルのファイル (
~/.claude/CLAUDE.md) です。この標準が対象とする製品はプロジェクト横断のインフラだからです。 スコープを絞る代替として、プロジェクトレベルのCLAUDE.mdも提示しなければ なりません (MUST)。 - 冪等性 — ブロックは版付きのマーカーで囲みます:
<!-- BEGIN <product>-policy vN (managed by the <skill-name> skill) -->
...
<!-- END <product>-policy -->
再実行時、BEGIN マーカーが既に存在するブロックはその場で置換されます
(二重に追記されることはありません)。マーカーの外側の内容には一切触れません。
4. サイズ予算 — マーカーの間は最大 40 行。この予算は実質を禁じるため
ではなく、取捨選択を強制するために存在します: 基本動作 (自明な store、明示的な
recall) はブロックが無くても動くので、各行は、エージェントが既定で何をするかを
変えることによって、その場所を勝ち取らなければなりません。説明・セットアップ・
トラブルシューティングは skill 側に置き、1 行のポインタから参照します。
CLAUDE.md は毎セッション費用を払っています — 利用者のコンテキスト
ウィンドウを尊重してください。
5. 版管理 — ブロックの内容が変わるたびに vN を上げます。再実行時、skill は
古い版のブロックを (規則 1 に従い同意を得たうえで) 更新します。
6. 言語 — ブロックは英語のみで書きます。
4. ポリシーブロックに入れるもの¶
各行に対するテストはこれです: このブロックが無くても、エージェントは既にこれを するか? するなら削ります。ブロックの仕事は、よく調整された運用者環境の 使い勝手を再現することであって — ここでの参照点はメンテナ自身のセットアップ です — エージェントがどのみち行う挙動を言い直すことではありません。
入れるもの: エージェントが使うべき安定した識別子 (例: agent_id)、
具体的な自然言語の発火条件を伴った必須トリガー (ツール呼び出しを引き起こす
べき言い回し — ポリシーが無いときにエージェントが取り違えるのはここです)、
既定のままのデプロイと良いデプロイを分ける非自明な作法 (例: 保存が同期的になる
よう要約を事前計算する、実際の履歴を渡す、重要な規則に対する lock の規律、規則
変更では作り直しではなく更新する)、利用者が見落としてはならない劣化時・エラー時の
挙動、そして最小限のメンテナンス頻度。除くもの: インストール手順、ツール
リファレンス、設定表、理由を述べる散文 — それらは skill の仕事です。
5. 適用範囲テーブル¶
| リポジトリ | 判定 | 備考 |
|---|---|---|
| cpersona | Applicable (pilot) | 記憶のトリガーが自発的に発火する必要がある。ブロックは cpersona-memory skill が生成する。 |
| CEmbedding | Applicable | ブロックは cembedding skill が生成する: 埋め込みサーバーの生存確認 + 劣化した recall の runbook。 |
| ClotoCore | N/A | カーネル自身がエージェントミドルウェアであり、エンドユーザーは CLAUDE.md 経由でそれを駆動しない。 |
| mgp-spec / mgp-rs | N/A | 仕様 / ライブラリ — 永続化すべきエージェント側の挙動が無い。 |
| awesome-mcp-servers | N/A | キュレーションされたリスト。 |
| clotohub-servers | Out of scope | monorepo — 独立性の前提条件を満たさない。 |
新しい独立リポジトリは、作成時にここへ 1 行追加します。