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…

AGPL-3.0Auto-check passedTesting & QA

Install E2E

skills CLI
$ npx skills add openathleteorg/openathlete --skill e2e -a claude-code

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

GitHub CLI
$ gh skill install openathleteorg/openathlete e2e --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/openathleteorg/openathlete.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/e2e .claude/skills/e2e && 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
GitHub stars
100
Token cost
~675 tokens
SKILL.md length
265 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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…

  • Works in 4 steps: In CI, download the playwright-report… → Read the service logs: pnpm e2e… → Reproduce locally with --project… → …
  • A change affects a user flow
  • SKILL.md covers Run, Projects, Writing tests and Debugging a failure
  • Calls pnpm and npx

What it does

E2E is an agent skill from 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 mobile. Use when a change affects a user flow, deployment wiring, or when an E2E check fails in CI.

Its SKILL.md is about 680 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, Containers and Browser testing. It works with Docker, Playwright, PostgreSQL and Redis. The repository describes itself as: The open-source European alternative to TrainingPeaks. Self-hostable endurance training platform. Your data stays yours. The licence is AGPL-3.0.

When your agent uses it

  • A change affects a user flow
  • Deployment wiring
  • An E2E check fails in CI

Example prompts

  • “/e2e”

Requirements

  • Node.js
  • Docker

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. In CI, download the playwright-report artifact and open it with npx playwright show-report . Failed tests keep a trace and a screenshot.
  2. Read the service logs: pnpm e2e stack:logs. The CI job prints them when it fails.
  3. Reproduce locally with --project --debug, or replay the trace with npx playwright show-trace.
  4. If the setup project fails, every browser test is skipped: fix login or signup first.

What it can do on your machine

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

    • pnpm
    • npx

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

  • Network

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

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

Context cost

E2E loads about 675 tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 265 words of instructions outside code blocks.

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

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 openathleteorg/openathlete at commit e5d83a0, republished under its AGPL-3.0 licence (© openathleteorg). 265 words, ~675 tokens.

