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 Plazmodium/odin-workflow --skill playwrightgit clone --depth 1 https://github.com/Plazmodium/odin-workflowWrote 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/plazmodium/odin-workflow/playwright)<a href="https://agentmods.dev/skills/plazmodium/odin-workflow/playwright"><img src="https://agentmods.dev/badge/skills/plazmodium/odin-workflow/playwright/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/plazmodium/odin-workflow/playwright"><img src="https://agentmods.dev/badge/skills/plazmodium/odin-workflow/playwright.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.00051 | $0.02235 |
| Opus 5.5 | $0.00020 | $0.00894 |
| Sonnet 5.5 | $0.00010 | $0.00447 |
| Haiku 4.5 | $0.00005 | $0.00224 |
Grade A, and why
playwright 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 — 342 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Playwright End-to-End Testing
Instructions
- Assess the testing scope: Determine if it's E2E tests, API tests, or visual regression.
- Follow Playwright conventions:
- Test files:
*.spec.tsintests/ore2e/directory - Use
testandexpectfrom@playwright/test - Leverage auto-waiting and web-first assertions
- Test files:
- Provide complete examples: Include page objects, fixtures, and proper selectors.
- Guide on best practices: Locators, parallelization, debugging.
- Cover advanced features: Network mocking, authentication, visual comparison.
Test Structure
import { test, expect } from '@playwright/test';
test.describe('User Authentication', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/login');
});
test('should login with valid credentials', async ({ page }) => {
await page.fill('[data-testid="email"]', '[email protected]');
await page.fill('[data-testid="password"]', 'password123');
await page.click('[data-testid="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.getByRole('heading')).toHaveText('Welcome');
});
test('should show error for invalid credentials', async ({ page }) => {
await page.fill('[data-testid="email"]', '[email protected]');
await page.fill('[data-testid="password"]', 'wrong');
await page.click('[data-testid="submit"]');
await expect(page.getByText('Invalid credentials')).toBeVisible();
});
});
Locators (Recommended Order)
// 1. Role-based (most resilient)
page.getByRole('button', { name: 'Submit' });
page.getByRole('textbox', { name: 'Email' });
page.getByRole('link', { name: 'Sign up' });
// 2. Label/placeholder text
page.getByLabel('Email address');
page.getByPlaceholder('Enter your email');
// 3. Text content
page.getByText('Welcome back');
page.getByText(/welcome/i); // Case-insensitive regex
// 4. Test IDs (explicit)
page.getByTestId('submit-button');
// 5. CSS selectors (last resort)
page.locator('.submit-btn');
page.locator('#email-input');
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 First seen · 342 lines · 51 tokens per session scan A 76b7fb998ab1
playwright is a skill published in the GitHub repository Plazmodium/odin-workflow (0 stars, last pushed 4mo ago), licensed MIT. It adds 51 tokens to every session and 2,235 once invoked, about $0.0002 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-01.
Other skills, from other repositories
browser-qa-delivery
Validate a Design Studio HTML artifact in the sandbox browser, fix rendering and runtime defects, then deliver exactly the tested file.
agent-e2e-test-specialist
Specialist subagent: Playwright, Cypress, and visual regression testing specialist. Use only when the user explicitly asks for E2E tests, browser test automation, or visual regression testing. Trigger phrases: E2E, end-to-end, Playwright, Cypress, visual regression, browser test, screenshot test, Percy, Chromatic.
playwright-pro
Production-grade Playwright testing skill for E2E suites, flaky test diagnosis, browser automation, migration from Cypress/Selenium, CI integration, visual checks, and regression validation.
playwright
Browser automation, web scraping, E2E testing, and visual regression with Playwright. Covers 30+ patterns: login flows, form testing, responsive design checks, broken link validation, API mocking, data extraction, PDF generation, accessibility audits (axe-core), performance budgets (Lighthouse), visual diffing…
cypress-ops
Cypress end-to-end and component testing operations - selector/retry-ability strategy, cy.intercept network stubbing, cy.session auth, component vs e2e, flake diagnosis, CI, Test Replay. Use for: cypress, e2e test, component test, cy.get, cy.intercept, cy.session, data-cy, data-test, retry-ability, flake, flaky test…
playwright-ops
Playwright end-to-end testing operations - selectors, fixtures, network mocking, auth, parallelism, CI, visual regression, flake hunting. Use for: playwright, e2e test, end-to-end testing, browser test, getByRole, page object, storageState, trace viewer, flaky test, test sharding, visual regression, toHaveScreenshot…