Agent skill

Playwright E2E

by hmislk in 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).

GPL-3.0Auto-check: warningsTesting & QA

Install Playwright E2E

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add hmislk/hmis --skill playwright-e2e -a claude-code

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

GitHub CLI
$ gh skill install hmislk/hmis playwright-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/hmislk/hmis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/playwright-e2e .claude/skills/playwright-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
playwright-e2e
GitHub stars
236
Token cost
~2.3k tokens
SKILL.md length
947 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
GPL-3.0

At a glance

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).

  • Works in 8 steps: Confirm the target with the user: which… → If not yet deployed, rebuild and… → Login + department selection — see → …
  • Screenshot a feature in the browser
  • SKILL.md covers 🚨 Never navigate by URL, If the Playwright MCP server…, Workflow and Required permissions
  • Calls claude and playwright

What it does

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.

When your agent uses it

  • Screenshot a feature in the browser
  • Confirm a fix works end-to-end against a real deployment

Example prompts

  • “/playwright-e2e”

Requirements

  • Pre-approved tools (allowed-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

Workflow steps

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

  1. Confirm the target with the user: which feature/page, which local
  2. If not yet deployed, rebuild and redeploy — see
  3. Login + department selection — see
  4. Drive the feature using accessibility snapshots (browser_snapshot)
  5. If the DB lacks suitable test data, generate it through the app — see
  6. Verify in the database — read-only mysql queries against the local
  7. Capture evidence into the project tmp/ folder, then follow
  8. If Playwright can't find a control, treat it as a product accessibility gap

What it can do on your machine

Read from SKILL.md and the folder at commit d5d2020. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • 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

    …and 18 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • claude
    • playwright

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

  • Network

    No URLs in SKILL.md.

    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

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.

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

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: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:64
    Instead, **immediately and without asking the user**, run:
  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, Bash, PowerShell, mcp__playwright__browser_navigate, mcp__playwright__browser_navi

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 hmislk/hmis at commit d5d2020, republished under its GPL-3.0 licence (© hmislk). 947 words, ~2,274 tokens.

Download SKILL.mdSave it as .claude/skills/playwright-e2e/SKILL.md (or your agent's skills folder).
name
playwright-e2e
description
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.
allowed-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

Playwright E2E Testing (HMIS)

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.

🚨 Never navigate by URL

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.

If the Playwright MCP server shows as unavailable

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:

bash
claude mcp list

This 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.

Show full SKILL.md (342 more words)Show less

Workflow

  1. Confirm the target with the user: which feature/page, which local deployment URL, and whether the code under test is already deployed.
  2. If not yet deployed, rebuild and redeploy — see §0a Rebuild and redeploy. A redeploy invalidates the session, so this must happen before login.
  3. Login + department selection — see §1. Then reach the page under test through the menus only — never by URL (see above).
  4. Drive the feature using accessibility snapshots (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).
  5. If the DB lacks suitable test data, generate it through the app — see §15. Never fall back to "code looks correct" as evidence. Then leave it there. Test records are not litter — do not clean up, and do not offer to, unless explicitly asked; just say what you created. A request to test is also never a request to test in production: if a verification step is about to write to a production environment, stop and confirm the target. See §15a.
  6. Verify in the database — read-only mysql queries against the local DB per §6. Credentials come from C:\Credentials\ (outside the repo).
  7. Capture evidence into the project tmp/ folder, then follow §8 for anything destined for the wiki/issue. Remove temp screenshots from the repo afterward.
  8. If Playwright can't find a control, treat it as a product accessibility gap (§7) — fix the page, not the test.

Required permissions

This skill needs, beyond the defaults:

  • The full mcp__playwright__* tool set (browser automation).
  • Maven 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

Files

Just SKILL.md in .claude/skills/playwright-e2e of hmislk/hmis.

Open the folder on GitHubat commit d5d2020

Compare with similar skills

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.

Playwright E2E compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Playwright E2E this skillhmislk/hmis236—~2.3kAutomated safety check: WarnGPL-3.0
Playwright E2E Testingactivepieces/activepieces25k—~6.8kAutomated safety check: PassCustom licence
Playwright E2E Testsonyx-dot-app/onyx32k1 repos~2.8kAutomated safety check: NotesCustom licence
Glance TestDebugBase/glance156—~827Automated safety check: PassMIT
E2E VerificationChorus-AIDLC/Chorus1.2k—~1.5kAutomated safety check: NotesAGPL-3.0
Playwright Testingchongdashu/vibejam-starter-pack149—~2.2kAutomated safety check: PassNone

Similar skills

  • Playwright E2E Testing

    activepieces/activepieces

    Playwright modern end-to-end testing framework with cross-browser automation, auto-wait, and built-in test runner

    25k GitHub stars~6.8k tokensUpdated today
    Testing & QAAuto-check passed
  • 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
  • Glance Test

    DebugBase/glance

    Run E2E browser tests on any web application using Glance MCP.

    156 GitHub stars~827 tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • E2E Verification

    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…

    1.2k GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check: notes
  • 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 today
    Testing & QAAuto-check: notes

More from hmislk/hmis

All 33 skills in this repo
  • API Usage

    hmislk/hmis

    Reference for calling existing HMIS REST APIs. An agent skill from hmislk/hmis.

    236 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Application configuration options reference for the HMIS project.

    236 GitHub stars~474 tokensUpdated today
    Auto-check passed
  • Caveman

    hmislk/hmis

    Ultra-compressed communication mode. An agent skill from hmislk/hmis.

    236 GitHub starsUsed in 21 repos~946 tokens
    Auto-check passed
  • Database Guide

    hmislk/hmis

    MySQL database development guide for the HMIS project. An agent skill from hmislk/hmis.

    236 GitHub stars~664 tokensUpdated today
    Auto-check passed
  • Demo Video

    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.

    236 GitHub stars~3.9k tokensUpdated today
    Auto-check passed
  • Deploy QA

    hmislk/hmis

    Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub.

    236 GitHub stars~2.1k tokensUpdated today
    Auto-check: notes

Categories

Questions about Playwright E2E

What does Playwright E2E do?

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).

When should I use Playwright E2E?

Playwright E2E fits situations like: screenshot a feature in the browser; confirm a fix works end-to-end against a real deployment.

How do I install Playwright E2E in Claude Code?

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.

How do I install Playwright E2E in Codex?

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.

Can I use Playwright 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 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.

What does Playwright E2E need to run?

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.

Does Playwright E2E access the network?

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.

Is Playwright E2E safe to install?

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.

What licence does Playwright E2E use?

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.

How many tokens does Playwright E2E use?

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.

What are the alternatives to Playwright E2E?

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.

Who maintains Playwright E2E?

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.