Playwright E2E Testing
activepieces/activepieces
Playwright modern end-to-end testing framework with cross-browser automation, auto-wait, and built-in test runner
Drive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification).
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add hmislk/hmis --skill playwright-e2e -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hmislk/hmis playwright-e2e --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/playwright-e2e .claude/skills/playwright-e2e && rm -rf skills-srcUse ~/.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/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .claude/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2eType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hmislk/hmis --skill playwright-e2e -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hmislk/hmis playwright-e2e --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/playwright-e2e .agents/skills/playwright-e2e && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .agents/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hmislk/hmis --skill playwright-e2e -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hmislk/hmis playwright-e2e --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/playwright-e2e .cursor/skills/playwright-e2e && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .cursor/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hmislk/hmis.git --path .claude/skills/playwright-e2e--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hmislk/hmis --skill playwright-e2e -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hmislk/hmis playwright-e2e --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/playwright-e2e .gemini/skills/playwright-e2e && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .gemini/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hmislk/hmis playwright-e2eInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hmislk/hmis --skill playwright-e2e -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/playwright-e2e .github/skills/playwright-e2e && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .github/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hmislk/hmis --skill playwright-e2e -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hmislk/hmis playwright-e2e --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/playwright-e2e .opencode/skills/playwright-e2e && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "playwright-e2e" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/playwright-e2e into .opencode/skills/playwright-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playwright-e2e", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
playwright-e2eDrive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification).
Playwright E2E is an agent skill from hmislk/hmis. Drive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification). Use when asked to test, verify, or screenshot a feature in the browser, or to confirm a fix works end-to-end against a real deployment. Rebuilds/redeploys local changes via Maven + asadmin first if needed.
Its SKILL.md is about 2.3k 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, Browser testing and MCP servers. It works with Playwright and Model Context Protocol. The repository describes itself as: This is an Open Source Java EE based Hospital Information Management System. The licence is GPL-3.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d5d2020. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepBashPowerShellmcp__playwright__browser_navigatemcp__playwright__browser_navigate_backmcp__playwright__browser_clickmcp__playwright__browser_typemcp__playwright__browser_fill_form…and 18 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudeplaywrightFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Playwright E2E loads about 2.3k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 947 words of instructions outside code blocks.
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.
The automated check found patterns that need a careful read before installing.
Instead, **immediately and without asking the user**, run:allowed-tools: Read, Glob, Grep, Bash, PowerShell, mcp__playwright__browser_navigate, mcp__playwright__browser_naviAutomated 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.
The full file from hmislk/hmis at commit d5d2020, republished under its GPL-3.0 licence (© hmislk). 947 words, ~2,274 tokens.
.claude/skills/playwright-e2e/SKILL.md (or your agent's skills folder).Full operational workflow lives in Playwright E2E Testing Workflow — read it before driving the browser. This skill is the entry point and adds the rebuild/redeploy and permission context.
For general MCP tool mechanics (tool reference, clicking/dropdown/file-upload patterns, common errors) see the companion Playwright MCP Guide — the workflow doc above is HMIS-specific; the guide is generic Playwright MCP usage.
Only ever type a URL for the application root / login page. Every inner page must be reached by clicking through the menus, exactly as a user would. Real users have no other way in — some terminals are kiosks with no address bar.
This is not cosmetic. HMIS pages are backed by @SessionScoped controllers whose
state is set by the navigation method (toSearchServiceBill(),
toManageDepartmentPreferences(), …), not by the page. Load the page by URL and
that state is null, or a lazily-created transient placeholder — so the page can
500, render blank, or run pathologically slowly in a way no user can ever hit.
Anything you observe that way is an artifact, not a defect.
Establish the menu path before testing and record it in the issue/PR in the form the user can follow, e.g. Menu → Inpatient → Search → Service Bill → set From Date → Search Bill → click Bill No → Return. If no menu path exists, that is the finding — the page is unreachable in production. Do not fall back to the URL to get on with the test. See §2.
An MCP server that failed to connect at session start (e.g. a system-reminder
saying playwright (CONNECT_TIMEOUT) or similar) will not self-heal
mid-session — a session's MCP connections are established once at startup, so
retrying a Playwright tool call again later in the same session wastes a
round-trip and always fails the same way.
Instead, immediately and without asking the user, run:
claude mcp listThis performs a fresh, independent health check outside the current session's
stale connection state. claude mcp list reports one of several distinct
statuses per server — treat each differently rather than collapsing them into
a binary "healthy or not":
✔ Connected — the server is actually reachable; the earlier failure
was specific to this session's startup timing, not a real outage. Tell the
user briefly that the initial connection attempt timed out but the server
is confirmed healthy, then fall back to claude-in-chrome for this
session (per [[feedback-prefer-playwright-over-claude-in-chrome]] project
memory) and recommend starting a fresh session next time to pick up the
working connection.! Needs authentication — not an outage; the server needs a sign-in or
header the current session hasn't provided. Tell the user it needs
re-authentication (/mcp panel or claude mcp login) rather than treating
it as down.⏸ Pending approval — project-scoped server awaiting manual approval;
tell the user to run claude interactively to approve it, not a real
outage either.! Connected · tools fetch failed — the connection itself works but
tool listing errored; this is a real (if partial) problem worth surfacing,
distinct from a clean outage.✘ Failed to connect / ✘ Connection error — only these two count
as a genuine outage. Say so explicitly and ask the user how to proceed (fix
the server, proceed with claude-in-chrome, or skip live browser testing)
rather than silently substituting one tool for the other.(Statuses per the Claude Code MCP docs as of this writing — reconfirm against
current documentation if claude mcp list's output format has changed.)
Never silently swap in claude-in-chrome without first running this check and
telling the user which case applies — claude-in-chrome cannot handle native
confirm()/alert()/prompt() dialogs (they freeze the extension), which
HMIS billing/save flows trigger routinely, so the substitution carries real
risk the user should know about upfront.
browser_snapshot)
to locate elements, real key events for PrimeFaces inputs (§3), and
browser_handle_dialog for confirm() guards (§4). Wait on the expected
result (browser_wait_for) rather than fixed sleeps (§5a). Watch for
§12
(required-field validation blocking unrelated nav buttons),
§13
(p:selectOneMenu click-option pattern), and
§14
(non-AJAX search clicks that time out but still succeed).mysql queries against the local
DB per §6.
Credentials come from C:\Credentials\ (outside the repo).tmp/ folder, then follow
§8
for anything destined for the wiki/issue. Remove temp screenshots from the
repo afterward.This skill needs, beyond the defaults:
mcp__playwright__* tool set (browser automation).clean package and Payara asadmin redeploy/deploy/undeploy for
the local rebuild step (paths in CLAUDE.md § Local build tools).mysql read access to the local database for verification queries.If any of these prompt for approval, the user's settings.local.json should
already allow them for this project — flag it if a prompt appears repeatedly.
© hmislk, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/playwright-e2e of hmislk/hmis.
Open the folder on GitHubat commit d5d2020
Playwright 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Playwright E2E this skillhmislk/hmis | 236 | — | ~2.3k | Automated safety check: Warn | GPL-3.0 | |
| Playwright E2E Testingactivepieces/activepieces | 25k | — | ~6.8k | Automated safety check: Pass | Custom licence | |
| Playwright E2E Testsonyx-dot-app/onyx | 32k | 1 repos | ~2.8k | Automated safety check: Notes | Custom licence | |
| Glance TestDebugBase/glance | 156 | — | ~827 | Automated safety check: Pass | MIT | |
| E2E VerificationChorus-AIDLC/Chorus | 1.2k | — | ~1.5k | Automated safety check: Notes | AGPL-3.0 | |
| Playwright Testingchongdashu/vibejam-starter-pack | 149 | — | ~2.2k | Automated safety check: Pass | None |
activepieces/activepieces
Playwright modern end-to-end testing framework with cross-browser automation, auto-wait, and built-in test runner
onyx-dot-app/onyx
Write and maintain Playwright end-to-end tests for the Onyx application.
DebugBase/glance
Run E2E browser tests on any web application using Glance MCP.
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…
chongdashu/vibejam-starter-pack
Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.
ansible/ansible-ui
Write, run, and debug Playwright E2E / integration / live tests.
hmislk/hmis
Reference for calling existing HMIS REST APIs. An agent skill from hmislk/hmis.
hmislk/hmis
Application configuration options reference for the HMIS project.
hmislk/hmis
Ultra-compressed communication mode. An agent skill from hmislk/hmis.
hmislk/hmis
MySQL database development guide for the HMIS project. An agent skill from hmislk/hmis.
hmislk/hmis
A skill your agent uses when asked to make a demo, training, how-to or tutorial video with sound or voice-over showing an HMIS function or configuration (e.g.
hmislk/hmis
Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub.
Works with
Categories
Drive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification). Playwright E2E is an agent skill from hmislk/hmis. Drive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification).
Playwright E2E fits situations like: screenshot a feature in the browser; confirm a fix works end-to-end against a real deployment.
Run `npx skills add hmislk/hmis --skill playwright-e2e -a claude-code`. Or copy the skill folder (.claude/skills/playwright-e2e in hmislk/hmis) into .claude/skills/playwright-e2e in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hmislk/hmis --skill playwright-e2e -a codex`. Or copy the skill folder (.claude/skills/playwright-e2e in hmislk/hmis) into .agents/skills/playwright-e2e in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hmislk/hmis --skill playwright-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/playwright-e2e, .gemini/skills/playwright-e2e, .github/skills/playwright-e2e and .opencode/skills/playwright-e2e in your project.
Going by SKILL.md and its folder, Playwright E2E needs the command-line tools its instructions call (claude and playwright). Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash, PowerShell, mcp__playwright__browser_navigate, mcp__playwright__browser_navigate_back, mcp__playwright__browser_click, mcp__playwright__browser_type, mcp__playwright__browser_fill_form, mcp__playwright__browser_select_option, mcp__playwright__browser_hover, mcp__playwright__browser_drag, mcp__playwright__browser_drop, mcp__playwright__browser_press_key, mcp__playwright__browser_file_upload, mcp__playwright__browser_handle_dialog, mcp__playwright__browser_wait_for, mcp__playwright__browser_snapshot, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_console_messages, mcp__playwright__browser_network_request, mcp__playwright__browser_network_requests, mcp__playwright__browser_evaluate, mcp__playwright__browser_run_code_unsafe, mcp__playwright__browser_resize, mcp__playwright__browser_tabs, mcp__playwright__browser_close.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
Playwright E2E is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Playwright E2E: Playwright E2E Testing (activepieces/activepieces, 25k stars), Playwright E2E Tests (onyx-dot-app/onyx, 32k stars), Glance Test (DebugBase/glance, 156 stars) and E2E Verification (Chorus-AIDLC/Chorus, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hmislk (a GitHub organization) maintains it in hmislk/hmis, which has 236 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 8, 2026.
Source: hmislk/hmis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.