К основному содержанию
скилл CX Codex

narrative-convergence — скилл для Claude Code: обзор и установка

Скилл отслеживает пересечения тем между разными агентами за 48 часов. Находит общие сущности в отчётах и формирует идеи для публикаций.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add aeonfun/aeon --skill narrative-convergence -a claude-code
Открыть на GitHub

Что делает narrative-convergence

Скилл сканирует файлы из папки output/.chains/ и недавние логи memory/logs/. Он извлекает упомянутые компании, токены и проблемы, отсеивая технические утилиты вроде heartbeat или aeon-doctor. Задача алгоритма — поймать момент, когда несвязанные инструменты независимо вышли на одну тему.

Каждая сущность получает баллы: совпадения в трёх и более категориях приносят очки, а упоминания только из одного источника штрафуются. Если тему уже освещали в output/articles/ за последние 7 дней, скилл её отбрасывает. Без накопленных логов нескольких независимых цепочек запуск бесполезен, так как сравнивать будет нечего.

В финале агент готовит тезисы и резкий хук для статьи, ориентируясь на стиль в soul/STYLE.md. Итоговый список сигналов сохраняется в memory/topics/convergence-signals.md.

Какие задачи решает

  • найти повторяющиеся темы в отчётах независимых сканеров
  • отобрать инфоповоды для текстов на основе данных за 48 часов
  • исключить дублирование тем, недавно разобранных в статьях
  • сформулировать заходы и хуки для публикации в авторском стиле

Примеры запросов агенту

  • Запусти narrative-convergence для поиска свежих пересечений в отчётах
  • Проверь конвергенцию сигналов по теме "Anthropic"
  • Собери активные сигналы из логов за последние 48 часов

Как установить narrative-convergence

1Через Skills CLI (Vercel)

npx skills add aeonfun/aeon --skill narrative-convergence -a claude-code

2Вручную: положить файлы

~/.claude/skills/narrative-convergence/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/narrative-convergence/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о narrative-convergence

Как установить narrative-convergence в Claude Code?

Выполните в терминале команду npx skills add aeonfun/aeon --skill narrative-convergence -a claude-code.

Что делает скилл narrative-convergence?

Он ищет темы и сущности, которые независимо упомянули три и более категории навыков за 48 часов. Отобранные совпадения превращаются в готовые тезисы для статей.

Что требуется для работы narrative-convergence?

Скиллу нужны записи в memory/logs/ или файлы в output/.chains/, сгенерированные другими навыками. Категории источников настраиваются в memory/topics/signal-categories.md.

Исходный текст

SKILL.md · MIT
---
name: narrative-convergence
description: Cross-skill signal detector - finds entities or themes surfaced independently by 3+ different skill categories within 48h and surfaces them as high-confidence write opportunities
metadata:
  category: core
  var: ""
  tags:
    - content
    - meta
    - intelligence
---
> **${var}** — Optional entity or theme filter (e.g. "Anthropic", "coordination markets"). If empty, scans all skill output categories.

Today is ${today}. Read `memory/MEMORY.md` before starting.

## Voice

If `soul/SOUL.md` and `soul/STYLE.md` exist and are populated, read them and match the operator's voice when drafting the write angles and hook lines (step 5) and the notification. Otherwise use a clear, direct, neutral tone — short, declarative, position-first.

## Why this skill exists

`narrative-tracker` follows narratives inside one feed (crypto X) and tracks their phase. It works well when the narrative is already named.

This skill does something different: it detects **emergent cross-skill convergence** — when independent operational skills (security scanners, market trackers, sector pulses, etc.) all surface the same entity, company, protocol, or theme within 48h, without any prior coordination. That kind of convergence is a higher-signal indicator than any single source — it often precedes a breakout narrative. Example: a security skill flags a company's automated-vulnerability work, a social digest catches that same company announcing a major deal, and a market tracker notes a related fraud-prevention win — three independent skills, one entity, in 48h. That bleedthrough is the signal. This skill catches it automatically.

## Config

The signal-category map is **operator-editable** and lives in `memory/topics/signal-categories.md`. If the file doesn't exist, create the seed below and continue. The categories are what let the skill measure *cross-category* diversity (the core of the convergence score) — edit them to match the skills you actually run.

