From everything-wp
Initialize WordPress plugin development environment with testing suite, GitHub Actions, and build scripts
How this skill is triggered — by the user, by Claude, or both
Slash command
/everything-wp:wp-plugin-dev-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill automatically sets up a complete WordPress plugin development environment.
This skill automatically sets up a complete WordPress plugin development environment.
This skill is triggered when the user says any of the following:
This skill automatically performs the following operations:
Detect Plugin Information
Configure Composer
Create Testing Environment
.circleci/, .travis.yml)Set Up GitHub Actions
Create Build Scripts
Automated Verification
In your plugin directory, tell the AI assistant:
Initialize WordPress plugin development
The skill will automatically:
.circleci/ and .travis.yml)bash .agent/skills/wp-plugin-dev-init/scripts/init.sh
After completion, the following will be created:
composer.json - Contains autoload and scriptsbin/install-wp-tests.sh - Test environment installation scripttests/ - Test files directoryphpunit.xml.dist - PHPUnit configuration.github/workflows/release.yml - CI/CD workflowscripts/build.php - Build scriptThe skill will ask for:
srcrootlocalhostTest database will be named: wordpress_test
Note: All plugins share the same test database name. Since test data is automatically cleaned up after each test run, there's no need for separate databases per plugin.
Important: The default setup uses PHPUnit 9.6 which is the recommended version for WordPress plugin testing.
"require-dev": {
"phpunit/phpunit": "^9.6",
"wp-phpunit/wp-phpunit": "^6.9",
"yoast/phpunit-polyfills": "^2.0"
}
If you need to support PHP 7.4, you must:
Limit PHPUnit version in composer.json:
"require-dev": {
"phpunit/phpunit": "^9.3",
"wp-phpunit/wp-phpunit": "^6.3",
"yoast/phpunit-polyfills": "^1.0"
}
Update PHP requirement in composer.json:
"require": {
"php": ">=7.4"
}
Rebuild dependencies:
rm -rf vendor composer.lock
composer install
| PHPUnit Version | PHP Version | yoast/phpunit-polyfills | WordPress Compatibility |
|---|---|---|---|
| ^9.3 - ^9.5 | 7.4 - 8.0 | ^1.0 | Full |
| ^9.6 | 8.0+ | ^2.0 | Full (Recommended) |
| ^10.x | 8.1+ | Not supported | Not compatible |
| ^11.x | 8.2+ | ^4.0 | Partial issues |
Note: PHPUnit 10.x is NOT supported by yoast/phpunit-polyfills. PHPUnit 11.x has compatibility issues with WordPress test suite (parseTestMethodAnnotations removed). Use PHPUnit 9.6 for best compatibility.
The generated .github/workflows/release.yml includes:
The workflow automatically includes:
permissions:
contents: write
This allows GitHub Actions to create releases and upload assets.
The workflow extracts version numbers directly from Git tags (e.g., v1.0.0) rather than parsing plugin files, ensuring consistency.
When using PSR-4 autoloading with the src/ directory, WordPress file naming rules need to be excluded. Add this to .phpcs.xml.dist:
<!-- Exclude file naming rules for PSR-4 autoloaded classes in src directory -->
<rule ref="WordPress.Files.FileName">
<exclude-pattern>/src/*</exclude-pattern>
</rule>
This allows PascalCase class file names (e.g., Bootstrap.php) required by PSR-4 instead of WordPress-style class-bootstrap.php.
PHP Version Mismatch
doctrine/instantiator is locked to version 2.0.0... requires php ^8.1SVN Command Not Found
svn: command not found during test installationbrew install svn on macOS, apt-get install subversion on Linux)GitHub Actions Permission Denied (403)
GitHub release failed with status: 403permissions: contents: write is set in the workflow fileComposer Lock File Out of Sync
composer.lock has some errorscomposer update --lock and commit the updated fileEmpty Changelog in Release
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub oberonlai/everything-wp --plugin everything-wp