Playwright Component Testing
mellowagain/gitarena
Set up component testing with Playwright using a story gallery — scaffold stories and a gallery dev page driven by the built-in mount fixture, no dedicated component-testing runtime.
End-to-end release runbook for playwright-rust — version bump, supply-chain refresh, per-crate CHANGELOGs, tag-prefix routing for the three workspace crates, the safer push-then-tag workflow that…
$ npx skills add padamson/playwright-rust --skill release-process -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install padamson/playwright-rust release-process --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/padamson/playwright-rust.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release-process .claude/skills/release-process && 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 "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .claude/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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/padamson/playwright-rust/tree/main/.claude/skills/release-processType 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 padamson/playwright-rust --skill release-process -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install padamson/playwright-rust release-process --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/padamson/playwright-rust.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/release-process .agents/skills/release-process && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .agents/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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 padamson/playwright-rust --skill release-process -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install padamson/playwright-rust release-process --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/padamson/playwright-rust.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/release-process .cursor/skills/release-process && 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 "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .cursor/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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/padamson/playwright-rust.git --path .claude/skills/release-process--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 padamson/playwright-rust --skill release-process -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install padamson/playwright-rust release-process --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/padamson/playwright-rust.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/release-process .gemini/skills/release-process && 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 "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .gemini/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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 padamson/playwright-rust release-processInstalls 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 padamson/playwright-rust --skill release-process -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/padamson/playwright-rust.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/release-process .github/skills/release-process && 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 "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .github/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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 padamson/playwright-rust --skill release-process -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install padamson/playwright-rust release-process --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/padamson/playwright-rust.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/release-process .opencode/skills/release-process && 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 "release-process" agent skill from https://github.com/padamson/playwright-rust/tree/main/.claude/skills/release-process into .opencode/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", 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.
release-processEnd-to-end release runbook for playwright-rust — version bump, supply-chain refresh, per-crate CHANGELOGs, tag-prefix routing for the three workspace crates, the safer push-then-tag workflow that…
Release Process is an agent skill from padamson/playwright-rust. End-to-end release runbook for playwright-rust — version bump, supply-chain refresh, per-crate CHANGELOGs, tag-prefix routing for the three workspace crates, the safer push-then-tag workflow that waits for CI before publishing, and the post-release follow-ups.
Its SKILL.md is about 4.1k 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 Deployment, Browser testing and Changelog and release notes. It works with Playwright and Rust. The repository describes itself as: Rust language bindings for Microsoft Playwright. The licence is Apache-2.0.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0cf5194. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargogitghcurlnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
index.crates.ioplaywright-rust.devFrom 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.
Release Process loads about 4.1k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,681 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 no risky patterns in SKILL.md.
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.
The full file from padamson/playwright-rust at commit 0cf5194, republished under its Apache-2.0 licence (© padamson). 1,681 words, ~4,053 tokens.
.claude/skills/release-process/SKILL.md (or your agent's skills folder).This skill captures the procedural steps for shipping a playwright-rust release, for in-context reference when walking through one manually or guiding the user.
The checklist below assumes these already pass; run them first so a failure lands here rather than halfway through a bump. All are read-only against the tree as it stands.
cargo nextest run --workspace --all-features # what release.yml runs
cargo nextest run --workspace --run-ignored ignored-only # engine-specific stress set
cargo test --doc --workspace --all-features
cargo xtask verify-changelog-links # [Unreleased] and the link footer agree
cargo xtask verify-driver-version # every pinned reference matches build.rs
cargo xtask verify-agent-docs # skill compiles and names every feature
cargo xtask verify-site-snippets
cargo xtask sync-protocol-spec --check # vendored spec is the pinned driver's
cargo xtask verify-protocol-methods # every method the crate sends is in that spec
cargo vet && cargo deny check && cargo auditcargo audit fetches the RustSec database over git, which the Claude Code
sandbox blocks; a "couldn't fetch advisory database" there is the sandbox,
not an advisory. CI's Security & Quality job on the same commit is the
authoritative run in that case.
Then check the cross-crate couplings that a bump makes bite. Step 4 below lists the dependency lines that move together; confirm each is at the version about to be superseded before editing any of them, so a line that was already stale does not get mistaken for one this bump changed.
Three publishable crates, each with its own CHANGELOG and tag prefix:
| Crate | Path | CHANGELOG | Tag prefix |
|---|---|---|---|
playwright-rs | crates/playwright/ | crates/playwright/CHANGELOG.md | vX.Y.Z |
playwright-rs-macros | crates/playwright-rs-macros/ | crates/playwright-rs-macros/CHANGELOG.md | macros-vX.Y.Z |
playwright-rs-trace | crates/playwright-rs-trace/ | crates/playwright-rs-trace/CHANGELOG.md | trace-vX.Y.Z |
The top-level CHANGELOG.md is an index file, not a changelog —
release notes are generated per-crate from each crate's own CHANGELOG.
The xtask workspace member is publish = false and has no CHANGELOG;
its workflow is documented in crates/xtask/.
0.x.y — pre-1.0, API may change (current stage)1.0.0 — stable API, ready for productionx.y.Z) — bug fixes, security advisories, no API changesx.Y.0) — additive features, deprecations, no breaking changes
permitted in 1.x but acceptable in 0.xX.0.0) — breaking changes (post-1.0)Security advisories against transitive deps always warrant a patch release, even if functional behavior is unchanged. See the supply-chain skill.
Steps below assume you're releasing playwright-rs (the main crate).
For the macros or trace crate, swap the paths and tag prefix per the
table above; the workflow is otherwise identical.
main before startingX.Y.Z) — independent of the other cratesCargo.toml:playwright-rs: workspace version in the top-level Cargo.tomlplaywright-rs-macros: version in crates/playwright-rs-macros/Cargo.tomlplaywright-rs-trace: version in crates/playwright-rs-trace/Cargo.tomlcrates/playwright/Cargo.toml:playwright-rs-macros = { version = "...", path = "..." } for the macros bumpplaywright-rs-trace = { version = "...", path = "..." } for the trace bump — two lines carry it, the optional dependency behind the trace feature and the dev-dependency the tracing integration test uses, and both need the new version. Cargo does not fall back to crates.io for a path dependency whose version requirement fails, so a stale line breaks every workspace command until it is updatedxtask's playwright-rs = { path = "...", version = "..." } if the main crate version changes (cargo-deny's no-wildcard rule)cargo vet — see the supply-chain skill for the
cargo vet regenerate unpublished / cargo vet regenerate exemptions
flowcrates/<crate>/CHANGELOG.md):## [Unreleased] to ## [X.Y.Z] - YYYY-MM-DD## [Unreleased] heading above[X.Y.Z]: <compare/prevtag...thistag>
and repoint [Unreleased] at the new tag. This step was skipped on
three consecutive releases, leaving those headings rendering as
literal [0.14.0] text, so it is now enforced by
cargo xtask verify-changelog-links (pre-commit; run it directly if
you want to check before committing).playwright-rs only.
The repo's README.md describes the latest published release, not
main's in-progress state. A pointer line under the Status: header
directs readers at crates/playwright/CHANGELOG.md [Unreleased] for
anything not yet on crates.io. At release time, fold in everything the
[Unreleased] CHANGELOG has been previewing — feature flags table,
install/CI snippets, Testing & Debugging additions, etc. Also bump the
install snippet's pinned "0.X" (line 136 area) if this is a minor or
major bump. If this release carries a driver bump, update the README
badge only: install snippets are version-free by design (they go through
the install-browsers example / install_browsers), so verify none
regressed to a pinned npx playwright@X.Y.Z.playwright-rs only, and these are not covered by
cargo xtask verify-driver-version (that guard deliberately anchors
only on PLAYWRIGHT_DEV, since the released values legitimately lag
main between releases). Easy to miss, and both are rendered on the
published /vX.Y.Z snapshot:crates/site/src/components/hero.rs — PLAYWRIGHT_RELEASED must
become the driver version this release bundles (i.e. match
PLAYWRIGHT_DEV at release time).crates/site/snippets/install.toml — the crates.io pin ("0.X" and
its 0.X.y comment).
Also drop unreleased=true from any FeatureCard in
crates/site/src/components/features.rs whose feature ships in this
release (unreleased cards render only on the dev build, so they
would be missing from the release snapshot), and prune the matching
assertions in crates/site-e2e/tests/landing_page.rs.cargo nextest run --workspacecargo clippy --workspace --all-targets --all-features -- -D warningscargo test --doc --workspacecargo audit && cargo deny check && cargo vetcargo publish --dry-run -p <crate> —
catches packaging issues (missing files, license check, README
path) before the irreversible real cargo publish. Pass
--allow-dirty if you're verifying mid-edit. Coordinated
first-publish caveat: when a release pushes a not-yet-published
sibling crate (e.g. v0.13.0's first publish of
playwright-rs-macros), the main crate's dry-run fails with
no matching package named '<sibling>' found ... required by package 'playwright-rs' because cargo resolves all deps against
the crates.io index. Dry-run the sibling crates in dependency
order (-p playwright-rs-macros → -p playwright-rs-trace →
-p playwright-rs); the main crate's dry-run only completes after
the siblings are actually published. For pre-release verification,
cargo package --list -p playwright-rs --allow-dirty confirms the
tarball contents without index lookups.A pushed git tag triggers release.yml which publishes to crates.io.
Crates.io publishing is irreversible — you cannot unpublish, only
yank. Always validate on CI before tagging.
# 1. Commit the version-bump changes for the chosen crate
git add Cargo.toml Cargo.lock crates/<crate>/Cargo.toml \
crates/<crate>/CHANGELOG.md \
supply-chain/imports.lock supply-chain/config.toml
# (also stage README.md if you bumped the main crate's minor version)
git commit -m "Bump <crate> to <prefix>vX.Y.Z"
# 2. Push the COMMIT first (no tag yet)
git push origin main
# 3. Watch CI — Test on linux/mac/windows + Security & Quality
gh run watch # or check the Actions tab in GitHub
# 4. Only after ALL required checks are green, create and push the tag
# Tag prefix maps to crate (see workspace table at top of file):
# v0.13.0 → playwright-rs
# macros-v0.1.1 → playwright-rs-macros
# trace-v0.1.1 → playwright-rs-trace
git tag -a <prefix>vX.Y.Z -m "Release <crate> <prefix>vX.Y.Z — <one-line summary>"
git push origin <prefix>vX.Y.ZWhen a playwright-rs release also requires bumping a sibling crate
(e.g. v0.13.0 wants a fresh playwright-rs-macros 0.2.0), publish the
sibling first so the dep is available on crates.io when the main
crate's cargo publish runs:
# Single commit bumps all relevant Cargo.toml + CHANGELOG files.
git push origin main
gh run watch # CI must be green
# Push tags in dependency order. Wait ~30s between tags so the
# crates.io index propagates before the next publish runs.
git tag -a macros-vA.B.C -m "Release playwright-rs-macros vA.B.C"
git push origin macros-vA.B.C
sleep 30 # crates.io index propagation
git tag -a trace-vD.E.F -m "Release playwright-rs-trace vD.E.F"
git push origin trace-vD.E.F
sleep 30
git tag -a vX.Y.Z -m "Release playwright-rs vX.Y.Z"
git push origin vX.Y.ZIf a sibling's version is unchanged this cycle, just skip its tag.
If CI fails on main after the version-bump commit:
main is recoverable; a published bad version is not.release.yml does on tag pushThe workflow handles all three tag prefixes (v*, macros-v*,
trace-v*) with one routed pipeline:
Resolve crate, changelog, and version from tag step parses ${GITHUB_REF#refs/tags/} and routes:macros-v* → playwright-rs-macros + crates/playwright-rs-macros/CHANGELOG.mdtrace-v* → playwright-rs-trace + crates/playwright-rs-trace/CHANGELOG.mdv* → playwright-rs + crates/playwright/CHANGELOG.mdparse-changelog <CHANGELOG> <VERSION> — the per-crate
CHANGELOG is the single source of truth for release notes; no
manual paste needed.name = "<crate> <version>"
and the body from the parsed CHANGELOG section.startsWith(github.ref_name, '<prefix>'). Failure
aborts the workflow (no continue-on-error); the release tag
stays in place but the publish didn't happen, so re-running with
the same tag after fixing the issue is safe.The workflow is library-only: no binary artifacts are built, archived, or attested. If a CLI is ever shipped, add a separate binary-release pipeline rather than bolting onto this workflow.
Verify the GitHub Release at
https://github.com/padamson/playwright-rust/releases/tag/<prefix>vX.Y.Z
Verify crates.io has the new version. The JSON API often refuses
this with a data-access-policy error; the sparse index answers reliably:
curl -s https://index.crates.io/pl/ay/playwright-rs | tail -1
Publish the versioned site snapshot — applies to playwright-rs
only, and nothing triggers this automatically:
gh workflow run pages.yml --ref vX.Y.Z -f version=X.Y.Z--ref vX.Y.Z is load-bearing: the workflow builds /v<version>/ from
current source at that ref, so dispatching from main would publish
main's content under the release's URL. A tag push does not fire
pages.yml (its on.push filters to branches), so skipping this leaves
versions.json advertising the previous release as latest and omits
the new version from the dropdown. This was missed for 0.15.1 and again
for 0.16.0, which is why it is now a numbered step rather than a comment
in the workflow header.
Verify after: curl -s https://playwright-rust.dev/versions.json
First-time publish bookkeeping — if this is the first crates.io
release of a workspace crate, add
[policy.<crate>] audit-as-crates-io = true to
supply-chain/config.toml in a follow-up commit. Cannot be done
pre-release because cargo vet rejects the policy until the crate
exists on crates.io.
Flip the release-state doc — one follow-up commit, [skip ci],
for a minor release that closed driver surface:
docs/implementation-plans/v1.0-gap-analysis.md, the version's section
heading and the Coverage Summary paragraph. A patch release that changes
no coverage needs nothing here. docs/roadmap.md carries no per-release
status by design and is never touched at release time.
The gap analysis claims a release exists, so it must not ride the
version-bump commit: that lands on main before CI and before the tag,
and a failed publish would leave main advertising a release nobody
can install. Keep it in the "cut, awaiting tag" phrasing until the
publish is verified in steps 1-2, then flip it in one commit.
Update tracking issues if this release closes any
Announce if applicable (depends on release significance)
supply-chain/imports.lock — never; use
cargo vet regenerate unpublished (see supply-chain skill)[Unreleased] reset in the per-crate CHANGELOG —
leaves the next session's CHANGELOG additions homelessCHANGELOG.md — it's an index, not a
changelog. Per-crate CHANGELOGs are the source of truth; if you
tried adding a release entry to the index it won't appear in the
generated GitHub release notes.playwright-rs — the install snippet's pinned "0.X" controls what
new users see in the README on GitHub before the version on
crates.io is currentcargo publish -p playwright-rs will fail
to resolve a freshly-published playwright-rs-macros if the tags
are pushed back-to-back without a waitvX.Y.Z always means playwright-rs;
macros-vX.Y.Z is the macros crate; trace-vX.Y.Z is the trace
crate. The release.yml "Resolve crate, changelog, and version from
tag" step rejects unknown prefixes© padamson, Apache-2.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/release-process of padamson/playwright-rust.
Open the folder on GitHubat commit 0cf5194
Release Process 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 |
|---|---|---|---|---|---|---|
| Release Process this skillpadamson/playwright-rust | 152 | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Playwright Component Testingmellowagain/gitarena | 114 | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Michel UI Demo RecorderPackmindHub/packmind | 317 | — | ~6.4k | Automated safety check: Pass | Apache-2.0 | |
| Playwright Tracemellowagain/gitarena | 114 | 1 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Hydra Devstreamband/hydra-srt | 146 | — | ~995 | Automated safety check: Pass | Apache-2.0 | |
| Openlark API Field Verifyfoxzool/openlark | 106 | — | ~2.3k | Automated safety check: Notes | Apache-2.0 |
mellowagain/gitarena
Set up component testing with Playwright using a story gallery — scaffold stories and a gallery dev page driven by the built-in mount fixture, no dedicated component-testing runtime.
PackmindHub/packmind
Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros.
mellowagain/gitarena
Inspect Playwright trace files from the command line — list actions, view requests, console, errors, snapshots and screenshots.
streamband/hydra-srt
Run HydraSRT development workflows: mix q quality gate, Elixir unit/E2E tests, native Rust tests, web Vitest/Playwright, and make dev.
foxzool/openlark
OpenLark API 字段核对技能。用于新增/重构飞书 API 后,核对 Rust 实现的请求体/响应体字段是否与飞书官方文档一致。通过 playwright 渲染飞书 SPA 文档页面,提取真实的请求/响应字段定义,对比代码实现找出不符项。触发关键词:字段核对、字段验证、字段不符、文档核对、核对请求字段、核对响应字段、飞书文档字段、推断字段、user 级接口、用户级接口字段
swimmwatch/cloakbrowser-mcp
Maintain, organize, consolidate, or audit the cloakbrowser-mcp documentation set only when the user explicitly requests project documentation maintenance or an authorized public change requires it.
padamson/playwright-rust
Procedural reference for using playwright-rs in Rust browser-automation code — object model (Browser/Context/Page/Locator), the locator!() macro, builder pattern for options, auto-wait semantics…
padamson/playwright-rust
Conventions for authoring rustdoc doctests in playwright-rust — the norun annotation, module-level placement, hidden scaffolding lines, and how doctests are exercised in CI vs pre-commit.
padamson/playwright-rust
Procedure for keeping playwright-rust's cargo audit / cargo deny / cargo vet checks green when bumping the project's own version, when external crates change, and when a security advisory drops.
Works with
Categories
End-to-end release runbook for playwright-rust — version bump, supply-chain refresh, per-crate CHANGELOGs, tag-prefix routing for the three workspace crates, the safer push-then-tag workflow that…. Release Process is an agent skill from padamson/playwright-rust. End-to-end release runbook for playwright-rust — version bump, supply-chain refresh, per-crate CHANGELOGs, tag-prefix routing for the three workspace crates, the safer push-then-tag workflow that waits for CI before publishing, and the post-release follow-ups.
Release Process fits situations like: tasks that involve Deployment; tasks that involve Browser testing; tasks that involve Changelog and release notes.
Run `npx skills add padamson/playwright-rust --skill release-process -a claude-code`. Or copy the skill folder (.claude/skills/release-process in padamson/playwright-rust) into .claude/skills/release-process in your project. Claude Code loads it when a task matches its description.
Run `npx skills add padamson/playwright-rust --skill release-process -a codex`. Or copy the skill folder (.claude/skills/release-process in padamson/playwright-rust) into .agents/skills/release-process 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 padamson/playwright-rust --skill release-process -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-process, .gemini/skills/release-process, .github/skills/release-process and .opencode/skills/release-process in your project.
Going by SKILL.md and its folder, Release Process needs the command-line tools its instructions call (cargo, git, gh, curl and npx). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: index.crates.io and playwright-rust.dev; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Release Process is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 16k 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 Release Process: Playwright Component Testing (mellowagain/gitarena, 114 stars), Michel UI Demo Recorder (PackmindHub/packmind, 317 stars), Playwright Trace (mellowagain/gitarena, 114 stars) and Hydra Dev (streamband/hydra-srt, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
padamson (a GitHub user) maintains it in padamson/playwright-rust, which has 152 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 4, 2026.
Source: padamson/playwright-rust on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.