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

create-release-checklist — скилл для Claude Code: как установить

Скилл формирует чеклист подготовки релиза для R-пакета и заводит под него issue в GitHub. Пригодится мейнтейнерам перед публикацией новой версии.

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

Что делает create-release-checklist

Скилл автоматизирует подготовку к выпуску R-пакета. Сначала он проверяет наличие файла DESCRIPTION в корне проекта и установленный пакет usethis. Затем агент читает текущую версию пакета и просматривает NEWS.md, чтобы по записям об изменениях предложить подходящий тип релиза: мажорный, минорный или патч. Если текущая версия содержит суффикс .9xxx, он автоматически отсекается при расчёте нового номера.

Сгенерированный скриптом scripts/generate_checklist.R список задач показывается в Markdown. Его можно сразу отредактировать через уточняющие вопросы агента. Если в системе настроен gh, скилл сам создаёт задачу в репозитории через команду gh issue create. Без пакета usethis сценарий сразу прервёт выполнение, поэтому окружение R нужно проверить заранее. Если же утилита gh не установлена, агент просто выведет текст чеклиста для ручной вставки.

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

  • сформировать чеклист задач перед релизом R-пакета
  • определить тип версии по записям в NEWS.md
  • отредактировать список шагов перед публикацией
  • создать issue с чеклистом в репозитории через gh

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

  • Создай чеклист релиза для этого R-пакета
  • Начни подготовку нового релиза пакета
  • Сформируй чеклист выпуска и создай issue на GitHub

Как установить create-release-checklist

1Через Skills CLI (Vercel)

npx skills add posit-dev/skills --skill create-release-checklist -a claude-code

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

~/.claude/skills/create-release-checklist/SKILL.md

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

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

Вопросы о create-release-checklist

Как установить create-release-checklist в Claude Code?

Выполните в терминале команду npx skills add posit-dev/skills --skill create-release-checklist -a claude-code.

Что делает скилл create-release-checklist?

Он считывает данные из DESCRIPTION и NEWS.md, рассчитывает новый номер версии, генерирует список задач через R-скрипт и публикует issue в GitHub.

Что нужно для автоматического создания issue в GitHub?

Потребуются установленная утилита gh, авторизация через gh auth login и настроенный GitHub-remote в локальном репозитории пакета.

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

SKILL.md · MIT
---
name: create-release-checklist
description: >
  Create a release checklist and GitHub issue for an R package. Use when the
  user asks to "create a release checklist" or "start a release" for an R package.
allowed-tools: Read, Bash, AskUserQuestion
metadata:
  author: Aaron Jacobs (@atheriel)
  version: "1.0"
license: MIT
---

# Create an R Package Release Checklist

Generate a release checklist for an R package and create the corresponding
GitHub issue.

## Overview

This skill guides you through creating a R package release checklist issue on
GitHub by:

- Determining the current version and prompting for release type.
- Generating an initial checklist.
- Prompting the user for additional customization.
- Creating a GitHub issue from the final checklist.

## Prerequisites

- The working directory must be an R package with a `DESCRIPTION` file at the
  root.
- The `usethis` R package must be available.

And to enable automatic issue creation:

- The `gh` CLI must be installed and authenticated.
- The R package must be associated with a GitHub repository.

## Workflow

### Step 1: Validation

First, check that the prerequisites are available (in this order for
efficiency):

1. Check that the working directory contains a file called `DESCRIPTION`. If
   not, inform the user that this must be run from an R package root directory
   and stop.
2. Use `Rscript -e 'utils::packageVersion("usethis")'` to check if the `usethis`
   package is installed. If not, instruct the user to install it with
   `install.packages("usethis")`, then stop.
3. Determine the GitHub URL for the repository, if one exists. First try
   `gh repo view --json url`. If that fails, diagnose the error:
   - If `gh` is not installed, try running `git remote -v` to find a GitHub URL.
   - If the local repo does not have a GitHub remote, suggest the user connect
     the package to GitHub using `usethis::use_github()`. Offer to run this
     command for the user; if they decline, continue without a GitHub URL.
   - If `gh` is installed but not authenticated and the repo has a GitHub
     remote, suggest that the user run `gh auth login`.

