gate-info-research
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
gate-runtime-rules.md
→ Also read
info-news-runtime-rules.md for
gate-info and
gate-news shared rules (tool degradation, report standards, security, routing).
- Only call MCP tools explicitly listed in this skill. Tools not documented here must NOT be called, even if they
exist in the MCP server.
CLI and playbook contract
- Legacy commands MUST exist under . When (see Step 0.5, ), prefer playbook / blocks (, , etc.); on failure or older CLI, fall back to legacy in the playbook YAML.
- Call / only as listed in playbooks/gate-info-research.yaml. This primary skill does not call Gate MCP tools when preflight is (MCP is for legacy wrapper skills only).
- Always pass on data-collection commands. Never mix JSON and pretty output in the same pipeline.
- If a required slot (e.g. for ) cannot be parsed with high confidence, ask the user to clarify. Never guess a ticker from a project name.
- Cross-domain allowed: MAY call when the playbook fires. It MUST NOT take over user queries whose primary intent is news / events / community; those route to .
- Final user-facing reports may use the user’s locale; this stays English for discovery and indexing (see repository rule 1).
Step 0 — Preflight
Follow the shared contract in
skills/_shared/preflight.md verbatim. Summary:
- Run
gate-cli preflight --format json
; parse , , .
- Branch: → continue; → emit and halt; → echo and halt.
- When
status == "ready_with_migration_warning"
, remember it — Step 3 appends one migrate hint at the end of the report.
- Step 0.5 — Version gate: From the same , set and per skills/_shared/cli-version-routing.md ( when ).
Do NOT run the first data-collection command until Step 0 returns
.
<!--
Step 0.5 — Skill update check (OPT-IN, disabled by default).
The script [scripts/update-skill.sh](https://github.com/gate/gate-skills/blob/master/scripts/update-skill.sh) is shipped and functional, but agents
do NOT run it as part of the normal flow (zero overhead, no token needed).
Skill authors can still invoke it manually when they want to sync SKILL.md
from upstream:
bash "$SKILL_ROOT/scripts/update-skill.sh" check gate-info-research
Result semantics, strict-check mode (`GATE_SKILL_CHECK_STRICT=1`) and the
auto-apply path (`GATE_SKILL_UPDATE_MODE=auto`) are documented in
[skills/_shared/update-workflow.md](https://github.com/gate/gate-skills/blob/master/skills/_shared/update-workflow.md). To re-enable
this step inside the agent flow, delete this HTML comment wrapper so the
block becomes part of the rendered SKILL.md again.
-->
Step 1 — Intent routing
Map the user's query to exactly one playbook id. Read the playbook definitions from
playbooks/gate-info-research.yaml. The mapping below is authoritative.
| Playbook id | When to pick | Required slots | Legacy skill it covers |
|---|
| "analyze SOL", "how is BTC", "is ETH worth watching", no explicit extra dimension. | | |
| "market right now", "how is the broad market", "which sectors are hot", no specific coin. | — | |
| "compare BTC and ETH", "BTC vs SOL vs ARB", 2–20 tickers. | | |
| "give me a technical analysis of BTC", "SOL RSI / MACD", "BTC price direction / TA view". | | |
| "impact of NFP on BTC", "CPI impact on markets", "Fed rate decision and crypto". | — | |
| "analyze SOL and also check recent news and sentiment", "analysis plus sentiment / news". | | multi-legacy fan-out |
Slot extraction rules
- is the ticker (, , ). If the user gives a project name ("Solana", "Arbitrum"), confirm or ask.
- is a list; strip duplicates; keep display casing consistent.
- is the user's broad news-context window. PER-COMMAND ENUM narrowing — the super-set is , but individual commands accept narrower sets. Before forwarding a user-supplied to any command, clamp it against that command's in the playbook (CLAUDE.md rule 9): accepts , accepts
1h / 24h / 7d / 30d / all
, and accept ONLY (CLI rejects with ). For longer windows on , switch to / (unix-ms).
- (the analysis window consumed by
markettrend get-technical-analysis --period
and ). Server enum: 1h / 4h / 24h / 3d / 5d / 7d / 10d / all
. Default . Legacy aliases → use ; → use . Do NOT pass or — CLI returns INTEL_RESULT_ERROR: invalid period
.
- has two variants:
- enum:
1m / 5m / 15m / 1h / 4h / 1d
(required, no default).
get-market-snapshot --timeframe
and get-indicator-history --timeframe
enum: (get-market-snapshot default ; get-indicator-history required). / are NOT valid on these two.
- (for ) defaults to — lowercase only. Uppercase (, ) passes CLI validation but the server returns empty rows silently. Unsupported windows (, ) also return empty rows — use the server-populated set: , , , , , , , , , , , , . See skills/gate-info-research/references/cli-reference.md (section ) for the full field list.
- If a required slot is missing, STOP and ask the user.
Cross-skill routing at Step 1
| User signal | Route to |
|---|
| "is this coin / contract / address safe", "honeypot / blacklist / has risk" (safety-first). | (primary; ship round 1). |
| "who is this address", "smart money", "whale", "DeFi TVL", "protocol metrics", "exchange reserves". | (primary) |
| "why did BTC crash", "latest news", "community view", "Reddit", "YouTube". | (primary) |
Step 2 — Data collection
Execute the chosen playbook. Each command MUST include
. Commands in the same
run concurrently; the agent waits for the group before entering the next group or synthesis.
Shortcut routing (gate-cli >= 0.7.6)
When
and the playbook defines
(or
for
):
- Resolve the full shortcut list per cli-version-routing.md: ancestors first (info before news), then child blocks in fixed key order ( → → ). Verify each block’s (e.g. : ).
- Run each shortcut block in order; accumulate every block’s into a playbook-level union (includes parent when ids match, e.g. ).
- On shortcut failure for a block (non-zero exit and/or stderr ): if , queue legacy commands for that block’s replaced ids only. Do not expect stdout on info/news calls (unlike ).
- On payload / (top-level on stdout): mark affected report subsections; do not auto re-run legacy unless required data is empty.
- After all shortcuts succeed: run legacy entries (merged buckets: , , , …) whose ∉ , plus
post_shortcut_optional_ids
and per playbook.
See
cli-version-routing.md for multi-shortcut examples (
:
then
).
Shortcut field mapping:
cli-version-routing.md.
shortcut: no gainers/losers/popular boards — use
+
and state rankings unavailable on shortcut path (playbook
).
2.A
Shortcut (>= 0.7.6):
gate-cli info +coin-overview --symbol {symbol} --format json
replaces the three
rows below. Optional news addons unchanged.
| Command | Required args | Notes |
|---|
gate-cli info coin get-coin-info
| --query {symbol} --scope full
| Fundamentals, sector, tokenomics, investors. |
gate-cli info marketsnapshot get-market-snapshot
| --symbol {symbol} --scope full
| Price, 24h / 7d change, OI, funding, sentiment bundle. |
gate-cli info markettrend get-technical-analysis
| | Multi-timeframe bull / bear / neutral. |
gate-cli news feed search-news
(optional) | --coin {symbol} --limit 5 --sort-by importance --time-range 24h
| Top 5 news. |
gate-cli news feed get-social-sentiment
(optional) | --coin {symbol} --time-range 24h
| Social polarity + mention volume. |
2.B
Shortcut (>= 0.7.6):
gate-cli info +market-overview --format json
(optional
).
| Command | Required args |
|---|
gate-cli info marketsnapshot get-market-overview
| (no flags) |
gate-cli info coin get-coin-rankings
| --ranking-type popular --limit 20
|
gate-cli info coin get-coin-rankings
| --ranking-type top_gainers --time-range 24h --limit 10
|
gate-cli info coin get-coin-rankings
| --ranking-type top_losers --time-range 24h --limit 10
|
2.C
Shortcut (>= 0.7.6, 2–5 symbols only): derive
symbols_csv = join(uppercase(symbols), ",")
then
gate-cli info +coin-compare --symbols {symbols_csv} --format json
. Map payload
(not
) per
cli-version-routing.md.
Run once (legacy or >5 symbols):
gate-cli info marketsnapshot batch-market-snapshot --symbols {s1} --symbols {s2} … --scope full
(the flag is a repeatable stringArray).
Then run per symbol in parallel:
gate-cli info coin get-coin-info --query {symbol} --scope basic
gate-cli info markettrend get-technical-analysis --symbol {symbol}
(optional)
2.D
Shortcut (>= 0.7.6):
gate-cli info +trend-analysis --symbol {symbol} --format json
(lightweight TA; legacy path below for deep kline/indicator history).
gate-cli info markettrend get-technical-analysis --symbol {symbol} --period {period|3d}
gate-cli info markettrend get-kline --symbol {symbol} --timeframe {timeframe|1d} --size 120 --with-indicators true
gate-cli info markettrend get-indicator-history --symbol {symbol} --timeframe {timeframe|1d} --indicators rsi --indicators macd --indicators ma30 --indicators ma200 --limit 120
2.E
gate-cli info macro get-macro-summary
gate-cli info macro get-economic-calendar --start-date {today} --end-date {today+14d} --importance high
gate-cli info macro get-macro-indicator --indicator {indicator|CPI} --country {country|US} --mode series --size 12
(optional)
- If the user names a coin, also:
gate-cli info marketsnapshot get-market-snapshot --symbol {symbol} --scope basic
.
2.F
- Inherited shortcut:
gate-cli info +coin-overview --symbol {symbol} --format json
.
- Child shortcut:
gate-cli news +brief --coin {symbol} --time-range {time_range|24h} --format json
.
- Build = union of both blocks’ (includes parent ids , ).
- Run only legacy commands with ∉ — typically optional from . Do not re-run the three replaced news commands or parent .
Legacy only (
shortcuts_enabled == false
OR per-block
for failed shortcuts):
-
Info:
legacy trio (
,
,
).
-
News: use
below (do
not also run
— duplicate ids):
-
gate-cli news feed search-news --coin {symbol} --limit 10 --sort-by importance --time-range {time_range|24h}
-
gate-cli news feed get-social-sentiment --coin {symbol} --time-range {time_range|24h}
— clamp
to
before sending
-
gate-cli news feed search-ugc --coin {symbol} --time-range {time_range|7d} --platform all --limit 20
(optional)
-
gate-cli news events get-latest-events --coin {symbol} --time-range {time_range|7d} --limit 15
(optional) — clamp
to
before sending
Failure policy
- If a required command fails or returns an error payload, abort the playbook and surface the user-actionable CLI error.
- If an optional command fails, continue and mark the corresponding section as no data in Step 3.
- Never fabricate numbers; never fill a missing dimension with inferred values.
Step 3 — Synthesis
Aggregate the JSON payloads into the fixed 6-section report. Section order is mandatory and matches the product requirements spec.
Report template
markdown
## {subject} — Research report
### 1. Executive summary
- Core view (neutral framing: **stronger / softer / needs monitoring**; not investment advice)
- Up to 3 supporting data points
- Up to 2 main risk observations
### 2. Fundamentals and market position
{Positioning, sector, valuation (MC / FDV), funding / investors, unlocks. Sources: `info coin get-coin-info`.}
### 3. Market and trend
**Snapshot**
|------|------|------|
| Price | ... | ... |
| 24h / 7d change | ... | ... |
| Funding | ... | ... |
| Sentiment / fear-greed | ... | ... |
**Technicals**
- Short term (1h / 4h): {bull / bear / neutral}
- Medium term (1d / 1w): {bull / bear / neutral}
- Key support / resistance: ...
Sources: shortcut aggregates (`agg_coin_overview`, `agg_market_overview`, etc.) or legacy commands (`get-market-snapshot`, `get-technical-analysis`, `get-kline`, `get-indicator-history`, `get-market-overview`, `get-coin-rankings`, `batch-market-snapshot`, `get-macro-summary`, `get-economic-calendar`, `get-macro-indicator`) as applicable. Map shortcut JSON fields per [cli-version-routing.md](../_shared/cli-version-routing.md).
### 4. Recent news and market tone
- **Factual events** (from `news feed search-news` / `news events get-latest-events`): ...
- **Community tone** (from `news feed get-social-sentiment` / `news feed search-ugc`): ...
Keep facts and community tone in separate subsections. If no news commands ran, mark **no data** for this section.
### 5. Risk notes
- Data-backed risk bullets (e.g. elevated RSI, near-term unlock, extreme funding, related incidents)
- Cite the originating command for each item
### 6. What to watch next
- Macro / unlock / protocol events in the next 7–14 days
- Technical triggers (e.g. “if price loses X, bias turns weaker”)
> This report is based on public data and tool output; it is not investment advice.
Decision thresholds (applied inside section 3 and 5)
| Condition | Flag in report |
|---|
| RSI > 70 (latest row of ) | "RSI overbought — elevated short-term pullback risk" |
| RSI < 30 | "RSI oversold — potential bounce" |
| 24h volume > 2× 7d avg volume | "Significant volume surge" |
| 24h volume < 0.5× 7d avg volume | "Notable volume decline" |
| > 0.05% (from ) | "High funding rate — long crowding" |
| < -0.05% | "Negative funding rate — short crowding" |
| Fear & Greed > 75 | "Extreme Greed — exercise caution" |
| Fear & Greed < 25 | "Extreme Fear — potential opportunity" |
| Upcoming token unlock within 30 days > 5% of circulating supply (from ) | "Large upcoming token unlock — potential sell pressure" |
Migrate hint (only if Step 0 status was ready_with_migration_warning
)
At the very end of the final user-facing report, append
verbatim the single migration blockquote line defined under
Migration hint in
skills/_shared/report-style.md (the line that begins with
and references
gate-cli migrate --dry-run
). Do not paraphrase.
Cross-skill routing + Safety rules
Routing
Follow the shared matrix in
skills/_shared/routing.md. Research-skill-specific follow-ups:
| Follow-up intent | Target |
|---|
| "is it safe", "honeypot", "blacklist", "compliance" | (primary) |
| "trace this address", "smart money", "whale" | (primary) |
| "why did it crash", "community take" | (primary) |
| "only need the technical read" | Re-enter playbook |
| "only need the latest news feed" | Re-enter with |
Safety rules
Follow the shared contract in
skills/_shared/report-style.md. Research-specific reminders:
- No buy / sell advice — strongest allowed phrasing is stronger / softer / needs monitoring (neutral).
- No specific price targets.
- Every section cites at least one command id from Step 2 (sources are named in the playbook's
report_sections[*].source_commands
).
- Missing data → mark no data; never fabricate.
References