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 joaoguirunas/team-os --skill testing-playwright-e2egit clone --depth 1 https://github.com/joaoguirunas/team-osWrote 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/joaoguirunas/team-os/testing-playwright-e2e)<a href="https://agentmods.dev/skills/joaoguirunas/team-os/testing-playwright-e2e"><img src="https://agentmods.dev/badge/skills/joaoguirunas/team-os/testing-playwright-e2e/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/joaoguirunas/team-os/testing-playwright-e2e"><img src="https://agentmods.dev/badge/skills/joaoguirunas/team-os/testing-playwright-e2e.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.00083 | $0.02016 |
| Opus 5.5 | $0.00033 | $0.00806 |
| Sonnet 5.5 | $0.00017 | $0.00403 |
| Haiku 4.5 | $0.00008 | $0.00202 |
Grade A, and why
testing-playwright-e2e 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 1mo 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 — 185 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Playwright E2E Best Practices
Skill de testes end-to-end destilada do playwright-best-practices da Currents.dev. Usada por dev-qa e sites-qa (test design, gates de qualidade), dev-dev-delta e sites-dev-delta (hardening, caça a flakiness) e pelos implementers ao entregar testes junto com stories. Complementa dev-testing-strategy (pirâmide de testes) — esta skill cobre a camada E2E.
1. Locators (a fundação)
1.1 — Priority order: getByRole > getByLabel > getByPlaceholder > getByText > getByTestId > CSS/XPath (last resort).
// ❌ brittle — breaks on any DOM/style refactor
page.locator('.btn-primary > span')
page.locator('div:nth-child(3) button')
// ✅ resilient — tied to user-visible semantics
page.getByRole('button', { name: 'Submit order' })
page.getByLabel('Email address')
page.getByTestId('checkout-total') // when semantics don't identify it
1.2 — Locators are lazy and auto-retrying. Define once, reuse; never cache element handles (elementHandle is a legacy API).
1.3 — Filter and chain instead of complex selectors:
page.getByRole('listitem').filter({ hasText: 'Product A' }).getByRole('button', { name: 'Add' })
2. Assertions & Waiting (a causa nº 1 de flakiness)
2.1 — Use web-first assertions — they auto-wait and retry:
// ❌ reads state once, races the app
expect(await page.locator('.status').textContent()).toBe('Done')
// ✅ retries until timeout
await expect(page.getByTestId('status')).toHaveText('Done')
2.2 — NEVER page.waitForTimeout(). Hard sleeps are the top flakiness source and slow the suite. Wait for a condition instead:
// ❌ await page.waitForTimeout(3000)
// ✅
await expect(page.getByRole('alert')).toBeVisible()
await page.waitForURL('**/dashboard')
await page.waitForResponse(r => r.url().includes('/api/orders') && r.ok())
2.3 — Assert user-visible outcomes, not implementation (URL, visible text, enabled state — not internal store values).
2.4 — Signal-then-act: when a click triggers a request you need to await, register waitForResponse BEFORE the click:
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.
- 1mo ago Changed db9c7d5ccc84
- 2mo ago First seen · 185 lines · 83 tokens per session scan A 2a60fe0d83b4
testing-playwright-e2e is a skill published in the GitHub repository joaoguirunas/team-os (6 stars, last pushed 4d ago), licensed MIT. It adds 83 tokens to every session and 2,016 once invoked, about $0.0003 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-09-03.
testing-playwright-e2e compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| testing-playwright-e2ejoaoguirunas/team-os | Skill | 6 | 4d ago | MIT | A | 83 | Claude Code |
| dogfoodNousResearch/hermes-agent | Skill | 261k | yesterday | MIT | A | 18 | Claude Code, Codex |
| e2e-testingaffaan-m/ECC | Skill | 298k | 4d ago | MIT | A | 53 | Claude Code, Codex |
| e2e-testing-patternswshobson/agents | Skill | 42k | yesterday | MIT | A | 51 | Claude Code |
| web-gui-testerasgeirtj/system_prompts_leaks | Skill | 71k | 2d ago | CC0-1.0 | A | 0 | Claude Code, Codex |
| memstack-development-webapp-testingcwinvestments/memstack | Skill | 429 | 13d ago | MIT | A | 75 | Claude Code |
| browser-test-loopOneWave-AI/claude-skills | Skill | 415 | 18d ago | MIT | A | 74 | Claude Code, Codex |