R package update check
Skill NeonSalamander/r-package-update-check/R-package-update-check
Агент для автоматического сбора и описания новых пакетов CRAN за последнюю неделю. Используй этот навык когда пользователь просит: найти новые пакеты CRAN, сделать дайджест/обзор новинок CRAN, описать пакеты R за неделю, подготовить еженедельную сводку CRAN, или упоминает "hermes", "CRAN digest", "новые R-пакеты". Также триггерится при задачах мониторинга CRAN, составления бюллетеня или рассылки по новым пакетам R. Результат всегда оформляется и сохраняется как .md файл — используй этот навык всякий раз, когда нужен структурированный Markdown-дайджест пакетов CRAN.From its SKILL.md
npx -y skills add NeonSalamander/r-package-update-check --skill R-package-update-checkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.1 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
R-package-update-check — Еженедельный дайджест новых пакетов CRAN
Агент собирает список пакетов, впервые опубликованных на CRAN за последние 7
дней, формирует человекочитаемые описания каждого пакета и сохраняет результат
в виде .md файла.
Источники данных
- CRAN /web/packages/available_packages_by_date.html — страница с датами
первой публикации.
URL:
https://cran.r-project.org/web/packages/available_packages_by_date.html - crandb API (основной):
https://crandb.r-pkg.org/{pkg}— JSON с полями Title, Description, Author, License, Imports и др. - CRAN DESCRIPTION-файл (резервный):
https://cran.r-project.org/web/packages/{pkg}/DESCRIPTION
Алгоритм выполнения
Шаг 1 — Получить список новых пакетов
Загрузи страницу с датами публикаций и отфильтруй пакеты, у которых дата
первого появления попадает в диапазон [сегодня − 7 дней, сегодня].
# Пример парсинга в R
url <- "https://cran.r-project.org/web/packages/available_packages_by_date.html"
page <- rvest::read_html(url)
tbl <- rvest::html_table(page)[[1]]
new_pkgs <- tbl[as.Date(tbl$Date) >= Sys.Date() - 7, ]
Если R недоступен — используй web_fetch + парсинг HTML напрямую.
Шаг 2 — Получить метаданные каждого пакета
Для каждого пакета из списка обратись к crandb API:
GET https://crandb.r-pkg.org/<pkg_name>
Извлеки поля: Title, Description, Author, Maintainer, License,
Imports, Suggests, URL.
При ошибке 404 — пробуй DESCRIPTION-файл напрямую:
https://cran.r-project.org/web/packages/<pkg>/DESCRIPTION
Шаг 3 — Сформировать Markdown-описание каждого пакета
Для каждого пакета используй строго этот шаблон:
### {Название пакета} ({версия})
**Что делает:** {1–2 предложения, суть пакета простым языком}
**Область применения:** {тег: статистика / визуализация / машинное обучение /
работа с данными / веб / биоинформатика / утилиты / другое}
**Зависимости:** {основные импорты через запятую, не более 5}
**Лицензия:** {лицензия}
**Автор/мейнтейнер:** {имя}
**Ссылка:** https://cran.r-project.org/package={pkg}
Описание «Что делает» — на языке пользователя, простым языком. Не копируй дословно поле Description из DESCRIPTION — перефразируй.
Шаг 4 — Собрать и сохранить итоговый .md файл
Структура файла
# Новые пакеты CRAN: {дата_начала} — {дата_конца}
> Дайджест сформирован автоматически агентом Hermes.
> Всего новых пакетов за период: {N}
## Содержание по категориям
- Статистика: {n}
- Визуализация: {n}
- Машинное обучение: {n}
- Работа с данными: {n}
- Биоинформатика: {n}
- Утилиты: {n}
- Другое: {n}
---
## Пакеты
{блоки пакетов, сгруппированные по категории, внутри категории — по алфавиту}
---
*Источник: [CRAN](https://cran.r-project.org) /
[crandb](https://crandb.r-pkg.org)*
Имя файла
Формат: cran-digest-{YYYY-MM-DD}.md, где дата — последний день периода
(обычно сегодня).
Пример: cran-digest-2025-06-13.md
Сохранение и передача файла
- Определи рабочую директорию агента: используй переменную окружения
$PWDили выполниos.getcwd()/getwd()— это и есть целевая папка. Никогда не используй захардкоженный путь вроде/mnt/user-data/outputs/. - Запишь файл в определённую рабочую директорию:
{рабочая_директория}/cran-digest-{YYYY-MM-DD}.md - Вызови
present_filesс полным путём к файлу, чтобы пользователь мог его скачать. - В чат выведи краткое резюме: количество пакетов, топ-3 категории.
Параметры запуска
Пользователь может уточнить запрос — учитывай эти параметры без переспросов:
| Параметр | По умолчанию | Пример запроса |
|---|---|---|
| Период | 7 дней | «за последние 14 дней» |
| Язык описаний | Язык запроса | «описания на английском» |
| Фильтр по теме | нет | «только пакеты для визуализации» |
| Имя файла | авто по дате | «сохрани как weekly-cran.md» |
| Макс. пакетов | все | «топ-20 самых интересных» |
Приоритеты при большом числе пакетов
Если пакетов больше 30 и пользователь не просил полный список:
- Предупреди о числе пакетов одной фразой.
- Предложи три варианта: показать все / только топ-N / отфильтровать по теме.
- При выборе «топ-N» — приоритизируй пакеты с наибольшим числом зависимостей (признак востребованности) или с наиболее содержательным Description.
Обработка ошибок
| Ситуация | Действие |
|---|---|
| crandb недоступен | Переключись на DESCRIPTION-файл с CRAN |
| Пакет archived / исчез со страницы | Пропусти, упомяни в сноске файла |
| Пустое поле Description | Напиши «Описание недоступно», дай ссылку на CRAN |
| Сетевой таймаут | Повтори 2 раза с паузой, затем пропусти пакет |
Пример минимального вызова
«Покажи новые пакеты CRAN за эту неделю»
Агент без дополнительных вопросов:
- Определяет диапазон дат (сегодня − 7 дней).
- Получает список новых пакетов.
- Формирует описания.
- Сохраняет
cran-digest-{сегодня}.mdв outputs. - Вызывает
present_files— пользователь получает ссылку на скачивание. - В чат выводит: «Готово. Найдено X пакетов. Файл сохранён.»
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most quality gates skills give in ~2.1k tokens
Counted across 1,195 of the 2,094 authors here whose files we hold, read 2026-08-07
- Read the output and check the exit codein 54 of 1195, across 14 files
- Verify requirements using a line-by-line checklistin 53 of 1195, across 12 files
- Identify the verification command proving the claimin 51 of 1195, across 12 files
- Run the full verification commandin 50 of 1195, across 11 files
- Verify output confirms the claimin 49 of 1195, across 12 files
- Check version control diff after agent delegationin 46 of 1195, across 6 files
- State claim with evidencein 44 of 1195, across 4 files
- Run the test suitein 33 of 1195, across 26 files
- Keep state in memory by defaultin 27 of 1195, across 6 files
- Make prototype runnable with one commandin 26 of 1195, across 5 files
- Produce a verification reportin 25 of 1195, across 14 files
- Detect the package manager from lockfilesin 24 of 1195, across 5 files
Said here and by no other author read
- fetch packages published in the last 7 days
- query crandb api for package metadata
- fallback to description file on 404 error
- paraphrase package descriptions in plain language
- group packages by category alphabetically
- use current working directory for file path
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.