By iamcxa
Browser E2E testing pipeline with context-isolating subagents — map UI, run tests, walk through apps, record video
Autonomous UI element mapper. Explores web pages using agent-browser CLI and generates/updates YAML mapping files for E2E testing. Returns page inventory with elements, selectors, and unexplored areas. <example> Context: The e2e-map skill has completed codebase analysis and needs to explore a web app's UI for the first time. user: "Map UI elements:\n base_url: http://localhost:3000\n app: my-app\n auth_profile: ~/.agent-browser/my-app/\n routes: [/dashboard, /users, /settings]\n report_dir: /home/user/project/e2e-reports/20260309-150000-map\n auth_config: {type: manual, verification: {url_not_contains: '/login'}}" assistant: "Reads reference files, runs pre-flight checks, opens browser with auth profile, navigates to each route, takes snapshots and annotated screenshots, extracts interactive elements with stable selectors, generates v2 mapping YAML at .claude/e2e/mappings/my-app.yaml, identifies unexplored dialogs/modals, and returns structured summary." <commentary> The e2e-map skill dispatches this agent after gathering routes from codebase analysis. The agent receives all paths as absolute values and explores autonomously. No existing mapping means full exploration mode. </commentary> </example> <example> Context: The e2e-map skill is re-mapping a single page to update stale selectors. user: "Map UI elements:\n base_url: http://localhost:3000\n app: my-app\n auth_profile: ~/.agent-browser/my-app/\n existing_mapping_path: /home/user/project/.claude/e2e/mappings/my-app.yaml\n target_page: dashboard\n report_dir: /home/user/project/e2e-reports/20260309-160000-map\n auth_config: {type: none}" assistant: "Reads existing mapping, navigates only to the dashboard page, re-snapshots and extracts elements, merges updates into the existing mapping (preserving all other pages), and returns summary with changes." <commentary> When target_page is specified, the agent updates only that page's section in the existing mapping. This is the incremental update path — other pages are preserved byte-for-byte. </commentary> </example> <example> Context: The e2e-map skill is mapping a new app with no prior codebase analysis (browser-only discovery). user: "Map UI elements:\n base_url: http://localhost:5173\n app: admin-panel\n auth_profile: ~/.agent-browser/admin-panel/\n routes: []\n report_dir: /home/user/project/e2e-reports/20260309-170000-map" assistant: "No routes provided — enters discovery mode. Snapshots landing page, extracts navigation links from sidebar/tab bar, builds route list from discovered nav elements, explores each route one level deep, generates mapping YAML, and returns summary with discovered pages." <commentary> Empty routes list triggers discovery mode. The agent also detects auth status since no auth_config was provided — it checks for login redirects and tentatively sets auth.type based on what it finds. </commentary> </example>
Autonomous E2E flow executor. Runs browser-based test flows against web apps using agent-browser CLI. Returns structured pass/fail results with screenshots and trace recording. Operates in isolated subagent context to prevent browser data from polluting main conversation. <example> Context: The e2e-test skill has resolved a single flow YAML and its mapping, and needs to execute the test. user: "Execute E2E flow:\n flow_path: /home/user/project/.claude/e2e/flows/smoke-navigation.yaml\n mapping_path: /home/user/project/.claude/e2e/mappings/my-app.yaml\n auth_profile: ~/.agent-browser/my-app/\n base_url: http://localhost:3000\n app: my-app\n report_dir: /home/user/project/e2e-reports/20260309-143000\n headed: true" assistant: "Reads reference files and flow YAML, runs pre-flight checks, opens browser with auth profile, executes each step sequentially (snapshot -> interact -> validate expectations), captures screenshots on failure, writes report.md, and returns structured summary with pass/fail counts." <commentary> The e2e-test skill dispatches this agent for each flow+mapping pair. The agent receives all paths as absolute values and executes autonomously without needing to resolve flows or mappings. </commentary> </example> <example> Context: The e2e-test skill is running a multi-site suite and dispatches this agent for one site with session isolation enabled. user: "Execute E2E flow:\n flow_path: /home/user/project/.claude/e2e/flows/smoke-navigation.yaml\n mapping_path: /home/user/project/.claude/e2e/mappings/admin-panel.yaml\n auth_profile: ~/.agent-browser/admin-panel/\n base_url: http://localhost:5173\n app: admin-panel\n report_dir: /home/user/project/e2e-reports/20260309-143000/admin-panel\n headed: true\n suite_context: true" assistant: "Detects suite_context=true, uses --session admin-panel on all agent-browser commands for session isolation. Executes flow steps, writes per-site report, returns structured summary." <commentary> When suite_context is true, the agent uses --session to keep browser sessions separate across sites in a multi-site suite. This prevents cookie/localStorage leakage between different apps under test. </commentary> </example>
Parses agent-browser trace.zip files to extract API failures and console errors. Produces a concise trace-analysis.md summary. Runs in isolated context to keep verbose HAR/trace data out of main conversation. <example> Context: The e2e-walkthrough skill completed a walkthrough and needs trace analysis. user: "Analyze trace:\n trace_path: /home/user/project/e2e-reports/20260309-150000/trace.zip\n report_dir: /home/user/project/e2e-reports/20260309-150000" assistant: "[Extracts trace.zip, parses trace.network for HTTP 4xx/5xx failures, parses trace.trace for console errors, filters noise, writes trace-analysis.md, returns structured summary with counts]" <commentary> Agent receives absolute paths, extracts to temp dir, processes all trace files, writes analysis, cleans up temp dir. </commentary> </example> <example> Context: The e2e-test skill finished a flow execution and needs trace analysis with custom noise filtering. user: "Analyze trace:\n trace_path: /tmp/e2e-run/trace.zip\n report_dir: /tmp/e2e-run\n noise_patterns: [\"analytics.google.com\", \"sentry.io\"]" assistant: "[Extracts, parses, applies default + custom noise filters, writes trace-analysis.md showing 2 API failures and 0 console errors]" <commentary> Custom noise_patterns are merged with defaults. Noise is filtered before counting. </commentary> </example> <example> Context: Trace zip is missing trace.network (no network recording was active). user: "Analyze trace:\n trace_path: /home/user/project/e2e-reports/run-1/trace.zip\n report_dir: /home/user/project/e2e-reports/run-1" assistant: "[Extracts zip, finds no trace.network file, reports 0 API failures, parses trace.trace for console errors, writes analysis, returns clean: true]" <commentary> Agent gracefully handles missing files — reports 0 for that category instead of failing. </commentary> </example>
Use when the user explicitly invokes /e2e-dispatch or asks for the E2E operations menu without specifying a particular operation. This is a unified router — for specific operations, prefer e2e-test, e2e-map, e2e-walkthrough, or e2e-skill-ops directly.
Use when creating or updating UI element mappings for E2E testing — mapping page selectors, capturing app structure, or refreshing stale mappings. Triggers on "e2e map", "map the UI", "update mapping", "refresh mapping", "map selectors", "create mapping".
Use when debugging e2e-test/e2e-map/e2e-walkthrough failures, maintaining or adding features to these skills, or evaluating execution results against skill expectations. Triggers on "e2e skill broke", "fix e2e skill", "update e2e skill", "add feature to e2e", "e2e gap analysis", "skill drift", "e2e pipeline issue".
Use when running browser E2E tests against web apps — executing flow files, running smoke suites, testing specific features, recording test runs with video, or batch-testing across sites. Triggers on "run e2e", "browser test", "test the flow", "smoke test", "e2e test", "playwright test", "run the suite", "test this feature in browser", "record test run", "e2e video", "test with video".
Use when walking through UI flows interactively, exploring features with human guidance, or visually validating changes in a browser. Records video by default for evidence and communication. Triggers on "walkthrough", "explore this feature", "walk the UI", "step through", "browse the app", "guided e2e", "interactive walkthrough", "record walkthrough", "video walkthrough".
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Browser E2E testing pipeline for Claude Code. Maps UI elements, runs test flows, and walks through apps interactively — all with context-isolating subagents that keep browser data out of your main conversation.
/e2e-map
Creates a YAML mapping of pages, elements, and selectors in .claude/e2e/mappings/<app>.yaml.
/e2e-test <flow-name>
Executes a flow file from .claude/e2e/flows/ against the mapped UI.
/e2e-walkthrough
Human-guided browser exploration with trace recording and auto-generated flow output.
| Command | What it does |
|---|---|
/e2e-map | Create or update UI element mappings |
/e2e-test <flow> | Run a specific E2E test flow |
/e2e-test --tag smoke | Run all flows tagged with smoke |
/e2e-test --suite <name> | Run a named test suite |
/e2e-test <flow> --video | Run flow with video recording + GIF |
/e2e-test <flow> --pr 940 | Run flow, record, post results to PR |
/e2e-walkthrough | Interactive walkthrough (records by default) |
/e2e-walkthrough --smoke | Auto-generated smoke walkthrough from mapping |
/e2e-walkthrough --no-video | Walkthrough without video recording |
/e2e-dispatch | Unified entry point (routes to the right skill) |
/e2e-skill-ops | Debug, maintain, or evaluate E2E skills |
This plugin forms a self-healing cycle: Map → Test → Analyze → Repair → Re-test.
flowchart TD
A["/e2e-map<br/>Explore UI → YAML mapping"] --> B["/e2e-walkthrough<br/>Walk UI → auto-generate flow YAML"]
B --> C["/e2e-test<br/>Run flows → report"]
C --> D["trace-analyzer agent<br/>Parse trace → failures"]
D --> E{"Stale? Broken?"}
E -->|Selectors changed| F["/e2e-map --page X<br/>Repair mapping"]
E -->|Flow changed| G["Edit flow or mapping"]
F --> C
Every step feeds back into the next. A walkthrough auto-generates a reusable flow. A failing test tells you whether to update the mapping or the flow. No manual glue needed.
Tests in this pipeline are written in natural language, not code. You describe what to do, not how to locate elements.
/e2e-map
The mapper agent opens your app, explores every page, and produces a mapping YAML with semantic element names:
# .claude/e2e/mappings/my-app.yaml
pages:
login:
url_pattern: "/login"
elements:
email_input: { selector: "[data-testid='email']" }
password_input: { selector: "[data-testid='password']" }
submit_button: { selector: "button[role='button'][name='Sign In']" }
dashboard:
url_pattern: "/dashboard"
elements:
welcome_text: { selector: "[data-testid='welcome']" }
Flow files use plain English for actions and expectations:
# .claude/e2e/flows/login-flow.yaml
name: Login Flow
mapping: my-app
tags: [smoke]
steps:
- id: navigate-to-login
action: Navigate to /login
expect: email_input visible on login
- id: fill-credentials
action: Fill email_input with '[email protected]' on login
expect: email_input visible on login
- id: enter-password
action: Fill password_input with 'password123' on login
- id: submit-form
action: Click submit_button on login
expect: url contains /dashboard
- id: verify-dashboard
action: Verify welcome_text on dashboard
expect: welcome_text visible on dashboard
No CSS selectors, no XPath, no Page Object boilerplate. Just element names from your mapping + human-readable actions.
If you don't want to write YAML by hand:
/e2e-walkthrough
Walk through the app interactively. When done, the skill automatically generates a flow YAML capturing every step you performed — ready to replay with /e2e-test.
/e2e-test login-flow
The test runner resolves element names to selectors via the mapping, executes each step, validates expectations, and returns a pass/fail report.
The visual design changed (new layout, restyled buttons) but the user journey is the same. Only selectors need updating.
/e2e-map --page login
This re-explores just the login page, updates selectors in the mapping, and preserves all other pages. Your existing flow files remain untouched — they reference element names, not selectors.
Then re-run:
/e2e-test login-flow
If a few elements moved but the overall mapping is intact, a scoped walkthrough also works:
/e2e-walkthrough --page login
npx claudepluginhub iamcxa/claude-e2e-pipelineBrowser & CLI E2E testing pipeline with context-isolating subagents — map UI, generate flows, verify & test, walk through apps, record video, terminal recording for CLI-only flows
Autonomous nightly improvement — forge validation, multi-source signal discovery (journal, Sentry, E2E, git), north-star-aligned proposals and alerts
Session lifecycle & context efficiency plugin: context pressure detection, cleanup enforcement, cross-session handoff/resume, MCP context firewall, context lake cache, journal, and statusline.
One-command plugin development and quality pipeline — scaffold, TDD skills, verify agents, validate structure, doc self-iteration
Paydirt multi-agent orchestrator with Goldflow execution engine
Simplified CLI-integrated plugin for E2E testing with essential slash commands plus dynamic API CLI workflows (`qa-use api`). Provides AI-first feature verification, browser automation, and test management. All CLI operations documented in SKILL.md and accessible via `qa-use docs` for harness compatibility.
Playwright E2E test debugging and interactive browser exploration. Runs tests with action capture (DOM snapshots, network, console, screenshots), diagnoses failures, and provides browser tools for navigating, clicking, and inspecting pages through ARIA snapshots.
Run E2E browser tests using natural language test definitions powered by Claude Code SDK and agent-browser with video recording
End-to-end test automation with Playwright, Cypress, and Selenium for browser-based testing
End-to-end test execution and recording for web applications
Three specialized agents (planner, generator, healer) and shared skills for Playwright E2E testing with Page Object Model pattern