wp-admin-browser
Use when a WordPress admin panel needs real browser interaction via Chrome DevTools MCP — logging in, navigating admin menus,…
Use when bumping a WordPress plugin version or cutting a release — syncing version across all sources: plugin header (Version: X.Y.Z), version constant (define MY_PLUGIN_VERSION), readme.txt (Stable tag + Changelog + Upgrade Notice), CHANGELOG.md, and .pot Project-Id-Version;
Claude Code
$ npx -y skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release --agent claude-code
Codex
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a codex -y
Cursor
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a cursor -y
Gemini CLI
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a gemini-cli -y
GitHub Copilot
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a github-copilot -y
OpenCode
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a opencode -y
Windsurf
$ npx skills add mralaminahamed/wp-dev-skills --skill wp-plugin-release -a windsurf -y
name: wp-plugin-release description: "Use when bumping a WordPress plugin version or cutting a release — syncing version across all sources: plugin header (Version: X.Y.Z), version constant (define MY_PLUGIN_VERSION), readme.txt (Stable tag + Changelog + Upgrade Notice), CHANGELOG.md, and .pot Project-Id-Version; following semver (major/minor/patch) rules; running pre-release checks (composer lint / analyze / test, grep for stale version strings); creating a git tag; and deciding what NOT to bump (DB schema version, historical changelog entries). Triggers: \"release version 1.2.3\", \"bump the version\", \"update the changelog\", \"sync version numbers\", \"prepare the release\", \"tag this version\", \"version is out of sync\", \"update Stable tag\", \"what needs to change for a release\", \"changelog entry\", \"update readme.txt version\", \"bump to 2.0.0\", \"Version header in plugin file\", \"define MY_PLUGIN_VERSION\", \"semver patch vs minor vs major\", \"Project-Id-Version in POT\", \"grep for old version strings\", \"git tag for release\", \"Upgrade Notice section\", \"what to bump vs not bump\". Not for: WP.org SVN deploy or first-time submission — use `wp-org-submission`."
> **Model note:** Mechanical file edits — works well on `haiku`. No reasoning across ambiguous code; all sources are explicit (header, constant, readme.txt, changelog).
Bump a WP plugin version coherently. Prevents the classic drift where the plugin header says one version, the `readme.txt` `Stable tag` another, and the `.pot` a third.
**Not for:** WP.org SVN deploy (trunk/tags/assets push) — use `wp-org-submission`. First-time plugin submission to the WP.org directory — use `wp-org-submission`.
git tag # any release tags? gh release list # any published releases? grep -n "Version:" *.php # plugin header grep -n "_VERSION'" *.php # version constant grep -n "Stable tag" readme.txt
If header/constant/Stable-tag disagree, that drift IS the problem — pick the target version and sync all of them. Choose the bump by semver: new backward-compatible features → minor; fixes only → patch; breaking → major. Internal-only refactors (dir rename) don't force a major.
1. **Plugin header** `* Version: X.Y.Z` (main plugin file). 2. **Version constant** `define( 'PLUGIN_VERSION', 'X.Y.Z' )`. 3. **`readme.txt` `Stable tag: X.Y.Z`** — and `Tested up to` / `Requires PHP` if they changed. 4. **`readme.txt` Changelog** — add a `= X.Y.Z =` block listing what shipped (security, features, fixes), grouped. 5. **`readme.txt` Upgrade Notice** — add `= X.Y.Z =` one-liner (why upgrade). 6. **`.pot`** — regenerate so `Project-Id-Version` matches and new strings are captured:
composer makepot # or: wp i18n make-pot . languages/<slug>.pot --exclude=...
composer lint && composer analyze && composer test grep -rn "X\.Y\.Z\|<old version>" --include=*.php --include=readme.txt . # confirm sync, spot stragglers
Then commit (`docs:`/`chore:` for a pure version+readme bump), and ship via the repo's contribution flow (branch → PR → merge; never squash if the repo says so).
Covers the complete WordPress plugin development lifecycle — build, test, audit, release, and ship to WP.org — for Claude Code, Gemini CLI, Cursor, Windsurf, Cline, Codex, GitHub Copilot, opencode, and more.
Use when a WordPress admin panel needs real browser interaction via Chrome DevTools MCP — logging in, navigating admin menus,…
Use when a WordPress plugin needs to run work outside the HTTP request cycle — scheduling async or recurring jobs with Action…
Use when setting up, configuring, or debugging the JavaScript/CSS build pipeline for a WordPress plugin — @wordpress/scripts,…
Use when a pull request has QA failures, a \"Testing Failed\" label, or QA comments reporting broken features — reading QA…
Use when setting up PHPCS with WordPress Coding Standards (WPCS), configuring phpcs.xml.dist, running phpcs/phpcbf, fixing sniff…
Use when a WordPress plugin needs a custom database table — creating with dbDelta (strict SQL format: two spaces before PRIMARY…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.