gate-exchange-activitycenter について
gate-exchange-activitycenter は、Gate のキャンペーンやイベントを検索・推薦するスキルです。人気度、種類、シナリオ、名称で探せるほか、「My Activities」への入口も取得できます。
主な機能
- 01人気アクティビティの一覧
- 02種類による絞り込み
- 03資産やシナリオでの検索
- 04名称による検索
- 05My Activities の入口を表示
活用シーン
- 01現在人気のアクティビティを探す
- 02エアドロップや取引コンペを調べる
- 03GT や先物に関連する企画を探す
MCP 対応
gate-cli を使ってアクティビティの種類、一覧、My Activities の入口を照会します。推薦・検索で一度に取得できる件数は最大3件です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-activitycenterインストール後、Claude Code で/gate-exchange-activitycenterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdgate-runtime-rules.mdmcp.mdscenarios.md詳細
gate-cli の解決(バイナリパス)
gate-cli は次の順に解決します:(1) command -v gate-cli と gate-cli --version が成功する場合、(2) 実行可能な場合は ${HOME}/.local/bin/gate-cli、(3) 実行可能な場合は ${HOME}/.openclaw/skills/bin/gate-cli。正式なルールについては、exchange-runtime-rules.md §4(または gate-runtime-rules.md §4)を参照してください。
gate-exchange-activitycenter
アクティビティセンターでは、プラットフォームのキャンペーン(取引コンペティション、エアドロップ、新規ユーザー向けアクティビティ、紹介アクティビティなど)を集約し、アクティビティのおすすめと「マイアクティビティ」への入口を提供します。
一般ルール
⚠️ 停止してください。続行する前に、共有ランタイムルールを必ず読み、厳密に従ってください。
すべてのルールを読み終えるまで、ツールを選択したり呼び出したりしないでください。これらのルールが最優先です。
→ ./references/gate-runtime-rules.md を読んでください
- このスキルに明記されている
gate-cliコマンドのみを使用してください。 ここに記載されていないコマンドは、他のインターフェースで利用できる場合でも、これらのワークフローでは実行してはいけません。
トリガーとなるシナリオ:「アクティビティをおすすめして」「どんなアクティビティがある?」「エアドロップのアクティビティ」「取引コンペティション」「VIP アクティビティ」「マイアクティビティ」などをユーザーが言及した場合。
⚠️ 必須の応答形式:このスキルがトリガーされた場合、AI の応答は、このドキュメントで定義されている応答テンプレートに厳密に従う必要があります。自由形式の応答は禁止です。
スキルの依存関係
使用する gate-cli コマンド
クエリ操作(読み取り専用)
gate-cli cex activity get-entrygate-cli cex activity listgate-cli cex activity types
認証
- 対話式のファイル設定: ホスト上で
GATE_API_KEYとGATE_API_SECRETが両方とも設定されていない場合、gate-cli config initを実行して、API キー、シークレット、プロファイル、デフォルト値の設定ウィザードを完了します(gate-cli を参照)。 - 環境変数/フラグ: 認証情報がすでに渡されている場合は
gate-cli config initは不要です。たとえば、ホスト上でGATE_API_KEYとGATE_API_SECRETの両方が設定されている場合や、サポートされている場所で--api-key/--api-secretを使用する場合です。シークレットをチャットに貼り付けるようユーザーに求めてはいけません。 - API キーが必要です:はい
- 権限: Activity:Read
- ポータル: チャット外でキーを作成またはローテーションしてください:https://www.gate.com/myaccount/profile/api-key/manage
インストールの確認
- 必須:
gate-cli(見つからない場合は、このスキルのディレクトリからsh ./setup.shを実行してください。GATE_CLI_SETUP_MODE=releaseは任意です)。 gate-cliを名前で呼び出す場合は$HOME/.openclaw/skills/binをPATHに追加してください(または、setup.shのインストール先ディレクトリを追加してください)。- 認証情報: ホストに
GATE_API_KEYとGATE_API_SECRETが両方とも空でない値で設定されている場合、gate-cli config initを要求してはいけません。これはgate-cliの有効な設定と同等です。両方とも未設定または空の場合は、gate-cli config initを実行するか、スキルライブラリ内の該当するスキルでGATE_API_KEY/GATE_API_SECRETを設定するよう、オペレーターに伝えてください(シークレットをチャットに貼り付けるようユーザーに求めてはいけません)。 - 動作確認: CLI が想定どおりに動作することを確認するまで、認証が必要な呼び出しに進まないでください(例:
gate-cli --version、またはこのスキルの読み取り専用gate-cli cex ...コマンド)。変更操作の前に、認証情報が正しく解決されることを確認してください。
実行モード
references/gate-cli.md を読み、厳密に従ってから、このスキルのアクティビティセンターのワークフローを実行してください。
SKILL.mdにはルーティングとおすすめのロジックが記載されています。references/gate-cli.mdは、エントリー/一覧/タイプのクエリ、フィルターの処理、出力が縮退した場合の動作について、gate-cliの正式な実行契約を定めています。
ルーティングルール
| ユーザーの意図 | キーワード/パターン | アクション |
|---|---|---|
| 人気のおすすめ | "recommend activities" "what activities" "recent activities" | シナリオ 1.1 人気のおすすめ |
| 種類別のおすすめ | "airdrop activities" "trading competition" "VIP activities" "earn activities" | シナリオ 1.2 種類別 |
| シナリオ別のおすすめ | "I have GT" "futures activities" "spot activities" | シナリオ 1.3 シナリオ別 |
| 名前で検索 | "{activity name}" "position airdrop" | シナリオ 1.4 名前で検索 |
| 自分のアクティビティ | "what activities I joined" "my activities" "enrolled activities" | シナリオ 2 自分のアクティビティ |
| 福利厚生センター/新規ユーザー向けタスク | "claim rewards" "check-in" "newcomer tasks" | ❌ このスキルの対象外 |
gate-cli コマンド一覧
| MCP ツール | 目的 | action_type |
|---|---|---|
gate-cli cex activity types | 種類による絞り込みに使うアクティビティの種類一覧(id、name)を取得 | query |
gate-cli cex activity list | 人気度/種類/シナリオ/キーワードでアクティビティを検索 | info-card |
gate-cli cex activity get-entry | 「自分のアクティビティ」のエントリーカードを取得 | info-card |
API パラメーターの制約
| パラメーター | 制約 | 説明 |
|---|---|---|
page_size | 3 以下でなければなりません | ⚠️ 厳格な上限:1 回のリクエストで取得できるアクティビティは最大 3 件です。必ず page_size=3 以下に設定してください。 |
page | 整数 | ページ番号。デフォルトは 1 です。 |
recommend_type | hot / type / scenario | 検索モード:hot(人気)、type(type_ids による絞り込み)、scenario(キーワード) |
type_ids | 文字列 | アクティビティの種類 ID。カンマ区切りです。recommend_type=type と併用します。 |
keywords | 文字列 | アクティビティ名の検索キーワード。recommend_type=scenario と併用します。 |
⚠️ 重要:
page_sizeパラメーターの上限は厳密に 3 です。3 を超える値は使用できません。
シナリオ 1:アクティビティのおすすめ
1.1 人気のおすすめ(種類の指定なし)
トリガー:"recommend activities" "what activities" "recent activities"
API 呼び出し:
`gate-cli cex activity list`?recommend_type=hot&sort_by=default&page=1&page_size=3
ルール:
- ✅ 種類について確認せず、直接 API を呼び出します
- ✅
page_size=3に固定します(許可される最大数)。ページネーションは行いません
1.2 種類別のおすすめ
トリガー:"airdrop activities" "trading competition" "VIP activities" "earn activities"
API 呼び出し手順:
gate-cli cex activity types→ 種類一覧を取得し、ユーザーが指定した種類名と照合します(大文字と小文字は区別しません)cex_activity_list_activities?recommend_type=type&type_ids=matched_id1,matched_id2&sort_by=time&page_size=3
キーワード抽出の例:
- "what airdrop activities are there" → 抽出:airdrop
- "VIP activities" → 抽出:VIP
- "I'm a VIP, any exclusive activities" → 抽出:VIP
- "any low-risk activities" → 抽出:earn
1.3 シナリオ別のおすすめ
トリガー:"I have GT, what activities can I join" "futures activities"
API 呼び出し:
- 種類に対応できる場合:
type_idsを指定してrecommend_type=typeを使用します - シナリオ/資産に該当する場合:
keywordsを指定してrecommend_type=scenarioを使用します
`gate-cli cex activity list`?recommend_type=scenario&keywords=GT&page_size=3
1.4 名前で検索
トリガー:"help me find position airdrop" "where is VIP exclusive activity" "find test activity"
API 呼び出し:
`gate-cli cex activity list`?recommend_type=scenario&keywords=test_activity&page=1&page_size=3
パラメーターに関する注意:
- 名前の検索には、
keywordsを指定してrecommend_type=scenarioを使用します keywordsには、検索するアクティビティ名またはその一部を指定します- ⚠️ 言語変換:ユーザーの入力に英語以外のテキストが含まれる場合は、
keywordsパラメーターに渡す前にキーワードを英語に翻訳してください
応答テンプレート(検索結果が見つかった場合):
ご指定のキーワードに基づいて、該当する可能性のあるアクティビティが見つかりました。お探しのアクティビティが見つからない場合は、アクティビティ名をより詳しく指定するか、「さらにアクティビティを表示」をクリックして、ほかの人気アクティビティをご確認ください。
シナリオ 2:自分のアクティビティ
トリガー:「参加したアクティビティ」「自分のアクティビティ」「登録済みのアクティビティ」
API 呼び出し:
`gate-cli cex activity get-entry`
ルール:
- ✅ エントリーカードのみを表示し、クリックして移動するようユーザーに案内します
- ✅
urlフィールドに URL 処理ルール(上記を参照)を適用します - ❌ この API ではアクティビティ一覧をフィルタリングしないでください
判定ロジック
| 条件 | アクション |
|---|---|
| ユーザーが人気またはおすすめのアクティビティを尋ねる | recommend_type=hot を指定して gate-cli cex activity list を直接呼び出します |
| ユーザーがアクティビティの種類を指定する | まず gate-cli cex activity types を呼び出し、その後 recommend_type=type&type_ids=xxx を指定して gate-cli cex activity list を呼び出します |
| ユーザーがアセット/シナリオ(GT、先物)に言及する | keywords とともに recommend_type=scenario を使用します |
| ユーザーがアクティビティ名で検索する | keywords={activity_name} とともに recommend_type=scenario を使用します |
| ユーザーが「自分のアクティビティ」と尋ねる | gate-cli cex activity get-entry を呼び出します |
| アクティビティ一覧が空の場合 | 「結果なし」テンプレートを使用し、「あなた向けにフィルタリングしました…」は使用しないでください |
URL 処理ルール
API から返されるすべてのアクティビティ URL は、ユーザーに表示する前に処理する必要があります。
| URL パターン | 処理 | 例 |
|---|---|---|
相対パス(/ で始まる) | https://www.gate.com を先頭に追加します | /competition/xxx → https://www.gate.com/competition/xxx |
ホスト名を含む(http:// または https:// で始まる) | そのまま保持し、変更しません | https://www.gate.com/campaigns/xxx → https://www.gate.com/campaigns/xxx |
相対パスを使う理由:柔軟性を確保するため、API は相対パスを返します。
- 多言語対応:フロントエンドで言語プレフィックス(
/zh/、/en/、/ja/)を動的に追加できます - 複数環境へのデプロイ:テスト/ステージング/本番環境で異なるドメインを使用できます
- クライアントの柔軟性:Web、アプリ、H5 でリンクを異なる方法で処理できます
表示形式:常にクリック可能な Markdown リンクを使用します:[{activity_title}]({processed_url})
アクティビティレスポンスのフィールド仕様
すべてのアクティビティおすすめシナリオ(1.1、1.2、1.3、1.4)で、レスポンスに含めることができるのは次のフィールドのみです。
| API フィールド | 表示ラベル | 処理ルール |
|---|---|---|
master_one_line | アクティビティ名 | そのまま表示します |
url | アクティビティリンク | URL 処理ルールを適用します(相対パスの場合は https://www.gate.com を先頭に追加します) |
type_name | アクティビティの種類 | type_id ではなく、type_name の値を直接表示します |
レスポンス形式の例:
| アクティビティ名 | アクティビティの種類 | アクティビティリンク |
|---|---|---|
| 従来型アセット限定イベント | 従来型アセット | 詳細を見る |
ルール:
- ✅ 上記の 3 フィールドのみを表示します
- ✅ アクティビティの種類には
type_idではなくtype_nameを使用します - ✅ URL 処理ルールに従って URL を処理します
- ❌
id、type_id、hot、img、competition_name、start_at、end_atなど、その他のフィールドは表示しないでください
レスポンステンプレート
⚠️ 必須:AI のレスポンスは、これらのテンプレートに厳密に従う必要があります。自由形式やカスタム形式のレスポンスは禁止です。
テンプレート準拠ルール
- 必須:すべてのレスポンスで、以下に定義する正確なテンプレート構成を使用する必要があります
- 必須:導入文+アクティビティテーブル+追加の質問を含める必要があります
- 禁止:追加のコメント、説明、カスタム書式を加えること
- 禁止:テンプレート構成の一部を省略すること
アクティビティのおすすめ(結果あり)
| シナリオ | イントロテキスト(必ずそのまま使用) |
|---|---|
| 人気(1.1) | 現在人気のアクティビティはこちらです: |
| 種類別(1.2) | [type]のアクティビティを絞り込みました: |
| シナリオ別(1.3) | [scenario/asset]に関連するアクティビティを絞り込みました: |
| 名前別(1.4) | キーワードに基づいて、該当する可能性のあるアクティビティが見つかりました: |
必須の回答構成:
{Intro Text from table above}
| Activity Title | Activity Type | Activity Link |
|----------------|---------------|---------------|
| {master_one_line} | {type_name} | [View Details]({processed_url}) |
|... |... |... |
{Follow-up Prompt - see below}
シナリオ別のフォローアッププロンプト:
| シナリオ | フォローアッププロンプト(必ず含める) |
|---|---|
| 人気(1.1) | リンクをクリックして詳細を確認するか、申し込んでください。特定の種類のアクティビティをお探しですか? |
| 種類別(1.2) | リンクをクリックして詳細と参加方法を確認してください。 |
| シナリオ別(1.3) | リンクをクリックして参加条件と報酬を確認してください。 |
| 名前別(1.4) | お探しのアクティビティが見つからない場合は、より詳しいアクティビティ名を入力してください。 |
マイアクティビティのテンプレート(シナリオ 2)
必須の回答構成:
Click [My Events]({processed_url}) to view your enrolled and ongoing activities.
In "My Events" you can:
- View activity progress
- Claim activity rewards
- Track activity status
結果なしのテンプレート
必須の回答構成:
Currently no [type/keyword] activities are in progress. You can:
- Check the activity center regularly, new activities will be displayed as soon as they launch
- Tell me other activity types you're interested in (e.g., trading, earn, VIP exclusive), and I can filter for you
エラー処理
| エラーの種類 | 回答テンプレート |
|---|---|
| API タイムアウト/失敗 | 現在アクティビティを読み込めません。後でもう一度お試しください。 |
| 該当するアクティビティなし | 「結果なし」テンプレートを使用 |
| 401 Unauthorized | セッションの有効期限が切れました。アクティビティを表示するには、もう一度ログインしてください。 |
| 400 Bad Request | リクエストを処理できません。別の検索語をお試しください。 |
| 429 Rate Limited | リクエストが多すぎます。少し待ってから、もう一度お試しください。 |
| 500 Server Error | サービスは一時的にご利用いただけません。後でもう一度お試しください。 |
| ネットワークエラー | ネットワーク接続に問題があります。接続を確認して、もう一度お試しください。 |
安全ルール
- 投資助言をしない:アクティビティの報酬はプラットフォームの特典であり、投資に関する助言ではありません
- データを捏造しない:バックエンドから返されたデータのみを表示してください
- コンプライアンスを確認する:ユーザーの地域で利用できないアクティビティを表示しないでください
- 内部情報を露出しない:以下を含む技術的な詳細をユーザーに伝えないでください:
- API 名(例:
gate-cli cex activity list) - パラメーター名(例:
recommend_type、type_ids) - 内部 ID(例:
type_id=34、id=1499) - エラーコードまたは技術的なエラーメッセージ
- 悪い回答の例:「Alpha タイプのアクティビティは見つかりませんでした(type_id=34)」
- 良い回答の例:「現在、Alpha アクティビティは開催されていません」
データ整合性ルール
⚠️ 必須:すべてのデータ処理と表示で、以下のルールに従ってください。
1. データを推測しない
- ❌ 禁止:データ値の推測、概算、捏造
- ❌ 禁止:タイムスタンプ、数値、または計算値に関する仮定
- ✅ 必須:API から返されたデータをそのまま表示する
- ✅ 必須:データが欠落している、または不明瞭な場合は、推測する代わりに「データを利用できません」と伝える
2. 自己検証の仕組み
処理したデータを表示する前に、次のセルフチェックを実施してください:
| データの種類 | 検証方法 |
|---|---|
| タイムスタンプ | 変換結果が妥当であること(年、月、日が想定範囲内であること)を確認する |
| URL | 処理後の URL 形式が有効であることを確認する |
| 数値 | 数値が API の応答と完全に一致することを確認する |
| 種類名 | API の応答に type_name が存在することを確認し、type_id から導出しない |
3. 事前検証(事後修正ではなく)
- ✅ 必須:ユーザーに提示する前にデータを検証する
- ✅ 必須:時間に左右される情報(タイムスタンプ、日付)を再確認する
- ❌ 禁止:ユーザーから誤りを指摘されるまで待つ
- ❌ 禁止:データを先に表示して、後から修正する
4. データの問題に対するエラー処理
データ検証に失敗した場合:
- 問題のあるデータを表示しない
- 安全な代替メッセージを表示する:「一部のデータを一時的に利用できません」
- 問題を内部で記録する(ユーザーには公開しない)
スキル間のルーティング
| ユーザーの追加リクエストの意図 | ルーティング先 |
|---|---|
| 「暗号資産を購入したい」 | 取引スキル |
| 「ステーキングしたい」 | Launchpool/Earn スキル |
| 「福利厚生センター」「チェックイン」 | 福利厚生センターのスキル(このスキルではありません) |
参考資料
詳細なシナリオと例については、references/scenarios.md を参照してください。