skills/pr-release/SKILL.md
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).
npx skillsauth add kanopi/cms-cultivator pr-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate changelog entries, deployment checklists, and update the release PR description. The main session runs this skill directly — no orchestrator agent is involved.
This skill updates a GitHub PR description — an action that modifies publicly visible content:
gh pr editConfirmation 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.
/pr-release [version-or-focus]Focus options: changelog, deploy, update, or a version number like 1.2.0.
release/<version> or similar)feat, fix, breaking, chore, etc.)gh) installed and authenticated for the Tier 2 path1.2.0, v2.3.4, 1.0.0-rc1) — use it as the target version.changelog / deploy / update — focus the output on that section only..claude-plugin/plugin.json for this repo, composer.json, style.css for WP themes, *.info.yml for Drupal modules).CHANGELOG.md to find the previous released version.feat: → minor bump (1.X.0)BREAKING CHANGE: or !: → major bump (X.0.0)fix/chore/docs → patch bump (1.0.X)Run in parallel:
git describe --tags --abbrev=0 (or read CHANGELOG.md)git log --oneline <prev-tag>..HEADgit log <prev-tag>..HEAD --pretty=format:"%s%n%b"git diff --stat <prev-tag>..HEADGroup 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.
Scan the diff for:
Drupal:
config/sync/ changes → drush config:importhook_update_N → drush updatedbcomposer install --no-dev + drush en <module>drush cache:rebuild*.routing.yml entries → rebuild routesWordPress:
acf-json/ → re-sync via ACF UI or WP-CLIregister_post_type, register_taxonomy, rewrite changes → flush permalinksblock.json / src/blocks/ changes → run build, clear editor cache## [<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.
## 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
Suggest specific edits to the existing PR description — usually:
Release: v<version> or chore(release): v<version>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.
⛔ Do not run gh pr edit or write to CHANGELOG.md until the user replies "approve" or provides edits.
On approval:
CHANGELOG.md — insert the new entry under ## [Unreleased] (move existing Unreleased content into the new version block if appropriate).plugin.json, composer.json, style.css).gh pr edit <pr-number> --title "<title>" --body "$(cat <<'EOF'\n<body>\nEOF\n)".git tag v<version> && git push --tags when ready."gh CLI)CHANGELOG.md and version files locally; the user pushes.tools
Strategist-focused site audit for discovery and pre-discovery. Given a site URL and optional qualitative research data, navigates the site via CoWork, audits against all 21 UX Laws from lawsofux.com, reviews content hierarchy, synthesises qualitative data, runs Lighthouse, and produces two deliverables — a Project Knowledge Summary (Markdown for Claude Desktop Projects) and a polished, iterable HTML Artifact for client sharing. Use when a strategist, UX lead, or PM asks for a discovery audit, UX laws audit, content hierarchy review, pre-discovery site review, "audit this site for strategy", "strategist audit", "UX audit", or pastes a site URL with discovery context. Not for developer audits — use accessibility-audit, performance-audit, or live-site-audit for those.
development
Provide story point estimation guidance with hour calculations for software development tasks. Uses Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34+) and converts story points to hours. Includes platform-specific adjustments and velocity calculations.
tools
Perform a full QA review of a Teamwork task by reading the task and all its comments for context, extracting the multi-dev URL, generating dynamic validation steps tailored to the task type, and using CoWork browser automation to execute those steps on the multi-dev environment. Produces a structured validation report with pass/fail per step, screenshots, internal notes, and a client-facing summary — all shown in chat. Use this skill whenever the user asks to QA, test, validate, or review a Teamwork task or multi-dev environment — even if they just say "can you QA this?" or paste a Teamwork link. Also triggers for phrases like "run QA on", "check the multi-dev", "validate this task", "test the dev link", or "review the ticket". Works across Drupal/CMS updates, WordPress/plugin updates, bug fixes, new feature development, and general web development tasks.
tools
Generate a client-facing project heartbeat / status update message for a Kanopi project, ready to be posted as a Teamwork message. Use this skill whenever the user asks to write, draft, generate, or send a project update, heartbeat, status update, or progress report to a client. Also triggers when the user says things like "time for a project update", "draft the heartbeat", "write up the update for [project]", or "it's been two weeks, let's send an update". Always use this skill — even if the user doesn't say "heartbeat" — whenever the intent is to summarise recent project activity for a client audience.