Marketplace browser-discovery
Browser automation for documentation discovery. Use when curl fails on JS-rendered sites, when detecting available browser tools, or when configuring browser-based documentation collection.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/consiliency/browser-discovery" ~/.claude/skills/aiskillstore-marketplace-browser-discovery && rm -rf "$T"
manifest:
skills/consiliency/browser-discovery/SKILL.mdsource content
Browser Discovery Skill
Detect and use browser automation tools for documentation discovery when static fetching fails.
Variables
| Variable | Default | Description |
|---|---|---|
| PREFERRED_TOOL | auto | , , , |
| WAIT_TIMEOUT | 3 | Seconds to wait for JS rendering |
| MAX_PAGES | 50 | Maximum pages to discover per site |
Instructions
MANDATORY - Follow the Workflow steps below when browser automation is needed.
- Always try curl first unless
is setjs_required: true - Detect available browser tools before attempting automation
- Prefer accessibility snapshots over screenshots for link extraction
Quick Decision Tree
Do you need browser automation? │ ├─ Curl returns full content? ──────────► NO - Use curl (docs-fetch-url) │ ├─ Curl returns <1KB or 403? ───────────► YES - Continue below │ Which browser tool to use? │ ├─ browser_subagent available? ─────────► antigravity-browser.md │ ├─ In Cursor IDE? ──────────────────────► cursor-browser.md │ ├─ Chrome debugging on :9222? ──────────► playwright-browser.md (wrapper) │ └─ No browser tool? ────────────────────► See "No Browser Available" section
Red Flags - STOP and Reconsider
If you're about to:
- Use browser automation when curl would work
- Skip tool detection and assume a specific tool exists
- Take screenshots when snapshot would provide structured data
- Navigate without waiting for JS rendering
STOP -> Check the appropriate cookbook -> Then proceed
Workflow
- CHECKPOINT: Verify browser automation is actually needed
- Curl response < 1KB?
- Curl gets 403 Forbidden?
in config?js_required: true
- Detect available browser tools (priority order)
- Select best available tool
- CHECKPOINT: Read the cookbook for selected tool
- Execute browser-based discovery
- Parse results and return structured data
Tool Detection Priority
| Priority | Tool | Detection | Best For |
|---|---|---|---|
| 1 | Antigravity | Tool in tool list | Zero-config native |
| 2 | Cursor MCP (in-IDE) | | In Cursor IDE |
| 3 | Cursor CLI | | Delegation from CLI |
| 4 | Playwright (wrapper) | | Full automation |
Cookbook
Antigravity Browser
- IF:
tool availablebrowser_subagent - THEN: Read
cookbook/antigravity-browser.md
Cursor Browser
- IF: In Cursor IDE or
availablecursor-agent - THEN: Read
cookbook/cursor-browser.md
Playwright Browser
- IF: Chrome debugging accessible at localhost:9222
- THEN: Read
cookbook/playwright-browser.md
When Browser Is Needed
Signs that a site requires browser automation:
- Curl response < 1KB (JS-rendered content)
- Response contains "please enable javascript"
- Framework markers:
,__NEXT_DATA__
,window.__remixContextwindow.__NUXT__ - Only CSS/font resources returned (no text content)
No Browser Available
If no browser tool is detected:
No browser automation tool detected. Setup options: 1. Antigravity IDE: Built-in (zero config) 2. Cursor: cursor-agent available when installed 3. Claude Code: Launch Chrome with debugging: google-chrome --remote-debugging-port=9222 Then use the Playwright wrapper: python3 .claude/ai-dev-kit/dev-tools/mcp/wrappers/playwright_wrapper.py navigate "https://..."
Output
Return discovered pages as structured data:
{ "pages": [ {"url": "...", "title": "...", "section": "..."} ], "nav_structure": "sidebar | tabs | accordion", "js_required": true }