# Cloud Skills

再利用可能でバージョン管理された手順を段階的に想起し、接続されたエージェント間で構造化された運用ランブックを解釈します。

- Canonical: https://docs.xmemo.dev/ja/docs/concepts/cloud-skills
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: 049066d1073d736057a89262336d6fb1f3a45bde8716106959785c6f135bcab3
- Edition-Digest: 02221a176ab4ff76edca7da1b4728344e79bd4c447ca9d8ad26e8306b8f9dfad
- Source-Revision: sha256:ed4540a74de987fd5125f372ab4ee2ea3f4d70303dedb8cef36a3395d3de069a

## 手続き型メモリとスキルアーキテクチャ

Cloud Skills は XMemo におけるユーザー作成の手続き型メモリを提供し、開発者やチームが標準作業手順書（SOP）、ランブック、チェックリスト、再利用可能なプロンプトを永続ストレージに直接保存できるようにします。一度保存されると、サポートされているツール全体で接続されたエージェントが、エージェントごとのインストールや手動のプロンプトコピーを行うことなく、それらを発見、想起、解釈できます。保存された Cloud Skill は、エージェント側の接続ブリッジとして機能するインストール済みの XMemo Skill クライアントランタイム（@xmemo/skill、node scripts/xmemo-skill.mjs）とは異なります。

- Preview 機能: Cloud Skills は現在 Memory Console（#skills）で Preview として提供されています。
- アイデンティティとアセット: 各スキルには一意の skill_id、人間が判読可能なスラッグ、名前、説明、所有者スコープ（Personal または Team）、およびアセットステータス（active または archived）があります。
- 不変のリビジョンチェーン: スキルには SkillRevision スナップショットの追記専用（append-only）シーケンスが含まれます。各リビジョンは revision_id、revision_number、instruction_body、canonical_hash、およびオプションの型付き SkillComponent リソースを保持します。
- サイズ制限: ルート指示本文は 64 KiB UTF-8 に制限されています。1 つのリビジョンには最大 50 個の宣言されたコンポーネントを含めることができ、各コンポーネントは 128 KiB に制限されます。
- コンポーネントリソースタイプ: コンポーネントは、reference、example、template、document、artifact、script を含む明示的なセマンティックタイプを宣言します。

## 公開ライフサイクルとチームレビュー

Cloud Skill のリビジョンは、本番ワークフローを保護し共同作成をサポートするために、構造化されたライフサイクルを通じて遷移します：

- draft: 公開アクティベーション前の作成およびプライベートステージング中の初期リビジョン状態。
- proposed: Team ワークスペース内で作成されたリビジョンは proposed ステータスに遷移し、チームの所有者または管理者による明示的なレビューとアクティベーションを待機します。
- published: エージェントによる検出およびデフォルトの Level 1 想起の対象となるアクティブなリビジョン。指定されたスラッグに対して一度に published として指定できるリビジョンは 1 つだけです。
- deprecated: 古いリビジョンや置き換えられたリビジョンには deprecated のマークを付けて廃止を示しつつ、過去の再現可能な想起を維持できます。
- Personal と Team の公開の違い: Personal ワークスペースでは、公開意図で保存すると直接 published に遷移します。Team ワークスペースでは、提案された（proposed）リビジョンにより、未レビューの手順変更がエージェントのワークフローを変更するのを防ぎます。

## プログレッシブ想起：Level 0、Level 1、Level 2

接続されたエージェントは、未使用のドキュメントで LLM コンテキストウィンドウを飽和させるのを防ぐために、Progressive Recall を使用してオンデマンドでスキルを想起します：

- Level 0（ディスカバリ）: クエリ検索により、完全な指示を読み込むことなく、ユーザータスクに一致する軽量の記述子（slug、name、description）が返されます。
- Level 1（ルート想起）: 指定されたスラッグのスキルルート指示とコンポーネントマニフェストを想起し、デフォルトで公開リビジョンを取得し、最新リビジョンへのフォールバックを備えています。
- Level 2（リソース想起）: 宣言された単一のコンポーネント（チェックリストテンプレートやリファレンススキーマなど）を想起し、リソースの不整合（resource tearing）を防ぐために呼び出し元が明示的な revision_id を指定する必要があります。

```text
recall_cloud_skill(query="incident response")  # Level 0: lightweight descriptors
recall_cloud_skill(slug="incident-response-checklist")  # Level 1: root instructions + manifest
recall_cloud_skill(
  slug="incident-response-checklist",
  revision_id="<revision-id-from-level-1>",
  resource="templates/triage-template.md",
)  # Level 2: one pinned resource component
```

## リビジョンの固定によりリソースの不整合を防ぐ

スキルが更新されると、XMemo は過去のコンテンツを上書きするのではなく、次の不変リビジョンを作成します。Level 1 のルート想起では、不変の revision_id およびコンポーネントマニフェストとともにルート指示が提供されます。Level 2 のリソースリクエストでは、呼び出し元がその正確な revision_id を固定する必要があります。エージェントがワークフローを実行している最中に作成者が新しいリビジョンを公開した場合でも、エージェントの固定された読み取りは開始時とまったく同じスナップショットを解決し続けるため、リソースの不整合が排除されます。

```json
{
  "kind": "root",
  "data": {
    "skill_id": "skill_inc_triage_01",
    "revision_id": "rev_v1_inc_triage",
    "revision_number": 1,
    "canonical_hash": "c7b14d8e9f2a4c10...",
    "resources": [
      {
        "logical_path": "templates/triage-template.md",
        "type": "template",
        "content_hash": "e3b0c44298fc1c14..."
      }
    ]
  }
}
```

