Agent Skillsaaronjmars/aeon › Token Pick

Token Pick

GitHub

每日推荐一个代币和一个预测市场选项,基于量化信号评分和信心等级。若信号弱则跳过,避免重复推荐,强制要求有新催化剂方可复用标的。

skills/token-pick/SKILL.md aaronjmars/aeon

Trigger Scenarios

需要每日加密资产投资建议 寻找有数据支持的预测市场下注机会 自动化扫描趋势代币与市场动态

Install

npx skills add aaronjmars/aeon --skill Token Pick -g -y
More Options

Use without installing

npx skills use aaronjmars/aeon@Token Pick

指定 Agent (Claude Code)

npx skills add aaronjmars/aeon --skill Token Pick -a claude-code -g -y

安装 repo 全部 skill

npx skills add aaronjmars/aeon --all -g -y

预览 repo 内 skill

npx skills add aaronjmars/aeon --list

SKILL.md

Frontmatter
{
    "var": "",
    "mode": "read-only",
    "name": "Token Pick",
    "tags": [
        "crypto"
    ],
    "type": "Skill",
    "category": "crypto",
    "requires": [
        "COINGECKO_API_KEY?"
    ],
    "description": "One token recommendation and one prediction market pick — scored, quantified, with a skip branch when signals are weak",
    "capabilities": [
        "external_api",
        "sends_notifications"
    ]
}

${var} — Focus area or thesis (e.g. "AI tokens", "election markets", "contrarian bets"). If empty, scans broadly.

Read memory/MEMORY.md for context. Read the last 7 days of memory/logs/ and grep for prior Token Pick entries — extract the symbols and market questions already picked. Hard dedup gate: do not re-pick the same token or the same prediction market unless there is a materially new catalyst that you can name in one sentence.

Goal

Produce ONE token call and ONE prediction-market call per day, each with a numeric signal/edge score and a conviction tier. If neither qualifies for at least MEDIUM conviction, send a short "no picks today" message rather than forcing a weak pick.

Steps

1. Fetch token data

# Trending coins
curl -s "https://api.coingecko.com/api/v3/search/trending" \
  ${COINGECKO_API_KEY:+-H "x-cg-pro-api-key: $COINGECKO_API_KEY"}

# Top 250 by market cap with 24h and 7d changes
curl -s "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=250&page=1&sparkline=false&price_change_percentage=24h,7d" \
  ${COINGECKO_API_KEY:+-H "x-cg-pro-api-key: $COINGECKO_API_KEY"}

# BTC + ETH 24h/7d for relative-strength benchmark (extract from the markets call above; no extra request needed)

# DEX-side cross-confirmation (no auth, optional but preferred)
curl -s "https://api.dexscreener.com/latest/dex/search?q=trending"

If any curl returns empty or errors, retry once with WebFetch for the same URL. Track per-source status (cg=ok|fail, dex=ok|fail) — surfaced in the output footer.

2. Fetch prediction markets

# Top events by 24h volume (events group multi-outcome questions)
curl -s "https://gamma-api.polymarket.com/events?active=true&closed=false&order=volume_24hr&ascending=false&limit=30"

# Newer markets gaining traction
curl -s "https://gamma-api.polymarket.com/markets?closed=false&order=startDate&ascending=false&limit=20"

WebFetch fallback on failure. Track poly=ok|fail.

3. Score every candidate token (0–10 scale)

For each token in the top 250 (and the trending list), compute a signal score:

Signal Points
24h price change > 0 +1
7d price change > 0 +1
Both 24h and 7d > +5% +2 (in addition to above)
Appears on CoinGecko trending list +2
Volume/MarketCap ratio ≥ 0.10 +2
Volume/MarketCap ratio ≥ 0.20 (replaces above) +3
Outperforming BOTH BTC and ETH on the 7d +2
Confirmed on DexScreener trending/gainers (cross-source) +1
Matches ${var} thesis when set +1

Drop candidates with market cap < $20M (too pumpable) unless ${var} explicitly targets micro-caps. Drop any token already picked in the last 7 days (per dedup gate) unless you can name a fresh catalyst.

Pick the highest-scoring token. Use WebSearch to surface the most likely catalyst and at least one named risk (regulatory, unlock, narrative-faded, exchange listing, etc.).

4. Score prediction markets — edge calculation

