agentleFS
PatriotAgenticLLCPatriotAgenticLLC/better_claude_skillz/skills/e2e/SKILL.md

e2e

Skill3 starsChanged 5 months agoMITView on GitHub

Generate and run end-to-end tests with Playwright. Creates test journeys, runs tests, captures screenshots/videos/traces, and uploads artifacts.

50 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use sdk, worktree and 4 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • 0mlkrizzz655335vSkill

    sdk

    Codex SDK 集成开发。用 TypeScript/Python SDK 做 agent 生命周期、流式输出、本地/云端执行等集成。

    Also in 3 projects that use this

  • MicrosoftSkill

    worktree

    Create, reuse or clean up a dedicated git worktree for working on a pull request or a private branch. Use from any PR-scoped workflow that needs an isolated checkout to keep current code and build output untouched.

    Also in 5 projects that use this

  • diego-tobalinaSkill

    logging

    Logging best practices for Java (SLF4J/Logback) and Node.js (Winston/Pino). Use for structured logging, log levels, and avoiding sensitive data exposure.

    Also in 3 projects that use this

  • AnthropicSkill

    runbook

    Create or update an operational runbook for a recurring task or procedure. Use when documenting a task that on-call or ops needs to run repeatably, turning tribal knowledge into exact step-by-step commands, adding troubleshooting and rollback steps to an existing procedure, or writing escalation paths for when things go wrong.

    Also in 3 projects that use this

  • Google CloudSkill

    contributing

    Guides the developer workflow for contributing to Race Condition. Use when setting up pre-commit hooks, running tests before a PR, understanding code style requirements, or preparing a contribution.

    Also in 3 projects that use this

  • HashiCorpSkill

    changelog

    Add a `.changelog/<PR_NUMBER>.txt` entry for a GitHub Pull Request, commit, and push.

    Also in 9 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 12 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 44 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Generate Test Journeys: - Create Playwright tests for user flows

    line 12
  2. Distinctive:

    When tests run, the following artifacts are captured:

    line 90
  3. Distinctive:

    If a test fails intermittently:

    line 118
  4. Distinctive:

    Add to your CI pipeline:

    line 149
  5. Distinctive:

    Use Page Object Model for maintainability

    line 170
  6. Distinctive:

    Use data-testid attributes for selectors

    line 171
  7. Distinctive:

    Wait for API responses, not arbitrary timeouts

    line 172
  8. Distinctive:

    Test critical user journeys end-to-end

    line 173
  9. Distinctive:

    Run tests before merging to main

    line 174
  10. Distinctive:

    Use brittle selectors (CSS classes can change)

    line 178
  11. Distinctive:

    Run tests against production

    line 180
  12. Distinctive:

    Test every edge case with E2E (use unit tests)

    line 183
  13. Very specific:

    Use /plan to identify critical journeys to test

    line 187
  14. Very specific:

    Use /tdd for unit tests (faster, more granular)

    line 188
  15. Very specific:

    Use /e2e for integration and user journey tests

    line 189
  16. Very specific:

    Use /code-review to verify test quality

    line 190

“Common” is measured: kept by at least 6 in 10 of the 44 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

E2E Command

This command invokes the e2e-runner agent to generate, maintain, and execute end-to-end tests using Playwright.

What This Command Does

  1. Generate Test Journeys - Create Playwright tests for user flows
  2. Run E2E Tests - Execute tests across browsers
  3. Capture Artifacts - Screenshots, videos, traces on failures
  4. Upload Results - HTML reports and JUnit XML
  5. Identify Flaky Tests - Quarantine unstable tests

When to Use

Use /e2e when:

  • Testing critical user journeys (login, checkout, payments)
  • Verifying multi-step flows work end-to-end
  • Testing UI interactions and navigation
  • Validating integration between frontend and backend
  • Preparing for production deployment

How It Works

The e2e-runner agent will:

  1. Analyze user flow and identify test scenarios
  2. Generate Playwright test using Page Object Model pattern
  3. Run tests across multiple browsers (Chrome, Firefox, Safari)
  4. Capture failures with screenshots, videos, and traces
  5. Generate report with results and artifacts
  6. Identify flaky tests and recommend fixes

Example Usage

User: /e2e Test the product search and view flow

