activitypub-dev-cycle
Development workflows for WordPress ActivityPub plugin including wp-env setup, testing commands, linting, and build processes. Use when setting up development environment, running tests, checking code quality, building assets, or working with wp-env.
When & Why to Use This Skill
This Claude skill streamlines the WordPress ActivityPub plugin development lifecycle by providing instant access to environment management, automated testing, and code quality tools. It simplifies complex workflows involving wp-env, PHPUnit, Playwright, and asset compilation, ensuring a consistent and efficient developer experience for contributors and maintainers.
Use Cases
- 1. Local Environment Management: Quickly start, stop, and reset WordPress development environments using wp-env to ensure a clean state for feature development.
- 2. Automated Testing & QA: Execute PHPUnit tests and Playwright E2E suites with specific filters or debugging modes to validate code changes and prevent regressions.
- 3. Code Quality & Standards: Run automated linting and formatting for PHP, JavaScript, and CSS to maintain project standards and pass pre-commit hooks effortlessly.
- 4. Build & PR Preparation: Compile production-ready assets and generate comprehensive code coverage reports to ensure high-quality submissions before creating pull requests.
| name | activitypub-dev-cycle |
|---|---|
| description | Development workflows for WordPress ActivityPub plugin including wp-env setup, testing commands, linting, and build processes. Use when setting up development environment, running tests, checking code quality, building assets, or working with wp-env. |
ActivityPub Development Cycle
Quick reference for common development workflows in the WordPress ActivityPub plugin.
Quick Reference
Environment Management
npm run env-start # Start WordPress at http://localhost:8888.
npm run env-stop # Stop WordPress environment.
Testing Commands
npm run env-test # Run all PHP tests.
npm run env-test -- --filter=pattern # Run tests matching pattern.
npm run env-test -- path/to/test.php # Run specific test file.
npm run env-test -- --group=name # Run tests with @group annotation.
npm run test:e2e # Run Playwright E2E tests.
npm run test:e2e:debug # Debug E2E tests.
Code Quality
composer lint # Check PHP coding standards.
composer lint:fix # Auto-fix PHP issues.
npm run lint:js # Check JavaScript.
npm run lint:css # Check CSS styles.
npm run format # Format all code (wp-scripts).
Building Assets
npm run build # Build for production (formatted and minified).
npm run dev # Start development watch mode.
Code Coverage
npm run env-start -- --xdebug=coverage # Start with coverage support.
npm run env-test -- --coverage-text # Generate text coverage report.
npm run env-test -- --coverage-html ./coverage # Generate HTML report.
Comprehensive Documentation
See Development Environment Setup for detailed setup instructions.
See Testing Reference for comprehensive testing guidance.
See Code Linting for linting configuration and standards.
Pre-commit Hooks
The repository uses automated pre-commit hooks (.githooks/pre-commit) that run automatically on git commit:
- Sort PHP imports - Automatically organizes use statements.
- Check unused imports - Prevents unused use statements.
- Validate test patterns - Blocks
remove_all_filters('pre_http_request'). - Run PHPCS auto-fix - Applies coding standards automatically.
- Format JavaScript - Runs wp-scripts formatter.
IMPORTANT: Hooks modify staged files automatically. Always review changes before committing. If hooks make changes, you'll need to stage them and commit again.
Setup: Hooks are installed by npm run prepare (runs automatically after npm install).
Common Development Workflows
Initial Setup
git clone git@github.com:Automattic/wordpress-activitypub.git
cd wordpress-activitypub
npm install # Also runs 'npm run prepare' to install hooks.
composer install
npm run env-start # WordPress at http://localhost:8888.
Making Changes Workflow
# 1. Make code changes.
# 2. Run relevant tests.
npm run env-test -- --filter=FeatureName
# 3. Check code quality (optional - pre-commit hook does this).
composer lint
npm run lint:js
# 4. Commit (pre-commit hook runs automatically).
git add .
git commit -m "Description"
# Hook may modify files - review and stage again if needed.
Before Creating PR
# Run full test suite.
npm run env-test
# Build assets.
npm run build
# Final lint check.
composer lint
npm run lint:js
Debugging Failing Tests
# Run with verbose output.
npm run env-test -- --verbose --filter=test_name
# Run single test file to isolate issue.
npm run env-test -- tests/phpunit/tests/path/to/test.php
# Check test groups.
npm run env-test -- --list-groups
npm run env-test -- --group=specific_group
Fresh Environment
npm run env-stop
npm run env-start
# wp-env automatically sets up WordPress with debug mode and test users.
Key Files
package.json- npm scripts and dependencies.composer.json- PHP dependencies and lint scripts..wp-env.json- wp-env configuration.phpcs.xml- PHP coding standards (custom WordPress rules)..githooks/pre-commit- Pre-commit automation.