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

r-package-check — скилл для Claude Code: что делает и как установить

Проверяет готовность пакетов R к публикации в CRAN через тесты, проверку документации и R CMD check. Сохраняет отчёты в quality_reports/.

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

Что делает r-package-check

Скилл запускает конвейер валидации R-пакетов перед релизом. Сначала утилита проверяет наличие инструментов и обновляет документацию через devtools::document(), выявляя нестыковки в man/ и NAMESPACE. Затем идут тесты через devtools::test() и запуск R CMD check --as-cran. Скилл не меняет сгенерированные файлы вручную.

Долгие тесты выполняются в фоне. Инструмент Monitor или фоновый процесс Bash фильтруют лог, чтобы агент не зависал на проверках covr и CRAN. Дополнительно субагент r-package-reviewer проверяет исходный код.

Без установленных в системе devtools и roxygen2 пайплайн завершится ошибкой на первом шаге. Итоговый вердикт скилл сохраняет в quality_reports/[package]_package_check.md. При этом сам релиз или отправка на CRAN не происходят: решение принимает разработчик.

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

  • перегенерировать документацию man/ и NAMESPACE без ручных правок
  • выявить расхождения между исходниками и зафиксированными файлами документации
  • запустить R CMD check --as-cran в фоне с фильтрацией логов
  • разобрать предупреждения и заметки CRAN перед отправкой пакета
  • сформировать отчёт о готовности к релизу в папке quality_reports/

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

  • Проверь мой R-пакет на готовность к публикации в CRAN
  • Запусти devtools::check для пакета в текущей директории
  • Подготовь пакет к отправке в CRAN и сформируй чек-лист

Как установить r-package-check

1Через Skills CLI (Vercel)

npx skills add pedrohcgs/claude-code-my-workflow --skill r-package-check -a claude-code

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

~/.claude/skills/r-package-check/SKILL.md

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

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

Вопросы о r-package-check

Как установить r-package-check в Claude Code?

Выполните команду npx skills add pedrohcgs/claude-code-my-workflow --skill r-package-check -a claude-code. Также файл скилла можно сохранить вручную по пути ~/.claude/skills/r-package-check/SKILL.md.

Отправляет ли скилл r-package-check пакет в CRAN автоматически?

Нет, скилл только выполняет проверки, формирует отчёты и чек-лист. Команды для публикации вроде devtools::release() запускает сам разработчик.

Какие пакеты R нужны для работы r-package-check?

Скилл требует наличия установленных devtools, roxygen2 и testthat, а также системной утилиты R CMD. Для расчёта покрытия тестами дополнительно понадобится covr.

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

SKILL.md · MIT
---
name: r-package-check
description: Run the full R package release gate — regenerate docs, run the test suite, run R CMD check --as-cran, and triage every ERROR / WARNING / NOTE against CRAN policy before a release or submission. Use when the user says "check my R package", "R CMD check", "is this package CRAN-ready", "run devtools::check", "prepare for CRAN submission", or points at a directory containing a DESCRIPTION file. Produces a check report + CRAN-submission checklist in `quality_reports/`.
argument-hint: "[path to package root, or blank to autodetect from DESCRIPTION]"
disable-model-invocation: true
allowed-tools: ["Read", "Grep", "Glob", "Bash", "Agent", "Task", "Monitor"]
effort: high
metadata:
  author: Claude Code Academic Workflow
  version: 1.0.0
---

# `/r-package-check` — R Package Release Gate

Run the document → test → check → triage pipeline that decides whether an R package is releasable, then review the source for the issues `R CMD check` cannot see.

**Input:** `$ARGUMENTS` — the package root (a directory containing `DESCRIPTION`). If blank, autodetect by searching upward/within the working directory for `DESCRIPTION`.

---

## Constraints

- **Follow [`.claude/rules/r-package-conventions.md`](../../rules/r-package-conventions.md)** — the CRAN-readiness bar (0 errors, 0 warnings, explained notes) is the gate.
- **Treat `man/` and `NAMESPACE` as generated** — regenerate with `devtools::document()`; never hand-edit them.
- **Run the `r-package-reviewer` agent** on the source before declaring the package releasable.
- **Do not bump the version or write to CRAN.** This skill *checks*; the human decides when to submit.

---

## Workflow Phases

### Phase 0: Pre-Flight Report

```markdown
## Pre-Flight Report — R Package Check

**Package:** [name + version from DESCRIPTION]
**Root:** [path]
**Exported functions:** [from NAMESPACE / `@export` count]
**Dependencies:** Imports [list] · Suggests [list] · Depends [list]
**Toolchain available:** devtools [✓/✗], roxygen2 [✓/✗], testthat [✓/✗], R CMD [✓/✗], covr [✓/✗]
**Plan:** document → test → check --as-cran → triage → review
```

Detect the toolchain with a quick probe; if `devtools`/`R CMD` is missing, stop and tell the user what to install.

```bash
Rscript -e 'cat("devtools:", requireNamespace("devtools", quietly=TRUE),
               "roxygen2:", requireNamespace("roxygen2", quietly=TRUE),
               "testthat:", requireNamespace("testthat", quietly=TRUE),
               "covr:", requireNamespace("covr", quietly=TRUE), "\n")'
```

### Phase 1: Document

Regenerate `man/` + `NAMESPACE` and detect drift (generated docs that were not committed):

```bash
Rscript -e 'devtools::document("[pkg]")'
git -C "[pkg]" status --short man/ NAMESPACE   # any diff = generated docs were stale
```

