testing-pimp
Active router for ALL testing requests — classifies by test type (unit, component, E2E, visual) and routes to the correct testing skill. Use when anything involves testing, test setup, test debugging, or choosing a testing tool.
| Model | Source | Category |
|---|---|---|
| sonnet | core | Testing |
Full Reference
This is not optional. This is not negotiable. You cannot skip this.
Testing Pimp
Section titled “Testing Pimp”The orchestration layer for all testing expertise. Not documentation — an active router. Every testing request flows through this routing table before any response.
Mandatory Announcement — FIRST OUTPUT before anything else:
┏━ 🧪 testing-pimp ━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ [one-line description of what request/routing] ┃┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛No exceptions. Box frame first, then route.
Quick Context
Section titled “Quick Context”The testing pack is armadillo’s quality assurance ecosystem — skills covering E2E, browser automation, component testing, unit testing, visual regression, and Storybook-driven development. Takes a project from zero coverage to a fully tested, visually verified, CI-ready suite.
Routing Table
Section titled “Routing Table”Classify the request. Invoke the matching skill. No response before invocation.
| Request Pattern | Skill |
|---|---|
| E2E testing, cross-browser, page objects, trace viewer | playwright |
| Browser automation, Chrome DevTools Protocol, headless scraping | puppeteer |
| Real-time test runner, Cypress Cloud, component testing in Cypress | cypress |
| Unit testing, mocking, Vite-based projects, snapshot testing | vitest |
| Component testing, @testing-library, DOM queries, render tests | testing-library |
| Component dev, stories, CSF, Storybook setup | storybook |
| Screenshot testing, visual baselines, Chromatic, Argos | visual-regression |
| ”What testing tool should I use?”, “help me pick a framework” | Decision matrix below |
State Detection
Section titled “State Detection”Before routing, check project state to inform the recommendation:
stack.json→ readtestingarray for configured toolspackage.jsondeps → detect Playwright, Cypress, Vitest, Jest, Testing Library, Storybookplaywright.config.*→ Playwright is configuredcypress.config.*→ Cypress is configuredvitest.config.*orvite.config.*with test block → Vitest is configured.storybook/directory → Storybook is configured
| State | Recommendation |
|---|---|
| No testing tools detected | Route to decision matrix — recommend based on stack |
| Vite/Next.js project, no test runner | Recommend Vitest for unit + Playwright for E2E |
| Cypress present, E2E question | Route to cypress directly |
| Playwright present, automation question | Route to playwright directly |
| Components exist, no visual tests | Suggest visual-regression after Storybook setup |
| Everything configured | Route directly to the requested skill |
Decision Matrix
Section titled “Decision Matrix”When the request is “what should I use?” or no tool is installed:
| Project Type | Unit/Integration | E2E | Component | Visual |
|---|---|---|---|---|
| Vite / React SPA | vitest | playwright | testing-library | visual-regression |
| Next.js App Router | vitest | playwright | testing-library | visual-regression |
| Astro / SvelteKit | vitest | playwright | testing-library | visual-regression |
| Node.js / API only | vitest | — | — | — |
| Already on Cypress | vitest | cypress | cypress (component) | visual-regression |
| Browser automation / scraping | — | puppeteer | — | — |
Default stack (greenfield): Vitest + Playwright + Testing Library. Covers 95% of needs with zero overlap.
Cross-Cutting Rules
Section titled “Cross-Cutting Rules”- If a request spans multiple skills, invoke the PRIMARY skill first (closest to the core question)
- “My test is failing” → diagnose tool first (
vitest,playwright, etc.), thensystematic-debuggingif needed - “Set up testing” → decision matrix → then scaffold with the chosen skill
- “Visual test” is ALWAYS
visual-regression, notplaywrightscreenshot assertions - Component render tests →
testing-library(not raw JSDOM hacks) - If Cypress is already in the stack, don’t suggest migrating — route to
cypress
Chaining Patterns
Section titled “Chaining Patterns”| User Says | Chain |
|---|---|
| ”Set up full testing suite” | vitest → testing-library → playwright → visual-regression |
| ”Add visual testing” | storybook → visual-regression |
| ”Test my components” | testing-library → storybook (for dev iteration) |
| “Automate browser tasks” | puppeteer (not playwright — CDP/automation focus) |
| “Debug flaky E2E tests” | playwright → systematic-debugging |
| ”Set up CI testing” | Primary tool skill → CI config in that skill’s docs |
Priority Order (when multiple skills apply)
Section titled “Priority Order (when multiple skills apply)”- Existing tool in stack — always respect what’s already installed
- E2E question →
playwright(unless Cypress in stack) - Component question →
testing-library - Unit question →
vitest - Visual question →
visual-regression - Unclear → decision matrix
What This Skill Does NOT Route
Section titled “What This Skill Does NOT Route”- TDD workflow/methodology →
test-driven-developmentskill handles - Test philosophy, when to test, coverage strategy →
systematic-debuggingortest-driven-development - Non-test code that happens to be in a test project → shepherd handles
- Performance testing, load testing → not covered by this pack
Hard Rules
Section titled “Hard Rules”- Never respond about testing before invoking the target skill
- No summarizing, planning to invoke, or explaining what you’re about to do
- If unclear, ask ONE clarifying question, then route
- The skill’s content has the verified facts — always defer to it
- “Add tests” without context → ask what kind, then route
- Never recommend Jest for new projects — Vitest is the modern default