agentleFS
MicrosoftKnown publishermicrosoft/playwright-mcp/.claude/skills/playwright-triage/SKILL.md

playwright-triage

Skill39k starsChanged 2 days agoApache-2.0View on GitHub

Triage and fix one microsoft/playwright-mcp issue, or do a maintainer's task, unattended inside the Issue triage GitHub Actions workflow (.github/workflows/triage.yml), which a needs-triage, needs-triage-mac or needs-triage-win label starts, or a maintainer starts by hand with an issue, a task or both. Reproduces the issue on the runner, then leaves a verified fix proposal for the workflow to open as a draft PR, in this repo or in microsoft/playwright where the source of the MCP server is, or an investigation note for it to post on the issue. Only for that workflow.

  • Installs packages

We split this skill into the rules it gives an agent

2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When the fix is in $PLAYWRIGHT_DIR, follow the Fix section of the guide there, in place of $REPO_DIR: create the branch fix-<n> from main …

    line 50
  2. Very specific:

    Do not run a PR in this repo that changes package.json, package-lock.json, roll.js, update-readme.js, utils/, Dockerfile, .devcontainer/, …

    line 100

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Playwright MCP Issue Triage

You run unattended in the Issue triage workflow of microsoft/playwright-mcp. First read the shared guide, $AGENT_GUIDES_DIR/triage.md, a copy of microsoft/playwright/.github/actions/run-agent/guides/triage.md, and then CLAUDE.md, both in full. The guide says how to triage an issue in any Playwright repo. CLAUDE.md says how to build, test and lint this one. This file covers what neither has: where the code is, the checkouts, how to run a published version, and the outcome that this repo adds, a fix in microsoft/playwright.

Where the code is

This repo is the npm package @playwright/mcp: cli.js, index.js, the types, the README, the Dockerfile and some tests of the packaged server. package.json pins the alpha of playwright and playwright-core that the package runs. The MCP server is in microsoft/playwright, in packages/playwright-core/src/tools/: mcp/ has the server, its config and its command line options, and backend/ has the tools. Most bugs and most feature requests are fixed there.

Fix a bug here only when the cause is in a file that this repo owns. These files are copies or outputs of upstream code, so their fix is upstream too:

  • config.d.ts: roll.js copies it from packages/playwright-core/src/tools/mcp/config.d.ts.
  • The tools and options in README.md: npm run lint generates them from the tools.

The checkouts

$REPO_DIR is the checkout of microsoft/playwright-mcp that the guide describes. npm ci ran in it, and the browsers of the pinned version are installed. The chrome and msedge projects use Google Chrome and Microsoft Edge from the runner image. When one is missing, install it with npx playwright install chrome msedge. The clone is shallow: run git fetch --unshallow --tags origin in it before you need its history.

$PLAYWRIGHT_DIR is a clone of microsoft/playwright at the tip of main, next to $REPO_DIR. npm ci and npm run build ran in it, and Chromium, Firefox and WebKit are installed. It is tip-of-tree for this repo: reproduce there, as a test in its tests/mcp/. Read its AGENTS.md in full before you write that test. It says how to build, test and lint it, and which fixtures the MCP tests use. The clone has the full history, without file contents until git needs them, so git log and git tag --contains work there.

The pinned version is older than tip-of-tree. npm view playwright-core@<alpha> gitHead prints the upstream commit that an alpha was built from.

Fix in microsoft/playwright

When the fix is in $PLAYWRIGHT_DIR, follow the Fix section of the guide there, in place of $REPO_DIR: create the branch fix-<n> from main in $PLAYWRIGHT_DIR, put the regression test in its tests/mcp/, build and lint as its AGENTS.md says, and commit in its convention, for example fix(mcp): .... Then leave the proposal in $OUTPUT_DIR/upstream-fix/ in place of $OUTPUT_DIR/fix/, with the same files:

  • fix.patch: the output of git diff --binary main HEAD in $PLAYWRIGHT_DIR.
  • pr-body.md: as the guide says. The Fixes line has the full URL of the issue, Fixes https://github.com/microsoft/playwright-mcp/issues/<n>, so that the PR closes the issue in this repo.
  • proposal.json: as the guide says. Write it last.

The publish job opens the draft PR in microsoft/playwright. The revision workflow of that repo addresses the review. Leave one proposal: fix/ or upstream-fix/, not both. Do not change package.json here to pick up the fix. It reaches @playwright/mcp with the next roll.

Check the linked PRs in both repos. A PR in microsoft/playwright links this issue with its full URL or as microsoft/playwright-mcp#<n>. Search there too: repo:microsoft/playwright is:pr "playwright-mcp/issues/<n>" and repo:microsoft/playwright is:pr "playwright-mcp#<n>". A PR there from the team or from microsoft-playwright-automation is a team PR. Verify a PR there in $PLAYWRIGHT_DIR.

Already fixed means that tip-of-tree passes and the pinned version fails. The fix reaches users with the next roll. Find the upstream PR with git -C $PLAYWRIGHT_DIR log <gitHead of the pinned alpha>..main -- packages/playwright-core/src/tools, and name it in the note.

Published versions

To run a published version, for example the version of the reporter or to bisect, create $SCRATCH_DIR/playwright-mcp-<n>/<version>/ and run there:

npm init -y
npm i @playwright/mcp@<version> @modelcontextprotocol/sdk
npx playwright install chromium firefox webkit

The fixtures of the repo are not available there. Write the condensed repro as a plain script in that directory. It starts node_modules/@playwright/mcp/cli.js --headless with the StdioClientTransport of the SDK, as createTransport() in tests/fixtures.ts does, and calls the tools with client.callTool(). Serve the page from a data: URL or from http.createServer() in the script.

npm view @playwright/mcp@<version> dependencies.playwright-core prints the alpha of a release. Match a regression to upstream commits with git -C $PLAYWRIGHT_DIR log <good gitHead>..<bad gitHead> -- packages/playwright-core/src/tools.

PRs from third parties

Do not run a PR in this repo that changes package.json, package-lock.json, roll.js, update-readme.js, utils/, Dockerfile, .devcontainer/, .github/, .azure-pipelines/ or .claude/. For a PR in microsoft/playwright, the list in $PLAYWRIGHT_DIR/.claude/skills/playwright-triage/SKILL.md applies.

Download now (ZIP)

Trending

Less talk lately.about the whole repository

Dec 2025: 2 mentionsJan 2026: 3 mentionsFeb 2026: 3 mentionsMar 2026: 2 mentionsApr 2026: 5 mentionsMay 2026: 4 mentionsJun 2026: 2 mentionsJul 2026: 3 mentionsAug 2026: 3 mentionsSep 2026: 5 mentionsOct 2026: 1 mentionNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the microsoft/playwright-mcp repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about microsoft/playwright-mcp

The biggest 5 of 90 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 90

Talked about on Bluesky, YouTube, GitHub and Hacker News (90 times).

On Bluesky · 41

36 more on Bluesky

On YouTube · 25

20 more on YouTube

On GitHub · 20

15 more on GitHub

On Hacker News · 4

  • Other versions6 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 5

    1. microsoft/playwright★ 99k19% same
    2. microsoft/playwright-python★ 15k20% same
    3. microsoft/playwright-cli★ 15k73% same
    4. microsoft/playwright-dotnet★ 3k21% same
    5. microsoft/playwright-java★ 1.6k16% same

    Wrote their own version · 1

    1. xeroc/skills★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repositoryOne other file it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.