Agent Skillsaaronjmars/aeon › Narrative Tracker

Narrative Tracker

GitHub

追踪加密与科技领域叙事热度,结合定量心智份额、速度信号及多源数据,生成包含评分、情绪标签及明确持仓建议的决策级叙事地图。

skills/narrative-tracker/SKILL.md aaronjmars/aeon

Trigger Scenarios

需要分析当前加密货币或科技领域的热门叙事趋势 寻求基于量化数据的投资建议或市场情绪评估

Install

npx skills add aaronjmars/aeon --skill Narrative Tracker -g -y
More Options

Use without installing

npx skills use aaronjmars/aeon@Narrative Tracker

指定 Agent (Claude Code)

npx skills add aaronjmars/aeon --skill Narrative Tracker -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
{
    "mode": "read-only",
    "name": "Narrative Tracker",
    "tags": [
        "crypto",
        "research"
    ],
    "type": "Skill",
    "commits": true,
    "category": "crypto",
    "requires": [
        "XAI_API_KEY"
    ],
    "schedule": "0 14 * * *",
    "description": "Track rising, peaking, and fading crypto\/tech narratives with quantitative mindshare + velocity signals and explicit positioning calls",
    "permissions": [
        "contents:write"
    ]
}

Read memory/MEMORY.md for context on prior narrative observations. Read the last 3 days of memory/logs/ — specifically any prior ### narrative-tracker entries — to (a) avoid re-reporting the same narratives without new info, and (b) detect phase transitions vs the last run.

Goal

Produce a decision-grade narrative map: every narrative gets a mindshare score, a velocity arrow, a sentiment tag, named drivers, and an explicit position call. Classification without a position call is noise.

Steps

1. Ingest signals

a. XAI pre-fetched cache (primary source). The workflow pre-fetches Grok x_search results to .xai-cache/narratives.json. Read it. If the file exists and contains usable results, use that as the primary signal.

b. If cache is missing or empty, log a NARRATIVE_CACHE_MISS line to memory/logs/${today}.md (so skill-health can spot the pattern — never silently fall through), then attempt the direct API call:

FROM_DATE=$(date -u -d "3 days ago" +%Y-%m-%d 2>/dev/null || date -u -v-3d +%Y-%m-%d)
TO_DATE=$(date -u +%Y-%m-%d)
curl -s --max-time 60 -X POST "https://api.x.ai/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
    "model": "grok-4-1-fast",
    "input": [{"role": "user", "content": "Search X for the dominant crypto and tech narratives from '"$FROM_DATE"' to '"$TO_DATE"'. Return 12-15 distinct narrative threads. For each: 1) short label, 2) 3-5 representative @handles driving it, 3) 2-3 tweet permalinks, 4) rough mention-volume descriptor (niche / growing / saturating / cooling), 5) the strongest one-line bear case against it."}],
    "tools": [{"type": "x_search", "from_date": "'"$FROM_DATE"'", "to_date": "'"$TO_DATE"'"}]
  }'

c. WebSearch supplements (always run, even if XAI worked). Run 3 focused queries to triangulate:

  • crypto narrative ${TO_DATE} — broad crypto sentiment
  • AI agent crypto trend this week — AI/crypto intersection
  • DefiLlama narrative tracker OR Kaito mindshare leaderboard — quantitative reference points Pull 1-2 concrete signals (project name, metric, link) from each query. Do not paraphrase — extract facts.

d. Memory diff. Extract narrative labels mentioned in the last 3 days of ### narrative-tracker log entries. You'll compare against them in step 4.

2. Score each narrative

For each distinct narrative (merge near-duplicates aggressively — "AI agents" and "agentic crypto" are the same), assign:

Field Scale How to decide
Mindshare 1-5 1 = fringe, 3 = known in the sector, 5 = dominating timelines. Base on count of distinct drivers + whether you had to dig or it surfaced unprompted.
Velocity ↑↑ / ↑ / → / ↓ / ↓↓ Compared to the 3-day window or prior log entries. ↑↑ = tripled in attention, ↓↓ = was loud 3 days ago, now absent.
Phase Emerging / Rising / Peak / Fading Use the velocity + mindshare combo. Emerging = low mindshare, high velocity. Peak = high mindshare, flat/down velocity. Fading = high mindshare last week, now ↓.
Sentiment Bull / Mixed / Bear / Cope Cope = bag-holder energy, bear narratives dressed as bull takes.
Drivers 2-3 named Accounts, projects, or funds amplifying it. Include @handles.
Bear case 1 line The sharpest argument against. If the consensus is obviously right, say so and mark "no contrarian edge".
Position FRONT-RUN / RIDE / FADE / WATCH / IGNORE FRONT-RUN = emerging + contrarian edge. RIDE = rising, not yet peaked. FADE = peak with weak fundamentals or reflexivity flip. WATCH = unclear. IGNORE = mindshare 1-2 with no catalyst.

