$npx -y skills add gate/gate-skills --skill gate-exchange-couponGate coupon and voucher query skill. Use when the user asks about coupon balance, rules, expiry, or source. Triggers on 'my coupons', 'coupon details', 'voucher rules', 'coupon expires'.
| 1 | ### Resolving `gate-cli` (binary path) |
| 2 | |
| 3 | 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). |
| 4 | |
| 5 | |
| 6 | # Gate Coupon Assistant |
| 7 | |
| 8 | Query and inspect coupon/voucher accounts on Gate Exchange. Supports six scenarios: list available coupons, search by coupon type, view expired/used history, view full coupon details, read usage rules, and trace coupon acquisition source. |
| 9 | |
| 10 | ## General Rules |
| 11 | |
| 12 | ⚠️ STOP — You MUST read and strictly follow the shared runtime rules before proceeding. |
| 13 | Do NOT select or call any tool until all rules are read. These rules have the highest priority. |
| 14 | → Read `./references/gate-runtime-rules.md` |
| 15 | - **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. |
| 16 | |
| 17 | ## Skill Dependencies |
| 18 | |
| 19 | |
| 20 | ### gate-cli commands used |
| 21 | |
| 22 | **Query Operations (Read-only)** |
| 23 | |
| 24 | - `gate-cli cex coupon detail` |
| 25 | - `gate-cli cex coupon list` |
| 26 | |
| 27 | ### Authentication |
| 28 | - **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)). |
| 29 | - **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. |
| 30 | - API Key Required: Yes |
| 31 | - **Permissions:** Coupon:Read |
| 32 | - **Portal:** create or rotate keys outside the chat: https://www.gate.com/myaccount/profile/api-key/manage |
| 33 | |
| 34 | ### Installation Check |
| 35 | - **Required:** `gate-cli` (run `sh ./setup.sh` from this skill directory if missing; optional `GATE_CLI_SETUP_MODE=release`). |
| 36 | - Add `$HOME/.openclaw/skills/bin` to **`PATH`** if you invoke `gate-cli` by name (or the directory where [`setup.sh`](./setup.sh) installs it). |
| 37 | - **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). |
| 38 | - **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. |
| 39 | |
| 40 | |
| 41 | ## Execution mode |
| 42 | |
| 43 | **Read and strictly follow** [`references/gate-cli.md`](./references/gate-cli.md), then execute this skill's coupon-query workflow. |
| 44 | |
| 45 | - `SKILL.md` keeps coupon semantics, mapping rules, and rendering policy. |
| 46 | - `references/gate-cli.md` is the authoritative `gate-cli` execution contract for list/de |