npx claudepluginhub joncik91/ucai --plugin ucaiThis skill uses the workspace's default tool permissions.
README.mdreferences/qa_best_practices.mdreferences/test_automation_patterns.mdreferences/testing_strategies.mdExecutes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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 conditionsBefore any test PR:
sleep() / fixed delays