Skip to content
go-playwright logo

go-playwright

Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.

techwavedev/agi-agent-kit0installs4stars

SKILL.md

Full skill instructions

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 defer to 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 Browser once (singleton). Create a new BrowserContext for 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/​zap exclusively.
  • Rule: Do not use fmt.Println.
  • Modes:
    • Dev: zap.NewDevelopment() (Console friendly)
    • Prod: zap.NewProduction() (JSON structured)
  • 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 defer to 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(). Use Type() 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.md for 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, rotate User-Agent.
  • Is the action critical? -> Wrap in SafeAction with Zap logging.
  • Is the target guarded (Cloudflare/​Akamai)? -> Enable HumanType, BezierMouse, and Stealth Scripts.

<!-- AGI-INTEGRATION-START -->

AGI Framework Integration

Adapted for @techwavedev/​agi-agent-kit Original source: antigravity-awesome-skills

Memory-First Protocol

Retrieve prior test strategies, known flaky tests, and coverage gaps. Cache test infrastructure setup to avoid re-configuring test environments.

# Check for prior testing/​QA context before starting
python3 execution/​memory_manager.py auto --query "test patterns and coverage strategies for Go Playwright"

Storing Results

After completing work, store testing/​QA decisions for future sessions:

python3 execution/​memory_manager.py store \
  --content "Testing strategy: integration tests hit real DB (no mocks), 85% line coverage, mutation testing on critical paths" \
  --type technical --project <project> \
  --tags go-playwright testing

Multi-Agent Collaboration

Share test results and coverage reports with code review agents so they can verify adequate coverage on changed code.

python3 execution/​cross_agent_context.py store \
  --agent "<your-agent>" \
  --action "QA complete — test suite expanded with 12 new integration tests, all passing" \
  --project <project>

TDD Enforcement

This skill integrates with the framework's iron-law RED-GREEN-REFACTOR cycle. No production code without a failing test first.

Agent Team: QA

Dispatch qa_team to generate tests and verify they pass before marking implementation complete.

<!-- AGI-INTEGRATION-END -->