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 skills add jdanigo/hydraia --skill e2e-testinggit clone --depth 1 https://github.com/jdanigo/hydraiaWrote 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/jdanigo/hydraia/e2e-testing)<a href="https://agentmods.dev/skills/jdanigo/hydraia/e2e-testing"><img src="https://agentmods.dev/badge/skills/jdanigo/hydraia/e2e-testing/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/jdanigo/hydraia/e2e-testing"><img src="https://agentmods.dev/badge/skills/jdanigo/hydraia/e2e-testing.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.00000 | $0.01064 |
| Opus 5 | $0.00000 | $0.00532 |
| Sonnet 5 | $0.00000 | $0.00213 |
| Haiku 4.5 | $0.00000 | $0.00106 |
Grade A, and why
e2e-testing 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 today.
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 — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
E2E Testing — critical flows, stable and honest
Playbook for functional end-to-end tests. The e2e-runner agent does the writing; this skill is the pattern set it follows.
Page-object model
- One class/module per page or major component: selectors + actions live there, tests read as user intent (
await loginPage.signInAs(user)), not selector soup. - Tests assert outcomes; page objects encapsulate how.
Fixtures and isolation
- Each test owns its data and starts from a known state (seeded via API/fixtures, not by clicking through setup). No test depends on another's side effects or ordering.
- Auth via storage-state reuse (log in once, reuse the session) rather than logging in through the UI every test.
Network discipline
- Stub third-party/flaky externals; hit your own backend for real where the journey demands it. Be explicit about which.
waitForResponse/route interception over sleeps.
Artifacts and CI
- Capture trace + screenshot + video ON FAILURE only (cost). Upload as CI artifacts.
- CI: shard across workers for speed; retries allowed ONLY with a report that surfaces the retried specs (so flake stays visible, not buried).
- The critical-flow subset is the gate; the full suite can be broader.
Browser binaries — never assumed present
Never assume Playwright/Cypress browser binaries are already on the machine. hooks/doctor.sh --install-e2e --yes installs the binary for whichever framework the repo already uses (detected from playwright.config.*/cypress.config.* — it never picks a framework for you), cross-platform (macOS, Linux, Windows-via-WSL), no sudo. The e2e-runner agent runs this before every suite in both implement and verify mode. If it comes back missing, that's an environment gap (or, on Linux, missing system libraries that need install-deps and sudo) — report it plainly, never silently skip the gate.
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.
- today Changed · +28 lines 4cce05eda718
- 8d ago First seen · 41 lines · 0 tokens per session scan A 1dffbafbc06a
e2e-testing is a skill published in the GitHub repository jdanigo/hydraia (8 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,064 tokens. 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-09-03.
Other skills, from other repositories
write-e2e
Generate Playwright E2E tests from codebase analysis. Discovers routes, scores user flows by criticality, writes .spec.ts files that assert causality, and reports what was actually proven: GENERATED, STATICCHECKED, VERIFIEDLOCAL or VALIDATEDLIVE. Modes: --scope , --flow , --output , --base-url , --max-flows N, --live…
test-conversion-reviewer
Reviewer for converting unit tests to browser tests for Project Bedrock. Invoke this when the user needs to review their work while removing complex Browser dependencies from tests.
test-site
Tests a deployed, activated Power Pages site at runtime using browser-based navigation, page crawling, and API request verification via Playwright. Use when the user wants to test, verify, or smoke-test their deployed site.
qa
Browser-based QA verification. Launches a real browser, navigates the app, clicks buttons, fills forms, and tests user flows. Works as a standalone skill or as a phase end condition in campaigns. Requires Playwright (optional dependency, graceful skip if not installed).
11-browser-qa
Run post-review browser QA and produce short named videos for a locked happy path and sourced browser edge cases. Use when the user wants concise reviewer evidence for a web journey. Not for API, CLI, automated tests, diff review, or application fixes.
selectors
Selector strategy, exploration-first workflow, locator priority order (getByRole then getByLabel then getByPlaceholder then getByText then getByTestId), and feedback/validation-message selector rules for Playwright page objects. Use when creating page objects, writing or updating locators, generating UI tests, or…