## インポート、エクスポート、およびオーサリング環境

開発者は Web コンソールで対話形式で Cloud Skills を作成したり、標準配布パッケージから既存のスキルをインポートしたりできます：

- コンソールでの作成: マークダウンエディタとコンポーネント管理を備えた Memory Console（#skills）で対話的にスキルを作成します。
- パッケージインポート: 標準の SKILL.md ファイル（YAML フロントマター付き）、マルチファイル ZIP アーカイブ、または URL（ClawHub または GitHub）経由のリモートリポジトリをインポートします。
- リビジョン差分比較: 単語レベルの差分比較により、任意の 2 つのリビジョン間で指示の変更とコンポーネントの修正を比較します。
- Source Capsule のエクスポート: 任意のスキルリビジョンを、SKILL.md、コンポーネントリソース、およびメタデータマニフェストを含む可逆の Source Capsule ZIP アーカイブとしてエクスポートします。

## エージェントアクセスプロファイルとサンドボックス分離

承認されたエージェントは、サポートされているクライアント環境において、契約上定義された MCP ツールを通じて Cloud Skills にアクセスします：

- 契約上の MCP ツール: ツール recall_cloud_skill（読み取り専用）および save_cloud_skill（作成）は、cursor-plugin および ordinary-full クライアントプロファイル（config/mcp-documentation-contract.json）で契約上公開されています。generic-public、chatgpt-public、claude-code プロファイルには公開されていません。
- プロンプト実行可能な手順: ほとんどの Cloud Skills は、コードを実行することなくプロンプトガイダンスとしてエージェントによって直接解釈される標準作業手順書です。
- サンドボックス実行境界: execute_cloud_skill を介したオプションのバックエンドスクリプト実行は、SandboxExecutionEngine によって管理される高度なサーバー側機能です（現在どのクライアントプロファイルにも公開されていません）。ローカルの bubblewrap コンテナ分離が存在しない場合、実行は SANDBOX_UNAVAILABLE でフェイルクローズします。

## 提供状況とライフサイクルの境界

アカウントで手続き型 Cloud Skills が有効になっている場合、Cloud Skill 機能が利用可能です。リビジョンは不変のコンテンツアドレス指定スナップショットであり、変更を保存すると以前のレコードを上書きすることなく新しいリビジョンが作成されます。候補となるスキルが存在する場合、コンソールには明示的な手動プロモーションを必要とするレビューバナーが表示されます。

## ChatGPT ユーザー

bearer token をチャットに貼り付けずに、ChatGPT が XMemo の設定、プロジェクト事実、意思決定、TODO に永続的にアクセスできるようにします。

ChatGPT/OpenAI app の OAuth フローで hosted XMemo MCP server に接続し、XMemo アカウントに memory:read と memory:write の許可を承認します。

合成の設定またはプロジェクトメモを保存し、新しいチャットを開始してから、作業を続ける前に ChatGPT に XMemo 経由でそれを呼び出させます。

OAuth が失敗する、またはツールが表示されない場合は、direct token を作成する前に、ホストアプリで MCP server からサインアウトし、XMemo server URL を再接続して再試行します。

## Copilot / Codex 開発者

リポジトリの判断、コーディング規約、バグ修正メモ、タスク履歴を IDE と CLI エージェント間で持ち運べます。

利用可能な場合は、VS Code / GitHub Copilot および Gemini CLI に OAuth を使用してください。Copilot CLI、Codex、Cursor、またはその他の直接 MCP クライアントの場合は、XMEMO_KEY をローカル環境またはシークレットストアに保持し、安定した XMEMO_AGENT_INSTANCE_ID を設定してください。

コードベースの判断またはバグ修正を記録し、次の IDE または CLI エージェントに、編集前に関連する XMemo コンテキストを呼び出させます。

呼び出し結果が空の場合は、選択した MCP 設定パス、direct client 用の XMEMO_KEY 環境変数、ホストアプリ内の古い OAuth 認証情報を確認します。

## チーム / エンタープライズ pilot owner

アカウント制御、ソース attribution、エクスポート/削除ワークフロー、レビュー担当者向けに安全な設定証跡で共有メモリを評価します。

保護された XMemo workspace を作成または開き、承認済みユーザーを招待してから、readiness badges に従って OAuth またはスコープ付き direct credential で各クライアントを接続します。

pilot メンバーに合成のチームメモリを保存してもらい、XMemo でソース attribution を確認し、削除/エクスポートとサポート経路をレビューします。

メンバーが接続できない場合は、新しい token を発行する前に、ロール権限、OAuth 承認、クライアント readiness 状態、サポートガイダンスを確認します。

## 自律エージェント operator

headless またはスケジュール済みエージェントが進捗を記録し、過去の判断を取得し、安定した非秘密のインスタンス ID を保持できるようにします。

/api/v1/mcp/config/autonomous-agent を取得します。runner が OAuth + custom headers をサポートする場合は auth_modes.oauth を優先し、完全 headless runner の場合のみ secret store の XMEMO_KEY で auth_modes.xmemo_key を使います。

XMemo に進捗を書き込む合成タスクを 1 つ実行し、runner を再起動して、同じ XMEMO_AGENT_INSTANCE_ID でその進捗を呼び出せることを確認します。

attribution が変わる、または呼び出し結果がインスタンス間で分かれる場合は、XMEMO_AGENT_INSTANCE_ID を git の外に永続化し、runner が起動ごとに再生成していないことを確認します。
