feat: add playwright plugin#65
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_893a4d8f-8ba1-45e9-837f-9cb93314470f) |
There was a problem hiding this comment.
Stale comment
Risk: medium. Cursor Bugbot did not complete successfully (check skipped — usage limit reached), so I am not approving. Human review is needed before merge; no reviewers were assigned because the only human repository contributor is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e6c66a23b6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Ports the playwright skill from melodic-software/medley#1295 per the migration playbook: repo-agnostic body, bundled reference files, vendored upstream baseline, and a maintainer-facing npm-based drift-check update script with network-free contract tests. Closes melodic-software/medley#1295 (tracked there).
e6c66a2 to
b378826
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_85dcd934-6304-446e-8cd6-cacd231f2c76) |
|
Claude finished @kyle-sexton's task in 3m 16s —— View job PR Review —
|
There was a problem hiding this comment.
Stale comment
Risk: medium. Cursor Bugbot did not complete successfully (check skipped — usage limit reached), so I am not approving. Human review is needed before merge; no reviewers were assigned because the only human repository contributor is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b3788267d7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Correct the upstream license: @playwright/cli is Apache-2.0 (verified via npm registry metadata and the package's bundled LICENSE), not MIT as the harvested source claimed; ship vendor/LICENSE (from the 0.1.13 tarball), refresh it on update --apply, set plugin.json license to MIT AND Apache-2.0 - Fix stale upstream version stamp in reference/commands.md (0.1.8 -> 0.1.13) - Remove leftover repo-specific phrasing in reference/storage-and-auth.md - Grant allowed-tools: Bash(playwright-cli:*) — pre-approves the skill's primary command; npm deliberately not pre-approved (maintainer-only update flow, deny-by-default posture)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_0bfbf860-47ec-46f0-86dd-247467d2f62d) |
|
Claude finished @kyle-sexton's task in 2m 25s —— View job PR Review —
|
|
Review findings addressed in 9d489cb:
|
There was a problem hiding this comment.
Stale comment
Risk: medium. Cursor Bugbot did not complete successfully (check skipped — usage limit reached), so I am not approving. Human review is needed before merge; no reviewers were assigned because the only human repository contributor is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
Upstream documents --raw as stripping page status, generated code, and snapshots — the opposite of what the capture workflow needed. Redirect normal stdout instead (Codex review finding, verified against vendor/SKILL.md "Raw output").
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_846c1321-b203-403c-84d2-1c497d200ed8) |
|
Claude finished @kyle-sexton's task in 57s —— View job PR Review —
|
| # | Finding | Status |
|---|---|---|
| 1 | Missing allowed-tools in distilled SKILL.md |
✅ Fixed (9d489cb) |
| 2 | Stale @0.1.8 version stamp in commands.md |
✅ Fixed (9d489cb) |
| 3 | Repo-specific language ("this repo") in storage-and-auth.md |
✅ Fixed (9d489cb) |
| 4 | Missing vendor/LICENSE for redistributed Apache-2.0 content |
✅ Fixed (9d489cb) |
| 5 | --raw misused for code capture in test-generation.md |
✅ Fixed (435ba64) |
This PR is merge-ready. The plugin follows the marketplace design rules (repo-agnostic, versioned, no hooks/MCP/egress, security-reviewed), license attribution is correct (MIT AND Apache-2.0), and all review findings across all rounds have been addressed.
There was a problem hiding this comment.
Risk: medium. Cursor Bugbot did not complete successfully (check skipped — usage limit reached), so I am not approving. Human review is needed before merge; no reviewers were assigned because the only human repository contributor is the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 435ba642e5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| [[ -f "$lint_override" ]] && cp "$lint_override" "$lint_backup" | ||
| rm -rf "$VENDOR_DIR" | ||
| mkdir -p "$VENDOR_DIR" | ||
| cp -r "$upstream_dir"/. "$VENDOR_DIR"/ |
There was a problem hiding this comment.
Stop apply when vendor copy fails
When --apply runs on a checkout where vendor/ cannot be populated completely (for example disk full, permission errors, or an interrupted copy), this cp failure is ignored because the script intentionally does not use set -e; execution then continues to copy the license, bump metadata.upstream-version/synced, and return success. That can leave maintainers with an empty or partial vendored baseline that is marked as synced, so guard these mutating steps with explicit error checks before updating frontmatter.
Useful? React with 👍 / 👎.