For the top ~10 markets by 24h volume that pass the dedup gate (and ${var} filter when set), do this for each:

  1. Read the question and current YES price (price/outcomePrices).
  2. Use WebSearch to gather 1–3 recent data points relevant to the resolution.
  3. Estimate a fair YES probability as a single number (your best calibrated guess, not a range). State the 1–3 inputs you used.
  4. Compute edge = |fair − current_price| as percentage points.
  5. Liquidity gate: require 24h volume ≥ $50k AND market not resolving in < 24h (no last-minute mean-reversion roulette).

Pick the market with the largest edge that clears the gate. If you cannot defend a fair-value estimate within ±10% (insufficient public info), discard and try the next market.

5. Conviction tiers

Tier Token criterion Market criterion
HIGH signal score ≥ 7 edge ≥ 10pp
MEDIUM signal score 4–6 edge 5–10pp
SKIP signal score < 4 edge < 5pp

Skip-day branch: if BOTH the chosen token and the chosen market land in SKIP, do not synthesize a pick. Send the skip message (step 6b) and log accordingly. This is a feature — forcing low-conviction picks degrades the signal of the whole feed.

6a. Notification — normal day (under 4000 chars)

Send via ./notify:

*Daily Pick — ${today}*

*Token: SYMBOL*  [HIGH | MEDIUM]  signal X/10
Price: $X.XX (±X.X% 24h / ±X.X% 7d) | mcap $XB | vol $XM (vol/mcap X.XX)
Score breakdown: [trending+2, vol/mcap+3, RS vs BTC/ETH+2, narrative+1] = 8/10
Catalyst: [one sentence — what's driving this right now, named source/event]
Risk: [one sentence — concrete risk, not generic "could go down"]
Vs recent picks: [first time / repeat with new catalyst: ...]

*Market: "Question?"*  [HIGH | MEDIUM]  edge Xpp
Current: YES X¢ / NO Y¢ | 24h vol $Xm | resolves: DATE
Fair YES: ~Y% (inputs: [src1], [src2], [src3])
Thesis: [one sentence — why the market is wrong, action implied]
Risk: [one sentence — what could make your fair-value estimate wrong]

sources: cg=ok|fail, dex=ok|fail, poly=ok|fail
not financial advice — pattern-matching only

If only one of the two pick types qualifies, send just that one section (omit the other entirely — do not include a HIGH and a SKIP in the same message).

6b. Notification — skip day

*Daily Pick — ${today}* — no picks

Token signals weak today (best: SYMBOL @ score 3/10).
Markets either thin liquidity or no defensible edge ≥ 5pp (best: "Question?" edge 2pp).

Tomorrow.
sources: cg=ok|fail, dex=ok|fail, poly=ok|fail

If all sources failed, send TOKEN_PICK_NO_DATA with the source-status line — do not invent picks from cached intuition.

6c. Offer a deep-dive (force-reply — normal-day only)

Only after a normal-day send (6a) — never on the skip-day (6b) or the no-data path (weak signals → no pick, so no offer). This skill is read-only, so it can't run the deep report itself; instead it offers to hand off to token-movers (write mode), which owns the single-token deep report and the deep-dive: handler. Because force_reply and inline buttons can't share one message, send this as a SEPARATE ./notify AFTER the 6a pick:

./notify "Want a deeper report on a token? Reply with a ticker or contract." \
  --force-reply --placeholder "e.g. WIF" \
  --context "token-movers::deep-dive"

The token-movers::deep-dive marker routes the operator's reply to token-movers as var="deep-dive:<their text>"; token-movers strips the deep-dive: prefix and produces the single-token deep report.

Dedup. token-pick runs once daily, so one offer per run is already once-per-day. Being read-only, it can't write a FORCE_REPLY_OFFERED marker — but it already reads recent logs, so if today's log already carries a FORCE_REPLY_OFFERED: deep-dive line (e.g. token-movers offered earlier today), SKIP this offer to avoid double-nagging.

7. Log to memory/logs/${today}.md

## Token Pick
- **Token:** SYMBOL — $price (±X% 24h) — tier HIGH/MEDIUM/SKIP — score X/10
- **Token thesis:** [one line, including catalyst]
- **Market:** "Question?" — YES X¢ — tier HIGH/MEDIUM/SKIP — edge Xpp
- **Market thesis:** [one line, including fair-value estimate]
- **Sources:** cg=ok|fail, dex=ok|fail, poly=ok|fail
- **Notification sent:** yes (normal | skip | no-data)

Append symbol + market question on a single line for easy grep next-day dedup, e.g.:

TOKEN_PICK_DEDUP: SYMBOL | "Will X happen by Y?"

Sandbox note

The sandbox may block outbound curl. Use WebFetch as a fallback for any URL fetch (CoinGecko, DexScreener, Polymarket all work without auth). For auth-required APIs, use the pre-fetch/post-process pattern (see CLAUDE.md). On total source failure, send the no-data notification rather than silent fail.

Environment Variables

  • COINGECKO_API_KEY — CoinGecko API key (optional, increases rate limits)

Constraints

  • Never force a pick. If signals are weak, the skip message IS the output.
  • Never re-pick the same token or market within 7 days unless you can state a new catalyst in one sentence.
  • Show your work: every score must show the breakdown; every edge must show the inputs.
  • Liquidity gates (mcap ≥ $20M for tokens, 24h vol ≥ $50k for markets) are hard floors — ignoring them turns the feed into a degen casino.
  • One token + one market max. Never bundle "honorable mentions" — that defeats the discipline.

Version History

  • fb16753 Current 2026-07-05 12:08

Same Skill Collection

skills/action-converter/SKILL.md
skills/article/SKILL.md
skills/auto-merge/SKILL.md
skills/auto-workflow/SKILL.md
skills/autoresearch/SKILL.md
skills/bd-radar/SKILL.md
skills/changelog/SKILL.md
skills/code-health/SKILL.md
skills/cost-report/SKILL.md
skills/create-skill/SKILL.md
skills/ctrl/SKILL.md
skills/defi-overview/SKILL.md
skills/deploy-prototype/SKILL.md
skills/digest/SKILL.md
skills/distribute-tokens/SKILL.md
skills/ecosystem-pulse/SKILL.md
skills/fear-divergence/SKILL.md
skills/feature/SKILL.md
skills/fetch-tweets/SKILL.md
skills/fleet-control/SKILL.md
skills/fork-fleet/SKILL.md
skills/github-monitor/SKILL.md
skills/github-trending/SKILL.md
skills/heartbeat/SKILL.md
skills/idea-forge/SKILL.md
skills/idea-pipeline/SKILL.md
skills/inbox-triage/SKILL.md
skills/install-skill/SKILL.md
skills/investigation-report/SKILL.md
skills/issue-triage/SKILL.md
skills/last30/SKILL.md
skills/memory-flush/SKILL.md
skills/mention-radar/SKILL.md
skills/monitor-polymarket/SKILL.md
skills/narrative-convergence/SKILL.md
skills/narrative-tracker/SKILL.md
skills/okf-export/SKILL.md
skills/okf-ingest/SKILL.md
skills/onchain-monitor/SKILL.md
skills/operator-scorecard/SKILL.md
skills/picks-tracker/SKILL.md
skills/pm-manipulation/SKILL.md
skills/pm-pulse/SKILL.md
skills/pr-review/SKILL.md
skills/pr-triage/SKILL.md
skills/price-alert/SKILL.md
skills/reply-maker/SKILL.md
skills/repo-scanner/SKILL.md
skills/schedule-ads/SKILL.md
skills/search-skill/SKILL.md
skills/self-improve/SKILL.md
skills/send-email/SKILL.md
skills/skill-health/SKILL.md
skills/skill-repair/SKILL.md
skills/soul-builder/SKILL.md
skills/spawn-instance/SKILL.md
skills/strategy-builder/SKILL.md
skills/token-movers/SKILL.md
skills/treasury-info/SKILL.md
skills/tx-explain/SKILL.md
skills/unlock-monitor/SKILL.md
skills/verdikta-hunter/SKILL.md
skills/vuln-scanner/SKILL.md
skills/vuln-tracker/SKILL.md
skills/workflow-audit/SKILL.md
skills/write-tweet/SKILL.md
skills/x402-monitor/SKILL.md
skills/base-mcp/SKILL.md
skills/star-milestone/SKILL.md

Metadata

Files
0
Version
fb16753
Hash
ff4217da
Indexed
2026-07-05 12:08

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-09 00:38
浙ICP备14020137号-1 $Carte des visiteurs$