
Dev
- 3.3k installs
- 12.2k repo stars
- Updated July 15, 2026
- microsoft/playwright-cli
dev is an agent skill that maintains the playwright-cli repo through Playwright dependency rolls and chore mark-v release preparation workflows.
About
dev is a playwright-cli repository maintenance skill with roll and release workflows. The roll path reads playwright@next, updates playwright and @playwright/test pins, runs npm install, executes node scripts/update.js to regenerate skills via playwright-cli install --skills, copies them into skills/playwright-cli, updates README.md from SKILL.md, verifies node playwright-cli.js --help, runs npm run test, and commits on roll_<version> without Co-Authored-By trailers. The release path bumps the patch version, finds the previous chore: mark v baseline, maps Playwright alpha dates to a commit window in ~/code/playwright with git log --after and --before, filters CLI-relevant commits such as src/tools/cli-client and fix(cli), pulls issue context via gh pr view, and writes RELEASE_NOTES_v<version>.md before opening a mark-v PR whose body is the notes file. Pitfalls warn against --since on stale checkouts, top-level release headers, and paraphrasing commit subjects instead of linked issue wording.
- roll.md workflow updates Playwright pins, runs scripts/update.js, syncs skills, and refreshes README.md.
- release.md bumps patch version and builds RELEASE_NOTES from a Playwright commit window diff.
- Release filtering keeps CLI, MCP, and CDP-attach commits while dropping browser-only rolls.
- Highlights must lead with linked issue wording, not internal commit subjects or jargon.
- Documents key files: package.json, playwright-cli.js, scripts/update.js, SKILL.md, and README.md.
Dev by the numbers
- 3,266 all-time installs (skills.sh)
- +219 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #9 of 257 Release Management skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
dev capabilities & compatibility
- Capabilities
- playwright version roll · skill regeneration sync · release notes authoring · cli commit filtering · release pr preparation
- Works with
- github
- Use cases
- ci cd · devops
What dev says it does
node scripts/update.js
npx skills add https://github.com/microsoft/playwright-cli --skill devAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.3k |
|---|---|
| repo stars | ★ 12.2k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 15, 2026 |
| Repository | microsoft/playwright-cli ↗ |
How do I roll the Playwright dependency or prepare a playwright-cli release with accurate CLI-focused release notes?
Maintain the playwright-cli repository by rolling Playwright dependencies and preparing versioned releases with filtered release notes.
Who is it for?
playwright-cli maintainers performing dependency rolls or patch releases with CLI-relevant changelog curation.
Skip if: Skip when the user only wants to run browser tests with Playwright rather than maintain the CLI repository itself.
When should I use this skill?
User asks about rolling Playwright in playwright-cli, preparing a release, or writing RELEASE_NOTES for the CLI package.
What you get
Updated Playwright pins with regenerated skills or a release notes file and mark-v pull request ready for npm publish.
- Version-bumped package.json
- Release PR with chore: mark v<next-patch> notes
Files
Development skills
- Rolling Playwright dependency roll.md
- Preparing Release release.md
How to prepare a release
A release is a chore: mark v<next-patch> commit whose PR body is the release notes. Example: https://github.com/microsoft/playwright-cli/pull/367.
Steps
1. Bump the patch version in package.json (e.g. 0.1.7 → 0.1.8), then npm install to sync package-lock.json. This is the entry point — everything else (branch name, PR title, release notes filename) keys off the new version.
2. Find the baseline. The previous release is the last chore: mark v... commit on main. Read the Playwright version pinned at that commit — that's the baseline for the diff.
git log --oneline | grep "mark v" | head -1
git show <sha>:package.json | grep '"playwright"'3. Figure out the playwright commit window. Convert the baseline's alpha timestamp to a UTC date, and use the new alpha's date as the upper bound. Alphas are either 1.X.0-alpha-<ms-epoch> or 1.X.0-alpha-<YYYY-MM-DD>.
date -u -d @<seconds> '+%Y-%m-%d %H:%M:%S UTC' # for ms-epoch, divide by 1000 first4. List Playwright commits in the window. Run from ~/code/playwright (a local Playwright checkout). --after / --before work on any ref regardless of what origin/main currently points at; --since / --until can silently return empty if the branch is behind.
cd ~/code/playwright && git log --after='<baseline-date>' --before='<new-date>' --pretty=format:'%h %ci %s'5. Filter to CLI-relevant commits. Keep anything touching the CLI surface or its runtime; drop internal/unrelated churn.
- Keep:
src/tools/cli-client/**,src/tools/cli-daemon/**,src/tools/mcp/**,remote/playwrightConnection, CDP-attach paths, tracing/video APIs the CLI exposes, and anything with afix(cli)/feat(cli)/fix(mcp)/feat(mcp)prefix. - Drop: test-runner rolls, firefox/chromium/webkit version bumps, docs-only, test infra, unrelated refactors.
- Use
git show --stat <sha>to sanity-check whether a commit's files touch the CLI.
6. Pull issue context for each kept PR. The PR's linked issue often has better user-facing wording than the PR/commit title.
gh pr view <pr> --repo microsoft/playwright --json title,body,closingIssuesReferences
gh issue view <issue> --repo microsoft/playwright-cli --json title,body,state7. Write the release notes to RELEASE_NOTES_v<version>.md. Use this exact shape — no top-level `#` header, the PR title is the heading:
## Highlights
- **<issue wording, not commit wording>** ([#<issue>](https://github.com/microsoft/playwright-cli/issues/<issue>)) — one sentence on the user-facing effect. ([microsoft/playwright#<pr>](https://github.com/microsoft/playwright/pull/<pr>))
## Fixes
- `<commit subject>` — what changed and why it matters. ([#<pr>](https://github.com/microsoft/playwright/pull/<pr>))
## Upgrading
npm install -g @playwright/cli@<version>
Wording rules:
- Highlights lead with the user-reported problem from the linked issue, not the commit subject. Drop internal terms (
cdpPort,tombstones) from highlight bullets. - Only list things that change user-visible behavior. Skip internal cleanups unless they have a user-facing effect.
- Reference both the playwright-cli issue (if any) and the microsoft/playwright PR.
8. Commit, push, open PR. The PR body is the contents of the release notes file (no # header, no filename).
git checkout -b mark-v<version>
git add package.json package-lock.json
git commit -m "chore: mark v<version>"
git push -u origin mark-v<version>
gh pr create --repo microsoft/playwright-cli \
--head pavelfeldman:mark-v<version> \
--base main \
--title "chore: mark v<version>" \
--body "$(cat RELEASE_NOTES_v<version>.md)"Pitfalls
- Don't use `--since` / `--until` when diffing Playwright — if
origin/mainin the local checkout is behind, they return empty.--after/--beforeagainst the local ref work. - Don't include a `# playwright-cli vX.Y.Z` header in the PR body — GitHub already renders the PR title.
- Don't paraphrase the commit subject as the highlight. A user who filed an issue described the pain; reuse their framing.
- Don't include test-runner / browser-version-roll commits in release notes — they're noise for CLI users.
How to roll Playwright dependency
Steps
1. Obtain latest Playwright version npm info playwright@next version
2. Update Playwright packages in package.json:
- Update
playwright(dependency) and@playwright/test(devDependency) to the target version. - Run
npm installto updatepackage-lock.json.
3. Run the update script to sync skills and README:
node scripts/update.jsThis script:
- Runs
node playwright-cli.js install --skillsto regenerate skills from the new Playwright version. - Copies the generated skills from
.claude/skills/playwright-cli/intoskills/playwright-cli/. - Cleans up the generated
.claude/skills/directory.
3. Update README.md with relevant changes from the updated skill at skills/playwright-cli/SKILL.md. Compare the skill file with the README and update any sections that are out of date (commands, flags, default behaviors, examples).
4. Verify the CLI works:
node playwright-cli.js --help5. Test the CLI:
npm run test5. Create a branch and commit:
- Branch name:
roll_<version>(e.g.roll_214) - Commit message:
chore: roll Playwright to <version> - do not add Co-Authored-By
Key files
| File | Role |
|---|---|
package.json | Playwright version pins (playwright, @playwright/test) |
playwright-cli.js | CLI entry point — requires Playwright's program module |
scripts/update.js | Automation script for syncing skills and README after version bump |
skills/playwright-cli/SKILL.md | Skill definition installed from Playwright (source of truth for commands) |
README.md | User-facing docs — must reflect current skill commands and behavior |
Related skills
How it compares
Pick dev over generic release skills when the repository is microsoft/playwright-cli and the task is Playwright dependency rolling or patch release prep.
FAQ
What does scripts/update.js do after a Playwright bump?
It runs playwright-cli install --skills, copies generated skills into skills/playwright-cli, and cleans the temporary .claude/skills directory.
How should release highlights be worded?
Lead with the user-reported problem from the linked issue, not the commit subject, and drop internal terms from highlight bullets.
Why avoid git log --since for Playwright diffs?
If origin/main in the local checkout is behind, --since and --until can return empty; --after and --before against the local ref work.
Is Dev safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.