If any check fails, inform the user of the specific issue with clear
instructions on how to fix it, then stop the workflow. Do not proceed to the
next step until all prerequisites are met.

### Step 2: Initialization

Next, you need to determine the current package's name and version. Read the
`DESCRIPTION` file and extract the `Version:` and `Package:` fields from it.

Then, check if a `NEWS.md` file exists. If it does, read the first section
(typically the most recent unreleased changes) to understand what kind of
changes have been made. Use this to suggest an appropriate release type:

- If the NEWS mentions "breaking changes", "breaking", "BREAKING", or similar
  language, suggest a **Major** release.
- If the NEWS mentions only "bug fixes", "fixes", "patch", or similar language
  with no new features, suggest a **Patch** release.
- Otherwise (new features, improvements, enhancements), suggest a **Minor**
  release.

Display the current version to the user and ask them what type of release this
should be using the AskUserQuestion tool. Make the suggested release type the
first option with "(Recommended)" appended to the label:

Question: "What type of release is this?"
Header: "Release type"
Options (with recommended option first):
- Major (X.0.0) - Breaking changes (add "(Recommended)" if suggested)
- Minor (x.X.0) - New features but without breaking changes (add "(Recommended)" if suggested)
- Patch (x.x.X) - Bug fixes only (add "(Recommended)" if suggested)

Calculate the new version by manipulating the current version according to the
user's answer. For example:

- Current version `1.2.3` + Major release → `2.0.0`
- Current version `1.2.3` + Minor release → `1.3.0`
- Current version `1.2.3` + Patch release → `1.2.4`
- Current version `0.2.1.9000` + Patch release → `0.2.2`
- Current version `0.2.1.9003` + Minor release → `0.3.0`

Note: If the current version ends in `.9xxx` (R-style development versions),
strip that suffix before calculating the new version.

Display: "Preparing release checklist for ${PACKAGE_NAME} ${CURRENT_VERSION} →
${NEW_VERSION}".

### Step 3: Checklist Generation

Generate an initial checklist using the `scripts/generate_checklist.R` script
included with this skill:

```bash
# If the GitHub URL is known:
Rscript "${SKILL_DIR}/scripts/generate_checklist.R" "${NEW_VERSION}" "${GITHUB_URL}"

# Otherwise:
Rscript "${SKILL_DIR}/scripts/generate_checklist.R" "${NEW_VERSION}"
```

(Where `${SKILL_DIR}` represents the directory where this skill is installed.)

Ignore any "Setting active project..." lines in the output.

Read the generated checklist (which is Markdown) and display it to the user.

### Step 4: User Customization

Use the AskUserQuestion tool to ask:

Question: "Would you like to customize the checklist before creating the issue?"
Header: "Customize?"
Options:
- No, create the issue as-is
- Yes, let me customize it

If the user wants to customize the checklist, enter an iterative refinement loop:

1. Ask: "Suggest items that should be added or any items that can be safely
   removed, or confirm that there are no more changes requested."
2. Based on the user's feedback, update the checklist (add items, remove items,
   reword items, etc.). Keep the checklist in Markdown format with proper
   checkbox syntax (`- [ ]` for tasks).
3. Display the updated checklist to the user.
4. Ask: "Does this look good or do you have more suggestions?"
5. If the user has more suggestions, go back to step 2. If the user confirms it
   looks good, exit the loop and proceed to Step 5.

The checklist should be maintained as a Markdown string throughout this process
so it can be easily passed to the GitHub issue creation command.

### Step 5: GitHub Issue Creation

The final checklist should be formatted as Markdown with proper sections and
checkboxes.

**If `gh` is available and authenticated**, use it to create the GitHub issue
yourself, passing the checklist content directly via stdin:

```bash
gh issue create \
  --title "Release ${PACKAGE_NAME} ${NEW_VERSION}" \
  --body-file - <<'EOF'
[checklist content here]
EOF
```

Then show the user:

