gate-news-intel
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.
- 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
- Primary boundary: news, events, announcements, and social/UGC intelligence. Optional calls appear only in playbooks that explicitly add market or coin background (, ).
- Legacy commands MUST exist under . When (), prefer playbook / blocks; fall back to legacy on failure or older CLI. When preflight is , do not use Gate MCP from this skill.
- Always pass on data-collection commands.
- Separate fact from opinion: label facts (dated events, official announcements, news wires) vs community / UGC / X / social (always cite source type: UGC, X, Reddit, YouTube, sentiment index).
- Synthesis order (PRD 5.6.7):
- “Why did it drop / crash?” → causal event chain first (Section 2), then optionally market/coin background (Section 4).
- “How does the community see ...?” → Section 3 (community / UGC / X / sentiment) before broad market overview (Section 4).
- Final user-facing reports may use the user’s locale; this stays English for discovery (repository rule 1).
Step 0 — Preflight
-
Run
gate-cli preflight --format json
; parse
,
,
.
-
Branch:
→ continue;
→ emit
and halt (legacy MCP fallback is outside this repo’s primary skills);
→ 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
PREFLIGHT_JSON.cli_version
, set
per
skills/_shared/cli-version-routing.md. Store
for Step 1 (
needs
for
).
Do NOT run
/
data collection until
.
Step 1 — Intent routing
Map the user query to
exactly one playbook id from
playbooks/gate-news-intel.yaml.
| Playbook id | When to pick | Required slots |
|---|
| Headlines / “what happened recently” with a named asset | |
| Pure event timeline / detail lookup without price-move attribution | |
| “Why did X move / crash / pump / dump”, price-move attribution, market move reason | , |
| Listings, delistings, maintenance, announcements | — |
| “Community take”, Reddit, YouTube, X, social / sentiment (social-first) | |
| User wants news + market or coin background | |
| Broad “what is happening in crypto” without a ticker | — |
Version-dependent routing
requires
v0.7.2+ (the earliest version that ships
). The playbook's
field documents this. All other playbooks remain compatible with v0.5.2.
If routed to but < 0.7.2: fall back to
and include this notice in the report footer:
explain-market-move requires gate-cli v0.7.2+. Falling back to event_explain with manual news/event stitching. Upgrade gate-cli for server-side Tavily-powered attribution with AI summary.
Slot extraction
- : ticker (, , ...). Ask if missing when the playbook requires it.
- : user's original natural-language question, e.g. "Why did BTC surge?". Required for ; extracted verbatim from the user's input.
- : default / / for legacy leaves; news shortcuts (, , ) accept only / / — clamp against playbook shortcut before calling (see
_shared/cli-version-routing.md
). : / / / / (default ).
- : only when the user references a concrete event for .
- : for web search.
Coin fallback rules (market_move_explain)
When the user triggers
but no coin is explicitly named:
- Explicit coin in query: extract and use it (e.g. "ETH why crash" -> ETH).
- Context coin: if the conversation has a unique coin, use it.
- Broad-market, no coin: default to and append a notice: "No coin specified; defaulting to BTC as the broad-market representative asset."
- Vague reference ("this coin", "that altcoin"): ask the user which specific coin.
- Event impact, no coin: ask the user which coin to analyze.
- Traditional finance (e.g. "US stocks", "China A-shares", "S&P 500"): pass through as the value.
- Non-crypto, ambiguous: ask the user or route to the appropriate domain skill.
When coin defaults to BTC, the notice MUST be visible in the final report (Section 1 of the market move template).
Cross-skill routing at Step 1
| User signal | Route to |
|---|
| “Is it safe / honeypot / blacklist” | (primary) |
| “Trace this address / on-chain / TVL / reserves” | (primary) |
| “Analyze this coin / fundamentals / technicals / macro” (research-first) | (primary) |
Step 2 — Data collection
Execute the chosen playbook. Same
→ concurrent; wait between groups.
Shortcut routing (gate-cli >= 0.7.6)
When
, run playbook
blocks per
skills/_shared/cli-version-routing.md:
| Playbook | Shortcut |
|---|
| |
| with when ; else . Legacy still runs (not replaced). Map → X, not sentiment index. |
| replaces legacy only; always runs |
| |
| then ( → ; see playbook ) |
has
no shortcut in v0.7.6 — keep the
gate-cli news events explain-market-move
multi-step path.
: base invocation uses
+
only; if the user supplied
, add
when the CLI supports it (
get-exchange-announcements --help
).
: when
and
is set, pass
via shortcut
— do
not also run legacy
. When shortcuts are disabled and
is known, run legacy
only. For price-move attribution, route to
.
: Execute in
two groups (use the
full CLI paths below —
lives under
, NOT
):
- Group A (parallel, core data):
gate-cli news events explain-market-move
(Tavily-based news/event evidence with AI summary) + gate-cli info marketsnapshot get-market-snapshot
(current price, change%, volume) + gate-cli info marketdetail get-orderbook
(bid/ask wall, depth imbalance).
- Group B (after Group A completes, parallel):
gate-cli info markettrend get-technical-analysis
(TA signals across timeframes) + gate-cli info coin get-coin-info
(fundamentals) + community commands (gate-cli news feed search-x
+ gate-cli news feed get-social-sentiment
) only when . For BTC, skip community — Tavily already captures macro/geopolitical signals.
After data collection, the agent MUST perform its own final attribution synthesis using ALL collected data. Do not treat any single tool output as the authoritative conclusion. Prioritize events with higher
as primary drivers, cross-referencing with price/volume data from the snapshot and orderbook.
Info failures: In
and
, info/community commands are
optional — if they fail, mark that section as unavailable and still deliver the report.
Step 3 — Synthesis
Choose the report template based on the playbook:
- : use the 6-section Market move analysis template below.
- All other playbooks: use the 5-section Intel briefing template below.
Intel briefing template (all playbooks except market_move_explain)
Produce five sections, in this order:
markdown
## Intel briefing -- {subject}
### 1. Event / news takeaway
- 3-5 bullets; separate **verified facts** from **unconfirmed** items
### 2. Key facts and timeline
- Time-ordered, verifiable items from `search-news` / `get-latest-events` / `get-event-detail` where used
### 3. Community / UGC / X / Reddit / YouTube
- **Must** cover, when the playbook includes them: UGC (`search-ugc`), X (`search-x`), and sentiment where applicable (`get-social-sentiment`)
- Label every bullet with **source type** (e.g. UGC / X / sentiment index) -- do not state opinion as on-chain fact
### 4. Market or coin background (if any)
- Only when the playbook includes `info` or `get-market-overview` in `market_wide_intel`; if not used, state **no extra market context**
### 5. Conclusion and what to watch
- Not investment advice; list follow-up items
> This report is based on public data and tool output; it is not investment advice.
Market move analysis template (market_move_explain only)
Produce six sections, in this order:
markdown
## Market move analysis -- {coin} ({time_range})
[If coin was defaulted to BTC, append: "No coin specified; defaulting to BTC as the broad-market representative asset."]
### 1. Summary
[One concise attribution sentence. Synthesize: explain-market-move outer summary,
supporting_events summaries, market snapshot change%, and TA signals.
Prefer events with higher relevance_score as primary drivers.
Do NOT copy-paste the entire Tavily summary verbatim -- distill the key narrative.]
### 2. Primary drivers
[2-4 latest_news items from explain-market-move. For each: title, how it likely drove
the move (from its summary field), source URL, relevance_score.
Sort by relevance_score descending. If relevance_score < 0.5, note it as weak signal.
The outer summary in explain-market-move is a concatenation of these items'
Tavily AI answers; cross-reference with individual item summaries for accuracy.]
### 3. Supporting context
[1-2 supporting_events from the internal event pool, with first_seen_time.
Pay special attention to supporting_events[].summary -- these come from the internal
event pool and are NOT included in the outer summary, making them independent evidence.
Market snapshot: current price, change%, volume.
Order book: notable bid/ask walls or depth imbalances that explain the move magnitude.]
### 4. Technical signals
[Key TA indicators from get-technical-analysis. Trend direction, support/resistance
levels, RSI/MACD crossovers if available. Coin fundamentals from get-coin-info
(market cap rank, supply, sector).]
### 5. Community perspective
[Non-BTC only. X highlights from search-x, sentiment score from get-social-sentiment.
Label each item with source type (X / sentiment index).
If BTC, state: "Community data omitted for BTC; macro/geopolitical signals are
captured in Sections 2 and 3."]
### 6. What to watch
[Follow-up catalysts, key price levels, upcoming events that could confirm or
reverse the current move.]
[If data_status.is_partial: append "Partial data notice: {note if available}.
Missing sources: {missing_sources if listed}."]
> This report is based on public data and tool output; it is not investment advice.
Synthesis rules for market_move_explain
- The agent MUST perform its own final attribution -- do not treat any single tool output as authoritative.
- Cross-reference: the outer in explain-market-move is a concatenation of Tavily AI answers.
supporting_events[].summary
fields are independent evidence from the internal event pool. Both should inform the agent's attribution.
- items carry (0-1). Prefer items above 0.5 as primary drivers; note weaker items as background context.
- Validate news-driven narratives against market snapshot price/volume data -- a large move without matching event evidence should be acknowledged as unexplained.
Migrate hint
If Step 0 had
ready_with_migration_warning
, append
verbatim the migration blockquote line from
skills/_shared/report-style.md (line starting with
).
Cross-skill routing + Safety rules
Routing
Follow
skills/_shared/routing.md. Do not absorb
research / web3 / risk primary intents into this skill. News-intel-specific follow-ups (after the briefing is delivered and the user asks a follow-up):
| Follow-up intent | Target |
|---|
| "deeper research on this coin" / "is it worth attention" / "fundamentals / technicals / macro" | |
| "address from the event" / "what is on-chain" / "protocol TVL / reserves / smart money" | |
| "is this token safe" / "honeypot" / "blacklist" / "compliance" | |
| User changes or time window and wants the same class of intel | Re-enter the same playbook with the new slots |
Safety rules
- No buy/sell advice; no price targets.
- Community and UGC are first-class in Section 3 (not footnotes) when or relevant commands in other playbooks fire.
- Never fabricate events or quotes — if empty, mark no data.
References