Agent (e2e-runner):
# E2E Test Generation: Product Search and View Flow

## Test Scenario Identified

**User Journey:** Product Search -> View Results -> Click Product -> View Details

**Test Coverage:**
1. Navigate to products page
2. Perform search
3. Verify search results
4. Click on first result
5. Verify product details page loads
6. Verify content renders

## Generated Test Code

```typescript
// tests/e2e/products/search-and-view.spec.ts
import { test, expect } from '@playwright/test'
import { ProductsPage } from '../../pages/ProductsPage'
import { ProductDetailsPage } from '../../pages/ProductDetailsPage'

test.describe('Product Search and View Flow', () => {
  test('user can search products and view details', async ({ page }) => {
    const productsPage = new ProductsPage(page)
    await productsPage.goto()
    await expect(page).toHaveTitle(/Products/)
    await productsPage.searchProducts('electronics')
    await page.waitForResponse(resp =>
      resp.url().includes('/api/products/search') && resp.status() === 200
    )
    const productCards = productsPage.productCards
    await expect(productCards.first()).toBeVisible()
    const firstProductTitle = await productCards.first().textContent()
    await productCards.first().click()
    await expect(page).toHaveURL(/\/products\/[a-z0-9-]+/)
    const detailsPage = new ProductDetailsPage(page)
    await expect(detailsPage.productName).toBeVisible()
    await expect(detailsPage.contentSection).toBeVisible()
  })
})

## Test Artifacts

When tests run, the following artifacts are captured:

**On All Tests:**
- HTML Report with timeline and results
- JUnit XML for CI integration

**On Failure Only:**
- Screenshot of the failing state
- Video recording of the test
- Trace file for debugging (step-by-step replay)
- Network logs
- Console logs

## Viewing Artifacts

```bash
# View HTML report in browser
npx playwright show-report

# View specific trace file
npx playwright show-trace artifacts/trace-abc123.zip

# Screenshots are saved in artifacts/ directory
open artifacts/search-results.png

Flaky Test Detection

If a test fails intermittently:

FLAKY TEST DETECTED: tests/e2e/products/checkout.spec.ts

Test passed 7/10 runs (70% pass rate)

Common failure:
"Timeout waiting for element '[data-testid="confirm-btn"]'"

Recommended fixes:
1. Add explicit wait: await page.waitForSelector('[data-testid="confirm-btn"]')
2. Increase timeout: { timeout: 10000 }
3. Check for race conditions in component
4. Verify element is not hidden by animation

Quarantine recommendation: Mark as test.fixme() until fixed

Browser Configuration

Tests run on multiple browsers by default:

  • Chromium (Desktop Chrome)
  • Firefox (Desktop)
  • WebKit (Desktop Safari)
  • Mobile Chrome (optional)

Configure in playwright.config.ts to adjust browsers.

CI/CD Integration

Add to your CI pipeline:

# .github/workflows/e2e.yml
- name: Install Playwright
  run: npx playwright install --with-deps

- name: Run E2E tests
  run: npx playwright test

- name: Upload artifacts
  if: always()
  uses: actions/upload-artifact@v3
  with:
    name: playwright-report
    path: playwright-report/

Best Practices

DO:

  • Use Page Object Model for maintainability
  • Use data-testid attributes for selectors
  • Wait for API responses, not arbitrary timeouts
  • Test critical user journeys end-to-end
  • Run tests before merging to main
  • Review artifacts when tests fail

DON'T:

  • Use brittle selectors (CSS classes can change)
  • Test implementation details
  • Run tests against production
  • Ignore flaky tests
  • Skip artifact review on failures
  • Test every edge case with E2E (use unit tests)

Integration with Other Commands

  • Use /plan to identify critical journeys to test
  • Use /tdd for unit tests (faster, more granular)
  • Use /e2e for integration and user journey tests
  • Use /code-review to verify test quality

Related Agents

This command invokes the e2e-runner agent located at: ~/.claude/agents/e2e-runner.md

Quick Commands

# Run all E2E tests
npx playwright test

# Run specific test file
npx playwright test tests/e2e/products/search.spec.ts

# Run in headed mode (see browser)
npx playwright test --headed

# Debug test
npx playwright test --debug

# Generate test code
npx playwright codegen http://localhost:3000

# View report
npx playwright show-report

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.