Help us improve
Share bugs, ideas, or general feedback.
From ucai
Generates unit/integration/E2E tests, analyzes coverage, scaffolds Playwright/Cypress/Jest/Vitest/pytest setups, and applies test pyramid/isolation/mocking patterns for any stack.
npx claudepluginhub joncik91/ucai --plugin ucaiHow this skill is triggered — by the user, by Claude, or both
Slash command
/ucai:qaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Testing patterns, test design, coverage strategy, and quality automation for any language or framework.
Designs and implements testing strategies—unit, integration, E2E—for any codebase. Provides framework recommendations (Vitest, Playwright, pytest, etc.) and test structure templates.
Provides testing strategies including test pyramid, TDD/BDD, unit/integration/E2E patterns, mocking strategies, test data factories, snapshot testing, and mutation testing. Use for designing test strategies, writing tests, or improving coverage.
Share bugs, ideas, or general feedback.
Testing patterns, test design, coverage strategy, and quality automation for any language or framework.
Before writing tests, identify the language, framework, and test tooling:
| Signal | Test framework likely in use |
|---|---|
vitest.config.* or vitest in package.json | Vitest |
jest.config.* or jest in package.json | Jest |
playwright.config.* | Playwright (E2E) |
cypress.config.* | Cypress (E2E) |
pytest.ini / pyproject.toml [tool.pytest.*] | pytest |
*_test.go files | Go test |
*_spec.rb / spec/ dir | RSpec |
*.test.cs / xunit.runner.json | xUnit / NUnit |
*.spec.ts with Angular | Jasmine + Karma or Jest |
Check: cat package.json, ls -la, cat pytest.ini — whichever applies. Also check existing test files to understand conventions.
Search for current testing patterns for the detected stack:
WebSearch: "<framework> unit testing best practices 2025"
WebSearch: "<test library> mocking patterns 2025"
WebSearch: "Playwright E2E testing patterns 2025"
WebSearch: "<framework> test coverage strategy 2025"
These apply regardless of language or test framework.
Use a consistent naming pattern that reads as documentation:
<unit>_<condition>_<expected result>
// OR
describe("UserService") {
describe("createUser") {
it("returns 409 when email already exists")
it("hashes password before storing")
it("sends welcome email on success")
}
}
waitForSelector / waitForResponse — never sleep()sleep() / fixed delays — wait for conditionsTests in this project follow strict author/reviewer separation, mirroring the production-code pattern in /build Phase 6:
Task tool) for test authorship; the implementer never writes test files. An author who also wrote the production code is structurally biased toward asserting on its own assumptions.After authorship, a different agent reviews the tests (ucai:reviewer by default; escalates to ucai:reviewer-opus if the first review flags blocking verdicts and the author's retry still fails). The reviewer reads the tests + the production target + the verdicts list and flags any matches.
Verdicts aligned with the Pragma test-gaming detector at /home/joncik/apps/Pragma. Apply both at authorship (self-check) and at review. Blocking verdicts mean the test does not count as written.
mock.patch("module.func") / vi.mock("./module") / jest.mock("./module") / vi.spyOn(...).mockReturnValue(...) on the symbol under test. (mocked-away)target_not_covered, orphan_test)try { call() } catch (_) {} / try: call() except: pass that suppresses the signal. (swallowed)assert true, assert x == x, expect(true).toBe(true), expect(x).toBe(x) test nothing. (tautological)if/for/while branches that may never execute. (conditional)*_rejects_* / *_throws_* requires pytest.raises / .toThrow(), not silent pass. (mismatched, stub_error_match)sys.modules swap, or monkeypatch.setattr on the symbol under test. Inline class redefinitions that shadow the production symbol fall under the same rule. (module_attr_reassignment, module_shimmed, monkeypatched)pytest.skip(...), @pytest.mark.xfail(strict=True), it.skip, it.todo, test.failing that lets a fake test ship green. (skipped, xfail_gaming)no_success_assertion)semantic_gaming)If the project has Pragma installed, its Edit|Write|MultiEdit hooks enforce verdicts 1, 3-8, and parts of 9 at the tool-call layer automatically — this checklist still applies as the soft prescription.
Before any test PR:
sleep() / fixed delays