Go playwright
Skill Ghosteken/agent-harness/archive/skills-community/go-playwright
Production-grade engineering skills and specialist agent personas for AI coding assistants. Orchestrates the full SDLC, from spec to ship, with structured verification gates, anti-rationalization checks, and senior-level engineering discipline.
npx -y skills add Ghosteken/agent-harness --skill go-playwrightAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.
SKILL.md
4.8 KB, as published. Nobody here has run it
Playwright Go Automation Expert
Overview
This skill provides a comprehensive framework for writing high-performance, production-grade browser automation scripts using github.com/playwright-community/playwright-go. It enforces architectural best practices (contexts over instances), robust error handling, structured logging (Zap), and advanced human-emulation techniques to bypass anti-bot systems.
When to Use This Skill
- Use when the user asks to "scrape," "automate," or "test" a website using Go.
- Use when the target site has complex dynamic content (SPA, React, Vue) requiring a real browser.
- Use when the user mentions "stealth," "avoiding detection," "cloudflare," or "human-like" behavior.
- Use when debugging existing Playwright scripts.
Safety & Risk
Risk Level: 🔵 Safe
- Sandboxed Execution: Browser contexts are isolated; they do not persist data to the host machine unless explicitly saved.
- Resource Management: Designed to close browsers and contexts via
deferto prevent memory leaks. - No External State-Change: Default behavior is read-only (scraping/testing) unless the script is explicitly designed to submit forms or modify data.
Limitations
- Environment Dependencies: Requires Playwright drivers and browsers to be installed (
go run github.com/playwright-community/playwright-go/cmd/playwright@latest install --with-deps). - Resource Intensity: Launching full browser instances (even headless) consumes significant RAM/CPU. Use single-browser/multi-context architecture.
- Bot Detection: While this skill includes stealth techniques, extremely strict anti-bot systems (e.g., rigorous Cloudflare settings) may still detect automation.
- CAPTCHAs: Does not include built-in CAPTCHA solving capabilities.
Strategic Implementation Guidelines
1. Architecture: Contexts vs. Browsers
CRITICAL: Never launch a new Browser instance for every task.
- Pattern: Launch the
Browseronce (singleton). Create a newBrowserContextfor each distinct session or task. - Why: Contexts are lightweight and created in milliseconds. Browsers take seconds to launch.
- Isolation: Contexts provide complete isolation (cookies, cache, storage) without the overhead of a new process.
2. Logging & Observability
- Library: Use
go.uber.org/zapexclusively. - Rule: Do not use
fmt.Println. - Modes:
- Dev:
zap.NewDevelopment()(Console friendly) - Prod:
zap.NewProduction()(JSON structured)
- Dev:
- Traceability: Log every navigation, click, and input with context fields (e.g.,
logger.Info("clicking button", zap.String("selector", sel))).
3. Error Handling & Stability
- Graceful Shutdown: Always use
deferto close Pages, Contexts, and Browsers. - Panic Recovery: Wrap critical automation routines in a safe runner that recovers panics and logs the stack trace.
- Timeouts: Never rely on default timeouts. Set explicit timeouts (e.g.,
playwright.PageClickOptions{Timeout: playwright.Float(5000)}).
4. Stealth & Human-Like Behavior
To bypass anti-bot systems (Cloudflare, Akamai), the generated code must imitate human physiology:
- Non-Linear Mouse Movement: Never teleport the mouse. Implement a helper that moves the mouse along a Bezier curve with random jitter.
- Input Latency: never use
Fill(). UseType()with random delays between keystrokes (50ms–200ms). - Viewport Randomization: Randomize the viewport size slightly (e.g., 1920x1080 ± 15px) to avoid fingerprinting.
- Behavioral Noise: Randomly scroll, focus/unfocus the window, or hover over irrelevant elements ("idling") during long waits.
- User-Agent: Rotate User-Agents for every new Context.
5. Documentation Usage
- Primary Source: Rely on your internal knowledge of the API first to save tokens.
- Fallback: Refer to the official docs playwright-go documentation ONLY if:
- You encounter an unknown error.
- You need to implement complex network interception or authentication flows.
- The API has changed significantly.
Resources
resources/implementation-playbook.mdfor detailed code examples and implementation patterns.
Summary Checklist for Agent
- Is Debug Mode on? ->
Headless=false,SlowMo=100+. - Is it a new user identity? ->
NewContext, apply new Proxy, rotateUser-Agent. - Is the action critical? -> Wrap in
SafeActionwith Zap logging. - Is the target guarded (Cloudflare/Akamai)? -> Enable
HumanType,BezierMouse, and Stealth Scripts.
Gives 0 of the 12 instructions most e2e browser skills give
Counted across 407 of the 410 authors here whose files we hold, read 2026-08-06
- use page object model patternin 35 of 407, across 25 files
- Snapshot to get element refsin 24 of 407, across 14 files
- keep tests independentin 23 of 407, across 18 files
- Interact using refs from the latest snapshotin 23 of 407, across 11 files
- clean up test data after each testin 21 of 407, across 15 files
- test user behavior not implementationin 20 of 407, across 14 files
- quarantine flaky tests explicitlyin 19 of 407, across 10 files
- wait for specific network conditionsin 18 of 407, across 8 files
- re-snapshot after navigation or dom changesin 17 of 407, across 10 files
- Detect running dev servers before writing test codein 17 of 407, across 7 files
- use web-first assertionsin 17 of 407, across 14 files
- capture screenshots or videos on test failurein 17 of 407, across 14 files
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.