Drop any narrative that ends up IGNORE unless it's structurally important — noise reduction is the goal.

3. Detect transitions

Compare today's narratives to the last 3 days of logs:

  • NEW — narrative wasn't in prior logs at all
  • PROMOTED — phase moved up (e.g. Emerging → Rising)
  • DEMOTED — phase moved down
  • DEAD — was in prior logs, now absent from all signals

Transitions are the highest-value output — the point of a daily tracker is to catch inflection points, not re-report the zeitgeist.

4. Flag reflexivity

For each narrative, flag if the story itself is moving outcomes:

  • Token prices moving on narrative alone (no fundamentals shift)
  • Projects rebranding/pivoting to ride the narrative
  • VCs publicly endorsing to manufacture legitimacy
  • Prediction markets or on-chain flows reflecting narrative belief

Only flag explicit cases with a concrete example. "Reflexivity" without evidence is hand-waving.

5. Format the notification

Keep under 4000 chars. Lead with transitions and reflexivity — those are the decisions. Classification goes below.

*Narrative Tracker — ${today}*

TRANSITIONS
• NEW: <label> — <why it matters> — <link>
• PROMOTED: <label> Rising → Peak — <what flipped>
• DEMOTED: <label> Peak → Fading — <what cooled>
• DEAD: <label> — gone

REFLEXIVITY ALERT
• <narrative> — <concrete evidence the story is moving outcomes>

POSITIONS
• FRONT-RUN: <label> (mindshare 2 ↑↑, Bull) — <driver> — <bear case> — <link>
• RIDE: <label> (3 ↑, Bull) — <driver> — <bear case>
• FADE: <label> (5 → Cope) — <driver> — <reflexivity note>

MAP
Emerging: <labels>
Rising: <labels>
Peak: <labels>
Fading: <labels>

If absolutely nothing new or notable (no transitions, no reflexivity, no FRONT-RUN/FADE calls): send a one-line update instead of the full template — *Narrative Tracker — ${today}*: no phase transitions, map unchanged from <last_date>.

6. Send via ./notify

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

Append a ### narrative-tracker section with the full structured output (not just the notification — include all narratives considered, even IGNOREd ones, so future diffs work). If a full run produced nothing actionable, log NARRATIVE_TRACKER_OK with the narrative labels seen (so tomorrow's diff still has a baseline).

Guidelines

  • Quantitative over vibes. Every narrative gets mindshare 1-5 and a velocity arrow — no exceptions. If you can't score it, drop it.
  • Transitions > classification. A daily tracker's value is catching moves, not listing the weather.
  • Named drivers only. "Crypto Twitter is excited about X" is not a driver. "@handle + @handle + @fund" is.
  • Position calls are mandatory for Emerging/Rising/Peak narratives. If signals are genuinely ambiguous or contradictory, WATCH is an acceptable call — but never omit a position entirely and never invent conviction you don't have.
  • Ruthless dedup. Same narrative under two labels = one narrative. Merge, don't split.
  • Call out cope. Manufactured narratives, coordinated shilling, and dead-cat bounces get tagged explicitly.
  • Prioritize topics tracked in MEMORY.md over generic market chatter.

Sandbox note

The sandbox blocks outbound curl in many cases. Always read .xai-cache/narratives.json first (pre-fetched by the workflow with full network access). If the cache is missing, try direct curl — if that fails, use WebFetch on individual URLs. WebSearch always works for supplementary triangulation.

Environment Variables Required

  • XAI_API_KEY — used by the pre-fetch step outside the sandbox; the skill reads the cached JSON. Optional — falls back to WebSearch.
  • Notification channels configured via repo secrets (see CLAUDE.md).

Version History

  • fb16753 Current 2026-07-05 12:07

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/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/token-pick/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
8144b0b6
Indexed
2026-07-05 12:07

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