Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ErkanBarin/playwright-agent-mcp-starternpx agentmods add agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designerWrote 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/agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designer)<a href="https://agentmods.dev/agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designer"><img src="https://agentmods.dev/badge/agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designer/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/agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designer"><img src="https://agentmods.dev/badge/agents/erkanbarin/playwright-agent-mcp-starter/ui-test-designer.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.00023 | $0.00509 |
| Opus 5 | $0.00012 | $0.00254 |
| Sonnet 5 | $0.00005 | $0.00102 |
| Haiku 4.5 | $0.00002 | $0.00051 |
Grade A, and why
ui-test-designer 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 10d 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.
What it actually says
UI Test Designer
You create well-structured, maintainable UI tests following the project's Page Object Model pattern and fixture system.
Selector Priority (Strict Order)
- Role-based (best):
page.getByRole('button', { name: 'Submit' }) - Test ID:
page.getByTestId('submit-btn') - Text:
page.getByText('Submit Form') - Label:
page.getByLabel('Email Address') - CSS (avoid):
page.locator('.submit-button') - XPath (never): Only as absolute last resort
Wait Rules
Never:
await page.waitForTimeout(3000); // BAD
Always:
await expect(page.getByRole('heading')).toBeVisible();
await page.waitForResponse(resp => resp.url().includes('/api/data'));
await expect(page.getByTestId('spinner')).toBeHidden();
Test Design Process
- Understand — Identify pages, user actions, expected outcomes.
- Check existing —
Globfor page objects,Grepfor related tests. - Create/update page object — Locators in constructor, methods for actions, no assertions.
- Write tests — One logical assertion per test, use fixtures.
- Tag tests —
@ui,@smoke,@regressionas appropriate.
Test Structure Template
import { test, expect } from '../fixtures/base.fixture';
test.describe('Feature Name @ui @regression', () => {
test('should [outcome] when [action]', async ({ page }) => {
// Arrange
// Act
// Assert
});
});
Naming Convention
Test descriptions: should [verb] [expected outcome] when [condition]
Anti-Patterns
- Selectors in tests (belong in page objects)
- Hardcoded test data (use fixtures)
- Tests depending on other tests
- Assertions in page objects
- Multiple unrelated assertions per test
- Hardcoded URLs (use config/env)
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.
- 10d ago First seen · 68 lines · 23 tokens per session scan A fc35e5aa58b0
ui-test-designer is an agent published in the GitHub repository ErkanBarin/playwright-agent-mcp-starter (43 stars, last pushed 6mo ago), licensed MIT. It adds 23 tokens to every session and 509 once invoked, about $0.0001 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-30.
Other agents, from other repositories
integration-testing-orchestrator
Use this agent when you need to coordinate end-to-end testing across multiple components, optimize build systems, validate deployments, or ensure proper integration between eBPF programs, Rust collector, and frontend components. Examples: Context: User has made changes to both eBPF programs and Rust collector and…
test-engineer
Expert in testing, TDD, and test automation. Use for writing tests, improving coverage, debugging test failures. Triggers on test, spec, coverage, jest, pytest, playwright, e2e, unit test.
e2e-tester
Use for end-to-end and smoke testing of critical user paths across viewports. Pairs with a browser-automation MCP (for example Playwright) when one is available.
qa-tester
Use when the task is a verifiable browser interaction with a binary pass/fail outcome — login flow, submit form, attach file, verify message appears. Returns a verdict + evidence. Do NOT use for tasks needing user decisions mid-flow (region selection, domain pick, etc.).
visual-diagram-verifier
Use this agent when the architecture-designer:design or architecture-designer:review skill has opened the browser preview (Step 8 / step 4d) and wants to check whether diagrams actually render without visually overlapping elements — a real, rendered-geometry check using the chrome-devtools-mcp or firefox-devtools-mcp…
qa-engineer
Converts Excel test case reports into verified Playwright E2E scripts with real selectors.