```markdown
# Signal Categories

## Housekeeping (excluded — no external signals)
heartbeat, memory-flush, aeon-doctor, aeon-update, auto-merge,
skill-health, skill-repair, self-improve, operator-scorecard,
shiplog, fleet-control, fork-fleet, narrative-convergence

## Signal categories (skill → category)
| Category | Skills |
|----------|--------|
| market | token-pick, token-movers, defi-overview, monitor-polymarket, pm-manipulation, unlock-monitor, picks-tracker |
| social | fetch-tweets, narrative-tracker, mention-radar, write-tweet, last30 |
| ecosystem | github-trending, github-monitor, bd-radar, competitor-monitor |
| onchain | onchain-monitor, investigation-report, tx-explain, base-mcp |
| security | vuln-scanner, vuln-tracker, sc-audit, inbox-triage |
| research | article, digest, you-web-search, glim-mcp, idea-pipeline, idea-forge |
| opportunity | hunter-22, feedback-builder, taskmarket-delegate |
```

## Steps

### 1. Identify which outputs to read

List `output/.chains/*.md` with the Glob tool. Exclude the **Housekeeping** skills from `signal-categories.md` — they carry no external signal.

Map each remaining output file to its category using the table in `signal-categories.md`. Any signal skill not listed in the table goes into an `other` category (so newly-added skills still count toward convergence, just without a named lane).

If `${var}` is set, note it as a filter hint but still read all outputs — apply filtering at the scoring step.

### 2. Read each signal skill's output

For each signal skill output file that exists:

1. Read the file (or first 600 chars if large — enough to get entities and theme).
2. Extract: **named entities** (companies, protocols, people, tokens, projects) and **key themes** (e.g. "DNS rebinding", "coordination markets", "compute commoditization").
3. Note the **skill name** and **category**.

Build an entity/theme map:
```
{
  "<Entity>": [{ skill: "vuln-scanner", category: "security" }, { skill: "fetch-tweets", category: "social" }],
  "<theme>": [{ skill: "monitor-polymarket", category: "market" }, ...],
  ...
}
```

Also read memory logs from the last 2 days (Glob `memory/logs/*.md`, take the 2 most recent). From each log, extract entities/themes mentioned in specific skill run entries and add them to the map with their source skill. Every skill appends a log entry, so the signal map can be reconstructed from logs alone when `output/.chains/` is sparse.

### 3. Score convergence signals

For each entity or theme, compute a **convergence score**:

| Criterion | Points |
|-----------|--------|
| Mentioned by 5+ independent skills | 10 |
| Mentioned by 4 skills | 7 |
| Mentioned by 3 skills | 5 |
| Mentioned by 2 skills | 2 |
| Spans 3+ distinct categories | +4 |
| Spans 2 distinct categories | +2 |
| All sources from 1 category | −3 |
| Matches a known operator interest (from `soul/SOUL.md`, if present) | +2 |
| Adjacent to operator interest | +1 |

**Minimum to include: 5 points.** Drop everything below.

If `${var}` is set, require the entity/theme to match `${var}` (substring, case-insensitive), or include it only if closely related.

Rank descending by score. Take top 5 (or fewer if <5 clear signals).

### 4. Check against recent article coverage

Glob `output/articles/*.md`, filter to the last 14 days. For each top signal:
- If an article covered this entity/theme in the last 7 days: suppress it (−10, effectively dropping it).
- If covered 8–14 days ago: note "recently covered" as a caveat.

Update the final ranking after suppression. (If no `output/articles/` dir exists, skip this step.)

### 5. Develop write opportunities

For each surviving top signal (minimum 2 signals to notify, else skip):
- State the **convergence story**: "3 independent skills surfaced X in 48h — [skill1] saw Y angle, [skill2] saw Z angle".
- Suggest a **specific write angle** that synthesizes the signals (operator voice if soul files present).
- Draft a **hook line**: short, declarative, position-first.

Example format:
```
<ENTITY> (score 11) — security + social + market
→ vuln-scanner: automated vuln-finding at scale; tweet-roundup: major platform deal; market-context: fraud-prevention win
→ angle: AI-finds-vulns is becoming industrial — not a research project, a service. who charges for it?
→ hook: "the vulnerability bounty economy just got automated"
```

### 6. Update memory

