gate-exchange-activitycenter
Gate platform activity and campaign hub skill. Use when the user asks about trading competitions, airdrops, or their enrolled activities. Triggers on 'recommend activities', 'trading competition', 'my activities', 'airdrop campaign'.
What this skill does
### Resolving `gate-cli` (binary path)
Resolve **`gate-cli`** in order: **(1)** **`command -v gate-cli`** and **`gate-cli --version`** succeeds; **(2)** **`${HOME}/.local/bin/gate-cli`** if executable; **(3)** **`${HOME}/.openclaw/skills/bin/gate-cli`** if executable. Canonical rules: [`exchange-runtime-rules.md`](https://github.com/gate/gate-skills/blob/master/skills/exchange-runtime-rules.md) §4 (or [`gate-runtime-rules.md`](https://github.com/gate/gate-skills/blob/master/skills/gate-runtime-rules.md) §4).
# gate-exchange-activitycenter
> Activity center aggregates platform campaigns (trading competitions, airdrops, newcomer activities, referral activities, etc.), supporting activity recommendations and my activities entry.
## General Rules
⚠️ STOP — You MUST read and strictly follow the shared runtime rules before proceeding.
Do NOT select or call any tool until all rules are read. These rules have the highest priority.
→ Read `./references/gate-runtime-rules.md`
- **Only use the `gate-cli` commands explicitly listed in this skill.** Commands not documented here must NOT be run for these workflows, even if other interfaces expose them.
**Trigger Scenarios**: User mentions "recommend activities", "what activities", "airdrop activities", "trading competition", "VIP activities", "my activities", etc.
> ⚠️ **MANDATORY RESPONSE FORMAT**: When this skill is triggered, AI responses **MUST** strictly follow the Response Templates defined in this document. Free-form responses are **FORBIDDEN**.
---
## Skill Dependencies
### gate-cli commands used
**Query Operations (Read-only)**
- `gate-cli cex activity get-entry`
- `gate-cli cex activity list`
- `gate-cli cex activity types`
### Authentication
- **Interactive file setup:** when **`GATE_API_KEY`** and **`GATE_API_SECRET`** are **not** both set on the host, run **`gate-cli config init`** to complete the wizard for API key, secret, profiles, and defaults (see [gate-cli](https://github.com/gate/gate-cli)).
- **Env / flags:** **`gate-cli config init`** is **not** required when credentials are already supplied — e.g. **both** **`GATE_API_KEY`** and **`GATE_API_SECRET`** set on the host, or **`--api-key`** / **`--api-secret`** where supported — never ask the user to paste secrets into chat.
- API Key Required: Yes
- **Permissions:** Activity:Read
- **Portal:** create or rotate keys outside the chat: https://www.gate.com/myaccount/profile/api-key/manage
### Installation Check
- **Required:** `gate-cli` (run `sh ./setup.sh` from this skill directory if missing; optional `GATE_CLI_SETUP_MODE=release`).
- Add `$HOME/.openclaw/skills/bin` to **`PATH`** if you invoke `gate-cli` by name (or the directory where [`setup.sh`](./setup.sh) installs it).
- **Credentials:** When **`GATE_API_KEY`** and **`GATE_API_SECRET`** are both set (non-empty) for the host, **do not** require **`gate-cli config init`** — that is equivalent valid config for `gate-cli`. When **both** are unset or empty, **remind** the operator to run **`gate-cli config init`** **or** to configure **`GATE_API_KEY`** / **`GATE_API_SECRET`** in the **matching skill** from the skill library (never ask the user to paste secrets into chat).
- **Sanity check:** Do not proceed with authenticated calls until the CLI behaves as expected (e.g. **`gate-cli --version`** or a read-only **`gate-cli cex ...`** command from this skill); confirm credentials resolve before mutating operations.
## Execution mode
**Read and strictly follow** [`references/gate-cli.md`](./references/gate-cli.md), then execute this skill's activity-center workflow.
- `SKILL.md` keeps routing and recommendation logic.
- `references/gate-cli.md` is the authoritative `gate-cli` execution contract for entry/list/type queries, filter handling, and degraded output behavior.
## Routing Rules
| User Intent | Keywords/Pattern | Action |
|-------------|-----------------|--------|
| Hot Recommendation | "recommend activities" "what activities" "recent activities" | Scenario 1.1 Hot Recommendation |
| Type-Based Recommendation | "airdrop activities" "trading competition" "VIP activities" "earn activities" | Scenario 1.2 Type-Based |
| Scenario-Based Recommendation | "I have GT" "futures activities" "spot activities" | Scenario 1.3 Scenario-Based |
| Search by Name | "{activity name}" "position airdrop" | Scenario 1.4 Search by Name |
| My Activities | "what activities I joined" "my activities" "enrolled activities" | Scenario 2 My Activities |
| Welfare Center/Newcomer Tasks | "claim rewards" "check-in" "newcomer tasks" | ❌ NOT applicable to this skill |
---
## gate-cli command index
| MCP Tool | Purpose | action_type |
|----------|---------|-------------|
| `gate-cli cex activity types` | Get activity type list (id, name) for type filtering | query |
| `gate-cli cex activity list` | Query activities by hot/type/scenario/keywords | info-card |
| `gate-cli cex activity get-entry` | Get "My Activities" entry card | info-card |
### API Parameter Constraints
| Parameter | Constraint | Description |
|-----------|------------|-------------|
| `page_size` | **MUST be ≤ 3** | ⚠️ **HARD LIMIT**: Each request MUST NOT exceed 3 activities. Always set `page_size=3` or less. |
| `page` | Integer | Page number, default 1. |
| `recommend_type` | `hot` / `type` / `scenario` | Query mode: hot (popular), type (by type_ids), scenario (by keywords) |
| `type_ids` | String | Activity type IDs, comma-separated. Used with `recommend_type=type` |
| `keywords` | String | Search keywords for activity name. Used with `recommend_type=scenario` |
> ⚠️ **CRITICAL**: The `page_size` parameter is strictly limited to a maximum of 3. Any value greater than 3 is FORBIDDEN.
---
## Scenario 1: Activity Recommendation
### 1.1 Hot Recommendation (No Type Specified)
**Trigger**: "recommend activities" "what activities" "recent activities"
**API Call**:
```
`gate-cli cex activity list`?recommend_type=hot&sort_by=default&page=1&page_size=3
```
**Rules**:
- ✅ Do NOT ask for type clarification, call API directly
- ✅ Fixed `page_size=3` (maximum allowed), no pagination
---
### 1.2 Type-Based Recommendation
**Trigger**: "airdrop activities" "trading competition" "VIP activities" "earn activities"
**API Call Sequence**:
1. `gate-cli cex activity types` → Get type list, match user's type name (case-insensitive)
2. `cex_activity_list_activities?recommend_type=type&type_ids=matched_id1,matched_id2&sort_by=time&page_size=3`
**Keyword Extraction Examples**:
- "what airdrop activities are there" → Extract: airdrop
- "VIP activities" → Extract: VIP
- "I'm a VIP, any exclusive activities" → Extract: VIP
- "any low-risk activities" → Extract: earn
---
### 1.3 Scenario-Based Recommendation
**Trigger**: "I have GT, what activities can I join" "futures activities"
**API Call**:
- If mappable to type: Use `recommend_type=type` with `type_ids`
- If scenario/asset: Use `recommend_type=scenario` with `keywords`
```
`gate-cli cex activity list`?recommend_type=scenario&keywords=GT&page_size=3
```
---
### 1.4 Search by Name
**Trigger**: "help me find position airdrop" "where is VIP exclusive activity" "find test activity"
**API Call**:
```
`gate-cli cex activity list`?recommend_type=scenario&keywords=test_activity&page=1&page_size=3
```
**Parameter Notes**:
- Use `recommend_type=scenario` with `keywords` for name search
- `keywords` is the activity name or partial name to search
- ⚠️ **Language Conversion**: If user input contains non-English text, translate keywords to English before passing to the `keywords` parameter
**Response Template** (when results found):
> Based on your keywords, I found some possible activities. If you didn't find the activity you're looking for, you can provide a more complete activity name, or click more activities to explore more hot activities.
---
## Scenario 2: My Activities
**Trigger**: "what activities I joined" "my activities" "enrolled activities"
**API Call**:
```
`gate-cli cex acRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".