Agent skill

E2E Verification

by Chorus-AIDLC in Chorus-AIDLC/Chorus

A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…

AGPL-3.0Auto-check: notesTesting & QA

Install E2E Verification

skills CLI
$ npx skills add Chorus-AIDLC/Chorus --skill e2e-verification -a claude-code

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

GitHub CLI
$ gh skill install Chorus-AIDLC/Chorus e2e-verification --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/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/e2e-verification .claude/skills/e2e-verification && 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-verification
GitHub stars
1.2k
Token cost
~1.5k tokens
SKILL.md length
665 words
Files
1
Skills in repo
64
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…

  • Works in 4 steps: Find credentials → Log in (verified flow) → Navigate & observe → …
  • Manually verifying a Chorus frontend change in a real browser — finding local login credentials
  • SKILL.md covers Overview, Prerequisites, Step 1 — Find credentials and Step 2 — Log in (verified flow), plus 4 more sections
  • Calls pnpm, curl and git; needs DEFAULT_PASSWORD

What it does

E2E Verification is an agent skill from Chorus-AIDLC/Chorus. Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in, navigating to a page, and capturing snapshots/screenshots for e2e acceptance.

Its SKILL.md is about 1.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 and Browser testing. It works with Playwright, Model Context Protocol and pnpm. The repository describes itself as: The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle). The licence is AGPL-3.0.

When your agent uses it

  • Manually verifying a Chorus frontend change in a real browser — finding local login credentials
  • Driving the running dev server with the Playwright MCP
  • Navigating to a page
  • Capturing snapshots/screenshots for e2e acceptance

Example prompts

  • “/e2e-verification”

Workflow steps

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

  1. Find credentials
  2. Log in (verified flow)
  3. Navigate & observe
  4. Screenshot for the human

What it can do on your machine

Read from SKILL.md and the folder at commit 4754822. 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
    • curl
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, curl and git, 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:

    • DEFAULT_PASSWORD

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

Context cost

E2E Verification loads about 1.5k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 665 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~1.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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:31
    password on `/login`). Read it from the `.env` file at the repo root:
  • NoteMentions a .env fileSKILL.md:34
    grep -E "DEFAULT_USER|DEFAULT_PASSWORD" .env
  • NoteMentions a .env fileSKILL.md:93
    r local dev | Local dev = default-auth (`.env` `DEFAULT_USER`/`DEFAULT_PASSWORD`) → `/api/auth/default-login` → `/projec

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 Chorus-AIDLC/Chorus at commit 4754822, republished under its AGPL-3.0 licence (© Chorus-AIDLC). 665 words, ~1,509 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-verification/SKILL.md (or your agent's skills folder).
name
e2e-verification
description
Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in, navigating to a page, and capturing snapshots/screenshots for e2e acceptance.
license
AGPL-3.0
metadata.author
chorus
metadata.version
0.1.0
metadata.category
testing

E2E Verification (Playwright + local login)

Overview

Drive the running Chorus dev server in a real browser via the Playwright MCP to verify UI changes end-to-end. Core loop: log in with local credentials → navigate → snapshot to read state / act → screenshot for the human.

This is manual acceptance, not the automated Vitest suite (pnpm test). Use it when an AC says "the user sees X" and only a real browser can confirm it.

Prerequisites

  • Dev server healthy on port 8637. Always check first:
    bash
    curl -s -o /dev/null -w "%{http_code}" http://localhost:8637/login   # expect 200
    If it's not 200 (connection refused, 500, or anything else), the server isn't running or is broken — start it with pnpm dev:local and re-check until it returns 200 before driving the browser. (Plain pnpm dev works too, but pnpm dev:local brings up the full local stack.)
  • Playwright MCP tools available. They are deferred — load them first: ToolSearch("select:mcp__playwright__browser_navigate,mcp__playwright__browser_snapshot,mcp__playwright__browser_take_screenshot,mcp__playwright__browser_click,mcp__playwright__browser_fill_form")

Step 1 — Find credentials

Local dev uses the default-auth path (plain email + password on /login). Read it from the .env file at the repo root:

bash
grep -E "DEFAULT_USER|DEFAULT_PASSWORD" .env
# DEFAULT_USER="admin@chorus.local"
# DEFAULT_PASSWORD="chorus"

DEFAULT_USER logs in as a regular workspace user (e.g. admin@chorus.local). This is NOT the same as SUPER_ADMIN_EMAIL (the /login/admin panel) or the Cognito OIDC flow described in the older .claude/skills/oidc-login.md — for normal page verification you want default-auth.

Step 2 — Log in (verified flow)

When default-auth is enabled, /login shows the email+password form directly (no SSO redirect):

  1. browser_navigate → http://localhost:8637/login
  2. browser_snapshot → grab the ref of the Email box, Password box, and "Sign In" button.
  3. browser_fill_form with both fields:
    [{ name: "Email",    target: "<email-ref>",    type: "textbox", value: "admin@chorus.local" },
     { name: "Password", target: "<password-ref>", type: "textbox", value: "chorus" }]
  4. browser_click the "Sign In" button.
  5. Success = URL becomes /projects. The tool result echoes Page URL — confirm it changed. If it stays on /login with an error banner, the credentials or the server's default-auth config are wrong.

Already authenticated from a prior session? The browser keeps the session, so you can skip straight to Step 3. To test the login itself, sign out first: on any dashboard page click the "Sign out" button (bottom-left of the sidebar), which returns you to /login. (If /login already shows the email+password form, you're logged out — there's no "Sign out" button to find; just proceed with Step 2.)

Step 3 — Navigate & observe

  • browser_navigate to the target, e.g. a project dashboard: http://localhost:8637/projects/<project-uuid>/dashboard
  • browser_snapshot is the workhorse — it returns an accessibility tree with stable ref ids. Use it to read page state and to get the ref/target you pass to browser_click, browser_fill_form, etc. Prefer it over screenshots for acting.
  • Toggle UI and re-snapshot to compare states (e.g. the dashboard's Ideas/Stats and Flat/Lineage segmented controls each re-render the tree).
  • If a navigate returns a near-empty tree, the page is still hydrating — call browser_snapshot again.
Show full SKILL.md (235 more words)Show less

Step 4 — Screenshot for the human

Use browser_take_screenshot when the human needs to see the result (visual layout, spacing, color).

Always prefix the filename with .playwright-mcp/ — that directory is gitignored. A bare filename: "foo.png" saves to the repo root and pollutes git status.

browser_take_screenshot({ type: "png", filename: ".playwright-mcp/dashboard-lineage.png" })

Then Read it to view it inline. The screenshot tool result echoes a repo-relative path; Read needs an absolute one, so read it as <repo-root>/.playwright-mcp/<name>.png (prefix the path you passed with the absolute repo root). To capture a single element instead of the viewport, pass its target ref (from a snapshot). The MCP also auto-saves snapshot .yml and console .log files under .playwright-mcp/.

Quick reference

NeedTool
Go to a URLbrowser_navigate
Read page state / get element refsbrowser_snapshot
Click / type / fillbrowser_click, browser_type, browser_fill_form
Visual capture for the humanbrowser_take_screenshot → .playwright-mcp/<name>.png
Check console errorsbrowser_console_messages

Common mistakes

MistakeFix
Calling browser_* before loading schemasToolSearch("select:mcp__playwright__browser_...") first; bare calls fail with InputValidationError.
Screenshot with bare filenamePrefix .playwright-mcp/ or it lands in repo root (not gitignored).
Following the old oidc-login.md (Cognito) for local devLocal dev = default-auth (.env DEFAULT_USER/DEFAULT_PASSWORD) → /api/auth/default-login → /projects.
Acting on coordinates from a screenshotScreenshots aren't actionable; get refs from browser_snapshot.
"Login failed" but credentials look rightConfirm dev server is up on 8637 and Page URL actually moved off /login.
find-ing for a saved screenshot across the FSIt's already at the .playwright-mcp/<name>.png you passed; just Read it.

© Chorus-AIDLC, 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-verification of Chorus-AIDLC/Chorus.

Open the folder on GitHubat commit 4754822

Compare with similar skills

E2E Verification 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 Verification compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Verification this skillChorus-AIDLC/Chorus1.2k—~1.5kAutomated safety check: NotesAGPL-3.0
Playwright E2E Testsonyx-dot-app/onyx32k1 repos~2.8kAutomated safety check: NotesCustom licence
E2E PlaywrightAsvarox/allkaraoke261—~876Automated safety check: PassNone
Ha Frontend Testinghome-assistant/frontend5.7k—~1.7kAutomated safety check: PassApache-2.0
Playwright Testingchongdashu/vibejam-starter-pack149—~2.2kAutomated safety check: PassNone
Frontend Playwright E2Eansible/ansible-ui113—~2.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Playwright E2E Tests

    onyx-dot-app/onyx

    Write and maintain Playwright end-to-end tests for the Onyx application.

    32k GitHub starsUsed in 1 repo~2.8k tokens
    Testing & QAAuto-check: notes
  • E2E Playwright

    Asvarox/allkaraoke

    Run, write, and debug Playwright E2E tests for this project.

    261 GitHub stars~876 tokensUpdated today
    Testing & QAAuto-check passed
  • Ha Frontend Testing

    home-assistant/frontend

    Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Playwright Testing

    chongdashu/vibejam-starter-pack

    Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.

    149 GitHub stars~2.2k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • Frontend Playwright E2E

    ansible/ansible-ui

    Write, run, and debug Playwright E2E / integration / live tests.

    113 GitHub stars~2.5k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Procedure for choosing stable selectors when building Page Object Models for the Opik E2E suite by exploring the live UI with the Playwright MCP.

    22k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed

More from Chorus-AIDLC/Chorus

All 64 skills in this repo
  • Blog

    Chorus-AIDLC/Chorus

    Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.

    1.2k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas on Hermes.

    1.2k GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm Chorus

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Chorus Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Chorus CLI

    Chorus-AIDLC/Chorus

    How to install, configure, and use the chorus CLI — install it, manage agents with chorus agents (add/remove/list), the connection environment variables, and MCP operations via chorus mcp.

    1.2k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check: notes

Categories

Questions about E2E Verification

What does E2E Verification do?

A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…. E2E Verification is an agent skill from Chorus-AIDLC/Chorus. Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in, navigating to a page, and capturing snapshots/screenshots for e2e acceptance.

When should I use E2E Verification?

E2E Verification fits situations like: manually verifying a Chorus frontend change in a real browser — finding local login credentials; driving the running dev server with the Playwright MCP; navigating to a page; capturing snapshots/screenshots for e2e acceptance.

How do I install E2E Verification in Claude Code?

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

How do I install E2E Verification in Codex?

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

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

What does E2E Verification need to run?

Going by SKILL.md and its folder, E2E Verification needs the command-line tools its instructions call (pnpm, curl and git) and credentials named DEFAULT_PASSWORD.

Does E2E Verification access the network?

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

Is E2E Verification safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does E2E Verification use?

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

How many tokens does E2E Verification use?

About 1.5k tokens (SKILL.md is roughly 6k 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 Verification?

Skills that share tags, products or a category with E2E Verification: Playwright E2E Tests (onyx-dot-app/onyx, 32k stars), E2E Playwright (Asvarox/allkaraoke, 261 stars), Ha Frontend Testing (home-assistant/frontend, 5.7k stars) and Playwright Testing (chongdashu/vibejam-starter-pack, 149 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Verification?

Chorus-AIDLC (a GitHub organization) maintains it in Chorus-AIDLC/Chorus, which has 1,192 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 7, 2026.

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