بنقرة واحدة
e2e
Run E2E smoke tests (basic) or full acceptance + regression suite (extended).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Run E2E smoke tests (basic) or full acceptance + regression suite (extended).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generate a bespoke issue-workflow for any target project. Phase 1 — a Claude Opus analyst reads the project deeply and produces a disposition report. Phase 2 — on approval, parallel writer agents transplant every Maestro workflow component, adapted to the target project's actual stack, test runner, dev environment, and conventions. Use when a project needs its own self-contained issue-workflow without taking a direct dependency on Maestro.
Show the Maestro command map — a quick reference to all available skills.
Adversarially review a grooming spec before implementation starts. Finds hidden risks, unvalidated assumptions, and missing dependencies. Standalone entry point for the challenger agent.
Run QA validation on a pull request — boots the local environment, tests acceptance criteria, and optionally posts the report as a PR comment. Standalone entry point for the qa-engineer agent.
Run a lead code review on the current branch or a given PR. Standalone entry point for the lead-reviewer agent.
Groom a single GitHub issue — produce an implementation spec and optionally post the grooming summary as a GitHub comment. Standalone entry point for the grooming-agent.
| name | e2e |
| description | Run E2E smoke tests (basic) or full acceptance + regression suite (extended). |
Read .claude/maestro.json to resolve project-specific values:
{TEMP_ROOT} = .ai.temp_root{REPO} = .ai.repo{SLUG} = .ai.slug{E2E_URL} = .ai.e2e.local_url{E2E_BOOT} = .ai.e2e.boot_cmd{E2E_SETTINGS} = .ai.e2e.settings_path{E2E_CI} = .ai.e2e.ci_integrationThis skill provides end-to-end test execution at two tiers. The tooling is the same (Playwright MCP + curl + WP-CLI); the difference is scope and depth.
The local WordPress environment is at {E2E_URL} (admin / password). Boot
or restart it with {E2E_BOOT}.
Purpose: behavioral verification and smoke tests. Fast enough to fit inside a planning agent's execution window.
Invokers:
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?| You'll be tempted to say | Why you can't |
|---|---|
| "The environment probably isn't up, I'll skip" | Run {E2E_BOOT}. 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. |
Boot the environment (idempotent — safe to run if already up):
{E2E_BOOT}
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:
# Public REST or AJAX
curl -s -X POST {E2E_URL}/wp-admin/admin-ajax.php \
-H "Cookie: $(cat .wp-session-cookie 2>/dev/null)" \
-d 'action=<action>&nonce=...'
# Cache headers
curl -sI {E2E_URL}/ | grep -E '(x-cache|cf-cache)'
# WP-CLI inside the dev environment
bin/wp <command>
Browser (settings page, dashboard notices, interactive UI):
Use the Playwright MCP directly for basic-tier smoke. Do not delegate to
e2e-qa-tester at this tier (that is the extended tier path):
mcp__playwright__navigate({ url: "{E2E_URL}/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: "{E2E_SETTINGS}" })
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 at this tier.
Report:
{
"status": "PASS|FAIL|SKIP",
"scenarios_tested": ["Settings page loads without errors after enabling X option"],
"details": "Logged in as admin, navigated to {E2E_SETTINGS}, confirmed no JS console errors and X toggle present"
}
SKIP: {E2E_BOOT} failed or environment unreachable. Record reason. Do not block
the pipeline.
e2e-qa-tester)Purpose: full acceptance criteria coverage, regression testing, edge cases, visual comparison, and Playwright spec authoring with screenshot evidence.
Invoker: qa-engineer only.
Execution: the qa-engineer agent delegates browser flows to the e2e-qa-tester
sub-agent, which handles Playwright MCP driving, temporary spec authoring under
.e2e-temp/, screenshot publishing via the commit-SHA method, and clean-up.
The qa-engineer agent itself handles:
For details, read:
.claude/agents/qa-engineer.md — strategy selection and report format.claude/agents/e2e-qa-tester.md — browser flow execution, spec authoring, screenshot publishingThe extended tier writes Playwright specs to .e2e-temp/ (gitignored, never committed when {E2E_CI} is false)
and screenshots to .e2e-screenshots/. Screenshots are published to a public GitHub Gist (gh gist create --public) to get permanent, publicly accessible raw URLs — no commits to the PR branch. Gist raw URLs never 404 in PR comments, unlike commit-SHA-based URLs.
| Invoker | Tier | Purpose |
|---|---|---|
grooming-agent | Basic | Verify a behavioral assumption before writing the spec |
qa-engineer | Extended | Full acceptance criteria + regression + screenshots |
{E2E_BOOT} is idempotent. Always run it before testing — don't pre-check whether the environment is up.admin / password.{E2E_SETTINGS}.curl -s -o /dev/null -w "%{http_code}" {E2E_SETTINGS}
{E2E_CI} is true, the project maintains a permanent E2E suite — e2e-qa-tester will commit spec files rather than delete them.