Skip to content
Development
Skill

/pr-release

Generate changelog entries, a deployment checklist, and update a release PR description. Invoke when user asks to prepare a release, generate a changelog, create a deployment checklist, or uses /pr-release. Requires user confirmation before updating the PR (modifies publicly

From plugin
cms-cultivator
1728 skills1 agent

Claude Code

$ npx -y skills add kanopi/cms-cultivator --skill pr-release --agent claude-code

SKILL.md

pr-release.SKILL.md
name: pr-release
description: Generate changelog entries, a deployment checklist, and update a release PR description. Invoke when user asks to prepare a release, generate a changelog, create a deployment checklist, or uses /pr-release. Requires user confirmation before updating the PR (modifies publicly visible content). Supports version numbers and focus areas (changelog/deploy/update).

PR Release

Generate changelog entries, deployment checklists, and update the release PR description. The main session runs this skill directly — no orchestrator agent is involved.

⚠️ Side Effect Warning

**This skill updates a GitHub PR description** — an action that modifies publicly visible content:

  • Updates the PR description via `gh pr edit`
  • The changelog and deployment checklist are visible to all repository members

**Confirmation required** before updating the PR. Present all artifacts for review and wait for explicit approval before running `gh pr edit`.

This skill does **not** create git tags, merge the PR, or deploy. Those remain manual.

Usage

  • "Prepare release artifacts for version 1.2.0"
  • "Generate a changelog for this release branch"
  • "Create a deployment checklist"
  • `/pr-release [version-or-focus]`

**Focus options:** `changelog`, `deploy`, `update`, or a version number like `1.2.0`.

Prerequisites

  • On a release branch (typically named `release/<version>` or similar)
  • Commits follow conventional commits (`feat`, `fix`, `breaking`, `chore`, etc.)
  • GitHub CLI (`gh`) installed and authenticated for the Tier 2 path

Workflow

1. Parse arguments

  • If the argument looks like a version (`1.2.0`, `v2.3.4`, `1.0.0-rc1`) — use it as the target version.
  • If the argument is `changelog` / `deploy` / `update` — focus the output on that section only.
  • If no argument — generate all three artifacts (changelog, deployment checklist, PR description update).

2. Determine version (if not provided)

  • Read the project's version source of truth (e.g., `.claude-plugin/plugin.json` for this repo, `composer.json`, `style.css` for WP themes, `*.info.yml` for Drupal modules).
  • Read `CHANGELOG.md` to find the previous released version.
  • Inspect commits since the last release to suggest a bump:
  • Any `feat:` → minor bump (1.X.0)
  • Any `BREAKING CHANGE:` or `!:` → major bump (X.0.0)
  • Only `fix`/`chore`/`docs` → patch bump (1.0.X)
  • Confirm the proposed version with the user before continuing.

3. Analyze commits since the last release

Run in parallel:

  • Find the previous tag: `git describe --tags --abbrev=0` (or read `CHANGELOG.md`)
  • `git log --oneline <prev-tag>..HEAD`
  • `git log <prev-tag>..HEAD --pretty=format:"%s%n%b"`
  • `git diff --stat <prev-tag>..HEAD`

4. Categorize commits

Group by conventional commit type for the changelog:

| Commit type | Changelog section | |-------------|-------------------| | `feat:` | Added | | `fix:` | Fixed | | `refactor:` | Changed | | `perf:` | Changed | | `docs:` | Changed (or Documentation) | | `BREAKING CHANGE:` / `!:` | Breaking Changes | | `security:` (or fix related to vulns) | Security |

Within each section, write one human-readable line per commit. Don't just copy the commit subject — translate to user-facing language where appropriate.

5. Detect CMS-specific deployment requirements

Scan the diff for:

**Drupal:**

  • `config/sync/` changes → `drush config:import`
  • `hook_update_N` → `drush updatedb`
  • New module dependencies → `composer install --no-dev` + `drush en <module>`
  • Service or render changes → `drush cache:rebuild`
  • New `*.routing.yml` entries → rebuild routes

**WordPress:**

  • ACF JSON files in `acf-json/` → re-sync via ACF UI or WP-CLI
  • `register_post_type`, `register_taxonomy`, rewrite changes → flush permalinks
  • Theme changes → clear caching plugin (W3 Total Cache, WP Rocket, etc.)
  • New plugins added → activate after deploy
  • `block.json` / `src/blocks/` changes → run build, clear editor cache
  • Multisite changes → check network-wide impact

6. Generate artifacts

Changelog (Keep a Changelog format)

## [<version>] - <YYYY-MM-DD>

### Added
- <user-facing description of feature>

### Changed
- <user-facing description of change>

### Fixed
- <user-facing description of fix>

### Security
- <vulnerability fix>

### Breaking Changes
- <breaking change with migration note>

### Drupal-Specific Upgrade Notes
- Run: `drush updatedb`
- Run: `drush config:import`
- Clear cache: `drush cache:rebuild`

### WordPress-Specific Upgrade Notes
- Flush permalinks: Settings → Permalinks → Save
- Re-sync ACF fields from `acf-json/`

Omit any section that has no entries.

Deployment Checklist

## Pre-Deployment
- [ ] Code review complete
- [ ] Tests passing in CI
- [ ] Database backup taken
- [ ] Multidev/staging validated
- [ ] Client UAT complete (if applicable)

## Deployment Steps
1. [ ] Merge release PR to main
2. [ ] Pull on production: `git pull origin main`
3. [ ] Run: `composer install --no-dev` (if dependencies changed)
4. [ ] <CMS-specific step from step 5>
5. [ ] <CMS-specific step from step 5>

## Post-Deployment
- [ ] Smoke test critical user flows: <list>
- [ ] Monitor error logs for 15 minutes
- [ ] Notify stakeholders of completion

## Rollback Plan
- [ ] Database restore command ready
- [ ] Revert git ref: `<previous-tag>`
- [ ] Cache flush after rollback

PR Description Update

Suggest specific edits to the existing PR description — usually:

  • Title prefixed with `Release: v<version>` or `chore(release): v<version>`
  • Body includes the changelog entry as the description
  • Deployment checklist appended

7. Present for approval

Your response **must start immediately** with the approval header. No preamble.

=== RELEASE ARTIFACTS READY FOR APPROVAL ===

## Changelog Entry

<changelog>

## Deployment Checklist

<checklist>

## Proposed PR Description Update

**New title:** <title>

**Body:**

<body>

=====================
Read more
@kanopi
Ships withcms-cultivator

Specialist agents and auto-invoked skills for Drupal/WordPress development. Works in Claude Code, Claude Desktop, and OpenAI Codex. Full documentation: What changed in 2.0? CMS Cultivator now focuses on CMS development workflows.

1728 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of kanopi/cms-cultivator on GitHub, a chart by star-history.com

Other skills on cms-cultivator.

browser-validator

browser-validator

Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…

coverage-analyzer

coverage-analyzer

Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…

ddev-docker-cleanup

ddev-docker-cleanup

Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about pr-release.

Which coding agents can use pr-release?
pr-release installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.