Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add YoungjaeDev/my-claude-plugins/plugin install devWrote 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.
[](https://agentmods.dev/skills/youngjaedev/my-claude-plugins/e2e-debug)<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/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<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="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00202 | $0.02146 |
| Opus 5.5 | $0.00081 | $0.00858 |
| Sonnet 5.5 | $0.00040 | $0.00429 |
| Haiku 4.5 | $0.00020 | $0.00215 |
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 13d 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.
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 playwright-test-healer that e2e-setup generated (Path A); on Codex 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).
The headless
npx playwright traceCLI exists only in newer Playwright releases; probe for it (Precondition check) instead of trusting a version number. On Path A,npx playwright trace install-skillinstalls Playwright's own agent skill for it (it writes to.claude/skills/only, so it does nothing for Codex). The GUI viewernpx playwright show-trace <trace.zip>is also available if a human wants to look.
Precondition check
- Need
ghCLI 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 todev:e2e-setup. Do not demand this Claude agent file under Codex; there the bundled healer contract stands in (see Step 0). - Probe the headless trace CLI used in Step 2: run
npx playwright trace --helpand check that it printed thetracesubcommand's own usage, not the top-level help (an unknown subcommand can answer with the top-level help and exit 0). When it is missing: fall back to the GUI viewernpx playwright show-trace <trace.zip>.
Workflow
- 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 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/dev/$CHK" ] && PLUGIN_ROOT="plugins/dev" 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"/*/dev/*/ 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-healeris registered (Claude Code). Dispatch it by name (Step 3, unchanged). - Path B: named agent not registerable but a generic subagent tool is available (
Agent). Dispatch a generic subagent carrying thehealercontract from${PLUGIN_ROOT}/references/role-contracts.mdinline. - Path C: no delegation available. Run the healer role yourself per the same contract.
- Path A: named
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.
- 13d ago Changed 860a58e79a08
- 23d ago Changed 5e154fbd06af
- 25d ago Changed fbdb49f7b57d
- 1mo ago Changed · +42 tokens per session e264c4392898
- 1mo ago Changed 8f0d97a237ce
- 1mo ago Changed d3876f542766
- 2mo ago First seen · 92 lines · 160 tokens per session scan A 7a6ce2ba425e
e2e-debug is a skill published in the GitHub repository YoungjaeDev/my-claude-plugins (2 stars, last pushed today), licensed MIT. It adds 202 tokens to every session and 2,146 once invoked, about $0.0008 per session on Opus 5.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.
Other skills, from other repositories
reproduce-bug
Reproduce a reported bug in googleapis/mcp-toolbox and decide whether it is real, delivering an evidence-backed verdict: confirmed, already fixed, misconfiguration, client-side, works as intended, not reproducible, or blocked. Use whenever a maintainer asks you to reproduce, verify, confirm, or investigate a bug…
verify-omnigent
Drive Omnigent the way a user does and prove a behavior with recorded evidence, using an isolated server, runner, and mock model plus a feature map of every user entry point. Load before reproducing a user-facing bug, before claiming a fix works, or when reviewing whether a change covered every surface (session vs.…
testing-blocks
Use this when you have made AEM Edge Delivery Services code changes to blocks, scripts, or styles and need to validate them before opening a pull request. Covers unit testing for utilities and logic, browser testing with Playwright, linting, and guidance on what to test and how.
reality-verification
This skill should be used when the user asks to "verify a fix", "reproduce failure", "diagnose issue", "check BEFORE/AFTER state", "VF task", "reality check", "check test quality", "mock-only tests", or needs guidance on verifying fixes by reproducing failures before and after implementation, or detecting mock-heavy…
test-electron-app
Drive the real running PostHog Electron app (live tRPC, workspace-server, real data) over CDP with agent-browser. Connect to the running app on port 9222, test desktop changes against a local Django stack, snapshot the accessibility tree, inspect network requests, and screenshot only when explicitly asked. Use when…
debugging
Playwright test debugging conventions for the scaffold — reading failure messages, classifying failure modes (TimeoutError, ZodError, strict-mode violation, locator not found, network errors, schema drift), the playwright.config.ts capture defaults (trace on-first-retry, screenshot only-on-failure, video…