If `git status` shows changes, flag: the committed `man/`/`NAMESPACE` were out of sync with the roxygen blocks.

### Phase 2: Test

```bash
Rscript -e 'devtools::test("[pkg]")'
```

Report failures and (if `covr` is available, Phase 4) coverage of exported functions.

### Phase 3: Check (`--as-cran`)

Run the full check. **This is slow** (minutes) — background-launch and stream with the **Monitor tool** rather than blocking:

```bash
Rscript -e 'devtools::check("[pkg]", args = "--as-cran")'
# or: R CMD build [pkg] && R CMD check --as-cran [pkg]_*.tar.gz
```

Then **triage every result** into a table:

| Result | Tier | CRAN-policy meaning | Action |
|---|---|---|---|
| … | ERROR / WARNING / NOTE | … | fix / justify |

- **ERROR / WARNING** → must fix before submission.
- **NOTE** → fix if cheap; otherwise write the justification you'd put in `cran-comments.md` (e.g., "New submission", "Found the following (possibly) invalid URLs … the URL is correct and reachable").

### Phase 4: Coverage (optional)

```bash
Rscript -e 'covr::package_coverage("[pkg]")'
```

Report per-function coverage; flag exported functions with 0% coverage.

### Phase 5: Source Review

```
Delegate to the r-package-reviewer agent:
"Review the package source at [pkg]"
```

The agent is read-only and returns its report; save it to `quality_reports/[pkg]_package_review.md`. Address Critical (CRAN-policy violations) and High (check WARNINGs) findings.

### Phase 6: Release Gate + Report

Save a report to `quality_reports/[package]_package_check.md` and present a verdict:

```markdown
## Release Gate — [package] [version]
- R CMD check --as-cran: E errors, W warnings, N notes
- Tests: P passed, F failed
- Coverage: X% of exported functions
- r-package-reviewer: C critical, H high
- **Verdict:** RELEASABLE / FIX-FIRST / POLICY-VIOLATION

### CRAN-submission checklist
[ ] 0 errors, 0 warnings; each note justified in cran-comments.md
[ ] Version bumped + NEWS.md updated
[ ] devtools::check_win_devel() / R-hub on other platforms (note: run separately)
[ ] Reverse-dependency check if this is an update (revdepcheck)
```

---

## Important

- **`--as-cran` or it doesn't count.** A plain `R CMD check` misses the policy checks that actually gate submission.
- **Generated files are generated.** If docs drift, the fix is `devtools::document()`, not editing `.Rd`.
- **The gate is 0/0/explained.** 0 errors, 0 warnings, every remaining note justified — nothing less is "CRAN-ready."
- **This skill does not submit.** Cross-platform checks (win-devel, R-hub) and the actual `devtools::release()` are the maintainer's call.

## Long-running checks: use the Monitor tool

`R CMD check --as-cran` and `covr` can run for several minutes. Don't block on them, and don't poll with `sleep`: start the **Monitor tool** with a command that runs the check itself, tees the full output to a log, and prints only the lines you would act on, e.g. `Rscript -e 'devtools::check("[pkg]", args = "--as-cran")' 2>&1 | tee quality_reports/r-package-check.log | grep --line-buffered -E 'ERROR|WARNING|NOTE|Status:|[Ee]rror'`. The watch ends when the check exits; set `timeout_ms` above the default 5 minutes (max 3600000). The filter must match failure as well as success, because silence looks the same as "still running". If you only need one notice when the check finishes, run it with Bash `run_in_background: true` instead and read the log when the job reports its exit. Monitor has no job-id parameter, so it cannot attach to a job already running in the background; see [`data-analysis/SKILL.md`](../data-analysis/SKILL.md) for the log-and-tail variant.

© Claude Code Academic Workflow · MIT · pedrohcgs/claude-code-my-workflow

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

Все скиллы по теме «Тесты и QA» →
improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок

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

respond-to-referees Собирает документ с ответами на замечания рецензентов: находит каждое замечание в правленой рукописи, помечает, что учтено, и пишет вежливый ответ. CX Codex +1 ★ 1 671звёзд репо respond-to-eval Разбирает отзывы студентов о курсе и превращает числовые оценки с комментариями в конкретный план доработок программы и слайдов. CX Codex +1 ★ 1 671звёзд репо research-ideation Скилл превращает тему, явление или описание датасета в исследовательские вопросы, гипотезы и варианты эмпирической проверки. CX Codex +1 ★ 1 671звёзд репо replication-package Собирает депозит для журнала: README, манифест данных, карту «таблица → скрипт:строка» и чек-лист DCAS. Пригодится после принятия статьи. CX Codex +1 ★ 1 671звёзд репо qa-quarto Сравнивает HTML-слайды Quarto с PDF-версией Beamer и помогает исправить расхождения. Запускайте его, когда нужно проверить соответствие презентаций. CX Codex +1 ★ 1 671звёзд репо proofread Прогоняет файлы лекций .tex и .qmd через вычитку и отдаёт отчёт с ошибками. Исходники при этом не трогает. CX Codex +1 ★ 1 671звёзд репо promote-memory Фильтрует локальные заметки Claude Code и переносит важные правила в MEMORY.md через голосование пяти независимых субагентов. CX Codex +1 ★ 1 671звёзд репо preregister Создаёт Markdown-план предварительной регистрации исследования в стиле OSF, AsPredicted или AEA RCT Registry. Запустите его до сбора данных или анализа результатов. CX Codex +1 ★ 1 671звёзд репо

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

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