dist/pi/skills/playwright-skill/SKILL.md
Support-only Playwright runtime/reference for browser-automation — dev-server detection, a Node.js script runner, quiet screenshot helpers, SPA readiness helpers, and custom HTTP headers. Use when browser-automation selects the bundled Playwright fallback; do not route user intent here directly.
npx skillsauth add alexei-led/claude-code-config playwright-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Support-only Playwright runtime/reference for browser-automation on Pi:
dev-server detection, a script runner, screenshot helpers, and helper utilities.
Do not route user intent here directly; use browser-automation for
exploration, validation, screenshots, and browser tests.
Run from the directory containing this SKILL.md. In Pi, the loaded skill path
may be under a package cache or git checkout such as dist/pi/skills, not a
fixed ~/.pi/agent/skills/playwright-skill path.
See references/setup.md. First invocation of run.js
or the screenshot helpers auto-installs Playwright via bun, with npm fallback.
node scripts/run.js --json "console.log(JSON.stringify(await helpers.detectDevServers()))"
One server → use it. Multiple → ask which. None → ask for a URL.
Write scripts outside the skill directory (typically under /tmp), then:
node scripts/run.js --quiet /tmp/playwright-check.js
run.js preserves the caller working directory, exposes Playwright globals even
when the script uses require("fs") or require("path"), and keeps runner logs
on stderr so JSON stdout stays clean.
Single URL:
node scripts/screenshot-url.js \
--url http://localhost:3030/1?clicks=20 \
--selector .slidev-page \
--out /tmp/playwright-slide-01.png \
--json
Sequence:
node scripts/screenshot-sequence.js \
--url-template 'http://localhost:3030/{n}?clicks=20' \
--from 1 \
--to 17 \
--selector .slidev-page \
--out-dir /tmp/playwright-slidev \
--json
The sequence manifest includes title, URL, screenshot path, console errors, network failures, and HTTP responses with status >=400.
/tmp/playwright-* for generated scripts, screenshots, traces, and logs.helpers.waitForStablePage(page, { selector, animationFrames }).browser-automation.Report the target URL, actions run, artifact paths, and failures. Base success claims on script output or artifacts, not on command completion alone.
run.js not found: run from the directory containing this SKILL.md, or use
the absolute loaded skill path.references/setup.md.tools
Idiomatic shell development for POSIX sh, Bash, Zsh, Fish, hooks, CI shell steps, and scriptable CLI glue. Use when writing or changing `.sh`, `.bash`, `.zsh`, `.fish`, `.bats`, shell functions, shell pipelines, or command-runner recipes. Emphasizes portability, quoting, safe filesystem/process handling, non-TUI CLI tools, ShellCheck, shfmt, Bats, and ShellSpec. NOT for Python, TypeScript, Go, web code, or infrastructure operations.
tools
Use when planning, executing, checkpointing, finishing, or inspecting lightweight spec-driven work. Runs one task at a time using `.spec/` markdown files and the bundled `specctl` helper. NOT for broad product discovery beyond a short requirement interview.
testing
Author, inspect, troubleshoot, and review infrastructure across IaC, Kubernetes, cloud resources, containers, CI/CD, and Linux hosts. Use when changing Terraform/OpenTofu, Kubernetes, Helm, Kustomize, Dockerfiles, GitHub Actions, AWS, GCP, Cloud Run, BigQuery, IAM, logs, instances, or service health. NOT for deploy/apply/rollback workflows (see deploying-infra). NOT for shell scripts or generic command pipelines (see writing-shell).
development
Configure safe git workflow hygiene: pre-commit/pre-push hooks, Gitleaks secret scanning, .gitignore rules, local git config, and guardrails. Use when setting up git hooks, gitleaks/git leaks, staged pre-commit checks, pre-push validation, core.hooksPath, .gitignore, or git config best practices. NOT for creating commits (use committing-code), cleaning branches/worktrees (use cleanup-git), or creating worktrees (use using-git-worktrees).