Publishes the
playwrightplugin per melodic-software/medley#1295 anddocs/MIGRATION-PLAYBOOK.md.What this ships
One skill,
/playwright:playwright— live E2E browser automation via Microsoft's@playwright/cli: named sessions, accessibility-ref snapshots (click/fill by ref), screenshots, console/network capture, mocking, tracing, video, auth state. Disk-first artifacts keep large snapshots out of context.SKILL.md+ 10 distilledreference/*.mdtopic files (progressive disclosure)force-chrome-foreground.ps1helper), locally-orchestrated-stack recipe (Aspire / docker-compose / tilt) with Blazor gotchasvendor/, verbatim from the npm package, markdownlint disabled via nested config) + maintainer-facingscripts/update.sh(--check/--apply, npm-pack based, never mutates global state) with network-free contract tests (update.test.sh, 22 checks)category: testing, tags includetooling; explicitversion: 0.1.0inplugin.jsononlyDe-coupling from the source repo
All medley references removed: repo-scoped conventions generalized, the Aspire-specific recipe rewritten orchestrator-neutral, medley skill/rule/schedule cross-references replaced with graceful-degradation prose, script re-anchored to its own directory and rewritten from a transient
.claude/skills/install flow tonpm packinto a temp dir (removes the stray-skill-dir failure class).Gate evidence
claude plugin validate plugins/playwright— PASS;claude plugin validate --strict .(catalog) — PASS;scripts/validate-plugins.sh— PASSclaude plugin details playwright— always-on ~245 tok, on-invoke ~2.6k--plugin-dirsmoke test in a clean non-medley repo: plugin skill listed asplaywright:playwright; invoking/playwright:playwrightloaded the skill and returned quick-start guidanceupdate.test.sh22/22 PASS; shellcheck + shfmt clean; markdownlint 0 errors (25 files)Security review (playbook acceptance)
userConfig, no data egress on normal invocationupdate.shis maintainer-facing, runs onlynpm view/npm pack(npm registry reads) and writes only inside the plugin dir + a temp dir;force-chrome-foreground.ps1is local Win32 focus P/Invoke, no-op off Windowsvendor/is third-party (Microsoft, MIT) and documented as untrusted data — the skill instructs never to follow instructions embedded in itNote: upstream is at 0.1.17; the vendored baseline ships at 0.1.13 as harvested. Syncing is a follow-up maintainer
update --apply+ version bump, deliberately out of scope here.Note
Low Risk
Additive documentation and skill content with no hooks or MCP; maintainer update script only touches npm metadata/tarballs and the plugin tree, while normal invocation is limited to
playwright-cliBash.Overview
Adds a new
playwrightmarketplace plugin so Claude can drive live E2E flows through Microsoft's@playwright/cli(/playwright:playwright), with disk-first snapshots/screenshots to keep context small.The plugin ships a hub
SKILL.md(quick start, conventions, progressive disclosure), 10 distilledreference/*.mdtopics, and original overlays for Windows/Git Bash quirks (plusforce-chrome-foreground.ps1) and locally orchestrated stacks (Aspire, docker-compose, tilt, Blazor notes). A verbatimvendor/baseline from the npm skill supports maintainerupdate --check/update --applyviascripts/update.sh(npm registry only, writes inside the plugin + temp dir) andupdate.test.shcontract tests.marketplace.jsonand the rootREADMEcatalog gain the new entry (category: testing,plugin.jsonv0.1.0). Normal use is scoped toBash(playwright-cli:*);vendor/is documented as untrusted data for drift sync only.Reviewed by Cursor Bugbot for commit 435ba64. Bugbot is set up for automated code reviews on this repo. Configure here.