Write `memory/topics/convergence-signals.md` (overwrite if exists):

```markdown
# Convergence Signals — Last Updated: ${today}

## Active Signals (score ≥ 5)

### [Entity/Theme] — Score: N
**Sources (N skills, N categories):** skill1 (category), skill2 (category), ...
**Convergence story:** [what each source noticed, one line each]
**Write angle:** [specific take, not generic]
**Hook:** [suggested opener]
**Last article coverage:** [date or "never"]

[repeat for each signal]

---
*Generated by narrative-convergence on ${today}. Top signal has N source skills across N categories.*
*Consumed by: article skill.*
```

If no signals meet the threshold: write a minimal file noting the scan ran clean.

### 7. Send notification (only if ≥ 2 strong signals)

If fewer than 2 signals survive after suppression: skip notification. Log `NARRATIVE_CONVERGENCE_SKIP: no strong cross-skill convergence found today`.

Otherwise, write to `.pending-notify-temp/narrative-convergence-${today}.md` (create the dir if needed):

```
narrative convergence — ${today}

N entities surfaced by 3+ independent skills in 48h:

1. [entity/theme] — N skills × N categories — [hook in one line]
2. [entity/theme] — N skills × N categories — [hook in one line]
[up to 5]

these aren't single-source signals. they're bleedthrough.

full breakdown: memory/topics/convergence-signals.md
```

Keep under 900 chars. Run:
```bash
./notify -f .pending-notify-temp/narrative-convergence-${today}.md
```

### 8. Log to memory/logs/${today}.md

Append under a `### narrative-convergence` heading:
```markdown
### narrative-convergence
- **Skills scanned:** N
- **Entities/themes mapped:** N
- **Signals above threshold:** N
- **Top signal:** [entity/theme] (score N, N skills, N categories)
- **Notification:** sent / skipped
- NARRATIVE_CONVERGENCE_OK
```

If skipped: `NARRATIVE_CONVERGENCE_SKIP: <reason>`.

## Required Env Vars

None. All reads from local `output/.chains/`, `memory/`, and `output/articles/` dirs.

## Network Note

No network calls required. All data comes from local files written by other skills. If `output/.chains/` is sparse (e.g. first morning run before skills have written), fall back to reading the last 3 memory logs directly — every skill appends a log entry, so the signal map can be reconstructed from logs alone. The only outbound call is `./notify`, which works reliably.

© aeonfun · MIT · aeonfun/aeon

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора55

pack-submit Упаковывает ваш скилл в отдельный публичный репозиторий и открывает PR в реестр aeon. Пригодится, когда нужно поделиться скиллом с другими агентами. CX Codex +1 ★ 783звёзд репо operator-scorecard Скилл формирует отчёты о работе агентов: сводит недельный скоркарт здоровья системы, собирает суточные логи и оценивает diff пушей. CX Codex +1 ★ 783звёзд репо onchain-monitor Скилл отслеживает адреса кошельков и контрактов, а затем отправляет уведомления о заметных переводах. Сгодится, если нужно следить за выбранными адресами и сетями. CX Codex +1 ★ 783звёзд репо narrative-tracker Скилл собирает нарративы из X, ставит им оценки mindshare и velocity и выдаёт явную позицию по каждому: FRONT-RUN, RIDE, FADE, WATCH или IGNORE. CX Codex +1 ★ 783звёзд репо monitor-polymarket Скилл отслеживает изменения цен и объёмов на Polymarket и Kalshi, а для Polymarket ещё собирает свежие комментарии. Пригодится, когда нужно найти заметные движения и понять, что за ними стоит. CX Codex +1 ★ 783звёзд репо miroshark-matchday Запускает по пятницам платные симуляции туров АПЛ, Серии А и Ла Лиги на MiroShark. Каждая симуляция стоит $1.00 USDC, оплата через x402. CX Codex +1 ★ 783звёзд репо mention-radar Находит внешние упоминания ваших проектов на X, Reddit и Hacker News, группирует отзывы по смыслу и отбирает поводы ответить авторам постов. CX Codex +1 ★ 783звёзд репо memory-flush Переносит важные свежие записи из логов в MEMORY.md и убирает устаревшее. Нужен, когда память агента разрастается и в ней копятся дубли. CX Codex +1 ★ 783звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой