From antigravity-awesome-skills
Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.
npx claudepluginhub absjaded/antigravity-awesome-skillsThis skill uses the workspace's default tool permissions.
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.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
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.
Risk Level: ๐ต Safe
defer to prevent memory leaks.go run github.com/playwright-community/playwright-go/cmd/playwright@latest install --with-deps).CRITICAL: Never launch a new Browser instance for every task.
Browser once (singleton). Create a new BrowserContext for each distinct session or task.go.uber.org/zap exclusively.fmt.Println.zap.NewDevelopment() (Console friendly)zap.NewProduction() (JSON structured)logger.Info("clicking button", zap.String("selector", sel))).defer to close Pages, Contexts, and Browsers.playwright.PageClickOptions{Timeout: playwright.Float(5000)}).To bypass anti-bot systems (Cloudflare, Akamai), the generated code must imitate human physiology:
Fill(). Use Type() with random delays between keystrokes (50msโ200ms).resources/implementation-playbook.md for detailed code examples and implementation patterns.Headless=false, SlowMo=100+.NewContext, apply new Proxy, rotate User-Agent.SafeAction with Zap logging.HumanType, BezierMouse, and Stealth Scripts.