e2e-debug

e2e-debug is a skill for Claude Code, Codex from YoungjaeDev/my-claude-plugins. It costs 160 tokens per session (2,015 once invoked), scanned A, original, MIT.

A workflow for investigating and repairing failed or unreliable Playwright end-to-end tests, which test complete user journeys in a browser. It retrieves CI trace files, examines what happened, and uses a healer role to repair the test or quarantine it honestly.

In plain words
What is it for?
Use it to debug failed CI runs, broken pull-request tests, flaky browser tests, and Playwright suites that need repair.
Why use it?
It turns a failed automated test into an evidence-based diagnosis instead of requiring someone to reproduce the failure manually. A trace is a recorded run that shows the browser's actions and state.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the e2e-harness plugin — 3 skills shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/youngjaedev/my-claude-plugins/e2e-debug
Any agent
npx skills add YoungjaeDev/my-claude-plugins --skill e2e-debug
Clone the repo
git clone --depth 1 https://github.com/YoungjaeDev/my-claude-plugins

Made for: Claude Code, Codex.

Or install e2e-harness, the plugin that ships this one along with the rest of its 3 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for e2e-debug

README.md
[![agentmods](https://agentmods.dev/badge/skills/youngjaedev/my-claude-plugins/e2e-debug.svg)](https://agentmods.dev/skills/youngjaedev/my-claude-plugins/e2e-debug)
Your own site
<a href="https://agentmods.dev/skills/youngjaedev/my-claude-plugins/e2e-debug"><img src="https://agentmods.dev/badge/skills/youngjaedev/my-claude-plugins/e2e-debug.svg" alt="Measured on agentmods" height="20"></a>
Per session 160 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,015 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00160 $0.02015
Opus 5 $0.00080 $0.01007
Sonnet 5 $0.00032 $0.00403
Haiku 4.5 $0.00016 $0.00201

Measured 3d ago against content hash 7a6ce2ba425e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

e2e-debug scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/e2e-harness/skills/e2e-debug/SKILL.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

E2E Debug — trace analysis + healer (close the loop)

The third leg of the harness. A CI failure is a sensor reading; this skill turns it back into a green test (or an honest quarantine), closing the planner -> generator -> healer self-improving loop.

Two runtime families, three execution paths, same bounded loop: on Claude Code the healer is the named agent e2e-setup generated (Path A); on Codex 0.135 that agent file is not registerable, so the healer runs as a generic subagent carrying the bundled contract from references/role-contracts.md (Path B), or in-agent sequentially when no delegation is available (Path C).

Verified against Playwright 1.61.0. The headless npx playwright trace CLI was introduced in 1.59; the subcommand set below is confirmed on 1.61. The GUI viewer npx playwright show-trace <trace.zip> is also available if a human wants to look.

Precondition check

  • Need gh CLI authenticated to fetch CI artifacts.
  • Path A only: confirm the named healer exists (.claude/agents/playwright-test-healer.md). If missing and you are on Claude Code, route to e2e-harness:e2e-setup. Do not demand this Claude agent file under Codex — there the bundled healer contract stands in (see Step 0).
  • Requires Playwright >= 1.59 for the headless npx playwright trace CLI used in Step 2 (npx playwright --version to check). On older versions there is no headless trace CLI — fall back to the GUI viewer npx playwright show-trace <trace.zip>.

Workflow

  1. Resolve the plugin root + pick the execution path — run once. The resolver reaches the bundled healer contract on Path B/C; the path decision governs Step 3. Tell the user which path you took in one sentence.
    # Claude exports CLAUDE_PLUGIN_ROOT; Codex 0.135 does not. Each branch verifies
    # the target (CHK) exists before committing, so a stale env falls through.
    CHK="references/role-contracts.md"
    PLUGIN_ROOT=""
    [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -e "$CLAUDE_PLUGIN_ROOT/$CHK" ] && PLUGIN_ROOT="$CLAUDE_PLUGIN_ROOT"
    [ -z "$PLUGIN_ROOT" ] && [ -e "plugins/e2e-harness/$CHK" ] && PLUGIN_ROOT="plugins/e2e-harness"
    if [ -z "$PLUGIN_ROOT" ]; then
      cache_root="${CODEX_PLUGIN_CACHE:-$HOME/.codex/plugins/cache}"
      while IFS= read -r d; do
        [ -e "$d/$CHK" ] && { PLUGIN_ROOT="$d"; break; }
      done < <(ls -1d "$cache_root"/*/e2e-harness/*/ 2>/dev/null | awk -F/ '{print $(NF-1)"\t"$0}' | sort -t. -k1,1rn -k2,2rn -k3,3rn | cut -f2- | sed 's#/$##')
    fi
    { [ -n "$PLUGIN_ROOT" ] && [ -e "$PLUGIN_ROOT/$CHK" ]; } || { echo "e2e-debug: role contracts not resolved (need $CHK)" >&2; exit 1; }
    echo "PLUGIN_ROOT=$PLUGIN_ROOT"
    
    • Path A — named playwright-test-healer is registered (Claude Code): dispatch it by name (Step 3, unchanged).
    • Path B — named agent not registerable but a generic subagent tool is available (Codex Task): dispatch a generic subagent carrying the healer contract from ${PLUGIN_ROOT}/references/role-contracts.md inline.
    • Path C — no delegation available: run the healer role yourself per the same contract.

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 92 lines · 160 tokens per session scan A 7a6ce2ba425e

Subscribe to this mod's changes

e2e-debug is a skill published in the GitHub repository YoungjaeDev/my-claude-plugins (2 stars, last pushed 8d ago), licensed MIT. It adds 160 tokens to every session and 2,015 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

use-agent-browser-for-airi

Test AIRI display-model imports with agent-browser across stage-tamagotchi Electron, stage-web, and stage-pocket mobile web layouts. Use when uploading and verifying contributor-supplied Live2D ZIP, VRM, or MMD ZIP/PMX/PMD files through AIRI's model selector, including onboarding bypass, format-specific import…

moeru-ai/airi · 87 tokens

cli-e2e-testcase-writer

Use when adding or updating Go CLI E2E coverage for one tests/clie2e/{domain} domain of the compiled lark-cli, especially when the work requires live --help or schema exploration, scenario-based clie2e.RunCmd workflows, and per-domain coverage.md maintenance.

larksuite/cli · 78 tokens

docs-build

Build, preview, and validate the Uno documentation website (DocFX) locally — surface real content errors vs expected noise, drive rendered pages with Playwright, and validate external-doc commit bumps in importexternaldocs.ps1 before a PR. Use when working under doc/, editing articles/ markdown, bumping an external…

unoplatform/uno · 97 tokens

verify

Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.

Hmbown/CodeWhale · 25 tokens

harness-test-writer

Add regression test cases to the Bifrost provider harness (the Postman collection run via make run-provider-harness-test) based on a merged PR or a GitHub issue. Fetches the PR/issue, traces the affected wire path in the codebase, checks existing harness coverage, designs cases following harness conventions, inserts…

maximhq/bifrost · 133 tokens

cli-e2e

Write, modify, or debug Docker-based Composio CLI end-to-end tests under ts/e2e-tests/cli, including binary invocation, fixture isolation, output assertions, and package manifests. Use for CLI E2E test suites only; use cli-command for CLI source implementation.

ComposioHQ/composio · 62 tokens