- A success message with the issue URL.
- The suggestion "You can now use the 'do-release-checklist' skill to walk
  through the checklist tasks." (Note: This is a companion skill that helps
  guide users through executing the checklist items. If this skill doesn't exist
  yet in your repository, you may omit this suggestion.)

**If `gh` is not available**, display the checklist to the user with
instructions to manually create a GitHub issue:

- Show the suggested issue title: "Release ${PACKAGE_NAME} ${NEW_VERSION}"
- Show the full checklist content formatted as Markdown.
- Instruct the user to copy the content and create the issue manually at their
  repository's issues page.

## Error Handling

If the GitHub issue creation fails (when using `gh`), check for common issues:

- **Authentication errors**: Ensure `gh auth status` shows the user is logged in.
  Suggest running `gh auth login` if needed.
- **Repository permissions**: The user must have write access to create issues.
  Check with `gh repo view` to verify they have the correct permissions.
- **Network errors**: If there are connectivity issues, suggest retrying the
  command or checking their internet connection.
- **Invalid Markdown**: If the issue body has formatting errors, verify the
  checklist Markdown is properly formatted with valid syntax.

If the issue creation fails, preserve the checklist content and offer to:

- Retry the command.
- Display the checklist for manual issue creation instead.

© Aaron Jacobs (@atheriel) · MIT · posit-dev/skills

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

Все скиллы по теме «Git и GitHub» →
github-release-management ruvnet Автоматизация релизов на GitHub: от черновика и changelog до сборки и развёртывания. Пригодится, когда версии выходят часто, а ручные шаги уже раздражают. CX Codex +1 1 200установок release-skills JimLiu Автоматизирует подготовку релизов, анализ коммитов и обновление версий в проектах на Node.js, Python или Rust. Сгенерирует ченджлог и создаст GitHub Release. CX Codex +1 25 600установок release modelcontextprotocol Проводит один milestone-релиз от релизного issue до публикации GitHub Release: аудит, бампы версий, merge PR и release ledger. CX Codex +1 ★ 91 547звёзд репо github-release jezweb Готовит GitHub-релиз: проверяет код перед публикацией, создаёт тег и выпускает релиз через gh. Нужен перед открытой публикацией репозитория. CX Codex +1 1 300установок version-bump thedotmack Скилл проводит версию через манифесты, сборку, GitHub Release и публикацию npm. Нужен для релиза плагинов Claude Code. CX Codex +1 1 800установок create-pr zhaono1 Скилл проводит агента по шагам создания pull request и следит, чтобы английский и китайский README оставались синхронными. Пригодится, когда каталог скиллов меняется и его надо отразить в документации. CX Codex +1 666установок

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

r-package-development Скилл ведёт агента по работе с R-пакетом: тесты через testthat, документация roxygen2, проверка R CMD check и запись в NEWS.md. CX Codex +1 807установок shiny-bslib Скилл для сборки дашбордов на Shiny с bslib и Bootstrap 5. Пригодится, когда переносите старое приложение на новые компоненты. CX Codex +1 797установок describe-design Скилл исследует кодовую базу и пишет markdown-документ о том, как устроена фича или система. Пригодится для онбординга и передачи знаний. CX Codex +1 785установок shiny-bslib-theming Скилл для оформления Shiny-приложений через bslib и Bootstrap 5: пресеты, цвета, шрифты, тёмный режим и живую подстройку темы. CX Codex +1 746установок release-post Пишет блог-пост о выпуске R или Python пакета по правилам блогов Tidyverse и Shiny. Пригодится, когда NEWS.md уже есть, а текста для сайта нет. CX Codex +1 684установок r-cli-app Помогает агенту собрать консольную утилиту на R: разбор аргументов, справка и подкоманды берутся из самого скрипта. CX Codex +1 682установок pr-threads-resolve Скилл закрывает все незакрытые треды ревью в PR текущей ветки одной командой. Пригодится, когда правки уже внесены и осталось только снять статус «unresolved». CX Codex +1 668установок pr-threads-address Скилл находит все неразрешённые треды ревью в пулреквесте текущей ветки, вносит правки в код с тестами и помогает ответить рецензенту. CX Codex +1 666установок

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

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