Agent skill

Test Standards

by idavidov13 in idavidov13/agentic-playwright

Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup…

MITAuto-check passedTesting & QA

Install Test Standards

skills CLI
$ npx skills add idavidov13/agentic-playwright --skill test-standards -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install idavidov13/agentic-playwright test-standards --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/test-standards .claude/skills/test-standards && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
test-standards
GitHub stars
223
Token cost
~3.9k tokens
SKILL.md length
1,221 words
Files
3 (incl. references)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup…

  • Works in 9 steps: Classify the test type and pick the… → Write the imports and file skeleton → Tag the test (single-tag rule) → …
  • Creating a new spec file
  • SKILL.md covers Critical, Test File Location and Type, Instructions and See Also
  • Calls npm and npx; needs ACCESS_TOKEN

What it does

Test Standards is an agent skill from idavidov13/agentic-playwright. Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup test types, data-driven test loops against TS static data, web-first assertions, destructive-test cleanup, and test independence. Use when creating a new spec file, adding tests to an existing spec, deciding which test type or tag to use, writing data-driven loops, wiring destructive cleanup, or reviewing a test for…

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/examples.md` and `references/troubleshooting.md`).

It sits in Testing & QA, covering API testing, End-to-end testing and Browser testing. It works with Playwright. The repository describes itself as: Production-grade Playwright + TypeScript Scaffold for Agentic Testing. Harness for all major AI coding agents baked in. The licence is MIT.

When your agent uses it

  • Creating a new spec file
  • Adding tests to an existing spec
  • Deciding which test type
  • Writing data-driven loops

Example prompts

  • “/test-standards”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Classify the test type and pick the location
  2. Write the imports and file skeleton
  3. Tag the test (single-tag rule)
  4. Structure the test body with test.step
  5. Use web-first assertions
  6. Handle setup / teardown and storage state
  7. Handle destructive tests
  8. Data-driven tests
  9. Verify test independence and run

What it can do on your machine

Read from SKILL.md and the folder at commit f6cbf35. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ACCESS_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Test Standards loads about 3.9k tokens when it runs, and up to ~5.7k if it reads all its reference files. Until then it costs about 205 tokens; SKILL.md has 1,221 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~205
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from idavidov13/agentic-playwright at commit f6cbf35, republished under its MIT licence (© idavidov13). 1,221 words, ~3,939 tokens.

Download SKILL.mdSave it as .claude/skills/test-standards/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
test-standards
description
Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup test types, data-driven test loops against TS static data, web-first assertions, destructive-test cleanup, and test independence. Use when creating a new spec file, adding tests to an existing spec, deciding which test type or tag to use, writing data-driven loops, wiring destructive cleanup, or reviewing a test for compliance. For the deep API test-coverage matrix and negative-testing patterns see the api-testing skill; for factories and static data see the data-strategy skill; for prompt templates see the common-tasks skill; for page object usage from tests see the fixtures and page-objects skills.
author
Ivan Davidov

Test Standards

Critical

  • Imports: Import test and expect from fixtures/pom/test-options.ts. NEVER from @playwright/test in spec files.
  • Single-tag rule: Each test has exactly one tag chosen from @smoke | @sanity | @regression | @e2e | @api | @destructive. NEVER combine tags. NEVER use @functional. NEVER put tags on test.describe() blocks.
  • @destructive is the heaviest tag and always wins — but only for shared/global state. A test that mutates state other tests or users depend on (locale, permissions, roles, guest access, feature flags, global settings) is tagged only @destructive. A test that creates and deletes only its own data is isolated, not destructive — tag it by importance (@smoke / @sanity / @regression / @e2e / @api).
  • Every state-mutating test must have test.afterEach() or test.afterAll() cleanup that reverts the change — both @destructive shared-state tests and isolated tests that write their own data.
  • Web-first assertions only (await expect(locator).toBeVisible(), .toHaveText(), .toBeEnabled(), .toHaveCount(...), etc.). NEVER page.waitForTimeout(...).
  • Use test.step() for Given/When/Then structure when a test has more than one distinct phase (setup, action, assertion).
  • Tests must be independent. No ordering dependencies, no shared mutable state across tests.
  • NEVER commit explore-only or debug test files (.spec.ts containing console.log(await page.content()), temporary probes, etc.).
  • Static test data is imported from .ts modules (test-data/static/**/*.ts) via named as const exports. NEVER .json.
  • Dynamic happy-path data comes from Faker factories (test-data/factories/{area}/); universal type-mismatch arrays from test-data/static/util/invalid-values.ts; domain-specific curated sets from test-data/static/{area}/*.ts. See the data-strategy skill.
  • Page objects are consumed via the fixture (async ({ appPage }) => ...). NEVER new PageObject(page) inside a test.
  • After adding or modifying a test file, run the affected tests and confirm zero failures before finishing the task.

Test File Location and Type

{area} is a placeholder. Before creating or referencing any path below, run ls tests/ to discover the real subdirectory names in this repo (e.g., front-office, back-office) and use those instead.

Test TypeDirectoryWhat it covers
Functionaltests/{area}/functional/One feature or behaviour in isolation
APItests/{area}/api/API contracts and response validation
E2Etests/{area}/e2e/A complete multi-feature user journey in a single test
Setuptests/{area}/Auth or precondition setup (.setup.ts)

Functional vs E2E distinction:

  • A functional test isolates and verifies a single behaviour (e.g., "adding a todo updates the count"). Each test covers one thing.
  • An E2E test chains multiple features together in one test that mirrors a real user journey from start to finish (e.g., add items → complete → filter → clear → verify final state). An E2E file typically contains one or a few high-level scenario tests.

Instructions

Phase 1: Classify the test type and pick the location

Determine whether the work is a functional, E2E, API, or setup test, then run ls tests/ to resolve {area} and place the file in tests/{area}/<type>/[name].spec.ts (or tests/{area}/[name].setup.ts for setup). Never guess the area.

Phase 2: Write the imports and file skeleton

Every spec file starts with:

typescript
import { expect, test } from '../../../fixtures/pom/test-options';

test.describe('Feature Name', () => {
    test.beforeEach(async ({ appPage }) => {
        await appPage.openHomePage();
    });

    test(
        'should do expected behavior',
        { tag: '@smoke' },
        async ({ appPage }) => {
            // ...
        }
    );
});
  • Imports come from fixtures/pom/test-options.ts, not @playwright/test.
  • test.describe(...) groups related tests; the describe name has no tag.
  • test.beforeEach(...) handles navigation and per-test setup (see Phase 7 for destructive cleanup and Phase 6 for resetStorageState).
Phase 3: Tag the test (single-tag rule)

Each test gets exactly one tag. Pick the right one:

TagUsed for
@smokeCritical path functional tests, run first and frequently
@sanityKey functionality verification
@regressionFull regression coverage of a single behaviour
@e2eEnd-to-end multi-feature user journey tests
@apiAPI contract and schema validation tests
@destructiveMutates shared/global state (locale, permissions, roles, guest access, feature flags, global settings) — excluded from npm test, run via npm run test:destructive

@destructive overrides any other importance tag — for shared/global state mutation only. If a test would otherwise be @smoke but changes global settings, it is tagged only @destructive. A test that creates and cleans up only its own data is isolated, not destructive — keep its importance tag (@smoke/@regression/@api/…).

typescript
// CORRECT
test('should login successfully', { tag: '@smoke' }, async ({ appPage }) => {
    /* ... */
});
test('should validate cart flow', { tag: '@e2e' }, async ({ checkoutPage }) => {
    /* ... */
});
test('should return user profile', { tag: '@api' }, async ({ apiRequest }) => {
    /* ... */
});
test(
    'should delete all users',
    { tag: '@destructive' },
    async ({ apiRequest }) => {
        /* ... */
    }
);

// WRONG -- @functional is not a valid tag
test('should login', { tag: '@functional' }, async ({ appPage }) => {
    /* ... */
});

// WRONG -- combining tags is forbidden
test(
    'should delete all users',
    { tag: ['@regression', '@destructive'] },
    async () => {
        /* ... */
    }
);

// WRONG -- tag belongs on the test, not the describe
test.describe('Feature @smoke', () => {
    /* ... */
});
Phase 4: Structure the test body with test.step

Use test.step() to split the test into Given / When / Then blocks. This produces readable HTML reports and makes debugging faster.

typescript
test(
    'should show error for invalid login',
    { tag: '@regression' },
    async ({ appPage }) => {
        await test.step('GIVEN user is on the login page', async () => {
            await expect(appPage.loginButton).toBeVisible();
        });

        await test.step('WHEN user enters invalid credentials', async () => {
            // generateLoginCredentials() is illustrative -- build the factory
            // via the data-strategy skill or use process.env.* + a known-bad password.
            const { email, password } = generateLoginCredentials();
            await appPage.login(email, password);
        });

        await test.step('THEN error message is displayed', async () => {
            await expect(appPage.errorMessage).toBeVisible();
        });
    }
);

For API tests with multiple calls, test.step is mandatory — see the api-testing skill (Phase 4).

Phase 5: Use web-first assertions

Web-first assertions auto-wait and retry until the condition is met or a timeout elapses. Never use hard waits.

typescript
// CORRECT -- web-first assertions
await expect(locator).toBeVisible();
await expect(locator).toHaveText('Expected text');
await expect(locator).toBeEnabled();
await expect(locator).toHaveCount(3);

// FORBIDDEN -- hard waits mask real timing issues
await page.waitForTimeout(1000);

If a response must be awaited, use page.waitForResponse(...) inside a page-object action method, not inside the spec.

Phase 6: Handle setup / teardown and storage state
  • Use test.beforeEach() for per-test navigation and setup.
  • Use test.afterEach() for per-test cleanup when fixtures don't handle it.
  • Use the resetStorageState fixture when testing login/logout flows so each test starts unauthenticated:
typescript
test.beforeEach(async ({ resetStorageState, appPage }) => {
    await resetStorageState();
    await appPage.openHomePage();
});

For API-driven setup/teardown reused across many files, see the api-testing skill (Phase 8, helper-fixture rule of thumb).

Show full SKILL.md (474 more words)Show less
Phase 7: Handle destructive tests

@destructive is reserved for shared/global state. A test is destructive only when it mutates state that lives outside the test and that other tests, users, or sessions depend on. Concretely:

  • changing the locale / language / region
  • granting or removing permissions, roles, or guest access
  • toggling feature flags or global settings / configuration
  • mutating shared seed data every test reads (e.g. "delete all users", resetting a global catalog)

Counter-example — NOT destructive. A test that creates its own record, asserts on it, then deletes only that record in cleanup is isolated, not destructive. It touches no state another test depends on. Tag it by importance (@smoke / @regression / @api / …) — never @destructive. It still needs a cleanup hook (see below), but it runs in the parallel suite.

Cleanup hook is required for any state-mutating test. Both @destructive shared-state tests and isolated own-data tests MUST use test.afterEach() or test.afterAll() to revert what they wrote:

typescript
test.describe('admin data management', () => {
    test.afterEach(async ({ apiRequest }) => {
        // REQUIRED: Revert state changes made by the test.
        // ApiEndpoints.RESET_DATA is illustrative -- use whatever reset
        // endpoint your app provides, defined in enums/{area}/*.ts.
        await apiRequest({
            method: 'POST',
            url: ApiEndpoints.RESET_DATA,
            baseUrl: process.env.API_URL,
            headers: process.env.ACCESS_TOKEN,
        });
    });

    test(
        'should delete all inactive users',
        { tag: '@destructive' },
        async ({ apiRequest }) => {
            // Test that modifies shared state
        }
    );
});

Execution rules:

  • Excluded from npm test — the base command uses --grep-invert @destructive to keep destructive tests out of the parallel suite.
  • Tag-specific commands (test:smoke, test:regression, test:api, etc.) use --grep to match their own tag. Because each test has exactly one tag, a @destructive test only runs under npm run test:destructive — not under test:smoke, test:regression, etc.
  • Dedicated command — npm run test:destructive runs only destructive tests with --workers=1 for sequential execution.
Phase 8: Data-driven tests

Loop outside test blocks to generate individual test cases. Static data is imported from .ts modules via named as const exports.

typescript
import { INVALID_LOGIN_ATTEMPTS } from '../../../test-data/static/app/invalidCredentials';

for (const { description, email, password } of INVALID_LOGIN_ATTEMPTS) {
    test(
        `should show error for ${description}`,
        { tag: '@regression' },
        async ({ appPage }) => {
            await appPage.login(email, password);
            await expect(appPage.errorMessage).toBeVisible();
        }
    );
}

For universal invalid-value loops (wrong type for any string/number/etc. field) import from test-data/static/util/invalid-values.ts (INVALID_STRING_VALUES, INVALID_NUMBER_VALUES, etc.). Full three-tier rule in the data-strategy skill.

Phase 9: Verify test independence and run

Tests must be independent — no test may depend on the outcome or side-effects of another test. Use fixtures and beforeEach for shared setup.

After adding or modifying a test file:

bash
# Run the specific spec file
npx playwright test tests/app/functional/login.spec.ts

# Run by tag (exactly one tag match since tags never combine)
npx playwright test --grep @smoke

# Run the destructive suite
npm run test:destructive

Do not finish until the added/modified tests pass consistently. Do not suppress failures.

See Also

  • api-testing skill — full API test coverage matrix, test.step requirements for multi-call tests, per-field negative-testing patterns, helper-fixture promotion rule (Phase 8).
  • data-strategy skill — Faker + Zod factories, three-tier static data rule, universal invalid-value arrays, TS-only policy.
  • fixtures skill — DI pattern, test-options.ts merge layer, page-object fixture registration.
  • page-objects skill — POM class structure, action methods, component composition, fixture registration.
  • selectors skill — exploration-first workflow, locator priority, feedback / validation message selectors.
  • common-tasks skill — copy-paste prompt templates for creating spec files of each type.
  • refactor-values skill — safe workflow for changing enum values or static data used in assertions.
  • debugging skill — failure-mode taxonomy and the right Playwright tool (UI Mode, Trace Viewer, Inspector) when a test fails or behaves unexpectedly during Phase 9 verification.
  • references/examples.md — four worked spec patterns (functional smoke, data-driven regression, destructive with cleanup, E2E multi-feature journey).
  • references/troubleshooting.md — common test-standards pitfalls (@functional, tag arrays, wrong imports, hard waits, JSON data, manual instantiation, parallel collisions, destructive leaks, committed explore files).

© idavidov13, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in .claude/skills/test-standards of idavidov13/agentic-playwright.

  • SKILL.md
  • references/examples.md
  • references/troubleshooting.md

Open the folder on GitHubat commit f6cbf35

Compare with similar skills

Test Standards next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Test Standards compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Test Standards this skillidavidov13/agentic-playwright223—~3.9kAutomated safety check: PassMIT
Playwright E2E Testingfugazi/test-automation-skills-agents247—~3.2kAutomated safety check: PassMIT
Web Testing with Playwright and Vitestwithkynam/vibecode-pro-max-kit1.1k—~892Automated safety check: PassApache-2.0
Dotnet Testingnovotnyllc/dotnet-artisan233—~972Automated safety check: PassMIT
Senior QAalirezarezvani/claude-skills28k1 repos~2.1kAutomated safety check: PassMIT
Vue Testing Best PracticesJetBrains/skills3647 repos~563Automated safety check: PassMIT

Similar skills

  • Playwright E2E Testing

    fugazi/test-automation-skills-agents

    Author and maintain versioned Playwright (@playwright/test) TypeScript UI specs for browser user flows.

    247 GitHub stars~3.2k tokensUpdated 5 days ago
    Testing & QAAuto-check passed
  • Web Testing with Playwright and Vitest

    withkynam/vibecode-pro-max-kit

    Covers web testing from unit to E2E, load, visual, accessibility and security checks, with Playwright, Vitest and k6 guides plus a Playwright setup script.

    1.1k GitHub stars~892 tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Dotnet Testing

    novotnyllc/dotnet-artisan

    Defines .NET test strategy and implementation patterns across xUnit v3 (Facts, Theories, fixtures, IAsyncLifetime), integration testing (WebApplicationFactory, Testcontainers), Aspire testing…

    233 GitHub stars~972 tokensUpdated today
    Testing & QAAuto-check passed
  • Senior QA

    alirezarezvani/claude-skills

    Generates unit tests, integration tests, and E2E tests for React/Next.js applications.

    28k GitHub starsUsed in 1 repo~2.1k tokens
    Testing & QAAuto-check passed
  • Official

    A skill your agent uses for Vue.js testing. An agent skill from JetBrains/skills.

    364 GitHub starsUsed in 7 repos~563 tokens
    Testing & QAAuto-check passed
  • Front End Testing

    citypaul/.dotfiles

    Behavior-driven UI testing patterns across Vitest Browser Mode, Playwright E2E evidence boundaries, and DOM Testing Library.

    739 GitHub stars~6.2k tokensUpdated 5 days ago
    Testing & QAAuto-check passed

More from idavidov13/agentic-playwright

All 13 skills in this repo
  • AI Native Workflow

    idavidov13/agentic-playwright

    Sole entry-point router for AI-assisted work on this Playwright scaffold — owns the 8-phase main workflow (classify → route → explore → plan+confidence → human gate → apply → verify → report), the…

    223 GitHub stars~3.5k tokensUpdated 7 days ago
    Auto-check passed
  • Common Tasks

    idavidov13/agentic-playwright

    Copy-paste AI prompt templates for common Playwright scaffold development tasks — adding page objects, functional/E2E/API tests, Zod schemas, factories, fixtures, and components.

    223 GitHub stars~2.5k tokensUpdated 7 days ago
    Auto-check passed
  • Data Strategy

    idavidov13/agentic-playwright

    Test data strategy for the Playwright scaffold — Faker + Zod factories for dynamic happy-path data, static TS files (.ts with as const exports — never .json) for domain-specific curated invalid…

    223 GitHub stars~3.4k tokensUpdated 7 days ago
    Auto-check passed
  • Page Objects

    idavidov13/agentic-playwright

    Page Object Model pattern for the Playwright scaffold — class structure, get-accessor locator pattern, action-method conventions, component composition, registration via the page-object fixture, and…

    223 GitHub stars~3.6k tokensUpdated 7 days ago
    Auto-check passed
  • Selectors

    idavidov13/agentic-playwright

    Selector strategy, exploration-first workflow, locator priority order (getByRole then getByLabel then getByPlaceholder then getByText then getByTestId), and feedback/validation-message selector…

    223 GitHub stars~2.7k tokensUpdated 7 days ago
    Auto-check passed
  • Type Safety

    idavidov13/agentic-playwright

    TypeScript type safety conventions for the Playwright scaffold — the "no any" rule, Zod 4 schema patterns (z.strictObject, top-level validators like z.uuid / z.email / z.url / z.int / z.enum)…

    223 GitHub stars~3.5k tokensUpdated 7 days ago
    Auto-check passed

Works with

Categories

Questions about Test Standards

What does Test Standards do?

Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup…. Test Standards is an agent skill from idavidov13/agentic-playwright.step), single-tag rule, functional vs E2E vs API vs setup test types, data-driven test loops against TS static data, web-first assertions, destructive-test cleanup, and test independence.

When should I use Test Standards?

Test Standards fits situations like: creating a new spec file; adding tests to an existing spec; deciding which test type; writing data-driven loops.

How do I install Test Standards in Claude Code?

Run `npx skills add idavidov13/agentic-playwright --skill test-standards -a claude-code`. Or copy the skill folder (.claude/skills/test-standards in idavidov13/agentic-playwright) into .claude/skills/test-standards in your project. Claude Code loads it when a task matches its description.

How do I install Test Standards in Codex?

Run `npx skills add idavidov13/agentic-playwright --skill test-standards -a codex`. Or copy the skill folder (.claude/skills/test-standards in idavidov13/agentic-playwright) into .agents/skills/test-standards in your project. Codex loads it when a task matches its description.

Can I use Test Standards in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add idavidov13/agentic-playwright --skill test-standards -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-standards, .gemini/skills/test-standards, .github/skills/test-standards and .opencode/skills/test-standards in your project.

What does Test Standards need to run?

Going by SKILL.md and its folder, Test Standards needs the command-line tools its instructions call (npm and npx) and credentials named ACCESS_TOKEN.

Does Test Standards access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Test Standards safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Test Standards use?

Test Standards is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Test Standards use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.

What are the alternatives to Test Standards?

Skills that share tags, products or a category with Test Standards: Playwright E2E Testing (fugazi/test-automation-skills-agents, 247 stars), Web Testing with Playwright and Vitest (withkynam/vibecode-pro-max-kit, 1.1k stars), Dotnet Testing (novotnyllc/dotnet-artisan, 233 stars) and Senior QA (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Test Standards?

idavidov13 (a GitHub user) maintains it in idavidov13/agentic-playwright, which has 223 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 1, 2026.

Source: idavidov13/agentic-playwright on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.