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/idavidov13/agentic-playwright/type-safetynpx skills add idavidov13/agentic-playwright --skill type-safetygit clone --depth 1 https://github.com/idavidov13/agentic-playwrightWrote 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/idavidov13/agentic-playwright/type-safety)<a href="https://agentmods.dev/skills/idavidov13/agentic-playwright/type-safety"><img src="https://agentmods.dev/badge/skills/idavidov13/agentic-playwright/type-safety.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.00208 | $0.03194 |
| Opus 5 | $0.00104 | $0.01597 |
| Sonnet 5 | $0.00042 | $0.00639 |
| Haiku 4.5 | $0.00021 | $0.00319 |
Grade A, and why
type-safety 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 4d 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 — 261 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Type Safety
Critical
- NEVER use
any. Use explicit types, Zod-inferred types (zOutput<typeof ...>), orunknownat boundaries. - NEVER use
as Toras unknown as Tto silence the type-checker. If you genuinely need to cross a type boundary, validate first (Schema.parse(...)) and let Zod produce the typed result. - ALWAYS define API schemas with
z.strictObject().z.object()silently strips unknown keys and hides contract drift. - ALWAYS prefer Zod 4 top-level validators (
z.uuid(),z.email(),z.url(),z.int(),z.enum(E)) over the deprecated chained forms (z.string().uuid(),z.string().email(), etc.). - ALWAYS assert API responses with the exact pattern
expect(SchemaName.parse(body)).toBeTruthy();.Schema.parse(body)on its own is not enough. - ALWAYS specify explicit return types on exported and public functions (
Promise<void>,Promise<UserResponse>,Locator,string, etc.). - Access
process.env.*with!(guaranteed at runtime) or??(with a safe fallback). Never letstring | undefinedleak into downstream code. - Build response schemas directly from the documented contract. Define each field — including the response envelope (
success / message / data / errorsor whatever the API uses) — explicitly per endpoint, exactly as the OpenAPI / Swagger spec describes. Do not invent factories or helpers that hide the envelope. If an envelope is genuinely repeated across many endpoints in one domain, extract a per-domain sharedz.strictObjectdefinition (e.g.fixtures/api/schemas/{area}/_envelope.ts) and compose with.extend(...)— but only after the repetition is real and observed.
Schema Location
fixtures/api/schemas/
├── {area}/ ← App-specific schemas (user, product, etc.) — run `ls fixtures/api/schemas/` to find the real subdirectory
│ └── userSchema.ts
└── util/ ← Shared error response schemas
└── errorResponseSchema.ts
Instructions
Phase 1: Rule out any and unsafe casts
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 4d ago First seen · 261 lines · 208 tokens per session scan A b80feb444f5d
type-safety is a skill published in the GitHub repository idavidov13/agentic-playwright (159 stars, last pushed yesterday), licensed MIT. It adds 208 tokens to every session and 3,194 once invoked, about $0.0010 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 skills, from other repositories
vindicate
Use when the user wants to write, add, fix, stabilize (flaky), refactor, run, or audit Playwright browser tests, draft requirements/stories from a recording (no tests), find test-coverage gaps, scaffold a Playwright project, or set up Playwright CI. Vindicate's guided workflow for grounded, conformant Playwright test…
ac-qa-playwright-cli
Browser automation via playwright-cli. Token-efficient alternative to Playwright MCP - uses CLI commands through Bash instead of MCP tool schemas. Supports navigation, interaction, screenshots, video recording, and session management. Triggers on keywords: browser, e2e, playwright, screenshot, navigate, click, type…
ac-qa-e2e-review
Reviews spec implementation with E2E visual browser validation via Playwright. Triggers on keywords: e2e review, visual review, spec review, browser validation.
ac-qa-test-e2e
Executes E2E tests from definition files with Playwright browser automation. Triggers on keywords: test e2e, run e2e, execute e2e test, e2e test runner.
ac-qa-browser
Opens browser at URL for E2E testing via playwright-cli. Provides CLI commands for navigation, screenshots, and interaction. Triggers on keywords: browser, open browser, playwright browser, e2e browser.
Playwright Test Builder
Generates robust Playwright end-to-end tests for web pages and user flows.