Skip to content
Back to skills

Pr Release

ASecurity

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).

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
ai-agentsgogitdatabasesecuritydocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 28, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Pr Release?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pr Release
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kanopi-pr-release/badge)](https://www.skillsdirectory.com/skills/kanopi-pr-release)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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).
disable-model-invocation: true
---

# 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)

```markdown
## [<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

```markdown
## 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>

===================================

Reply "approve" to update the PR and save these artifacts, or provide your edits.
```

### 8. Wait for explicit user approval

⛔ **Do not run `gh pr edit` or write to `CHANGELOG.md` until the user replies "approve" or provides edits.**

### 9. Apply the artifacts

On approval:

1. **Update `CHANGELOG.md`** — insert the new entry under `## [Unreleased]` (move existing Unreleased content into the new version block if appropriate).
2. **Update the version source of truth** (e.g., `plugin.json`, `composer.json`, `style.css`).
3. **Update the PR description** via `gh pr edit <pr-number> --title "<title>" --body "$(cat <<'EOF'\n<body>\nEOF\n)"`.
4. Tell the user: "Release artifacts applied. Tag and deploy remain manual — run `git tag v<version> && git push --tags` when ready."

## Environment fallback (no `gh` CLI)

1. Run steps 1–7 normally.
2. After approval, **provide the commands** for the user to run manually — heredoc-formatted so they can paste.
3. Edit `CHANGELOG.md` and version files locally; the user pushes.

## Semantic Versioning Quick Reference

- **Major (X.0.0)** — Breaking changes, removed features
- **Minor (1.X.0)** — New features (backwards-compatible)
- **Patch (1.0.X)** — Bug fixes, security patches, doc-only changes

## Related Skills

- **pr-create** — Create the initial release PR before this skill runs
- **pr-review** — Review the release PR before approval
- **commit-message-generator** — Source of the conventional commits this skill categorizes

Files in this skill

  • SKILL.md7.4 KB
  • agents/openai.yaml229 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.