claims について
claimsは、エージェントの認可とホスト間の作業所有権を管理するスキルです。リソース範囲を指定した権限設定に加え、フェデレーションイベントによる作業の同期、確認、引き継ぎに対応します。
主な機能
- 01認可クレームの確認・付与・取消
- 02リソースパターンによるアクセス範囲指定
- 03作業クレームと引き継ぎの管理
- 04ホスト間でのクレームイベント同期
- 05チャネル別のクレームメッセージ分離
活用シーン
- 01エージェントのファイルやコマンドへのアクセス制限
- 02複数エージェント作業前の担当決定
- 03フェデレーションノード間のクレーム同期
- 04チーム別のクレームストリーム分離
MCP 対応
claims_claimなどのランタイムツールと、federation_bbs_publishによるクレームイベント公開を説明しています。特定のMCPインターフェースは記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill claimsインストール後、Claude Code で/claimsを入力して読み込まれたか確認します。
詳細
クレーム認可スキル
目的
安全なエージェント操作とアクセス制御のための、クレームベースの認可です。
クレームの種類
| クレーム | 説明 |
|---|---|
read | ファイルの読み取りアクセス |
write | ファイルの書き込みアクセス |
execute | コマンドの実行 |
spawn | エージェントの起動 |
memory | メモリーへのアクセス |
network | ネットワークへのアクセス |
admin | 管理操作 |
コマンド
クレームを確認
npx claude-flow claims check --agent agent-123 --claim write
クレームを付与
npx claude-flow claims grant --agent agent-123 --claim write --scope "/src/**"
クレームを取り消し
npx claude-flow claims revoke --agent agent-123 --claim write
クレームを一覧表示
npx claude-flow claims list --agent agent-123
スコープパターン
| パターン | 説明 |
|---|---|
* | すべてのリソース |
/src/** | src 内のすべてのファイル |
/config/*.toml | config 内の TOML ファイル |
memory:patterns | Patterns 名前空間 |
セキュリティレベル
| レベル | クレーム |
|---|---|
minimal | 読み取りのみ |
standard | 読み取り、書き込み、実行 |
elevated | + 起動、メモリー |
admin | すべてのクレーム |
ベストプラクティス
- 最小権限の原則に従う
- クレームのスコープを特定のリソースに限定する
- クレームの使用状況を定期的に監査する
- 不要になったクレームを取り消す
ホスト間の作業クレーム(フェデレーション、v3.40.0+)
上記の認可クレームとは異なり、作業クレームはエージェント間でタスクやリソースの所有権を調整するもので、ホスト間フェデレーションを通じて伝播するようになりました。そのため、あるノードで作成されたクレームはスウォーム全体から参照できます。
ランタイムツール(ローカル台帳)
| ツール | 用途 |
|---|---|
claims_claim | イシュー/リソースの所有権を取得します(TTL は任意)。 |
claims_release | 保持しているクレームを手放します。 |
claims_handoff / claims_accept-handoff | クレームを別のエージェントに移譲します。 |
claims_steal / claims_mark-stealable | 停滞したクレームに対するワークスティーリングを行います。 |
claims_status / claims_list | 現在の所有権を確認します。 |
フェデレーション(ホスト間)
クレームイベントをフェデレーションルームに公開し(federation_bbs_publish)、ホスト間で所有権を収束させます。メッセージタイプ:ClaimIssued / ClaimReleased / ClaimHandoff / ClaimAck。
ルール:resourceId ごとに所有者は 1 人です。有効な最初の ClaimIssued が優先されます(同着の場合は ts が早い方、次に from が小さい方)。ClaimReleased または TTL の期限切れで解放されます。ClaimHandoff は現在の所有者のみが実行できます。コーディネーターは、正式な所有者を示す ClaimAck を投稿します。
共有作業を始める前にクレームを取得して同期し、承認された所有者である場合にのみ作業を進めてください。 クレームをホスト間で可視化すると同時にランタイムで強制する必要がある場合は、両方を併用してください。フェデレーションクレームメッセージを公開し、claims_claim も呼び出します。転送方法については、cross-host-federation スキル(ruflo-bbs-federation プラグイン)を参照してください。
クレームストリームをチャネルにスコープする(ADR-386)
デフォルトでは、すべてのクレームイベントは共有スウォームストリームに入り、すべてのリレーメンバーが読み取れます。チームの所有権台帳を分離する場合、または他のリレーから読み取れないようにする場合は、クレームメッセージをチャネルに公開してください。
npx ruflo federation channel --action create --name platform-team --visibility private
npx ruflo federation channel --action grant --channel prv:<hex> --pubkey <teammate 64-hex>
npx ruflo federation channel --action publish --channel prv:<hex> \
--type ClaimIssued --payload '{"resourceId":"repo/foo","ttlSeconds":7200}'
npx ruflo federation channel --action read --channel prv:<hex>
縮約ルールは変わらず、変わるのは対象者だけです。この方法を利用する前に、次の 2 点に注意してください。プライベートチャネルでは内容は隠されますが、メタデータは隠されません(リレーには誰がいつ公開したかが見えます)。また、チャネル外の誰も読み取れないクレームは、チャネル外で作成されたクレームとの調停には使えません。所有権をスウォーム全体で共有する必要がある場合は、オープンストリームを使用してください。チャネルの仕組みについては、open-federation スキルを参照してください。