Borrowing it
Nothing to install: this file belongs to nerds-odd-e/doughnut. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/nerds-odd-e/doughnut/main/.agents/skills/frontend-testing/SKILL.mdgit clone --depth 1 https://github.com/nerds-odd-e/doughnutWrote 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/nerds-odd-e/doughnut/frontend-testing)<a href="https://agentmods.dev/skills/nerds-odd-e/doughnut/frontend-testing"><img src="https://agentmods.dev/badge/skills/nerds-odd-e/doughnut/frontend-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/nerds-odd-e/doughnut/frontend-testing"><img src="https://agentmods.dev/badge/skills/nerds-odd-e/doughnut/frontend-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.00037 | $0.02120 |
| Opus 5.5 | $0.00015 | $0.00848 |
| Sonnet 5.5 | $0.00007 | $0.00424 |
| Haiku 4.5 | $0.00004 | $0.00212 |
Grade A, and why
frontend-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 9d 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 — 229 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Frontend Testing Rules
Style ("small test" practice — stable boundary, data over mocks, focused assertions, concise makeMe): the unit-testing skill — follow that first.
These commands cover behavioral testing only. Before accepting frontend proof,
also pass the typecheck required by the frontend skill's "Frontend proof" rule.
Test Commands
From the repo root:
CURSOR_DEV=true nix develop -c pnpm frontend:test
All frontend unit-test commands use headless Chromium and never automatically open a browser window. Do not enable a visible browser unless the user explicitly asks.
The legacy UI command also runs headlessly:
CURSOR_DEV=true nix develop -c pnpm frontend:test:ui
Run tests in headless watch mode (the Vitest UI remains available at its printed URL without opening a browser):
CURSOR_DEV=true nix develop -c pnpm frontend:test:watch
Run a single test file from the repo root:
CURSOR_DEV=true nix develop -c pnpm frontend:test tests/path/to/TestFile.spec.ts
Or only the frontend package:
CURSOR_DEV=true nix develop -c pnpm -C frontend test tests/path/to/TestFile.spec.ts
Run a specific test case:
CURSOR_DEV=true nix develop -c pnpm -C frontend test -t "test name pattern"
The test file path is relative to frontend/. Do not use pnpm ... test -- tests/...; the -- is forwarded to Vitest and file filtering is skipped.
In most situations, run all unit tests instead of a selected file only. Use a single test file when actively debugging or iterating on a specific component.
For dough-test-optimization, frontend:test remains the ordinary local
feedback measurement because it runs Chromium browser mode. When per-test JSON
durations are needed for investigation, use
CURSOR_DEV=true nix develop -c pnpm -C frontend exec vitest run --reporter=json.
That plain Vitest run is profiling evidence only; verify retained changes with
the normal browser-mode command and do not compare its wall time directly with
frontend:test.
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.
- 9d ago Changed · +6 lines 41125b2f7f44
- 25d ago Changed · +18 lines d8e7b1b43224
- 1mo ago Changed · +4 lines f01c7185a01d
- 1mo ago Changed · +3 lines bfe613587141
- 1mo ago First seen · 198 lines · 37 tokens per session scan A 9ffac160afed
frontend-testing is a skill published in the GitHub repository nerds-odd-e/doughnut (50 stars, last pushed today), licensed MIT. It adds 37 tokens to every session and 2,120 once invoked, about $0.0001 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-17.
Other skills, from other repositories
vue-idioms
Vue 3 Composition API patterns: syntax, reactive state with Pinia stores, reusable composables, and Vitest component testing. Use when developing or refactoring Vue 3 frontend applications.
vue-test-utils-skilld
ALWAYS use when writing, debugging, or reviewing code that imports "@vue/test-utils" or mentions vue test-utils, VTU, mount, shallowMount, findComponent, wrapper queries, or migrating from Vue Test Utils v1. Provides the current API surface, mounting options, wrapper methods, and testing recipes for @vue/test-utils…
Component Test Scaffold (Vue.js)
Generate Vue.js component test skeletons (Vue Test Utils) from specifications.
vue-component-testing
A guide for testing Vue components with Vue Test Utils and the project's test runner. It covers mounted components, inputs, emitted events, slots, reusable logic, asynchronous updates, and interactions.
vue-component
Create Vue 3 components with Composition API — composables, Pinia store integration, TypeScript, and unit tests.
test-master
Generates test files, creates mocking strategies, analyzes code coverage, designs test architectures, and produces test plans and defect reports across functional, performance, and security testing disciplines. Use when writing unit tests, integration tests, or E2E tests; creating test strategies or automation…