Agent skill

E2E Generation

by EmeaAppGbb in EmeaAppGbb/spec2cloud

Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs.

MITAuto-check passedTesting & QA

Install E2E Generation

skills CLI
$ npx skills add EmeaAppGbb/spec2cloud --skill e2e-generation -a claude-code

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

GitHub CLI
$ gh skill install EmeaAppGbb/spec2cloud e2e-generation --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/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/e2e-generation .claude/skills/e2e-generation && 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
e2e-generation
GitHub stars
100
Token cost
~2.5k tokens
SKILL.md length
916 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs.

  • Works in 5 steps: Extract Flows from Walkthrough → Generate Page Object Models → Generate E2E Flow Specs → …
  • Scaffolding e2e tests
  • SKILL.md covers Role, Inputs, Generation Strategy and Aspire Environment, plus 5 more sections
  • Calls npx

What it does

E2E Generation is an agent skill from EmeaAppGbb/spec2cloud. Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs. Create complete user journey tests that exercise navigation, forms, and interactions. Use when scaffolding e2e tests, creating POMs, or generating Playwright specs for user flows.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering End-to-end testing, UX design and UI design. It works with Playwright. The licence is MIT.

When your agent uses it

  • Scaffolding e2e tests
  • Generating Playwright specs for user flows

Example prompts

  • “/e2e-generation”

Requirements

  • Node.js

Workflow steps

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

  1. Extract Flows from Walkthrough
  2. Generate Page Object Models
  3. Generate E2E Flow Specs
  4. Generate Cross-Flow Specs
  5. Tag and Organize

What it can do on your machine

Read from SKILL.md and the folder at commit 8e76618. 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:

    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use 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 no API keys, tokens, secrets or passwords.

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

Context cost

E2E Generation loads about 2.5k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 916 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

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 EmeaAppGbb/spec2cloud at commit 8e76618, republished under its MIT licence (© EmeaAppGbb). 916 words, ~2,541 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-generation/SKILL.md (or your agent's skills folder).
name
e2e-generation
description
Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs. Create complete user journey tests that exercise navigation, forms, and interactions. Use when scaffolding e2e tests, creating POMs, or generating Playwright specs for user flows.

E2E Generation

Role

You are the E2E Generation Agent. You read the approved UI/UX artifacts — flow-walkthrough.md, screen map, component inventory, and HTML prototypes — and generate comprehensive Playwright end-to-end test specs that exercise every user flow in the system. Your output is a complete set of e2e specs and Page Object Models that visually confirm the application matches the PRD and FRDs.

You operate during Phase 2, Step 1a: E2E Test Generation of each increment. For each increment, you generate e2e tests ONLY for the flows scoped to that increment (as defined in specs/increment-plan.md). Tests from previous increments already exist and must not be modified.

The specs/ui/flow-walkthrough.md is the master source of truth for all user flows. You generate tests for the subset of flows relevant to the current increment.


Inputs

Before you begin, read and understand:

  1. Flow walkthrough (specs/ui/flow-walkthrough.md) — canonical list of all user flows. Every flow becomes one or more Playwright test cases.
  2. Screen map (specs/ui/screen-map.md) — screen inventory with navigation connections and FRD mapping.
  3. Component inventory (specs/ui/component-inventory.md) — all UI components, their props/states, and which screens use them.
  4. HTML prototypes (specs/ui/prototypes/*.html) — interactive wireframes with exact HTML structure, selectors, and interaction patterns.
  5. FRDs (specs/frd-*.md) — for domain context and acceptance criteria.
  6. PRD (specs/prd.md) — for overall product vision and success criteria.
  7. .spec2cloud/state.json — confirm you are in Phase 2 (increment delivery), Step 1.
  8. Increment plan (specs/increment-plan.md) — identify which flows are in scope for the current increment.

Generation Strategy

Step 1: Extract Flows from Walkthrough

Read specs/ui/flow-walkthrough.md and extract every user flow. A flow is a complete user journey with:

  • A starting point (e.g., "user arrives at landing page")
  • A sequence of actions (e.g., "clicks Sign Up → fills form → submits")
  • An expected outcome (e.g., "sees dashboard with welcome message")

Create a mapping: flow name → list of screens traversed → expected outcome.

Step 2: Generate Page Object Models

For each screen in specs/ui/screen-map.md, create a POM class in e2e/pages/:

typescript
// e2e/pages/{screen-name}.page.ts
import { type Locator, type Page } from '@playwright/test';

export class {ScreenName}Page {
  readonly page: Page;
  // Locators derived from specs/ui/prototypes/{screen-name}.html
  readonly heading: Locator;
  readonly navLinks: Locator;
  // ... all interactive elements from the prototype

  constructor(page: Page) {
    this.page = page;
    // Selectors match the HTML structure in the prototype
    this.heading = page.getByRole('heading', { name: /.../ });
    this.navLinks = page.getByRole('navigation').getByRole('link');
  }

  async goto() {
    await this.page.goto('/{route}');
  }

  // Action methods for each user interaction from the prototype
  async fillForm(data: Record<string, string>) { /* ... */ }
  async submit() { /* ... */ }
}

