| name | e2e |
| description | Run a basic E2E behavioral probe — one primary scenario smoke test for the grooming step. |
E2E SKILL — Basic tier
Config
This skill targets wp-media/wp-rocket:
E2E_URL = http://localhost:8888
E2E_BOOT = bash bin/dev-up.sh
E2E_SETTINGS = http://localhost:8888/wp-admin/options-general.php?page=wprocket
The local WordPress environment is at http://localhost:8888 (admin / password). Boot
or restart it with bash bin/dev-up.sh.
This skill provides a single behavioral probe using the Playwright MCP and curl. WP Rocket
does not commit Playwright specs — this skill never writes, commits, or publishes test
artifacts. It exists only to verify one primary scenario quickly.
Basic tier — behavioral probe
Purpose: behavioral verification and smoke tests. Fast enough to fit inside a planning
agent's execution window.
Invoker:
grooming-agent — verify behavioral assumptions about the current system before
writing the spec. Use to confirm: does the current feature behave as described in the
issue? What does the current API or AJAX endpoint return for the scenario being changed?
Anti-rationalization table
| You'll be tempted to say | Why you can't |
|---|
| "The environment probably isn't up, I'll skip" | Run bash bin/dev-up.sh. It's idempotent. If it fails, log SKIP with the reason — do not silently omit the step. |
| "The change is backend-only, no need to smoke it" | The primary happy path must be verified. A backend change with no observable behavior change still needs a confirming assertion. |
| "I already read the code, I know it works" | "Seems right" never closes a task. Run the scenario. |
| "One scenario is too slow for this stage" | Basic tier is exactly one primary scenario. The cost is acceptable. |
Process
-
Boot the environment (idempotent — safe to run if already up):
bash bin/dev-up.sh
If the script exits non-zero, set status: "SKIP", note the reason, and do not block
the pipeline.
-
Run the primary happy path scenario from the spec or grooming plan.
Backend / AJAX / REST:
curl -s -X POST http://localhost:8888/wp-admin/admin-ajax.php \
-H "Cookie: $(cat .wp-session-cookie 2>/dev/null)" \
-d 'action=<action>&nonce=...'
curl -sI http://localhost:8888/ | grep -E '(x-cache|cf-cache)'
Browser (settings page, dashboard notices, interactive UI):
Use the Playwright MCP directly for the basic-tier smoke:
mcp__playwright__navigate({ url: "http://localhost:8888/wp-login.php" })
# login
mcp__playwright__fill({ selector: "#user_login", value: "admin" })
mcp__playwright__fill({ selector: "#user_pass", value: "password" })
mcp__playwright__click({ selector: "#wp-submit" })
# primary scenario
mcp__playwright__navigate({ url: "http://localhost:8888/wp-admin/options-general.php?page=wprocket" })
mcp__playwright__snapshot({})
# Inspect snapshot output to confirm expected element/text is present
Take at most 1–2 screenshots if helpful, but do not publish them.
-
Report:
{
"status": "PASS|FAIL|SKIP",
"scenarios_tested": ["Settings page loads without errors after enabling X option"],
"details": "Logged in as admin, navigated to the WP Rocket settings page, confirmed no JS console errors and X toggle present"
}
SKIP: bash bin/dev-up.sh failed or environment unreachable. Record reason. Do not
block the pipeline.
Boundaries
- Do: verify the one primary scenario from the spec or grooming plan
- Do: probe current-system behavior (grooming-agent only) when an assumption needs verification
- Do not: cover all acceptance criteria — that belongs to the
qa-engineer + e2e-qa-tester path
- Do not: write, commit, or publish Playwright specs — WP Rocket does not commit Playwright specs
- Do not: publish screenshots
Project-specific notes