agentsclimarketplace

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

Install
npx -y skills add NeonSalamander/r-package-update-check --skill R-package-update-check

Assembled 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 файла.


Источники данных

  1. CRAN /web/packages/available_packages_by_date.html — страница с датами первой публикации. URL: https://cran.r-project.org/web/packages/available_packages_by_date.html
  2. crandb API (основной): https://crandb.r-pkg.org/{pkg} — JSON с полями Title, Description, Author, License, Imports и др.
  3. 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

Сохранение и передача файла

  1. Определи рабочую директорию агента: используй переменную окружения $PWD или выполни os.getcwd() / getwd() — это и есть целевая папка. Никогда не используй захардкоженный путь вроде /mnt/user-data/outputs/.
  2. Запишь файл в определённую рабочую директорию: {рабочая_директория}/cran-digest-{YYYY-MM-DD}.md
  3. Вызови present_files с полным путём к файлу, чтобы пользователь мог его скачать.
  4. В чат выведи краткое резюме: количество пакетов, топ-3 категории.

Параметры запуска

Пользователь может уточнить запрос — учитывай эти параметры без переспросов:

ПараметрПо умолчаниюПример запроса
Период7 дней«за последние 14 дней»
Язык описанийЯзык запроса«описания на английском»
Фильтр по теменет«только пакеты для визуализации»
Имя файлаавто по дате«сохрани как weekly-cran.md»
Макс. пакетоввсе«топ-20 самых интересных»

Приоритеты при большом числе пакетов

Если пакетов больше 30 и пользователь не просил полный список:

  1. Предупреди о числе пакетов одной фразой.
  2. Предложи три варианта: показать все / только топ-N / отфильтровать по теме.
  3. При выборе «топ-N» — приоритизируй пакеты с наибольшим числом зависимостей (признак востребованности) или с наиболее содержательным Description.

Обработка ошибок

СитуацияДействие
crandb недоступенПереключись на DESCRIPTION-файл с CRAN
Пакет archived / исчез со страницыПропусти, упомяни в сноске файла
Пустое поле DescriptionНапиши «Описание недоступно», дай ссылку на CRAN
Сетевой таймаутПовтори 2 раза с паузой, затем пропусти пакет

Пример минимального вызова

«Покажи новые пакеты CRAN за эту неделю»

Агент без дополнительных вопросов:

  1. Определяет диапазон дат (сегодня − 7 дней).
  2. Получает список новых пакетов.
  3. Формирует описания.
  4. Сохраняет cran-digest-{сегодня}.md в outputs.
  5. Вызывает present_files — пользователь получает ссылку на скачивание.
  6. В чат выводит: «Готово. Найдено 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.

Keep looking

Skills are one crate of 326,506. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.