원클릭으로
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 직업 분류 기준
| 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.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.