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.
npx agentmods add skills/youngjaedev/my-claude-plugins/e2e-debugnpx skills add YoungjaeDev/my-claude-plugins --skill e2e-debuggit clone --depth 1 https://github.com/YoungjaeDev/my-claude-pluginsWrote 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.svg" alt="Measured on agentmods" 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 | $0.00160 | $0.02015 |
| Opus 5 | $0.00080 | $0.01007 |
| Sonnet 5 | $0.00032 | $0.00403 |
| Haiku 4.5 | $0.00016 | $0.00201 |
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.
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 traceCLI was introduced in 1.59; the subcommand set below is confirmed on 1.61. 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 toe2e-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 traceCLI used in Step 2 (npx playwright --versionto check). On older versions there is no headless trace CLI — 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 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-healeris 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 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.
- 3d 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 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.
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…
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.
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…
verify
Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.
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…
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.