Описание
ru-stats — скилл сбора официальной статистики для Claude Code: источники — Росстат, ЕМИСС, ЦБ РФ и региональные порталы, только curl — без SDK и зависимостей, результат — Markdown-таблица готовая для вставки в отчёт, ссылка на источник — каждая цифра привязана к первоисточнику. Для аналитиков, консультантов и журналистов, работающих с официальными данными РФ.
Что умеет:
— тянуть данные Росстата и ЕМИСС;
— брать цифры ЦБ РФ и регионов;
— отдавать Markdown-таблицы;
— ссылаться на источник каждой цифры.
Полная документация ниже — автоматически из репозитория bogemadumb/ru-stats (ветка main). Оригинальные материалы проекта распространяются на условиях его лицензии.
ru-stats
Это мой скилл для Claude Code. Он лезет в российские госисточники (Росстат, ЕМИСС/fedstat, ЦБ РФ, региональные стат-управления, министерства), достаёт оттуда нужные цифры и отдаёт их готовой Markdown-таблицей со ссылкой на источник. Вставляешь прямо в эссе, курсовую, реферат или доклад, и не надо руками копаться в сборниках.
Зачем это нужно
Я пишу учебные работы, и в них постоянно нужны реальные цифры по России — ВВП, инфляция, население, доходы. Просишь Claude «дай ВВП регионов за 2020–2024», а он идёт в веб через встроенный WebFetch и упирается. Российские госсайты почти поголовно режут серверные IP, с которых ходят эти инструменты, и в ответ прилетает 403 или таймаут.
А дальше самое противное. Модель не говорит «не смог» — она выдаёт цифру «по памяти». Правдоподобную, но выдуманную. И вот у тебя в курсовой красивое число, которого нет ни в одном сборнике. Меня это достало, поэтому я и собрал скилл. Держится он на трёх вещах:
- Правильный транспорт. Все запросы к
.ruидут через локальныйcurl— с моего IP, а не с серверного, и блокировка отваливается сама собой. - Карта источников. Заранее прописано, какой показатель где лежит, в каком порядке его искать и по каким URL. Не гуглит наугад.
- Дисциплина цитирования. Формат ответа жёстко зафиксирован: таблица, название публикации, URL, дата обращения. Не нашлось — так и пишет, а не сочиняет.
Плюс сюда зашито знание местных граблей, на которые иначе уходит час: сертификат Минцифры, cp1251, DDoS-Guard на fedstat, .rar вместо .zip.
Что умеет
- Идёт по карте источников с приоритетом — сначала ЕМИСС, потом тематический портал (ЦБ РФ / Минфин), потом Росстат, региональные управления, и веб-архив в самом конце. Сверху вниз, а не наугад.
- Обходит типовые препятствия госсайтов:
- SSL-сертификат Минцифры (российский корневой CA, которому система не доверяет);
- блокировку пустого или
curl-ового User-Agent; - DDoS-Guard с JS-челленджем на
fedstat.ru— через браузерную автоматизацию.
- Парсит всё, что эти сайты отдают:
.xlsx,.xls,.csvвcp1251с разделителем;, XML Банка России, HTML-таблицы,.rar-сборники. - Кеширует локально. Сборники весят десятки мегабайт и обновляются раз в год, так что качаю один раз и больше не дёргаю сайт.
- Отдаёт готовый вывод — Markdown-таблицу с числами по правому краю и оформленной ссылкой на источник.
- Честно говорит про лаги данных. Знает, что годовой ВВП выходит только к апрелю следующего года, а регионы отстают почти на год, и не делает вид, что цифра уже есть.
Стек
- Claude Code — среда исполнения скилла.
- Markdown — скилл целиком представляет собой инструкцию (
SKILL.md), кода нет. - curl — транспорт до источников.
- Python 3 + pandas / openpyxl / xlrd / tabulate — парсинг таблиц.
- Playwright (опционально, через MCP или локально) — только для
fedstat.ruс его DDoS-Guard.
Пример вывода
## Ключевая ставка Банка России на конец квартала, 2022–2025 (% годовых)
| Квартал | Ставка |
|---------|-------:|
| I 2022 | 20,0 |
| II 2022 | 9,5 |
| ... | ... |
**Источник:** [Банк России, «Ключевая ставка»](https://www.cbr.ru/hd_base/KeyRate/). Дата обращения: 16.07.2026.
Структура
ru-stats/
├── SKILL.md # сам скилл: карта источников, обходы, парсинг, формат вывода
├── evals/
│ └── evals.json # три тестовых сценария для проверки скилла
├── README.md
├── SCRUB.md # чек-лист приватности перед публикацией форка
└── .gitignore # исключает локальный кеш скачанных данных
Всё содержательное — в SKILL.md. Это не программа, а инструкция, которую читает Claude: он и выполняет описанные шаги своими штатными инструментами (Bash, Read).
Установка
Требования
- Claude Code — установлен и авторизован (инструкция). Нужна своя подписка Claude или свой API-ключ Anthropic — см. ниже.
- Python 3.9+ с pandas — для парсинга таблиц.
- curl — есть из коробки на macOS и в большинстве Linux.
- unar — для распаковки
.rar-сборников Росстата. - Доступ к российскому сегменту сети — см. «Настройка сети».
Никаких токенов ботов, серверов и внешних сервисов скилл не требует. Файла .env у проекта нет — настраивать нечего, единственная переменная (путь к кешу) правится прямо в SKILL.md.
Шаг 1. Claude Code и свой доступ к Claude
Скилл работает внутри Claude Code, поэтому нужен свой доступ к модели — один из двух вариантов:
- Подписка Claude Pro / Max — оформляется на claude.ai, после чего
claudeлогинится по браузеру:npm install -g @anthropic-ai/claude-code claude # при первом запуске проведёт через вход в аккаунт - API-ключ Anthropic — создаётся в Anthropic Console → API Keys → Create Key. Оплата по факту использования:
export ANTHROPIC_API_KEY='sk-ant-ваш-ключ' # добавьте в ~/.zshrc или ~/.bashrc
Ключ — ваш личный, он не хранится в этом репозитории и не должен в него попадать.
Шаг 2. Установка зависимостей
# Python-библиотеки для парсинга
pip3 install --user pandas openpyxl xlrd tabulate
# Распаковщик .rar
brew install unar # macOS
sudo apt install unar # Debian / Ubuntu
openpyxl читает .xlsx, xlrd — старый .xls (Росстат до сих пор его отдаёт), tabulate нужен для .to_markdown().
Шаг 3. Установка скилла
Склонируйте репозиторий в каталог скиллов Claude Code.
Глобально (скилл доступен во всех проектах):
mkdir -p ~/.claude/skills
git clone https://github.com/<ваш-аккаунт>/ru-stats.git ~/.claude/skills/ru-stats
Только для одного проекта (скилл поедет вместе с репозиторием проекта):
mkdir -p .claude/skills
git clone https://github.com/<ваш-аккаунт>/ru-stats.git .claude/skills/ru-stats
Важно: каталог должен называться ru-stats и содержать SKILL.md в корне — Claude Code ищет скиллы именно так.
Шаг 4. Настройка сети
Скилл исходит из того, что домены *.ru, *.su, *.xn--p1ai открываются с вашей машины напрямую.
- Вы в России — ничего делать не надо, переходите к шагу 5.
- Вы за пределами РФ — большинство
*.gov.ruотдадут 403 на зарубежный IP. Понадобится доступ к российскому сегменту (VPN или прокси с российским выходом). - Вы под VPN с зарубежным выходом — включите split-tunneling (раздельное туннелирование: часть трафика идёт мимо VPN-туннеля) и заведите в исключения
*.ru,*.su,*.xn--p1ai. Иначе российские источники закроются, хотя интернет в целом работает.
Проверка:
curl -sI https://rosstat.gov.ru | head -3
Ожидаемо HTTP/2 200. Таймаут или 403 — доступа к российскому сегменту нет, вернитесь к настройке.
Шаг 5. Кеш
Скилл складывает скачанное в ~/.cache/ru-stats/. Каталог создастся сам при первом запуске; создать заранее:
mkdir -p ~/.cache/ru-stats
Хотите другой путь — замените ~/.cache/ru-stats в SKILL.md на свой.
Шаг 6. Первый запуск
Запустите claude и попросите что-нибудь простое:
Какой был курс доллара ЦБ РФ на 15 апреля 2026?
Скилл должен подхватиться автоматически (Claude выбирает его по описанию), сходить curl-ом на cbr.ru/scripts/XML_daily.asp и вернуть значение со ссылкой на источник. Можно позвать и явно: /ru-stats курс доллара на 15.04.2026.
Более полная проверка — сценарии из evals/evals.json: ВРП регионов, ключевая ставка по кварталам, население городов-миллионников.
Запуск по расписанию (опционально)
Скилл интерактивный — по расписанию он не нужен. Но если хотите, например, ежемесячно обновлять кеш на своём сервере, подойдёт обычный cron с headless-режимом Claude Code:
crontab -e
# 1-го числа каждого месяца в 09:00 — обновить кеш ключевой ставки
0 9 1 * * cd ~/.claude/skills/ru-stats && /usr/local/bin/claude -p "Обнови кеш ключевой ставки ЦБ РФ за текущий год" >> ~/.cache/ru-stats/cron.log 2>&1
Cron не видит вашего $PATH и переменных окружения — указывайте абсолютный путь к claude (which claude) и задавайте ANTHROPIC_API_KEY прямо в crontab или в скрипте-обёртке. Для systemd — аналогично через .service + .timer с Environment= или EnvironmentFile=.
Траблшутинг
| Симптом | Причина | Решение |
|---|---|---|
curl: (60) SSL certificate problem на *.gov.ru |
Российский корневой CA Минцифры, системе неизвестен | Добавьте -k к curl (для публичной статистики это приемлемо) либо установите сертификат Минцифры в системное хранилище |
403 на fedstat.ru даже с User-Agent |
DDoS-Guard делает JS-челлендж, curl его не проходит | Используйте браузерную автоматизацию (Playwright), не curl |
403 / таймаут на rosstat.gov.ru |
Нет доступа к российскому сегменту, либо запрос ушёл через WebFetch |
Проверьте сеть (шаг 4); убедитесь, что Claude идёт через Bash + curl, а не WebFetch |
| Скачался «xlsx», а pandas его не читает | Сайт отдал HTML-страницу с ошибкой, curl сохранил под именем .xlsx |
file <файл> покажет реальный тип; проверяйте перед парсингом |
| Кракозябры вместо русских букв в CSV | Кодировка cp1251, а не UTF-8 |
pd.read_csv(..., sep=';', encoding='cp1251') |
ImportError: Missing optional dependency 'xlrd' |
Старый .xls требует отдельной библиотеки |
pip3 install --user xlrd |
.to_markdown() падает |
Нет tabulate |
pip3 install --user tabulate |
| Claude не подхватывает скилл | SKILL.md не в корне ~/.claude/skills/ru-stats/, либо испорчен YAML-заголовок |
Проверьте путь и что файл начинается с --- + name: + description: |
| Данных за нужный год нет | Лаг публикации: годовой ВВП — к апрелю следующего года, регионы — до года | Это нормально; возьмите последний доступный год и укажите его в работе |
| Цифры не сходятся с прошлогодней версией | Росстат пересматривает исторические ряды | Берите последнюю ревизию и указывайте дату обращения |
Лицензия
MIT — см. LICENSE.
Дисклеймер
Скилл только скачивает и переформатирует публично опубликованные данные с официальных сайтов. Ответственность за корректность интерпретации и за цитирование в вашей работе — на вас. Перед сдачей сверяйте ключевые цифры с первоисточником: сборники Росстата бывают внутренне противоречивы, а исторические ряды пересматриваются.