Releases: JUVOJustin/wordpress-plugin-boilerplate
Release list
v2.2.0
Overview
This 2.2.0 release extends the boilerplate's public extension surface — a companion-plugin load handshake and an MCP exposure hook for abilities — alongside setup, packaging, and test-coverage fixes. As with previous releases, the boilerplate placeholders intentionally remain at 1.0.0; cloned plugins start there and use their own release pipeline for version fields.
What Changed
- Added a companion-plugin load handshake: a
demo_plugin_loadedaction fired onplugins_loaded(priority 0) after bootstrap wiring, plus a globalDEMO_PLUGIN_VERSIONconstant mirroringDemo_Plugin::PLUGIN_VERSIONfor cheapdefined()/version_compare()gating. Both tokens rewrite to the plugin's own identity during setup. Newdocs/companion-plugins.mdx. - Added MCP (Model Context Protocol) exposure configuration to abilities via a new
Ability_Interface::get_mcp(): arraymethod, registered verbatim as the ability'smeta.mcpfor the WordPress MCP Adapter. Returns an array (array{public?: bool}, PHPStan-enforced) so future MCP options extend the shape rather than the interface. - Added generic, zero-maintenance registration regression tests:
BlockRegistrationTestasserts every built block is reported by/wp/v2/block-typesand that itsblock.jsonfile:assets exist;AbilityRegistrationTestdiscovers everyAbility_Interfaceimplementation by reflection and asserts each ability and its category are registered. Both survive the setup rename and skip cleanly when no primitives exist. - Setup now renames and rewrites translation files:
languages/{slug}.potand{slug}-{locale}.(po|mo|json|l10n.php)are renamed to the new slug, and POT headers/source references (X-Domain,Project-Id-Version, support URL,#:refs) are rewritten to the new plugin identity. Previously the orphaned placeholder translation files were left behind and never loaded. - Made the Strauss download fail cleanly on HTTP errors by passing
curl -f, while preserving the existing PHAR age check. - Fixed setup namespace default generation.
- Initialized plugins now add
.agents/to.gitignoreduring setup cleanup; downstream agent skills are documented asnpx skills-managed rather than committed files, and upgrade guidance no longer treats.agents/skillsas boilerplate source. - Refined the
wp-plugin-bpupgrade workflow docs into explicit upgradable parts and clarified the work-with-AI guidance for refreshing agent skills from upstream conventions.
Breaking Changes and Migration Notes
Ability_Interfacegains a requiredget_mcp(): arraymethod. Plugins that already implementAbility_Interface(abilities support shipped in 2.0.0) must add this method when adopting this change, or PHP will fatal on the unimplemented interface method. Return an empty array ([]) to keep the ability off the MCP adapter, or['public' => true]to expose it. Newly generated plugins are unaffected.- No other WordPress runtime breaking changes were identified for generated plugins.
Included Pull Requests
- #186 Fix Strauss download failure handling
- #188 Refine AI upgrade workflow docs
- #190 Ignore installed agent skills after setup
- #191 Add companion-plugin load handshake and version constant
- #192 Add registration regression tests for blocks and abilities
- #193 Rename and rewrite translation files during plugin setup
- #194 Add MCP exposure config to Ability_Interface
2.1.0
Overview
Demo Plugin 2.1.0 focuses on developer workflow, testing, packaging, and release automation. The boilerplate plugin placeholders intentionally remain at 1.0.0; cloned plugins start there and use their own release pipeline for version fields.
What Changed
- Added global
$andjQueryaliases through webpackProvidePlugin, with bundling docs and entry-point examples. - Preserved
@wordpress/scriptsauto-discovered block entries when custom webpack entries are configured. - Extracted setup replacement logic into a reusable
plugin-replace.phphelper and added support for renaming already-customized plugins by passing source plugin values. - Added minimal wp-env PHPUnit application-test scaffolding,
npm run test:php, test plugin dependency mapping, and Action Scheduler testing guidance. - Reorganized documentation into a Starlight-friendly structure with dedicated guides for GitHub Actions, testing, wp-env, i18n, ACF, Sentry, Action Scheduler, bundling, abilities, and AI workflows.
- Consolidated AI-agent workflow support into the
wp-plugin-bpskill and stopped shipping repo-only agent assets in generated Composer projects. - Added optional setup guidance for installing the standardized agent skill with
npx skills add https://github.com/JUVOJustin/wordpress-plugin-boilerplate --skill=*. - Added
context7.jsonto the source project and setup cleanup so initialized plugins do not keep boilerplate-only Context7 config. - Updated
@wordpress/envto 11.7.0 and@wordpress/scriptsto 32.1.0, and pinned wp-env containers to PHP 8.1 for WP-CLI i18nmake-phpsupport. - Updated CI actions to Node.js 24-compatible versions and improved Composer cache invalidation by including
composer.jsonin PHP cache keys. - Fixed release workflow behavior for downstream plugins, including prerelease/latest metadata, stable version persistence, and branch-targeted version commits.
- Fixed distribution issues by anchoring
.distignorepatterns to the repository root, pinningdist-archive-command, and resolving a broken skill-reference symlink.
Breaking Changes and Migration Notes
- No WordPress runtime breaking changes were identified for generated plugins.
- AI workflow assets changed: legacy repo-local
.opencodecommands and separate boilerplate/translation skills are no longer shipped in generated Composer projects. Install the current standardized skill withnpx skills add https://github.com/JUVOJustin/wordpress-plugin-boilerplate --skill=*. - Composer no longer provides WP-CLI for i18n commands. Run
composer run i18n:extractandcomposer run i18n:compilein an environment wherewp i18nis available, such asnpm run env:cli composer run i18n:compile. - Test plugin dependencies now use
tests/setup/plugins/mapping. Place premium or private plugin dependencies there, or configure installer paths intests/composer.json.
Included Pull Requests
- #164 feat: add jQuery global aliases via webpack.ProvidePlugin
- #165 refactor: extract replacement logic into shared boilerplate-replace.php script
- #167 fix: preserve wp-scripts auto-discovered block entries in webpack config
- #169 fix: anchor .distignore patterns to root to prevent vendor exclusions
- #172 fix broken symlink in plugin-translations-update skill references
- #174 fix deploy workflow: branch-targeted version commits, prerelease handling, and dedicated CI/CD docs
- #176 docs: restructure README with MDX components and reorganize integration docs
- #178 add minimal wp-env PHPUnit application test scaffolding and developer-oriented docs
- #179 feat(boilerplate-replace): accept source strings to support renaming already-customized plugins
- #180 fix: rely on environment WP-CLI for i18n commands
- #181 fix(ci): include composer.json in PHP cache key hash
- #182 fix(ci): upgrade actions to Node.js 24 compatible versions
- #183 refactor test dependencies and improve plugin path handling
- #184 update AI skill setup packaging
- #185 update wp-env tooling and PHP runtime
2.0.0
Added
- Full i18n support across PHP, JS, and blocks with extraction and build workflows.
- Translation agent skill to automate translations and build files in wp-env during releases via GitHub Actions.
- Block scaffolding and auto-registration with
npm run create-block. - Boilerplate sync agent skill to keep local plugins aligned with upstream updates.
- Typed Abilities API quick start via
Loader::add_ability()for capability registration. - Agent skills cloning command to pull WordPress agent skills, including the PHPStan skill.
- Opencode
/qa-runcommand to auto-fix PHPCS, PHPStan, and wp-scripts issues.
1.1.0
What's Changed
- Replace bud .js with wp-scripts by @JUVOJustin in #143
Full Changelog: 1.0.28...1.1.0
1.0.28
What's Changed
- Remove setup cli after setup by @JUVOJustin in #141
- AI rules improvements
Full Changelog: 1.0.27...1.0.28
1.0.27
What's Changed
- Switch from copilot instructions to more generic AGENTS.md
- Improve rule inclusion of
/rule-upsertopencode command by @JUVOJustin in #140
Full Changelog: 1.0.26...1.0.27
1.0.26
What's Changed
- Update deploy.yml by @JUVOJustin in #134
- Add Copilot Setup Steps workflow for reliable dependency installation by @Copilot in #136
- Use wp-cli dist-archive for plugin deployment with proper PHP setup and build testing by @Copilot in #139
- Add opencode commands support
New Contributors
- @Copilot made their first contribution in #136
Full Changelog: 1.0.25...1.0.26
1.0.25
1.0.24
What's Changed
- Replace i18n class by @JUVOJustin in #132
- Exclude ai rules from plugin deployment by @JUVOJustin in #133
Full Changelog: 1.0.23...1.0.24
1.0.23
What's Changed
- Upgrade to phpstan 2 by @JUVOJustin in #129
- Improve strauss autoloading by @JUVOJustin in #130
- Update strauss daily by @JUVOJustin in #131
Full Changelog: 1.0.22...1.0.23