Boilerplate Update Skill
Update WordPress plugins to the latest plugin-boilerplate features.
User Confirmation Rules
ASK for confirmation before:
- •Replacing or significantly restructuring files (Loader.php, main plugin class)
- •Changing build tools or asset pipeline
- •Modifying CI/CD workflows
- •Adding new architectural patterns (Abilities API, Blocks)
- •Deleting resources belonging to plugin features
Proceed without confirmation for:
- •Updating dependency versions
- •Adding/renaming scripts with equivalent functionality
- •Syncing QA config files
- •Copying .opencode commands/skills
Workflow
- •
Clone fresh boilerplate for comparison:
bashgit clone --depth 1 https://github.com/JUVOJustin/wordpress-plugin-boilerplate.git ./tmp/boilerplate-ref
- •
Use one subtask/subagent per key area. Delegate comparison using
diffagainsttmp/boilerplate-ref/ - •
Present findings to user, categorized by confirmation requirement
- •
Apply changes incrementally
- •
Cleanup:
rm -rf tmp/boilerplate-ref
Documentation Reference
The boilerplate includes detailed docs at tmp/boilerplate-ref/docs/:
| File | Covers |
|---|---|
abilities.md | Abilities API interfaces, category/ability creation, Loader registration |
bundeling.md | wp-scripts bundling, entry points, asset enqueueing, localization |
i18n.md | Translation workflow, extract/compile scripts, JSON translations, caveats |
create-blocks.md | Block scaffolding, auto-registration via manifest, editor style sharing |
wp-env.md | Docker-based dev environment, script structure, CI/CD usage |
acf-json-sync.md | ACF field group JSON storage patterns |
work-with-ai.md | AI integration: commands, skills, AGENTS.md, Automattic skills |
Read these docs for implementation details. This skill only provides high-level guidance.
Key Areas to Compare
1. PHP (composer.json & QA)
Compare: diff composer.json tmp/boilerplate-ref/composer.json
See docs for details: i18n.md, bundeling.md
Key items:
- •
wp-cli/i18n-command- Translation extraction/compilation - •Scripts:
i18n:extract,i18n:compile,phpstan,phpcs,phpcbf - •Strauss config in
extra.straussfor namespace prefixing - •QA config files:
phpcs.xml,phpstan.neon
2. JS & Bundling (package.json, webpack.config.js)
Compare:
- •
diff package.json tmp/boilerplate-ref/package.json - •
diff webpack.config.js tmp/boilerplate-ref/webpack.config.js
See docs for details: bundeling.md, wp-env.md, create-blocks.md
Key items:
- •
@wordpress/scripts- Bundling, linting, formatting - •
@wordpress/env- Containerized WordPress for dev/CI - •Scripts:
start,build(with--blocks-manifest),lint:*,format,create-block,env:* - •QA config:
.eslintrc
3. GitHub Actions (.github/workflows/)
Compare: diff -r .github/workflows tmp/boilerplate-ref/.github/workflows
- •
setup.yml- Reusable workflow with dependency caching - •
test-analyse.yml- PHPStan, PHPCS, JS linting on push - •
deploy.yml- Release automation, translation compilation via wp-env
4. Loader.php
Compare: diff src/Loader.php tmp/boilerplate-ref/src/Loader.php
New methods:
- •
add_shortcode($tag, $component, $callback) - •
add_cli($name, $instance, $args) - •
add_ability($ability_class)- Categories auto-register
5. Main Plugin Class
Compare: diff src/*.php tmp/boilerplate-ref/src/Demo_Plugin.php
New patterns:
- •
enqueue_entrypoint($entry)- Seetmp/boilerplate-ref/docs/bundeling.md - •
register_blocks()- Seetmp/boilerplate-ref/docs/create-blocks.md
6. i18n Workflow
Scripts: i18n:extract (creates .pot, updates .po) and i18n:compile (generates .mo, .json, .php)
See tmp/boilerplate-ref/docs/i18n.md for workflow, caveats, and AI command.
7. Abilities API (WordPress 6.9+)
See tmp/boilerplate-ref/docs/abilities.md for interface reference and examples.
Key pattern: $this->loader->add_ability(Abilities\My_Ability::class)
8. .opencode/ Configuration
Compare: diff -r .opencode tmp/boilerplate-ref/.opencode
See tmp/boilerplate-ref/docs/work-with-ai.md for AI integration details.
Sync strategy:
- •Add new items from upstream
- •Update existing (ask user if diff is significant)
- •Ask user before removing local-only items
- •Adapt text domain and paths after copying
- •Remove redundant skills/commands if upstream now includes them or they are possibly renamed
9. File Control files
Compare:
- •
diff .distignore tmp/boilerplate-ref/.disignore - •
diff .gitignore tmp/boilerplate-ref/.gitignore
String Replacement
| Placeholder | Replace With |
|---|---|
demo-plugin | Plugin slug (lowercase, hyphens) |
Demo_Plugin | Namespace (PascalCase, underscores) |
DEMO_PLUGIN | Constant prefix (UPPERCASE, underscores) |
Verification
- •Ran
composer install && npm installafter changes - •Ran
npm run buildafter changes - •Ran
composer phpstan && composer phpcsafter changes - •Ran
npm run lint:js && npm run lint:styleafter changes - •Validate
setup.phpas well as its cli and composer command are removed - •Validate all content wrapped with
<!-- BOILERPLATE-DOCS-START -->comments is deleted - •All
demo-plugin,Demo_Plugin, andDEMO_PLUGINstrings are replaced appropriately - •Test plugin functionality