Context
After the bug fixes in TASK-010, CI still lacks several important capabilities: PHPStan, accessibility checks, and enforcement that build artifacts are never committed to git. This task adds all of them via a new reusable workflow.
Expected Outcome
A new reusable workflow .github/workflows/rtcamp-standard.yml that any project can call:
New CI jobs:
| Job |
What it does |
| PHPStan |
Runs composer phpstan — fails on new errors |
| Pa11y |
Crawls core template pages and checks WCAG AA |
| Build artifact gate |
Fails if any file in assets/build/ is staged in the PR |
| Node caching |
Caches node_modules across all jobs |
Build artifact enforcement:
assets/build/ added to .gitignore
- CI gate blocks any PR that includes committed build artifacts
- Build is generated by CI on merge, not committed manually
Acceptance Criteria
Notes
- Playwright visual regression evaluation is out of scope for this task — decide separately.
- Pa11y runs against a live
wp-env instance; ensure the environment is spun up in CI before the check runs.
Context
After the bug fixes in TASK-010, CI still lacks several important capabilities: PHPStan, accessibility checks, and enforcement that build artifacts are never committed to git. This task adds all of them via a new reusable workflow.
Expected Outcome
A new reusable workflow
.github/workflows/rtcamp-standard.ymlthat any project can call:New CI jobs:
composer phpstan— fails on new errorsassets/build/is staged in the PRnode_modulesacross all jobsBuild artifact enforcement:
assets/build/added to.gitignoreAcceptance Criteria
.github/workflows/rtcamp-standard.ymlcreated as a reusable workflowphpstan-baseline.neonfrom TASK-003)assets/build/assets/build/added to.gitignoreNotes
wp-envinstance; ensure the environment is spun up in CI before the check runs.