POM rules:

  • One POM per screen (1:1 with prototype HTML files)
  • Selectors must match the HTML structure in specs/ui/prototypes/{screen-name}.html
  • Use semantic selectors: getByRole, getByLabel, getByText — avoid CSS selectors
  • Include action methods for every interaction shown in the prototype
  • Include assertion helpers for verifying screen state
Step 3: Generate E2E Flow Specs

For each flow in flow-walkthrough.md, create a Playwright spec:

typescript
// e2e/{flow-name}.spec.ts
import { test, expect } from '@playwright/test';
import { LandingPage } from './pages/landing.page';
import { LoginPage } from './pages/login.page';
import { DashboardPage } from './pages/dashboard.page';

test.describe('Flow: {flow-name}', () => {
  test('should complete the full {flow-name} journey', async ({ page }) => {
    // Step 1: Start at the landing page
    const landing = new LandingPage(page);
    await landing.goto();
    await expect(landing.heading).toBeVisible();

    // Step 2: Navigate to login
    await landing.clickSignIn();
    const login = new LoginPage(page);
    await expect(login.emailInput).toBeVisible();

    // Step 3: Complete login
    await login.login('jane@example.com', 'SecureP@ss1');

    // Step 4: Verify dashboard
    const dashboard = new DashboardPage(page);
    await expect(page).toHaveURL(/\/dashboard/);
    await expect(dashboard.welcomeMessage).toContainText(/Welcome/);
  });
});

Spec rules:

  • Each spec file exercises a complete user flow — not isolated page checks
  • Tests navigate through the full journey as described in flow-walkthrough.md
  • At each step, verify visual elements: headings, key content, navigation state
  • Include assertions that confirm the app does what the PRD/FRDs describe
  • Use POMs from Step 2 — never raw selectors in specs
Step 4: Generate Cross-Flow Specs

Identify flows that span multiple features or share navigation paths. Create cross-flow specs that verify:

  • Navigation between features works (e.g., dashboard → settings → back to dashboard)
  • Shared UI elements persist across flows (e.g., navigation bar, user avatar)
  • State carries across flows (e.g., login state persists across page navigation)
Step 5: Tag and Organize

Apply tags consistently:

TagUsage
@smokeCritical happy-path flows — minimum set for deployment verification
@flow:{flow-name}Traceability to the specific flow in flow-walkthrough.md
@frd:{frd-id}Traceability to the FRD the flow validates

Aspire Environment

All e2e tests run against the Aspire-managed environment. The Playwright config already handles this:

  • webServer in e2e/playwright.config.ts starts aspire start + aspire wait web
  • Base URL defaults to http://localhost:3001 (Aspire web port)
  • API is available at http://localhost:5001 (Aspire API port)
  • Running locally via Aspire is non-negotiable — never start API/Web individually

Do NOT modify the Playwright config or webServer setup. Your tests run against the Aspire environment automatically.

Show full SKILL.md (374 more words)Show less
Post-Deployment E2E Verification

