Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

quality

verified

Use this skill when writing tests, fixing test failures, improving code quality, doing accessibility audits, or optimizing performance. Activates on mentions of testing, unit test, integration test, e2e test, Playwright, Vitest, Jest, pytest, test coverage, accessibility, WCAG, a11y, axe-core, screen reader, Core Web Vitals, performance, lighthouse, or code review.

View on GitHub

Marketplace

hyperb1iss

hyperb1iss/hyperskills

Plugin

hyperskills

Repository

hyperb1iss/hyperskills

skills/quality/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/hyperb1iss/hyperskills/blob/main/skills/quality/SKILL.md -a claude-code --skill quality

Installation paths:

Claude
.claude/skills/quality/
Powered by add-skill CLI

Instructions

# Quality Engineering

Ship reliable, accessible, performant software.

## Quick Reference

### Testing Stack (2026)

| Type        | Tool               | Purpose               |
| ----------- | ------------------ | --------------------- |
| Unit        | Vitest             | Fast, Vite-native     |
| Component   | Testing Library    | User-centric          |
| E2E         | Playwright         | Cross-browser         |
| API         | Playwright API     | Request testing       |
| Visual      | Playwright + Percy | Screenshot comparison |
| A11y        | Axe-core           | WCAG compliance       |
| Performance | Lighthouse CI      | Core Web Vitals       |

### Vitest Setup

```typescript
// vitest.config.ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
    environment: "jsdom",
    setupFiles: ["./tests/setup.ts"],
    coverage: {
      provider: "v8",
      reporter: ["text", "json", "html"],
      exclude: ["node_modules", "tests"],
    },
  },
});
```

**Writing Tests:**

```typescript
import { describe, it, expect, vi } from 'vitest';
import { render, screen } from '@testing-library/react';
import { UserProfile } from './UserProfile';

describe('UserProfile', () => {
  it('displays user name', () => {
    render(<UserProfile user={{ name: 'Alice' }} />);
    expect(screen.getByText('Alice')).toBeInTheDocument();
  });

  it('calls onEdit when button clicked', async () => {
    const onEdit = vi.fn();
    render(<UserProfile user={{ name: 'Alice' }} onEdit={onEdit} />);
    await userEvent.click(screen.getByRole('button', { name: /edit/i }));
    expect(onEdit).toHaveBeenCalledTimes(1);
  });
});
```

### Playwright E2E

```typescript
// tests/auth.spec.ts
import { test, expect } from "@playwright/test";

test.describe("Authentication", () => {
  test("user can log in", async ({ page }) => {
    await page.goto("/login");
    await page.getByLabel("Email").fill("user@example.com");
    await page.getB

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
5735 chars