Download SKILL.mdSave it as .claude/skills/e2e/SKILL.md (or your agent's skills folder).
name
e2e
description
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 mobile. Use when a change affects a user flow, deployment wiring, or when an E2E check fails in CI.

End-to-end tests

Everything lives in e2e/:

  • docker-compose.yml: the stack, built from apps/api/Dockerfile and apps/web/Dockerfile;
  • playwright.config.ts;
  • tests/ and support/.

Run

bash
pnpm e2e stack:up        # build images and wait until every service is healthy
pnpm e2e test:e2e        # all projects
pnpm e2e test:e2e tests/web/dashboard.spec.ts --project desktop
pnpm e2e test:e2e:ui     # interactive mode
pnpm e2e stack:down      # stop and delete the data

After changing API or web code, run stack:up again: it rebuilds the images. The web app is on http://localhost:18080 and the API on http://localhost:13000.

Projects

ProjectFilesContext
setuptests/auth.setup.tsCreates an athlete and logs in through the UI; saves .auth/athlete.json
apitests/api/*.spec.tsPlaywright request, no browser
desktoptests/web/*.spec.tsDesktop Chrome, logged in as the shared athlete
mobiletests/mobile/*.spec.tsiPhone 13 viewport and touch input on Chromium, logged in

Writing tests

  • Create users through createAthlete(request) from support/api.ts. Every test gets its own account, and each test owns its data.
  • API calls go through apiHeaders(). It sets a random private X-Forwarded-For, so tests don't share the 10 logins per minute rate limit.
  • For pages, start with const problems = trackPageProblems(page) and end with expect(problems).toEqual([]). This catches uncaught errors, console errors and failed requests.
  • To test logged out, add test.use({ storageState: { cookies: [], origins: [] } }).
  • Prefer role and text locators, or data-* attributes already in the app. Never use timeouts as waits: use expect(...).toBeVisible() or toHaveURL instead.
  • Mobile layout bugs: assert there is no horizontal overflow (see tests/mobile/navigation.spec.ts).

Debugging a failure

  1. In CI, download the playwright-report artifact and open it with npx playwright show-report <dir>. Failed tests keep a trace and a screenshot.
  2. Read the service logs: pnpm e2e stack:logs. The CI job prints them when it fails.
  3. Reproduce locally with --project <name> --debug, or replay the trace with npx playwright show-trace.
  4. If the setup project fails, every browser test is skipped: fix login or signup first.

© openathleteorg, AGPL-3.0. 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 .claude/skills/e2e of openathleteorg/openathlete.

Open the folder on GitHubat commit e5d83a0

Compare with similar skills

E2E 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E this skillopenathleteorg/openathlete100—~675Automated safety check: PassAGPL-3.0
Run Dashboard E2E Local ChangesBlackBeltTechnology/pi-agent-dashboard316—~1.3kAutomated safety check: PassMIT
Acarshub Tool Additionssdr-enthusiasts/docker-acarshub117—~707Automated safety check: PassGPL-3.0
Verifier Webpolarsource/polar10k—~3kAutomated safety check: NotesMIT
Redis Insight Pluginredis/RedisInsight8.9k—~3.5kAutomated safety check: PassMIT
Go Redis Client Test Runnerredis/go-redis22k—~786Automated safety check: PassBSD-2-Clause

Similar skills

  • Run Dashboard E2E Local Changes

    BlackBeltTechnology/pi-agent-dashboard

    Run Playwright E2E (tests/e2e/) against the docker/ all-in-one harness so it reflects LOCAL code changes, not a stale cached image.

    316 GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Acarshub Tool Additions

    sdr-enthusiasts/docker-acarshub

    Use ONLY when working in the docker-acarshub repository AND a task may require adding a system tool, npm package, or other dependency.

    117 GitHub stars~707 tokensUpdated 3 days ago
    DevOps & CloudAuto-check passed
  • Verifier Web

    polarsource/polar

    Evidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright.

    10k GitHub stars~3k tokensUpdated today
    Data & AnalyticsAuto-check: notes
  • Redis Insight Plugin

    redis/RedisInsight

    Official

    A skill your agent uses when creating, modifying, debugging, deploying, or testing Redis Insight Workbench visualization plugins, plugin manifests, package.json visualizations, activationMethod…

    8.9k GitHub stars~3.5k tokensUpdated 2 days ago
    DatabasesAuto-check passed
  • Official

    Explains how to run go-redis tests: the Docker Compose stack, make targets, focusing a single Ginkgo spec, the e2e suite and the version environment variables.

    22k GitHub stars~786 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • E2E Testing

    OpenHands/OpenHands

    This skill should be used when the user asks to "add an E2E test", "run live E2E", "run mock-LLM tests", "debug Playwright CI", "test the Docker image", or changes tests/e2e, Playwright configs, E2E…

    90k GitHub stars~308 tokensUpdated today
    Testing & QAAuto-check passed

More from openathleteorg/openathlete

All 8 skills in this repo
  • API Endpoint

    openathleteorg/openathlete

    Add or change an OpenAthlete API endpoint end to end, from the shared Zod schema to the NestJS controller and service, the web API client, the React Query hook and the UI, with tests.

    100 GitHub stars~682 tokensUpdated today
    Auto-check passed
  • I18n

    openathleteorg/openathlete

    Add or change user-facing text in OpenAthlete (web app Paraglide catalogs, API emails and push notifications, website) in every supported language.

    100 GitHub stars~512 tokensUpdated today
    Auto-check passed
  • Prisma Migration

    openathleteorg/openathlete

    Change the OpenAthlete database schema safely with Prisma, covering the migration SQL, production safety, account deletion coverage and tests.

    100 GitHub stars~575 tokensUpdated today
    Auto-check passed
  • Review PR

    openathleteorg/openathlete

    Review an external pull request on openathleteorg/openathlete, test it on top of current main, resolve trivial conflicts, and approve, request changes or merge with a clear, friendly review.

    100 GitHub stars~823 tokensUpdated today
    Auto-check passed
  • Triage Feedback

    openathleteorg/openathlete

    Gather OpenAthlete user feedback from GitHub (issues, PRs, discussions) and the local Discord export, deduplicate it, prioritize it, and draft replies.

    100 GitHub stars~552 tokensUpdated today
    Auto-check passed
  • Release

    openathleteorg/openathlete

    Cut and verify an OpenAthlete release, from choosing the version and running checks to the vX.Y.Z tag, GHCR images and GitHub release notes, including what self-hosters must know.

    100 GitHub stars~505 tokensUpdated today
    Auto-check passed

Categories

Questions about E2E

What does E2E do?

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…. E2E is an agent skill from 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 mobile.

When should I use E2E?

E2E fits situations like: A change affects a user flow; deployment wiring; an E2E check fails in CI.

How do I install E2E in Claude Code?

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

How do I install E2E in Codex?

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

Can I use E2E 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 openathleteorg/openathlete --skill e2e -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, .gemini/skills/e2e, .github/skills/e2e and .opencode/skills/e2e in your project.

What does E2E need to run?

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

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

E2E is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does E2E use?

About 675 tokens (SKILL.md is roughly 2.7k 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?

Skills that share tags, products or a category with E2E: Run Dashboard E2E Local Changes (BlackBeltTechnology/pi-agent-dashboard, 316 stars), Acarshub Tool Additions (sdr-enthusiasts/docker-acarshub, 117 stars), Verifier Web (polarsource/polar, 10k stars) and Redis Insight Plugin (redis/RedisInsight, 8.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E?

openathleteorg (a GitHub organization) maintains it in openathleteorg/openathlete, which has 100 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

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