After every Azure deployment, the full E2E suite (not just @smoke) must pass against the deployed URL. This is enforced by the azure-deployment skill. When writing e2e tests, ensure they work with both local Aspire and deployed URLs via PLAYWRIGHT_BASE_URL.


Verification

After generating all specs:

  1. List all tests:

    bash
    npx playwright test --list --config=e2e/playwright.config.ts

    All tests should be listed without errors.

  2. Verify compilation:

    bash
    npx tsc --noEmit --project tsconfig.json

    All TypeScript files should compile without errors.

  3. Coverage check: Every flow in flow-walkthrough.md must have a corresponding spec file. Create a coverage matrix:

    Flow: "New user signup" → e2e/signup-flow.spec.ts ✅
    Flow: "Returning user login" → e2e/login-flow.spec.ts ✅
    Flow: "Create resource" → e2e/resource-flow.spec.ts ✅
    ...

Test Quality Rules

  1. Full journeys, not page checks — each test navigates a complete user flow end-to-end
  2. Visual confirmation — assert headings, key content, navigation state at each step
  3. No hardcoded waits — use waitFor, toBeVisible, toHaveURL patterns
  4. No hardcoded test data — use constants or fixtures
  5. Each test is independent — no test depends on another test's side effects
  6. POMs for all page interactions — never raw selectors in spec files
  7. Avoid test.skip() — tests should exist and be runnable (they'll fail until implementation)

Output Structure

e2e/
├── playwright.config.ts          # Already exists — do not modify
├── fixtures.ts                   # Shared test fixtures and helpers
├── {flow-name}.spec.ts           # One spec per flow from flow-walkthrough.md
├── smoke.spec.ts                 # Smoke tests (critical happy paths)
└── pages/                        # Page Object Models
    ├── landing.page.ts           # One POM per screen from screen-map.md
    ├── login.page.ts
    ├── dashboard.page.ts
    └── ...

State Updates

After completing e2e generation:

  1. Update .spec2cloud/state.json — set phase to e2e-generation-complete
  2. Append to .spec2cloud/audit.log:
    [TIMESTAMP] e2e-generation: Generated e2e specs for N flows
    [TIMESTAMP] e2e-generation: Generated N Page Object Models
    [TIMESTAMP] e2e-generation: All specs compile and are listed ✅
  3. Commit all generated files with message: [e2e-gen] scaffold e2e tests for all flows

Mandatory Completion Checklist

The orchestrator MUST verify ALL of the following before marking e2e-generation as complete:

  • At least one Playwright spec file (e2e/*.spec.ts) exists for every user flow in specs/ui/flow-walkthrough.md
  • A Page Object Model (e2e/pages/*.page.ts) exists for every screen in specs/ui/screen-map.md
  • Every POM uses data-testid selectors from specs/ui/component-inventory.md (not CSS classes or XPath)
  • e2e/playwright.config.ts exists and is configured for the Aspire environment
  • All spec files compile successfully (npx playwright test --list returns all specs without errors)
  • Navigation flows between pages are tested (not just individual page interactions)
  • State JSON and audit log are updated

BLOCKING: If any item is unchecked, the skill has NOT completed successfully. The orchestrator must loop back and complete the missing items before advancing to Gherkin generation.

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

Files

Just SKILL.md in .github/skills/e2e-generation of EmeaAppGbb/spec2cloud.

Open the folder on GitHubat commit 8e76618

Compare with similar skills

E2E Generation 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.

E2E Generation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Generation this skillEmeaAppGbb/spec2cloud100—~2.5kAutomated safety check: PassMIT
E2Eopenathleteorg/openathlete100—~675Automated safety check: PassAGPL-3.0
UI Reviewjvm-skills/jvm-skills140—~545Automated safety check: PassApache-2.0
Playwright E2E Testingfugazi/test-automation-skills-agents247—~3.2kAutomated safety check: PassMIT
Playwright E2E Builderdavila7/claude-code-templates32k—~5.3kAutomated safety check: NotesMIT
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0

Similar skills

  • E2E

    openathleteorg/openathlete

    Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…

    100 GitHub stars~675 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • UI Review

    jvm-skills/jvm-skills

    Verify UI/UX by running Playwright tests and reviewing screenshots.

    140 GitHub stars~545 tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • 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 4 days ago
    Testing & QAAuto-check passed
  • Playwright E2E Builder

    davila7/claude-code-templates

    Plan and build comprehensive Playwright E2E test suites with Page Object Model, authentication state persistence, custom fixtures, visual regression, and CI integration.

    32k GitHub stars~5.3k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Testing & QAAuto-check passed

More from EmeaAppGbb/spec2cloud

All 39 skills in this repo
  • Azure Deployment

    EmeaAppGbb/spec2cloud

    Provision Azure infrastructure, deploy to Azure Container Apps, and verify via smoke tests.

    100 GitHub stars~1.8k tokensUpdated 5 mo ago
    Auto-check passed
  • Contract Generation

    EmeaAppGbb/spec2cloud

    Generate API contracts, shared TypeScript types, and infrastructure resource definitions from Gherkin scenarios and test files.

    100 GitHub stars~1.6k tokensUpdated 5 mo ago
    Auto-check passed
  • Ddd Modeling

    EmeaAppGbb/spec2cloud

    Create Domain-Driven Design proposals from product specs or brownfield extraction outputs.

    100 GitHub stars~2.4k tokensUpdated 5 mo ago
    Auto-check passed
  • Implementation

    EmeaAppGbb/spec2cloud

    Write application code to make failing tests pass using contract-driven, slice-based architecture.

    100 GitHub stars~2.8k tokensUpdated 5 mo ago
    Auto-check passed
  • Spec Refinement

    EmeaAppGbb/spec2cloud

    Review PRDs and FRDs through product and technical lenses. An agent skill from EmeaAppGbb/spec2cloud.

    100 GitHub stars~2.2k tokensUpdated 5 mo ago
    Auto-check passed
  • State Management

    EmeaAppGbb/spec2cloud

    Read, write, and maintain .spec2cloud/state.json across phases and increments.

    100 GitHub stars~1.5k tokensUpdated 5 mo ago
    Auto-check passed

Works with

Categories

Questions about E2E Generation

What does E2E Generation do?

Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs. E2E Generation is an agent skill from EmeaAppGbb/spec2cloud. Generate Playwright end-to-end test specs and Page Object Models from UI/UX flow walkthroughs.

When should I use E2E Generation?

E2E Generation fits situations like: scaffolding e2e tests; generating Playwright specs for user flows.

How do I install E2E Generation in Claude Code?

Run `npx skills add EmeaAppGbb/spec2cloud --skill e2e-generation -a claude-code`. Or copy the skill folder (.github/skills/e2e-generation in EmeaAppGbb/spec2cloud) into .claude/skills/e2e-generation in your project. Claude Code loads it when a task matches its description.

How do I install E2E Generation in Codex?

Run `npx skills add EmeaAppGbb/spec2cloud --skill e2e-generation -a codex`. Or copy the skill folder (.github/skills/e2e-generation in EmeaAppGbb/spec2cloud) into .agents/skills/e2e-generation in your project. Codex loads it when a task matches its description.

Can I use E2E Generation 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 EmeaAppGbb/spec2cloud --skill e2e-generation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e-generation, .gemini/skills/e2e-generation, .github/skills/e2e-generation and .opencode/skills/e2e-generation in your project.

What does E2E Generation need to run?

Going by SKILL.md and its folder, E2E Generation needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does E2E Generation access the network?

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

Is E2E Generation 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 E2E Generation use?

E2E Generation 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 E2E Generation use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to E2E Generation?

Skills that share tags, products or a category with E2E Generation: E2E (openathleteorg/openathlete, 100 stars), UI Review (jvm-skills/jvm-skills, 140 stars), Playwright E2E Testing (fugazi/test-automation-skills-agents, 247 stars) and Playwright E2E Builder (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Generation?

EmeaAppGbb (a GitHub organization) maintains it in EmeaAppGbb/spec2cloud, which has 100 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on April 16, 2026.

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