[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-browserbase-autobrowse":3,"mdc--wu83j0-key":34,"related-repo-browserbase-autobrowse":5186,"related-org-browserbase-autobrowse":5298},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"autobrowse","run self-improving browser automation","Self-improving browser automation via the auto-research loop. Iteratively runs a browsing task, reads the trace, and improves the navigation skill (strategy.md) until it reliably passes. Supports parallel runs across multiple tasks using sub-agents. Use when you want to build or improve browser automation skills for specific website tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"browserbase","Browserbase","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fbrowserbase.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Agents","agents",{"name":21,"slug":22,"type":15},"Browser Automation","browser-automation",3649,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills","2026-04-23T05:00:30.528336","MIT",232,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Browserbase's official collection of agent skills to access the web.","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fautobrowse","---\nname: autobrowse\ndescription: Self-improving browser automation via the auto-research loop. Iteratively runs a browsing task, reads the trace, and improves the navigation skill (strategy.md) until it reliably passes. Supports parallel runs across multiple tasks using sub-agents. Use when you want to build or improve browser automation skills for specific website tasks.\nlicense: MIT\ncompatibility: \"Requires Node.js 18+, browse CLI, and ANTHROPIC_API_KEY. Run from the autobrowse app directory.\"\nallowed-tools: Bash Read Write Edit Glob Grep Agent\nmetadata:\n  author: browserbase\n  homepage: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills\n---\n\n# AutoBrowse — Self-Improving Browser Skill\n\nBuild reliable browser automation skills through iterative experimentation. An inner agent browses the site (`evaluate.ts`). You — the outer agent — read what happened and improve the instructions (`strategy.md`). Repeat until it passes consistently.\n\n## Entry Points\n\nInvocation is flexible — both explicit flags and free-form natural language work:\n\n```\n\u002Fautobrowse --task google-flights\n\u002Fautobrowse --task google-flights --iterations 10 --env remote\n\u002Fautobrowse --task google-flights --browser-trace\n\u002Fautobrowse --tasks google-flights,amazon-add-to-cart\n\u002Fautobrowse --all\n\n# Also fine — parse freely:\n\u002Fautobrowse https:\u002F\u002Fflights.google.com\u002F\n\u002Fautobrowse book a flight on delta.com\n\u002Fautobrowse fix the existing google-flights skill\n```\n\n`--browser-trace` (default off, remote-only): pairs each iteration with the sibling `browser-trace` skill — wraps the inner agent in a CDP capture for per-page network\u002Fconsole\u002Fpage-lifecycle evidence. Implies `--env remote`; errors if combined with `--env local`. Requires the sibling `browser-trace` skill present at `${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002F`, and the `BROWSERBASE_API_KEY` env var.\n\nWhen the user drops a URL or free-form instruction instead of `--task \u003Cname>`:\n- If an existing task in `${WORKSPACE}\u002Ftasks\u002F` clearly matches the site\u002Fintent, use it.\n- Otherwise, pick a short kebab-case name, create `${WORKSPACE}\u002Ftasks\u002F\u003Cname>\u002Ftask.md` from `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexample-task.md`, fill in the URL\u002Fgoal based on what the user said, and proceed. Tell the user the chosen name in one line.\n\n---\n\n## How to run\n\n### Step 1 — Parse arguments and orient\n\nCheck what was passed:\n- `--task \u003Cname>` → single task mode\n- `--tasks a,b,c` or `--all` → multi-task mode (spawn sub-agents)\n- `--iterations N` → how many evaluate → improve cycles (default: 5)\n- `--env local|remote` → browser environment (default: local; use remote for bot-protected sites)\n- `--browser-trace` → opt in to the browser-trace integration (default off). Implies `--env remote`. If `--env local --browser-trace` are both passed explicitly, error with: `browser-trace requires Browserbase; drop --env local or drop --browser-trace.`\n\nIf the user passed free-form text instead, map it to one of the above before continuing.\n\n### Step 2 — Set up the workspace\n\nAll training artifacts (task definitions, strategy iterations, traces, reports) live in a workspace directory in the **current working directory** — NOT inside `~\u002F.claude\u002Fskills\u002F`. This keeps the inner agent's file writes out of Claude's home dir and away from permission friction.\n\nDefault workspace: `${CWD}\u002Fautobrowse\u002F`\n\n```bash\nmkdir -p .\u002Fautobrowse\u002Ftasks .\u002Fautobrowse\u002Ftraces .\u002Fautobrowse\u002Freports\n```\n\nIf the task directory (`.\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\u002Ftask.md`) doesn't exist yet, scaffold it:\n\n```bash\nmkdir -p .\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\ncp ${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexample-task.md .\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\u002Ftask.md\n# Then edit task.md to describe the URL, inputs, steps, and expected JSON output\n```\n\nThe skill source at `${CLAUDE_SKILL_DIR}` stays read-only — only `.\u002Fautobrowse\u002F` in CWD gets written to during training. Graduation (final step) writes a single file to `~\u002F.claude\u002Fskills\u002F\u003Ctask>\u002FSKILL.md`.\n\nList available tasks:\n```bash\nls .\u002Fautobrowse\u002Ftasks\u002F\n```\n\n### Step 3 — Multi-task: spawn parallel sub-agents\n\nIf running multiple tasks, use the Agent tool to spawn one sub-agent per task simultaneously. Each sub-agent receives a self-contained prompt to run the full autobrowse loop for its task:\n\n> \"You are running the autobrowse skill for task `\u003Cname>`. Workspace: `\u003Cabsolute-path-to-workspace>` (e.g. `\u002Fpath\u002Fto\u002Fproject\u002Fautobrowse`). Run `\u003CN>` iterations of: evaluate → read trace → improve strategy.md → repeat. Use `--env \u003Cenv>`. Pass `--workspace \u003Cworkspace>` to every evaluate.mjs invocation. If the parent invocation used `--browser-trace`, you MUST use the traced-path block of the SKILL.md loop for every iteration (pre-create session, attach bb-capture, pass `--connect-url` to evaluate.mjs, stop+bisect, release) — do not fall back to the default single-command path. Follow the autobrowse loop instructions exactly.\n>\n> When graduating, install the skill to `~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\u002FSKILL.md` with proper agentskills frontmatter (name + description). Do not just copy strategy.md — write a self-contained skill.\n>\n> At the end, output a structured summary with: task name, pass\u002Ffail on final run, total cumulative cost, iterations completed, per-iteration table (iter number, turns, cost, status, hypothesis tested), and 2-3 bullet key learnings.\"\n\nSpawn all sub-agents in parallel, wait for all to complete, then collect their summaries and write the session report.\n\n**For single task**, skip this step and run the loop directly below.\n\n---\n\n## The Loop (run this for each task)\n\n### Iteration start\n\nCheck that `.\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\u002Ftask.md` exists (scaffold it from the template if not — see Step 2). `strategy.md` is auto-created empty by the harness on first run.\n\n### Requirements\n\n- `ANTHROPIC_API_KEY` must be in the environment (or in a `.env` file in CWD — `evaluate.mjs` auto-loads it). If missing, the harness prints a clear error and exits; don't hunt for keys in other paths.\n\n### Run the inner agent\n\n**Default path (no `--browser-trace`)** — single command, no orchestration:\n\n```bash\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs --task \u003Ctask-name> --workspace .\u002Fautobrowse\n# or for bot-protected sites:\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs --task \u003Ctask-name> --workspace .\u002Fautobrowse --env remote\n```\n\nThis runs the browser session and writes a full trace to `.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask>\u002Flatest\u002F`.\n\n**Traced path (`--browser-trace`, remote only)** — the outer harness pre-creates a Browserbase session, attaches `bb-capture` as a passive observer, and passes the session's `connectUrl` to `evaluate.mjs` so every inner `browse` call uses `--cdp $connectUrl --session autobrowse-main` (the canonical browser-trace pattern that gives observers full Network\u002FConsole events). Run this block once per iteration with `$N` set to the 1-indexed iteration number:\n\n```bash\n# Preflight — fail fast if browser-trace isn't installed alongside autobrowse.\nBT_DIR=\"${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\"\nif [ ! -f \"$BT_DIR\u002Fscripts\u002Fbb-capture.mjs\" ]; then\n  echo \"ERROR: --browser-trace requires the browser-trace skill at $BT_DIR.\" >&2\n  echo \"Install it by cloning github.com\u002Fbrowserbase\u002Fskills and copying skills\u002Fbrowser-trace\u002F\" >&2\n  echo \"into the same parent directory as autobrowse (e.g. ~\u002F.claude\u002Fskills\u002Fbrowser-trace\u002F).\" >&2\n  exit 1\nfi\n\n# a. SESSION SETUP — pre-create the keep-alive session and derive its connectUrl\nsid=$(browse cloud sessions create --keep-alive --verified --proxies \\\n  | node -e \"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).id))\")\nconnect_url=$(browse cloud sessions get \"$sid\" \\\n  | node -e \"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).connectUrl))\")\n\nRUN_ID=\"run-$(printf '%03d' \"$N\")\"\nTRACE_ROOT=\".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002F$RUN_ID\"\nmkdir -p \"$TRACE_ROOT\"\nexport O11Y_ROOT=\"$TRACE_ROOT\u002F.o11y\"   # park browser-trace output inside the autobrowse run dir\nexport O11Y_RUN_ID=\"$RUN_ID\"           # tells the browse CLI which run dir to write descriptors.ndjson into\n\n# b. ATTACH BROWSER-TRACE — passive observer; runs in background\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbb-capture.mjs \"$sid\" \"$RUN_ID\" &\nsleep 2\n\n# c. RUN AUTOBROWSE — connectUrl flag tells evaluate.mjs to inject --cdp\u002F--session\n#    into every inner browse call. The inner agent never sees --remote.\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs \\\n  --task \u003Ctask-name> --workspace .\u002Fautobrowse --env remote \\\n  --connect-url \"$connect_url\" --run-number \"$N\"\n\n# d. STOP + BISECT + UNIFY — order matters; bisect needs the session to still\n#    exist, and unify-trace joins the bisect output with autobrowse's trace.json\n#    into a single time-ordered NDJSON the outer agent reads first each iter.\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fstop-capture.mjs \"$RUN_ID\"\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbisect-cdp.mjs \"$RUN_ID\"\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Funify-trace.mjs \\\n  --trace-dir \"$TRACE_ROOT\" \\\n  --o11y-dir \"$O11Y_ROOT\u002F$RUN_ID\"\n\n# e. RELEASE\nbrowse cloud sessions update \"$sid\" --status REQUEST_RELEASE\n```\n\nThis writes the inner-agent trace to `.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F` and the CDP bisect to `.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F.o11y\u002F\u003Crun-id>\u002F`. The traced `browse` CLI also emits per-command rich node descriptors to `.o11y\u002F\u003Crun-id>\u002Fcdp\u002Fdescriptors.ndjson` (one JSON object per page-driving call: target tag\u002Fid\u002Frole\u002FaccessibleName\u002Fattributes\u002Fxpath\u002Fbounding-rect). The descriptors file feeds downstream codegen; it is **not** required for hypothesis formation — skip it when reading the trace.\n\n### Read the trace\n\n```bash\ncat .\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Fsummary.md\n```\n\nThe summary has duration, cost, turns, the decision log, and the final JSON output.\n\nIf the agent failed or got stuck, look deeper:\n- Read `.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Ftrace.json` — search for the failure turn\n- Read screenshots around the failure point with the Read tool\n\n**When `--browser-trace` was used — start with `unified-events.jsonl`.** The harness joins the agent's turn log and the browser's CDP firehose into one time-ordered NDJSON stream at the run root. One file, source-tagged (`source: \"agent\" | \"browser\"`), interleaved by wall-clock timestamp. Skim it top-to-bottom; the failure cause is usually one or two adjacent lines (the agent issued command X, the browser responded with Y).\n\n```bash\ncat .\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Funified-events.jsonl\n```\n\nThe structured files (`trace.json`, `.o11y\u002F\u003Crun-id>\u002Fcdp\u002F*`) are **also agent-consumable as drill-downs** when the unified stream points at something you need more of:\n\n| Need | Drill-down file or command |\n|---|---|\n| Per-page totals + timing (events, network counts, errors by page) | `.o11y\u002F\u003Crun-id>\u002Fcdp\u002Fsummary.json` |\n| All failed network requests in one place | `.o11y\u002F\u003Crun-id>\u002Fcdp\u002Fnetwork\u002Ffailed.jsonl` |\n| Full console exception payloads (stacktraces, etc.) | `.o11y\u002F\u003Crun-id>\u002Fcdp\u002Fconsole\u002Fexceptions.jsonl` |\n| Per-page slice (only events on page N) | `.o11y\u002F\u003Crun-id>\u002Fcdp\u002Fpages\u002F\u003Cpid>\u002F` |\n| Full reasoning text \u002F untruncated tool outputs for a specific turn | `trace.json` (filter by `turn === N`) |\n| Ad-hoc grouped query (e.g. top hosts, errors-by-page) | `O11Y_ROOT=.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F.o11y node ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fquery.mjs \u003Crun-id> \u003Ccmd>` |\n\nThe unified stream is the default; drill into structured files only when you need a grouped query, a full-text payload, or filtering the stream can't give you.\n\n### Form one hypothesis\n\nFind the exact turn where things went wrong. What single heuristic would have prevented it?\n\nUnder `--browser-trace`, the hypothesis must cite a **specific event from `unified-events.jsonl`** (line number or timestamp) — or name the drill-down file if you had to descend into one. This keeps updates evidence-grounded rather than vibes-driven. A hypothesis based only on the agent's commands might say \"the click didn't work\"; grounded in the unified stream, it can say \"line 47 of unified-events.jsonl: `browse open` was followed by `Network.responseReceived` status 403 on `\u002Fapi\u002Fcheckout` — switch to `--verified --proxies`.\"\n\nExamples:\n- \"After clicking the dropdown, wait 1s — options animate in before they're clickable\"\n- \"Navigate directly to `\u002Fpay-invoice\u002F` — skip the landing page entirely\"\n- \"Use `browse fill #field_3 value` not `browse type` — this field clears on focus\"\n- \"The page shows a spinner at turn 8 — add `browse wait timeout 2000` before snapshot\"\n- (with `--browser-trace`) \"At line 47 of unified-events.jsonl, 3 consecutive `Network.responseReceived` events on `\u002Fapi\u002Favailability` returned 403 right after `browse open` — the site is fingerprinting; the next iter needs `--verified --proxies`.\"\n\n### Update strategy.md\n\nEdit `.\u002Fautobrowse\u002Ftasks\u002F\u003Ctask-name>\u002Fstrategy.md`. Keep everything that worked. Fix the specific failure. Add a concrete heuristic.\n\nGood strategies have:\n- **Fast path**: direct URL or shortcuts to skip exploration\n- **Step-by-step workflow**: exact sequence with timing notes\n- **Site-specific knowledge**: selector IDs, form field names, success indicators\n- **Failure recovery**: what to do when X goes wrong\n\n### Judge the result\n\nRead the new summary. Did it pass? Make clear progress?\n- **Pass or progress** → keep, next iteration\n- **No progress or regression** → revert strategy.md to the previous version and try a different hypothesis\n\n### Generate a runnable script (optional)\n\nOnce the task has converged, you can produce a deterministic, runnable script\nin one or more frameworks via `scripts\u002Fcodegen.mjs`. This is one shot of an\nLLM call per framework, cached by content hash, with optional verify-against-\nfresh-session and rewrite-on-failure.\n\n```bash\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fcodegen.mjs \\\n  --task \u003Cname> \\\n  --workspace .\u002Fautobrowse \\\n  --frameworks playwright,stagehand \\\n  --verify\n```\n\nEach framework gets its own subdirectory under `tasks\u002F\u003Cname>\u002F\u003Cframework>\u002F`\nwith the emitted script and a self-contained scaffold (`package.json`,\n`tsconfig.json`). The directory is runnable standalone with\n`cd tasks\u002F\u003Cname>\u002Fplaywright && npm install && npx tsx \u003Cname>.ts` — the only\nruntime requirement is `BROWSERBASE_API_KEY` (plus `ANTHROPIC_API_KEY` for\nthe Stagehand target).\n\nBuiltin frameworks: `playwright`, `stagehand`. Add a custom framework with\n`--prompt-template \u003Cpath> --frameworks custom` (and provide your own runner\nor pass `--no-verify`).\n\nCommon flags:\n\n| Flag | Purpose |\n|---|---|\n| `--frameworks a,b,...` | Comma-separated; default `playwright` |\n| `--verify` \u002F `--no-verify` | Run the produced script against a fresh BB session; default `--verify` |\n| `--max-retries N` | Rewrite-on-verify-failure cap; default 2 |\n| `--cache-only` | Error if cache miss (CI-friendly) |\n| `--force` | Bust the cache |\n| `--dry-run` | Estimate prompt size + cost; don't call the LLM |\n| `--run \u003Cid>` | Force a specific `run-NNN` (default: latest passing) |\n\nOutput is one JSON line per framework on stdout. Non-zero exit if any\nselected framework's final state is `passed: false`.\n\nSee `references\u002Fplaywright-cdp-bridge.md` for the canonical\n`connectOverCDP` patterns the emitted scripts follow.\n\n### After all iterations — publish if ready\n\nIf the task passed on 2+ of the last 3 iterations **or has reached the max iteration limit**, install it as a Claude Code skill. **Do not just copy strategy.md** — the skill must be self-contained and useful to someone who has never seen this codebase. If graduating at max iterations without a clean pass, note the known failure point but still document everything learned.\n\nInstall by writing to `~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\u002FSKILL.md`:\n\n```bash\nmkdir -p ~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\n```\n\nUse this structure for the SKILL.md:\n\n```markdown\n---\nname: \u003Ctask-name>\ndescription: \u003C1-2 sentences describing what this skill does and when to use it. Include trigger keywords.>\n---\n\n# \u003CTask Title> — Browser Skill\n\n## Purpose\n\u003C1-2 sentences: what this automates and why it exists.>\n\n## When to Use\n\u003CWhen should someone reach for this skill.>\n\n## Browse CLI Reference\nThe inner agent uses the `browse` CLI. Key commands for this task:\n- `browse stop` — kill existing session (always run before switching to remote)\n- `browse open \u003Curl> --remote` — start a fresh Browserbase cloud session and navigate\n- `browse open \u003Curl> --local` — start a clean local browser and navigate\n- `browse tab new \u003Curl>` — open URL in a new tab\n- `browse wait load` — wait for page to finish loading\n- `browse wait timeout \u003Cms>` — wait a fixed amount of time for spinners or animations\n- `browse wait selector \"\u003Cselector>\"` — wait for an element to become visible\n- `browse get title` — verify you're on the right page\n- `browse get text body` — extract all visible text (preferred for content extraction)\n- `browse snapshot` — get accessibility tree; each node has a ref in `[X-Y]` format (e.g. `[0-5]`, `[2-147]`)\n- `browse click [X-Y]` — click element by ref from the latest snapshot (include the brackets)\n\n**Never use `--session \u003Cname>` flags in SKILL.md.** Named sessions are a parallel-run workaround — they contaminate skills with infrastructure concerns. Skills must work in isolation with the default session.\n\n## Workflow\n\n### Step 1 — Start session\n\u003Cexact browse commands in order>\n\n### Step 2 — Navigate\n\u003Cexact URL and verification steps>\n\n### Step 3 — Extract\n\u003Cexact extraction commands>\n\n### Step 4 — Output\n\u003Cwhat JSON to emit, referencing the schema below>\n\n## Site-Specific Gotchas\n\u003CBullet list of every hard-won heuristic from the iterations. This is the core value of the skill.>\n\n## Failure Recovery\n\u003CWhat to do when navigation fails, session is contaminated, or extraction returns garbage>\n\n## Expected Output\n```json\n\u003Cpaste the exact expected output schema from task.md>\n```\n```\n\nAfter writing the SKILL.md, confirm it's installed:\n```bash\nls ~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\u002FSKILL.md\n```\n\nThe skill is now available as `\u002F\u003Ctask-name>` in Claude Code.\n\n---\n\n## Final report (multi-task mode)\n\nAfter all sub-agents complete, print a markdown table:\n\n| Task | Iterations | Final Status | Graduated | Cost |\n|------|-----------|--------------|-----------|------|\n| google-flights | 5 | ✅ pass | yes | $0.42 |\n| amazon-add-to-cart | 5 | ❌ fail | no | $1.20 |\n\nThen write a persistent session report to `.\u002Fautobrowse\u002Freports\u002F` so there's a durable record of the run inside the workspace:\n\n```bash\nmkdir -p .\u002Fautobrowse\u002Freports\n```\n\nWrite the file `.\u002Fautobrowse\u002Freports\u002FYYYY-MM-DD-HH-MM-\u003Ctasks>.md` with:\n\n```markdown\n# AutoBrowse Session Report\n**Date:** \u003CISO date>\n**Tasks:** \u003Ccomma-separated list>\n**Environment:** remote|local\n**Total cost:** $X.XX\n\n## Results\n\n| Task | Iterations | Pass Rate | Final Status | Graduated | Cost |\n|------|-----------|-----------|--------------|-----------|------|\n| ... | ... | X\u002F5 | ✅\u002F❌ | yes\u002Fno | $X.XX |\n\n## Per-Task Learnings\n\n### \u003Ctask-name>\n- **Key insight 1:** \u003Cwhat the agent learned>\n- **Key insight 2:** \u003Canother heuristic>\n- **Failure mode fixed:** \u003Cwhat was failing and how it was resolved>\n\n## Iteration Log\n\n### \u003Ctask-name>\n| Iter | Turns | Cost | Status | Hypothesis tested |\n|------|-------|------|--------|-------------------|\n| 1 | 79 | $18.75 | ❌ fail | baseline |\n| 2 | 9 | $0.26 | ✅ pass | session contamination fix |\n| ... | ... | ... | ... | ... |\n```\n\n---\n\n## Rules\n\n- **Only edit `strategy.md`** — never touch `task.md` (unless creating it from the template) or `evaluate.mjs`\n- **Stay in the workspace** — all training writes go to `.\u002Fautobrowse\u002F`, never to `~\u002F.claude\u002Fskills\u002Fautobrowse\u002F`. The skill source is read-only.\n- **One hypothesis per iteration** — test one change at a time\n- **Build on wins** — keep what worked, add to it\n- **Trust the trace** — the inner agent shows exactly what it saw and did\n- **Graduate to `~\u002F.claude\u002Fskills\u002F`** — the only file you write there is the final graduated `SKILL.md`\n- **Don't release before bisecting** — under `--browser-trace`, the order at the end of each iteration is non-negotiable: `stop-capture` → `bisect-cdp` → `browse cloud sessions update REQUEST_RELEASE`. Bisect depends on the session still existing when the trace stops.\n",{"data":35,"body":39},{"name":4,"description":6,"license":26,"compatibility":36,"allowed-tools":37,"metadata":38},"Requires Node.js 18+, browse CLI, and ANTHROPIC_API_KEY. Run from the autobrowse app directory.","Bash Read Write Edit Glob Grep Agent",{"author":8,"homepage":24},{"type":40,"children":41},"root",[42,51,74,81,86,98,156,169,208,212,218,225,230,315,320,326,347,358,400,413,523,552,557,577,583,588,678,683,693,696,702,708,727,733,763,769,786,922,934,998,2079,2122,2128,2169,2174,2179,2200,2232,2271,2299,2437,2442,2448,2453,2509,2514,2609,2615,2628,2633,2676,2682,2687,2710,2716,2729,2833,2884,2920,2925,3091,3103,3124,3130,3149,3160,3199,3204,4116,4125,4138,4141,4147,4152,4243,4256,4278,4291,5024,5027,5033,5180],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"autobrowse-self-improving-browser-skill",[48],{"type":49,"value":50},"text","AutoBrowse — Self-Improving Browser Skill",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55,57,64,66,72],{"type":49,"value":56},"Build reliable browser automation skills through iterative experimentation. An inner agent browses the site (",{"type":43,"tag":58,"props":59,"children":61},"code",{"className":60},[],[62],{"type":49,"value":63},"evaluate.ts",{"type":49,"value":65},"). You — the outer agent — read what happened and improve the instructions (",{"type":43,"tag":58,"props":67,"children":69},{"className":68},[],[70],{"type":49,"value":71},"strategy.md",{"type":49,"value":73},"). Repeat until it passes consistently.",{"type":43,"tag":75,"props":76,"children":78},"h2",{"id":77},"entry-points",[79],{"type":49,"value":80},"Entry Points",{"type":43,"tag":52,"props":82,"children":83},{},[84],{"type":49,"value":85},"Invocation is flexible — both explicit flags and free-form natural language work:",{"type":43,"tag":87,"props":88,"children":92},"pre",{"className":89,"code":91,"language":49},[90],"language-text","\u002Fautobrowse --task google-flights\n\u002Fautobrowse --task google-flights --iterations 10 --env remote\n\u002Fautobrowse --task google-flights --browser-trace\n\u002Fautobrowse --tasks google-flights,amazon-add-to-cart\n\u002Fautobrowse --all\n\n# Also fine — parse freely:\n\u002Fautobrowse https:\u002F\u002Fflights.google.com\u002F\n\u002Fautobrowse book a flight on delta.com\n\u002Fautobrowse fix the existing google-flights skill\n",[93],{"type":43,"tag":58,"props":94,"children":96},{"__ignoreMap":95},"",[97],{"type":49,"value":91},{"type":43,"tag":52,"props":99,"children":100},{},[101,107,109,115,117,123,125,131,133,138,140,146,148,154],{"type":43,"tag":58,"props":102,"children":104},{"className":103},[],[105],{"type":49,"value":106},"--browser-trace",{"type":49,"value":108}," (default off, remote-only): pairs each iteration with the sibling ",{"type":43,"tag":58,"props":110,"children":112},{"className":111},[],[113],{"type":49,"value":114},"browser-trace",{"type":49,"value":116}," skill — wraps the inner agent in a CDP capture for per-page network\u002Fconsole\u002Fpage-lifecycle evidence. Implies ",{"type":43,"tag":58,"props":118,"children":120},{"className":119},[],[121],{"type":49,"value":122},"--env remote",{"type":49,"value":124},"; errors if combined with ",{"type":43,"tag":58,"props":126,"children":128},{"className":127},[],[129],{"type":49,"value":130},"--env local",{"type":49,"value":132},". Requires the sibling ",{"type":43,"tag":58,"props":134,"children":136},{"className":135},[],[137],{"type":49,"value":114},{"type":49,"value":139}," skill present at ",{"type":43,"tag":58,"props":141,"children":143},{"className":142},[],[144],{"type":49,"value":145},"${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002F",{"type":49,"value":147},", and the ",{"type":43,"tag":58,"props":149,"children":151},{"className":150},[],[152],{"type":49,"value":153},"BROWSERBASE_API_KEY",{"type":49,"value":155}," env var.",{"type":43,"tag":52,"props":157,"children":158},{},[159,161,167],{"type":49,"value":160},"When the user drops a URL or free-form instruction instead of ",{"type":43,"tag":58,"props":162,"children":164},{"className":163},[],[165],{"type":49,"value":166},"--task \u003Cname>",{"type":49,"value":168},":",{"type":43,"tag":170,"props":171,"children":172},"ul",{},[173,187],{"type":43,"tag":174,"props":175,"children":176},"li",{},[177,179,185],{"type":49,"value":178},"If an existing task in ",{"type":43,"tag":58,"props":180,"children":182},{"className":181},[],[183],{"type":49,"value":184},"${WORKSPACE}\u002Ftasks\u002F",{"type":49,"value":186}," clearly matches the site\u002Fintent, use it.",{"type":43,"tag":174,"props":188,"children":189},{},[190,192,198,200,206],{"type":49,"value":191},"Otherwise, pick a short kebab-case name, create ",{"type":43,"tag":58,"props":193,"children":195},{"className":194},[],[196],{"type":49,"value":197},"${WORKSPACE}\u002Ftasks\u002F\u003Cname>\u002Ftask.md",{"type":49,"value":199}," from ",{"type":43,"tag":58,"props":201,"children":203},{"className":202},[],[204],{"type":49,"value":205},"${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexample-task.md",{"type":49,"value":207},", fill in the URL\u002Fgoal based on what the user said, and proceed. Tell the user the chosen name in one line.",{"type":43,"tag":209,"props":210,"children":211},"hr",{},[],{"type":43,"tag":75,"props":213,"children":215},{"id":214},"how-to-run",[216],{"type":49,"value":217},"How to run",{"type":43,"tag":219,"props":220,"children":222},"h3",{"id":221},"step-1-parse-arguments-and-orient",[223],{"type":49,"value":224},"Step 1 — Parse arguments and orient",{"type":43,"tag":52,"props":226,"children":227},{},[228],{"type":49,"value":229},"Check what was passed:",{"type":43,"tag":170,"props":231,"children":232},{},[233,243,262,273,284],{"type":43,"tag":174,"props":234,"children":235},{},[236,241],{"type":43,"tag":58,"props":237,"children":239},{"className":238},[],[240],{"type":49,"value":166},{"type":49,"value":242}," → single task mode",{"type":43,"tag":174,"props":244,"children":245},{},[246,252,254,260],{"type":43,"tag":58,"props":247,"children":249},{"className":248},[],[250],{"type":49,"value":251},"--tasks a,b,c",{"type":49,"value":253}," or ",{"type":43,"tag":58,"props":255,"children":257},{"className":256},[],[258],{"type":49,"value":259},"--all",{"type":49,"value":261}," → multi-task mode (spawn sub-agents)",{"type":43,"tag":174,"props":263,"children":264},{},[265,271],{"type":43,"tag":58,"props":266,"children":268},{"className":267},[],[269],{"type":49,"value":270},"--iterations N",{"type":49,"value":272}," → how many evaluate → improve cycles (default: 5)",{"type":43,"tag":174,"props":274,"children":275},{},[276,282],{"type":43,"tag":58,"props":277,"children":279},{"className":278},[],[280],{"type":49,"value":281},"--env local|remote",{"type":49,"value":283}," → browser environment (default: local; use remote for bot-protected sites)",{"type":43,"tag":174,"props":285,"children":286},{},[287,292,294,299,301,307,309],{"type":43,"tag":58,"props":288,"children":290},{"className":289},[],[291],{"type":49,"value":106},{"type":49,"value":293}," → opt in to the browser-trace integration (default off). Implies ",{"type":43,"tag":58,"props":295,"children":297},{"className":296},[],[298],{"type":49,"value":122},{"type":49,"value":300},". If ",{"type":43,"tag":58,"props":302,"children":304},{"className":303},[],[305],{"type":49,"value":306},"--env local --browser-trace",{"type":49,"value":308}," are both passed explicitly, error with: ",{"type":43,"tag":58,"props":310,"children":312},{"className":311},[],[313],{"type":49,"value":314},"browser-trace requires Browserbase; drop --env local or drop --browser-trace.",{"type":43,"tag":52,"props":316,"children":317},{},[318],{"type":49,"value":319},"If the user passed free-form text instead, map it to one of the above before continuing.",{"type":43,"tag":219,"props":321,"children":323},{"id":322},"step-2-set-up-the-workspace",[324],{"type":49,"value":325},"Step 2 — Set up the workspace",{"type":43,"tag":52,"props":327,"children":328},{},[329,331,337,339,345],{"type":49,"value":330},"All training artifacts (task definitions, strategy iterations, traces, reports) live in a workspace directory in the ",{"type":43,"tag":332,"props":333,"children":334},"strong",{},[335],{"type":49,"value":336},"current working directory",{"type":49,"value":338}," — NOT inside ",{"type":43,"tag":58,"props":340,"children":342},{"className":341},[],[343],{"type":49,"value":344},"~\u002F.claude\u002Fskills\u002F",{"type":49,"value":346},". This keeps the inner agent's file writes out of Claude's home dir and away from permission friction.",{"type":43,"tag":52,"props":348,"children":349},{},[350,352],{"type":49,"value":351},"Default workspace: ",{"type":43,"tag":58,"props":353,"children":355},{"className":354},[],[356],{"type":49,"value":357},"${CWD}\u002Fautobrowse\u002F",{"type":43,"tag":87,"props":359,"children":363},{"className":360,"code":361,"language":362,"meta":95,"style":95},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","mkdir -p .\u002Fautobrowse\u002Ftasks .\u002Fautobrowse\u002Ftraces .\u002Fautobrowse\u002Freports\n","bash",[364],{"type":43,"tag":58,"props":365,"children":366},{"__ignoreMap":95},[367],{"type":43,"tag":368,"props":369,"children":372},"span",{"class":370,"line":371},"line",1,[373,379,385,390,395],{"type":43,"tag":368,"props":374,"children":376},{"style":375},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[377],{"type":49,"value":378},"mkdir",{"type":43,"tag":368,"props":380,"children":382},{"style":381},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[383],{"type":49,"value":384}," -p",{"type":43,"tag":368,"props":386,"children":387},{"style":381},[388],{"type":49,"value":389}," .\u002Fautobrowse\u002Ftasks",{"type":43,"tag":368,"props":391,"children":392},{"style":381},[393],{"type":49,"value":394}," .\u002Fautobrowse\u002Ftraces",{"type":43,"tag":368,"props":396,"children":397},{"style":381},[398],{"type":49,"value":399}," .\u002Fautobrowse\u002Freports\n",{"type":43,"tag":52,"props":401,"children":402},{},[403,405,411],{"type":49,"value":404},"If the task directory (",{"type":43,"tag":58,"props":406,"children":408},{"className":407},[],[409],{"type":49,"value":410},".\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\u002Ftask.md",{"type":49,"value":412},") doesn't exist yet, scaffold it:",{"type":43,"tag":87,"props":414,"children":416},{"className":360,"code":415,"language":362,"meta":95,"style":95},"mkdir -p .\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\ncp ${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexample-task.md .\u002Fautobrowse\u002Ftasks\u002F\u003Ctask>\u002Ftask.md\n# Then edit task.md to describe the URL, inputs, steps, and expected JSON output\n",[417],{"type":43,"tag":58,"props":418,"children":419},{"__ignoreMap":95},[420,458,513],{"type":43,"tag":368,"props":421,"children":422},{"class":370,"line":371},[423,427,431,436,442,447,453],{"type":43,"tag":368,"props":424,"children":425},{"style":375},[426],{"type":49,"value":378},{"type":43,"tag":368,"props":428,"children":429},{"style":381},[430],{"type":49,"value":384},{"type":43,"tag":368,"props":432,"children":433},{"style":381},[434],{"type":49,"value":435}," .\u002Fautobrowse\u002Ftasks\u002F",{"type":43,"tag":368,"props":437,"children":439},{"style":438},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[440],{"type":49,"value":441},"\u003C",{"type":43,"tag":368,"props":443,"children":444},{"style":381},[445],{"type":49,"value":446},"tas",{"type":43,"tag":368,"props":448,"children":450},{"style":449},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[451],{"type":49,"value":452},"k",{"type":43,"tag":368,"props":454,"children":455},{"style":438},[456],{"type":49,"value":457},">\n",{"type":43,"tag":368,"props":459,"children":461},{"class":370,"line":460},2,[462,467,472,477,482,487,491,495,499,503,508],{"type":43,"tag":368,"props":463,"children":464},{"style":375},[465],{"type":49,"value":466},"cp",{"type":43,"tag":368,"props":468,"children":469},{"style":438},[470],{"type":49,"value":471}," ${",{"type":43,"tag":368,"props":473,"children":474},{"style":449},[475],{"type":49,"value":476},"CLAUDE_SKILL_DIR",{"type":43,"tag":368,"props":478,"children":479},{"style":438},[480],{"type":49,"value":481},"}",{"type":43,"tag":368,"props":483,"children":484},{"style":381},[485],{"type":49,"value":486},"\u002Freferences\u002Fexample-task.md",{"type":43,"tag":368,"props":488,"children":489},{"style":381},[490],{"type":49,"value":435},{"type":43,"tag":368,"props":492,"children":493},{"style":438},[494],{"type":49,"value":441},{"type":43,"tag":368,"props":496,"children":497},{"style":381},[498],{"type":49,"value":446},{"type":43,"tag":368,"props":500,"children":501},{"style":449},[502],{"type":49,"value":452},{"type":43,"tag":368,"props":504,"children":505},{"style":438},[506],{"type":49,"value":507},">",{"type":43,"tag":368,"props":509,"children":510},{"style":381},[511],{"type":49,"value":512},"\u002Ftask.md\n",{"type":43,"tag":368,"props":514,"children":516},{"class":370,"line":515},3,[517],{"type":43,"tag":368,"props":518,"children":520},{"style":519},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[521],{"type":49,"value":522},"# Then edit task.md to describe the URL, inputs, steps, and expected JSON output\n",{"type":43,"tag":52,"props":524,"children":525},{},[526,528,534,536,542,544,550],{"type":49,"value":527},"The skill source at ",{"type":43,"tag":58,"props":529,"children":531},{"className":530},[],[532],{"type":49,"value":533},"${CLAUDE_SKILL_DIR}",{"type":49,"value":535}," stays read-only — only ",{"type":43,"tag":58,"props":537,"children":539},{"className":538},[],[540],{"type":49,"value":541},".\u002Fautobrowse\u002F",{"type":49,"value":543}," in CWD gets written to during training. Graduation (final step) writes a single file to ",{"type":43,"tag":58,"props":545,"children":547},{"className":546},[],[548],{"type":49,"value":549},"~\u002F.claude\u002Fskills\u002F\u003Ctask>\u002FSKILL.md",{"type":49,"value":551},".",{"type":43,"tag":52,"props":553,"children":554},{},[555],{"type":49,"value":556},"List available tasks:",{"type":43,"tag":87,"props":558,"children":560},{"className":360,"code":559,"language":362,"meta":95,"style":95},"ls .\u002Fautobrowse\u002Ftasks\u002F\n",[561],{"type":43,"tag":58,"props":562,"children":563},{"__ignoreMap":95},[564],{"type":43,"tag":368,"props":565,"children":566},{"class":370,"line":371},[567,572],{"type":43,"tag":368,"props":568,"children":569},{"style":375},[570],{"type":49,"value":571},"ls",{"type":43,"tag":368,"props":573,"children":574},{"style":381},[575],{"type":49,"value":576}," .\u002Fautobrowse\u002Ftasks\u002F\n",{"type":43,"tag":219,"props":578,"children":580},{"id":579},"step-3-multi-task-spawn-parallel-sub-agents",[581],{"type":49,"value":582},"Step 3 — Multi-task: spawn parallel sub-agents",{"type":43,"tag":52,"props":584,"children":585},{},[586],{"type":49,"value":587},"If running multiple tasks, use the Agent tool to spawn one sub-agent per task simultaneously. Each sub-agent receives a self-contained prompt to run the full autobrowse loop for its task:",{"type":43,"tag":589,"props":590,"children":591},"blockquote",{},[592,660,673],{"type":43,"tag":52,"props":593,"children":594},{},[595,597,603,605,611,613,619,621,627,629,635,637,643,645,650,652,658],{"type":49,"value":596},"\"You are running the autobrowse skill for task ",{"type":43,"tag":58,"props":598,"children":600},{"className":599},[],[601],{"type":49,"value":602},"\u003Cname>",{"type":49,"value":604},". Workspace: ",{"type":43,"tag":58,"props":606,"children":608},{"className":607},[],[609],{"type":49,"value":610},"\u003Cabsolute-path-to-workspace>",{"type":49,"value":612}," (e.g. ",{"type":43,"tag":58,"props":614,"children":616},{"className":615},[],[617],{"type":49,"value":618},"\u002Fpath\u002Fto\u002Fproject\u002Fautobrowse",{"type":49,"value":620},"). Run ",{"type":43,"tag":58,"props":622,"children":624},{"className":623},[],[625],{"type":49,"value":626},"\u003CN>",{"type":49,"value":628}," iterations of: evaluate → read trace → improve strategy.md → repeat. Use ",{"type":43,"tag":58,"props":630,"children":632},{"className":631},[],[633],{"type":49,"value":634},"--env \u003Cenv>",{"type":49,"value":636},". Pass ",{"type":43,"tag":58,"props":638,"children":640},{"className":639},[],[641],{"type":49,"value":642},"--workspace \u003Cworkspace>",{"type":49,"value":644}," to every evaluate.mjs invocation. If the parent invocation used ",{"type":43,"tag":58,"props":646,"children":648},{"className":647},[],[649],{"type":49,"value":106},{"type":49,"value":651},", you MUST use the traced-path block of the SKILL.md loop for every iteration (pre-create session, attach bb-capture, pass ",{"type":43,"tag":58,"props":653,"children":655},{"className":654},[],[656],{"type":49,"value":657},"--connect-url",{"type":49,"value":659}," to evaluate.mjs, stop+bisect, release) — do not fall back to the default single-command path. Follow the autobrowse loop instructions exactly.",{"type":43,"tag":52,"props":661,"children":662},{},[663,665,671],{"type":49,"value":664},"When graduating, install the skill to ",{"type":43,"tag":58,"props":666,"children":668},{"className":667},[],[669],{"type":49,"value":670},"~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\u002FSKILL.md",{"type":49,"value":672}," with proper agentskills frontmatter (name + description). Do not just copy strategy.md — write a self-contained skill.",{"type":43,"tag":52,"props":674,"children":675},{},[676],{"type":49,"value":677},"At the end, output a structured summary with: task name, pass\u002Ffail on final run, total cumulative cost, iterations completed, per-iteration table (iter number, turns, cost, status, hypothesis tested), and 2-3 bullet key learnings.\"",{"type":43,"tag":52,"props":679,"children":680},{},[681],{"type":49,"value":682},"Spawn all sub-agents in parallel, wait for all to complete, then collect their summaries and write the session report.",{"type":43,"tag":52,"props":684,"children":685},{},[686,691],{"type":43,"tag":332,"props":687,"children":688},{},[689],{"type":49,"value":690},"For single task",{"type":49,"value":692},", skip this step and run the loop directly below.",{"type":43,"tag":209,"props":694,"children":695},{},[],{"type":43,"tag":75,"props":697,"children":699},{"id":698},"the-loop-run-this-for-each-task",[700],{"type":49,"value":701},"The Loop (run this for each task)",{"type":43,"tag":219,"props":703,"children":705},{"id":704},"iteration-start",[706],{"type":49,"value":707},"Iteration start",{"type":43,"tag":52,"props":709,"children":710},{},[711,713,718,720,725],{"type":49,"value":712},"Check that ",{"type":43,"tag":58,"props":714,"children":716},{"className":715},[],[717],{"type":49,"value":410},{"type":49,"value":719}," exists (scaffold it from the template if not — see Step 2). ",{"type":43,"tag":58,"props":721,"children":723},{"className":722},[],[724],{"type":49,"value":71},{"type":49,"value":726}," is auto-created empty by the harness on first run.",{"type":43,"tag":219,"props":728,"children":730},{"id":729},"requirements",[731],{"type":49,"value":732},"Requirements",{"type":43,"tag":170,"props":734,"children":735},{},[736],{"type":43,"tag":174,"props":737,"children":738},{},[739,745,747,753,755,761],{"type":43,"tag":58,"props":740,"children":742},{"className":741},[],[743],{"type":49,"value":744},"ANTHROPIC_API_KEY",{"type":49,"value":746}," must be in the environment (or in a ",{"type":43,"tag":58,"props":748,"children":750},{"className":749},[],[751],{"type":49,"value":752},".env",{"type":49,"value":754}," file in CWD — ",{"type":43,"tag":58,"props":756,"children":758},{"className":757},[],[759],{"type":49,"value":760},"evaluate.mjs",{"type":49,"value":762}," auto-loads it). If missing, the harness prints a clear error and exits; don't hunt for keys in other paths.",{"type":43,"tag":219,"props":764,"children":766},{"id":765},"run-the-inner-agent",[767],{"type":49,"value":768},"Run the inner agent",{"type":43,"tag":52,"props":770,"children":771},{},[772,784],{"type":43,"tag":332,"props":773,"children":774},{},[775,777,782],{"type":49,"value":776},"Default path (no ",{"type":43,"tag":58,"props":778,"children":780},{"className":779},[],[781],{"type":49,"value":106},{"type":49,"value":783},")",{"type":49,"value":785}," — single command, no orchestration:",{"type":43,"tag":87,"props":787,"children":789},{"className":360,"code":788,"language":362,"meta":95,"style":95},"node ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs --task \u003Ctask-name> --workspace .\u002Fautobrowse\n# or for bot-protected sites:\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs --task \u003Ctask-name> --workspace .\u002Fautobrowse --env remote\n",[790],{"type":43,"tag":58,"props":791,"children":792},{"__ignoreMap":95},[793,852,860],{"type":43,"tag":368,"props":794,"children":795},{"class":370,"line":371},[796,801,805,809,813,818,823,828,833,838,842,847],{"type":43,"tag":368,"props":797,"children":798},{"style":375},[799],{"type":49,"value":800},"node",{"type":43,"tag":368,"props":802,"children":803},{"style":438},[804],{"type":49,"value":471},{"type":43,"tag":368,"props":806,"children":807},{"style":449},[808],{"type":49,"value":476},{"type":43,"tag":368,"props":810,"children":811},{"style":438},[812],{"type":49,"value":481},{"type":43,"tag":368,"props":814,"children":815},{"style":381},[816],{"type":49,"value":817},"\u002Fscripts\u002Fevaluate.mjs",{"type":43,"tag":368,"props":819,"children":820},{"style":381},[821],{"type":49,"value":822}," --task",{"type":43,"tag":368,"props":824,"children":825},{"style":438},[826],{"type":49,"value":827}," \u003C",{"type":43,"tag":368,"props":829,"children":830},{"style":381},[831],{"type":49,"value":832},"task-nam",{"type":43,"tag":368,"props":834,"children":835},{"style":449},[836],{"type":49,"value":837},"e",{"type":43,"tag":368,"props":839,"children":840},{"style":438},[841],{"type":49,"value":507},{"type":43,"tag":368,"props":843,"children":844},{"style":381},[845],{"type":49,"value":846}," --workspace",{"type":43,"tag":368,"props":848,"children":849},{"style":381},[850],{"type":49,"value":851}," .\u002Fautobrowse\n",{"type":43,"tag":368,"props":853,"children":854},{"class":370,"line":460},[855],{"type":43,"tag":368,"props":856,"children":857},{"style":519},[858],{"type":49,"value":859},"# or for bot-protected sites:\n",{"type":43,"tag":368,"props":861,"children":862},{"class":370,"line":515},[863,867,871,875,879,883,887,891,895,899,903,907,912,917],{"type":43,"tag":368,"props":864,"children":865},{"style":375},[866],{"type":49,"value":800},{"type":43,"tag":368,"props":868,"children":869},{"style":438},[870],{"type":49,"value":471},{"type":43,"tag":368,"props":872,"children":873},{"style":449},[874],{"type":49,"value":476},{"type":43,"tag":368,"props":876,"children":877},{"style":438},[878],{"type":49,"value":481},{"type":43,"tag":368,"props":880,"children":881},{"style":381},[882],{"type":49,"value":817},{"type":43,"tag":368,"props":884,"children":885},{"style":381},[886],{"type":49,"value":822},{"type":43,"tag":368,"props":888,"children":889},{"style":438},[890],{"type":49,"value":827},{"type":43,"tag":368,"props":892,"children":893},{"style":381},[894],{"type":49,"value":832},{"type":43,"tag":368,"props":896,"children":897},{"style":449},[898],{"type":49,"value":837},{"type":43,"tag":368,"props":900,"children":901},{"style":438},[902],{"type":49,"value":507},{"type":43,"tag":368,"props":904,"children":905},{"style":381},[906],{"type":49,"value":846},{"type":43,"tag":368,"props":908,"children":909},{"style":381},[910],{"type":49,"value":911}," .\u002Fautobrowse",{"type":43,"tag":368,"props":913,"children":914},{"style":381},[915],{"type":49,"value":916}," --env",{"type":43,"tag":368,"props":918,"children":919},{"style":381},[920],{"type":49,"value":921}," remote\n",{"type":43,"tag":52,"props":923,"children":924},{},[925,927,933],{"type":49,"value":926},"This runs the browser session and writes a full trace to ",{"type":43,"tag":58,"props":928,"children":930},{"className":929},[],[931],{"type":49,"value":932},".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask>\u002Flatest\u002F",{"type":49,"value":551},{"type":43,"tag":52,"props":935,"children":936},{},[937,949,951,957,959,965,967,972,974,980,982,988,990,996],{"type":43,"tag":332,"props":938,"children":939},{},[940,942,947],{"type":49,"value":941},"Traced path (",{"type":43,"tag":58,"props":943,"children":945},{"className":944},[],[946],{"type":49,"value":106},{"type":49,"value":948},", remote only)",{"type":49,"value":950}," — the outer harness pre-creates a Browserbase session, attaches ",{"type":43,"tag":58,"props":952,"children":954},{"className":953},[],[955],{"type":49,"value":956},"bb-capture",{"type":49,"value":958}," as a passive observer, and passes the session's ",{"type":43,"tag":58,"props":960,"children":962},{"className":961},[],[963],{"type":49,"value":964},"connectUrl",{"type":49,"value":966}," to ",{"type":43,"tag":58,"props":968,"children":970},{"className":969},[],[971],{"type":49,"value":760},{"type":49,"value":973}," so every inner ",{"type":43,"tag":58,"props":975,"children":977},{"className":976},[],[978],{"type":49,"value":979},"browse",{"type":49,"value":981}," call uses ",{"type":43,"tag":58,"props":983,"children":985},{"className":984},[],[986],{"type":49,"value":987},"--cdp $connectUrl --session autobrowse-main",{"type":49,"value":989}," (the canonical browser-trace pattern that gives observers full Network\u002FConsole events). Run this block once per iteration with ",{"type":43,"tag":58,"props":991,"children":993},{"className":992},[],[994],{"type":49,"value":995},"$N",{"type":49,"value":997}," set to the 1-indexed iteration number:",{"type":43,"tag":87,"props":999,"children":1001},{"className":360,"code":1000,"language":362,"meta":95,"style":95},"# Preflight — fail fast if browser-trace isn't installed alongside autobrowse.\nBT_DIR=\"${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\"\nif [ ! -f \"$BT_DIR\u002Fscripts\u002Fbb-capture.mjs\" ]; then\n  echo \"ERROR: --browser-trace requires the browser-trace skill at $BT_DIR.\" >&2\n  echo \"Install it by cloning github.com\u002Fbrowserbase\u002Fskills and copying skills\u002Fbrowser-trace\u002F\" >&2\n  echo \"into the same parent directory as autobrowse (e.g. ~\u002F.claude\u002Fskills\u002Fbrowser-trace\u002F).\" >&2\n  exit 1\nfi\n\n# a. SESSION SETUP — pre-create the keep-alive session and derive its connectUrl\nsid=$(browse cloud sessions create --keep-alive --verified --proxies \\\n  | node -e \"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).id))\")\nconnect_url=$(browse cloud sessions get \"$sid\" \\\n  | node -e \"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).connectUrl))\")\n\nRUN_ID=\"run-$(printf '%03d' \"$N\")\"\nTRACE_ROOT=\".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002F$RUN_ID\"\nmkdir -p \"$TRACE_ROOT\"\nexport O11Y_ROOT=\"$TRACE_ROOT\u002F.o11y\"   # park browser-trace output inside the autobrowse run dir\nexport O11Y_RUN_ID=\"$RUN_ID\"           # tells the browse CLI which run dir to write descriptors.ndjson into\n\n# b. ATTACH BROWSER-TRACE — passive observer; runs in background\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbb-capture.mjs \"$sid\" \"$RUN_ID\" &\nsleep 2\n\n# c. RUN AUTOBROWSE — connectUrl flag tells evaluate.mjs to inject --cdp\u002F--session\n#    into every inner browse call. The inner agent never sees --remote.\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fevaluate.mjs \\\n  --task \u003Ctask-name> --workspace .\u002Fautobrowse --env remote \\\n  --connect-url \"$connect_url\" --run-number \"$N\"\n\n# d. STOP + BISECT + UNIFY — order matters; bisect needs the session to still\n#    exist, and unify-trace joins the bisect output with autobrowse's trace.json\n#    into a single time-ordered NDJSON the outer agent reads first each iter.\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fstop-capture.mjs \"$RUN_ID\"\nnode ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbisect-cdp.mjs \"$RUN_ID\"\nnode ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Funify-trace.mjs \\\n  --trace-dir \"$TRACE_ROOT\" \\\n  --o11y-dir \"$O11Y_ROOT\u002F$RUN_ID\"\n\n# e. RELEASE\nbrowse cloud sessions update \"$sid\" --status REQUEST_RELEASE\n",[1002],{"type":43,"tag":58,"props":1003,"children":1004},{"__ignoreMap":95},[1005,1013,1049,1103,1139,1164,1189,1204,1213,1223,1232,1285,1322,1369,1402,1410,1470,1501,1526,1567,1601,1609,1618,1672,1686,1694,1703,1712,1740,1786,1825,1833,1842,1851,1860,1897,1934,1963,1988,2019,2027,2036],{"type":43,"tag":368,"props":1006,"children":1007},{"class":370,"line":371},[1008],{"type":43,"tag":368,"props":1009,"children":1010},{"style":519},[1011],{"type":49,"value":1012},"# Preflight — fail fast if browser-trace isn't installed alongside autobrowse.\n",{"type":43,"tag":368,"props":1014,"children":1015},{"class":370,"line":460},[1016,1021,1026,1031,1035,1039,1044],{"type":43,"tag":368,"props":1017,"children":1018},{"style":449},[1019],{"type":49,"value":1020},"BT_DIR",{"type":43,"tag":368,"props":1022,"children":1023},{"style":438},[1024],{"type":49,"value":1025},"=",{"type":43,"tag":368,"props":1027,"children":1028},{"style":438},[1029],{"type":49,"value":1030},"\"${",{"type":43,"tag":368,"props":1032,"children":1033},{"style":449},[1034],{"type":49,"value":476},{"type":43,"tag":368,"props":1036,"children":1037},{"style":438},[1038],{"type":49,"value":481},{"type":43,"tag":368,"props":1040,"children":1041},{"style":381},[1042],{"type":49,"value":1043},"\u002F..\u002Fbrowser-trace",{"type":43,"tag":368,"props":1045,"children":1046},{"style":438},[1047],{"type":49,"value":1048},"\"\n",{"type":43,"tag":368,"props":1050,"children":1051},{"class":370,"line":515},[1052,1058,1063,1068,1073,1078,1083,1088,1093,1098],{"type":43,"tag":368,"props":1053,"children":1055},{"style":1054},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1056],{"type":49,"value":1057},"if",{"type":43,"tag":368,"props":1059,"children":1060},{"style":438},[1061],{"type":49,"value":1062}," [",{"type":43,"tag":368,"props":1064,"children":1065},{"style":438},[1066],{"type":49,"value":1067}," !",{"type":43,"tag":368,"props":1069,"children":1070},{"style":438},[1071],{"type":49,"value":1072}," -f",{"type":43,"tag":368,"props":1074,"children":1075},{"style":438},[1076],{"type":49,"value":1077}," \"",{"type":43,"tag":368,"props":1079,"children":1080},{"style":449},[1081],{"type":49,"value":1082},"$BT_DIR",{"type":43,"tag":368,"props":1084,"children":1085},{"style":381},[1086],{"type":49,"value":1087},"\u002Fscripts\u002Fbb-capture.mjs",{"type":43,"tag":368,"props":1089,"children":1090},{"style":438},[1091],{"type":49,"value":1092},"\"",{"type":43,"tag":368,"props":1094,"children":1095},{"style":438},[1096],{"type":49,"value":1097}," ];",{"type":43,"tag":368,"props":1099,"children":1100},{"style":1054},[1101],{"type":49,"value":1102}," then\n",{"type":43,"tag":368,"props":1104,"children":1106},{"class":370,"line":1105},4,[1107,1113,1117,1122,1126,1130,1134],{"type":43,"tag":368,"props":1108,"children":1110},{"style":1109},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1111],{"type":49,"value":1112},"  echo",{"type":43,"tag":368,"props":1114,"children":1115},{"style":438},[1116],{"type":49,"value":1077},{"type":43,"tag":368,"props":1118,"children":1119},{"style":381},[1120],{"type":49,"value":1121},"ERROR: --browser-trace requires the browser-trace skill at ",{"type":43,"tag":368,"props":1123,"children":1124},{"style":449},[1125],{"type":49,"value":1082},{"type":43,"tag":368,"props":1127,"children":1128},{"style":381},[1129],{"type":49,"value":551},{"type":43,"tag":368,"props":1131,"children":1132},{"style":438},[1133],{"type":49,"value":1092},{"type":43,"tag":368,"props":1135,"children":1136},{"style":438},[1137],{"type":49,"value":1138}," >&2\n",{"type":43,"tag":368,"props":1140,"children":1142},{"class":370,"line":1141},5,[1143,1147,1151,1156,1160],{"type":43,"tag":368,"props":1144,"children":1145},{"style":1109},[1146],{"type":49,"value":1112},{"type":43,"tag":368,"props":1148,"children":1149},{"style":438},[1150],{"type":49,"value":1077},{"type":43,"tag":368,"props":1152,"children":1153},{"style":381},[1154],{"type":49,"value":1155},"Install it by cloning github.com\u002Fbrowserbase\u002Fskills and copying skills\u002Fbrowser-trace\u002F",{"type":43,"tag":368,"props":1157,"children":1158},{"style":438},[1159],{"type":49,"value":1092},{"type":43,"tag":368,"props":1161,"children":1162},{"style":438},[1163],{"type":49,"value":1138},{"type":43,"tag":368,"props":1165,"children":1167},{"class":370,"line":1166},6,[1168,1172,1176,1181,1185],{"type":43,"tag":368,"props":1169,"children":1170},{"style":1109},[1171],{"type":49,"value":1112},{"type":43,"tag":368,"props":1173,"children":1174},{"style":438},[1175],{"type":49,"value":1077},{"type":43,"tag":368,"props":1177,"children":1178},{"style":381},[1179],{"type":49,"value":1180},"into the same parent directory as autobrowse (e.g. ~\u002F.claude\u002Fskills\u002Fbrowser-trace\u002F).",{"type":43,"tag":368,"props":1182,"children":1183},{"style":438},[1184],{"type":49,"value":1092},{"type":43,"tag":368,"props":1186,"children":1187},{"style":438},[1188],{"type":49,"value":1138},{"type":43,"tag":368,"props":1190,"children":1192},{"class":370,"line":1191},7,[1193,1198],{"type":43,"tag":368,"props":1194,"children":1195},{"style":1109},[1196],{"type":49,"value":1197},"  exit",{"type":43,"tag":368,"props":1199,"children":1201},{"style":1200},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1202],{"type":49,"value":1203}," 1\n",{"type":43,"tag":368,"props":1205,"children":1207},{"class":370,"line":1206},8,[1208],{"type":43,"tag":368,"props":1209,"children":1210},{"style":1054},[1211],{"type":49,"value":1212},"fi\n",{"type":43,"tag":368,"props":1214,"children":1216},{"class":370,"line":1215},9,[1217],{"type":43,"tag":368,"props":1218,"children":1220},{"emptyLinePlaceholder":1219},true,[1221],{"type":49,"value":1222},"\n",{"type":43,"tag":368,"props":1224,"children":1226},{"class":370,"line":1225},10,[1227],{"type":43,"tag":368,"props":1228,"children":1229},{"style":519},[1230],{"type":49,"value":1231},"# a. SESSION SETUP — pre-create the keep-alive session and derive its connectUrl\n",{"type":43,"tag":368,"props":1233,"children":1235},{"class":370,"line":1234},11,[1236,1241,1246,1250,1255,1260,1265,1270,1275,1280],{"type":43,"tag":368,"props":1237,"children":1238},{"style":449},[1239],{"type":49,"value":1240},"sid",{"type":43,"tag":368,"props":1242,"children":1243},{"style":438},[1244],{"type":49,"value":1245},"=$(",{"type":43,"tag":368,"props":1247,"children":1248},{"style":375},[1249],{"type":49,"value":979},{"type":43,"tag":368,"props":1251,"children":1252},{"style":381},[1253],{"type":49,"value":1254}," cloud",{"type":43,"tag":368,"props":1256,"children":1257},{"style":381},[1258],{"type":49,"value":1259}," sessions",{"type":43,"tag":368,"props":1261,"children":1262},{"style":381},[1263],{"type":49,"value":1264}," create",{"type":43,"tag":368,"props":1266,"children":1267},{"style":381},[1268],{"type":49,"value":1269}," --keep-alive",{"type":43,"tag":368,"props":1271,"children":1272},{"style":381},[1273],{"type":49,"value":1274}," --verified",{"type":43,"tag":368,"props":1276,"children":1277},{"style":381},[1278],{"type":49,"value":1279}," --proxies",{"type":43,"tag":368,"props":1281,"children":1282},{"style":449},[1283],{"type":49,"value":1284}," \\\n",{"type":43,"tag":368,"props":1286,"children":1288},{"class":370,"line":1287},12,[1289,1294,1299,1304,1308,1313,1317],{"type":43,"tag":368,"props":1290,"children":1291},{"style":438},[1292],{"type":49,"value":1293},"  |",{"type":43,"tag":368,"props":1295,"children":1296},{"style":375},[1297],{"type":49,"value":1298}," node",{"type":43,"tag":368,"props":1300,"children":1301},{"style":381},[1302],{"type":49,"value":1303}," -e",{"type":43,"tag":368,"props":1305,"children":1306},{"style":438},[1307],{"type":49,"value":1077},{"type":43,"tag":368,"props":1309,"children":1310},{"style":381},[1311],{"type":49,"value":1312},"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).id))",{"type":43,"tag":368,"props":1314,"children":1315},{"style":438},[1316],{"type":49,"value":1092},{"type":43,"tag":368,"props":1318,"children":1319},{"style":438},[1320],{"type":49,"value":1321},")\n",{"type":43,"tag":368,"props":1323,"children":1325},{"class":370,"line":1324},13,[1326,1331,1335,1339,1343,1347,1352,1356,1361,1365],{"type":43,"tag":368,"props":1327,"children":1328},{"style":449},[1329],{"type":49,"value":1330},"connect_url",{"type":43,"tag":368,"props":1332,"children":1333},{"style":438},[1334],{"type":49,"value":1245},{"type":43,"tag":368,"props":1336,"children":1337},{"style":375},[1338],{"type":49,"value":979},{"type":43,"tag":368,"props":1340,"children":1341},{"style":381},[1342],{"type":49,"value":1254},{"type":43,"tag":368,"props":1344,"children":1345},{"style":381},[1346],{"type":49,"value":1259},{"type":43,"tag":368,"props":1348,"children":1349},{"style":381},[1350],{"type":49,"value":1351}," get",{"type":43,"tag":368,"props":1353,"children":1354},{"style":438},[1355],{"type":49,"value":1077},{"type":43,"tag":368,"props":1357,"children":1358},{"style":449},[1359],{"type":49,"value":1360},"$sid",{"type":43,"tag":368,"props":1362,"children":1363},{"style":438},[1364],{"type":49,"value":1092},{"type":43,"tag":368,"props":1366,"children":1367},{"style":449},[1368],{"type":49,"value":1284},{"type":43,"tag":368,"props":1370,"children":1372},{"class":370,"line":1371},14,[1373,1377,1381,1385,1389,1394,1398],{"type":43,"tag":368,"props":1374,"children":1375},{"style":438},[1376],{"type":49,"value":1293},{"type":43,"tag":368,"props":1378,"children":1379},{"style":375},[1380],{"type":49,"value":1298},{"type":43,"tag":368,"props":1382,"children":1383},{"style":381},[1384],{"type":49,"value":1303},{"type":43,"tag":368,"props":1386,"children":1387},{"style":438},[1388],{"type":49,"value":1077},{"type":43,"tag":368,"props":1390,"children":1391},{"style":381},[1392],{"type":49,"value":1393},"let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).connectUrl))",{"type":43,"tag":368,"props":1395,"children":1396},{"style":438},[1397],{"type":49,"value":1092},{"type":43,"tag":368,"props":1399,"children":1400},{"style":438},[1401],{"type":49,"value":1321},{"type":43,"tag":368,"props":1403,"children":1405},{"class":370,"line":1404},15,[1406],{"type":43,"tag":368,"props":1407,"children":1408},{"emptyLinePlaceholder":1219},[1409],{"type":49,"value":1222},{"type":43,"tag":368,"props":1411,"children":1413},{"class":370,"line":1412},16,[1414,1419,1423,1427,1432,1437,1442,1447,1452,1457,1461,1465],{"type":43,"tag":368,"props":1415,"children":1416},{"style":449},[1417],{"type":49,"value":1418},"RUN_ID",{"type":43,"tag":368,"props":1420,"children":1421},{"style":438},[1422],{"type":49,"value":1025},{"type":43,"tag":368,"props":1424,"children":1425},{"style":438},[1426],{"type":49,"value":1092},{"type":43,"tag":368,"props":1428,"children":1429},{"style":381},[1430],{"type":49,"value":1431},"run-",{"type":43,"tag":368,"props":1433,"children":1434},{"style":438},[1435],{"type":49,"value":1436},"$(",{"type":43,"tag":368,"props":1438,"children":1439},{"style":1109},[1440],{"type":49,"value":1441},"printf",{"type":43,"tag":368,"props":1443,"children":1444},{"style":438},[1445],{"type":49,"value":1446}," '",{"type":43,"tag":368,"props":1448,"children":1449},{"style":381},[1450],{"type":49,"value":1451},"%03d",{"type":43,"tag":368,"props":1453,"children":1454},{"style":438},[1455],{"type":49,"value":1456},"'",{"type":43,"tag":368,"props":1458,"children":1459},{"style":438},[1460],{"type":49,"value":1077},{"type":43,"tag":368,"props":1462,"children":1463},{"style":449},[1464],{"type":49,"value":995},{"type":43,"tag":368,"props":1466,"children":1467},{"style":438},[1468],{"type":49,"value":1469},"\")\"\n",{"type":43,"tag":368,"props":1471,"children":1473},{"class":370,"line":1472},17,[1474,1479,1483,1487,1492,1497],{"type":43,"tag":368,"props":1475,"children":1476},{"style":449},[1477],{"type":49,"value":1478},"TRACE_ROOT",{"type":43,"tag":368,"props":1480,"children":1481},{"style":438},[1482],{"type":49,"value":1025},{"type":43,"tag":368,"props":1484,"children":1485},{"style":438},[1486],{"type":49,"value":1092},{"type":43,"tag":368,"props":1488,"children":1489},{"style":381},[1490],{"type":49,"value":1491},".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002F",{"type":43,"tag":368,"props":1493,"children":1494},{"style":449},[1495],{"type":49,"value":1496},"$RUN_ID",{"type":43,"tag":368,"props":1498,"children":1499},{"style":438},[1500],{"type":49,"value":1048},{"type":43,"tag":368,"props":1502,"children":1504},{"class":370,"line":1503},18,[1505,1509,1513,1517,1522],{"type":43,"tag":368,"props":1506,"children":1507},{"style":375},[1508],{"type":49,"value":378},{"type":43,"tag":368,"props":1510,"children":1511},{"style":381},[1512],{"type":49,"value":384},{"type":43,"tag":368,"props":1514,"children":1515},{"style":438},[1516],{"type":49,"value":1077},{"type":43,"tag":368,"props":1518,"children":1519},{"style":449},[1520],{"type":49,"value":1521},"$TRACE_ROOT",{"type":43,"tag":368,"props":1523,"children":1524},{"style":438},[1525],{"type":49,"value":1048},{"type":43,"tag":368,"props":1527,"children":1529},{"class":370,"line":1528},19,[1530,1536,1541,1545,1549,1553,1558,1562],{"type":43,"tag":368,"props":1531,"children":1533},{"style":1532},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1534],{"type":49,"value":1535},"export",{"type":43,"tag":368,"props":1537,"children":1538},{"style":449},[1539],{"type":49,"value":1540}," O11Y_ROOT",{"type":43,"tag":368,"props":1542,"children":1543},{"style":438},[1544],{"type":49,"value":1025},{"type":43,"tag":368,"props":1546,"children":1547},{"style":438},[1548],{"type":49,"value":1092},{"type":43,"tag":368,"props":1550,"children":1551},{"style":449},[1552],{"type":49,"value":1521},{"type":43,"tag":368,"props":1554,"children":1555},{"style":381},[1556],{"type":49,"value":1557},"\u002F.o11y",{"type":43,"tag":368,"props":1559,"children":1560},{"style":438},[1561],{"type":49,"value":1092},{"type":43,"tag":368,"props":1563,"children":1564},{"style":519},[1565],{"type":49,"value":1566},"   # park browser-trace output inside the autobrowse run dir\n",{"type":43,"tag":368,"props":1568,"children":1570},{"class":370,"line":1569},20,[1571,1575,1580,1584,1588,1592,1596],{"type":43,"tag":368,"props":1572,"children":1573},{"style":1532},[1574],{"type":49,"value":1535},{"type":43,"tag":368,"props":1576,"children":1577},{"style":449},[1578],{"type":49,"value":1579}," O11Y_RUN_ID",{"type":43,"tag":368,"props":1581,"children":1582},{"style":438},[1583],{"type":49,"value":1025},{"type":43,"tag":368,"props":1585,"children":1586},{"style":438},[1587],{"type":49,"value":1092},{"type":43,"tag":368,"props":1589,"children":1590},{"style":449},[1591],{"type":49,"value":1496},{"type":43,"tag":368,"props":1593,"children":1594},{"style":438},[1595],{"type":49,"value":1092},{"type":43,"tag":368,"props":1597,"children":1598},{"style":519},[1599],{"type":49,"value":1600},"           # tells the browse CLI which run dir to write descriptors.ndjson into\n",{"type":43,"tag":368,"props":1602,"children":1604},{"class":370,"line":1603},21,[1605],{"type":43,"tag":368,"props":1606,"children":1607},{"emptyLinePlaceholder":1219},[1608],{"type":49,"value":1222},{"type":43,"tag":368,"props":1610,"children":1612},{"class":370,"line":1611},22,[1613],{"type":43,"tag":368,"props":1614,"children":1615},{"style":519},[1616],{"type":49,"value":1617},"# b. ATTACH BROWSER-TRACE — passive observer; runs in background\n",{"type":43,"tag":368,"props":1619,"children":1621},{"class":370,"line":1620},23,[1622,1626,1630,1634,1638,1643,1647,1651,1655,1659,1663,1667],{"type":43,"tag":368,"props":1623,"children":1624},{"style":375},[1625],{"type":49,"value":800},{"type":43,"tag":368,"props":1627,"children":1628},{"style":438},[1629],{"type":49,"value":471},{"type":43,"tag":368,"props":1631,"children":1632},{"style":449},[1633],{"type":49,"value":476},{"type":43,"tag":368,"props":1635,"children":1636},{"style":438},[1637],{"type":49,"value":481},{"type":43,"tag":368,"props":1639,"children":1640},{"style":381},[1641],{"type":49,"value":1642},"\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbb-capture.mjs",{"type":43,"tag":368,"props":1644,"children":1645},{"style":438},[1646],{"type":49,"value":1077},{"type":43,"tag":368,"props":1648,"children":1649},{"style":449},[1650],{"type":49,"value":1360},{"type":43,"tag":368,"props":1652,"children":1653},{"style":438},[1654],{"type":49,"value":1092},{"type":43,"tag":368,"props":1656,"children":1657},{"style":438},[1658],{"type":49,"value":1077},{"type":43,"tag":368,"props":1660,"children":1661},{"style":449},[1662],{"type":49,"value":1496},{"type":43,"tag":368,"props":1664,"children":1665},{"style":438},[1666],{"type":49,"value":1092},{"type":43,"tag":368,"props":1668,"children":1669},{"style":438},[1670],{"type":49,"value":1671}," &\n",{"type":43,"tag":368,"props":1673,"children":1675},{"class":370,"line":1674},24,[1676,1681],{"type":43,"tag":368,"props":1677,"children":1678},{"style":375},[1679],{"type":49,"value":1680},"sleep",{"type":43,"tag":368,"props":1682,"children":1683},{"style":1200},[1684],{"type":49,"value":1685}," 2\n",{"type":43,"tag":368,"props":1687,"children":1689},{"class":370,"line":1688},25,[1690],{"type":43,"tag":368,"props":1691,"children":1692},{"emptyLinePlaceholder":1219},[1693],{"type":49,"value":1222},{"type":43,"tag":368,"props":1695,"children":1697},{"class":370,"line":1696},26,[1698],{"type":43,"tag":368,"props":1699,"children":1700},{"style":519},[1701],{"type":49,"value":1702},"# c. RUN AUTOBROWSE — connectUrl flag tells evaluate.mjs to inject --cdp\u002F--session\n",{"type":43,"tag":368,"props":1704,"children":1706},{"class":370,"line":1705},27,[1707],{"type":43,"tag":368,"props":1708,"children":1709},{"style":519},[1710],{"type":49,"value":1711},"#    into every inner browse call. The inner agent never sees --remote.\n",{"type":43,"tag":368,"props":1713,"children":1715},{"class":370,"line":1714},28,[1716,1720,1724,1728,1732,1736],{"type":43,"tag":368,"props":1717,"children":1718},{"style":375},[1719],{"type":49,"value":800},{"type":43,"tag":368,"props":1721,"children":1722},{"style":438},[1723],{"type":49,"value":471},{"type":43,"tag":368,"props":1725,"children":1726},{"style":449},[1727],{"type":49,"value":476},{"type":43,"tag":368,"props":1729,"children":1730},{"style":438},[1731],{"type":49,"value":481},{"type":43,"tag":368,"props":1733,"children":1734},{"style":381},[1735],{"type":49,"value":817},{"type":43,"tag":368,"props":1737,"children":1738},{"style":449},[1739],{"type":49,"value":1284},{"type":43,"tag":368,"props":1741,"children":1743},{"class":370,"line":1742},29,[1744,1749,1753,1757,1761,1765,1769,1773,1777,1782],{"type":43,"tag":368,"props":1745,"children":1746},{"style":381},[1747],{"type":49,"value":1748},"  --task",{"type":43,"tag":368,"props":1750,"children":1751},{"style":438},[1752],{"type":49,"value":827},{"type":43,"tag":368,"props":1754,"children":1755},{"style":381},[1756],{"type":49,"value":832},{"type":43,"tag":368,"props":1758,"children":1759},{"style":449},[1760],{"type":49,"value":837},{"type":43,"tag":368,"props":1762,"children":1763},{"style":438},[1764],{"type":49,"value":507},{"type":43,"tag":368,"props":1766,"children":1767},{"style":381},[1768],{"type":49,"value":846},{"type":43,"tag":368,"props":1770,"children":1771},{"style":381},[1772],{"type":49,"value":911},{"type":43,"tag":368,"props":1774,"children":1775},{"style":381},[1776],{"type":49,"value":916},{"type":43,"tag":368,"props":1778,"children":1779},{"style":381},[1780],{"type":49,"value":1781}," remote",{"type":43,"tag":368,"props":1783,"children":1784},{"style":449},[1785],{"type":49,"value":1284},{"type":43,"tag":368,"props":1787,"children":1789},{"class":370,"line":1788},30,[1790,1795,1799,1804,1808,1813,1817,1821],{"type":43,"tag":368,"props":1791,"children":1792},{"style":381},[1793],{"type":49,"value":1794},"  --connect-url",{"type":43,"tag":368,"props":1796,"children":1797},{"style":438},[1798],{"type":49,"value":1077},{"type":43,"tag":368,"props":1800,"children":1801},{"style":449},[1802],{"type":49,"value":1803},"$connect_url",{"type":43,"tag":368,"props":1805,"children":1806},{"style":438},[1807],{"type":49,"value":1092},{"type":43,"tag":368,"props":1809,"children":1810},{"style":381},[1811],{"type":49,"value":1812}," --run-number",{"type":43,"tag":368,"props":1814,"children":1815},{"style":438},[1816],{"type":49,"value":1077},{"type":43,"tag":368,"props":1818,"children":1819},{"style":449},[1820],{"type":49,"value":995},{"type":43,"tag":368,"props":1822,"children":1823},{"style":438},[1824],{"type":49,"value":1048},{"type":43,"tag":368,"props":1826,"children":1828},{"class":370,"line":1827},31,[1829],{"type":43,"tag":368,"props":1830,"children":1831},{"emptyLinePlaceholder":1219},[1832],{"type":49,"value":1222},{"type":43,"tag":368,"props":1834,"children":1836},{"class":370,"line":1835},32,[1837],{"type":43,"tag":368,"props":1838,"children":1839},{"style":519},[1840],{"type":49,"value":1841},"# d. STOP + BISECT + UNIFY — order matters; bisect needs the session to still\n",{"type":43,"tag":368,"props":1843,"children":1845},{"class":370,"line":1844},33,[1846],{"type":43,"tag":368,"props":1847,"children":1848},{"style":519},[1849],{"type":49,"value":1850},"#    exist, and unify-trace joins the bisect output with autobrowse's trace.json\n",{"type":43,"tag":368,"props":1852,"children":1854},{"class":370,"line":1853},34,[1855],{"type":43,"tag":368,"props":1856,"children":1857},{"style":519},[1858],{"type":49,"value":1859},"#    into a single time-ordered NDJSON the outer agent reads first each iter.\n",{"type":43,"tag":368,"props":1861,"children":1863},{"class":370,"line":1862},35,[1864,1868,1872,1876,1880,1885,1889,1893],{"type":43,"tag":368,"props":1865,"children":1866},{"style":375},[1867],{"type":49,"value":800},{"type":43,"tag":368,"props":1869,"children":1870},{"style":438},[1871],{"type":49,"value":471},{"type":43,"tag":368,"props":1873,"children":1874},{"style":449},[1875],{"type":49,"value":476},{"type":43,"tag":368,"props":1877,"children":1878},{"style":438},[1879],{"type":49,"value":481},{"type":43,"tag":368,"props":1881,"children":1882},{"style":381},[1883],{"type":49,"value":1884},"\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fstop-capture.mjs",{"type":43,"tag":368,"props":1886,"children":1887},{"style":438},[1888],{"type":49,"value":1077},{"type":43,"tag":368,"props":1890,"children":1891},{"style":449},[1892],{"type":49,"value":1496},{"type":43,"tag":368,"props":1894,"children":1895},{"style":438},[1896],{"type":49,"value":1048},{"type":43,"tag":368,"props":1898,"children":1900},{"class":370,"line":1899},36,[1901,1905,1909,1913,1917,1922,1926,1930],{"type":43,"tag":368,"props":1902,"children":1903},{"style":375},[1904],{"type":49,"value":800},{"type":43,"tag":368,"props":1906,"children":1907},{"style":438},[1908],{"type":49,"value":471},{"type":43,"tag":368,"props":1910,"children":1911},{"style":449},[1912],{"type":49,"value":476},{"type":43,"tag":368,"props":1914,"children":1915},{"style":438},[1916],{"type":49,"value":481},{"type":43,"tag":368,"props":1918,"children":1919},{"style":381},[1920],{"type":49,"value":1921},"\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fbisect-cdp.mjs",{"type":43,"tag":368,"props":1923,"children":1924},{"style":438},[1925],{"type":49,"value":1077},{"type":43,"tag":368,"props":1927,"children":1928},{"style":449},[1929],{"type":49,"value":1496},{"type":43,"tag":368,"props":1931,"children":1932},{"style":438},[1933],{"type":49,"value":1048},{"type":43,"tag":368,"props":1935,"children":1937},{"class":370,"line":1936},37,[1938,1942,1946,1950,1954,1959],{"type":43,"tag":368,"props":1939,"children":1940},{"style":375},[1941],{"type":49,"value":800},{"type":43,"tag":368,"props":1943,"children":1944},{"style":438},[1945],{"type":49,"value":471},{"type":43,"tag":368,"props":1947,"children":1948},{"style":449},[1949],{"type":49,"value":476},{"type":43,"tag":368,"props":1951,"children":1952},{"style":438},[1953],{"type":49,"value":481},{"type":43,"tag":368,"props":1955,"children":1956},{"style":381},[1957],{"type":49,"value":1958},"\u002Fscripts\u002Funify-trace.mjs",{"type":43,"tag":368,"props":1960,"children":1961},{"style":449},[1962],{"type":49,"value":1284},{"type":43,"tag":368,"props":1964,"children":1966},{"class":370,"line":1965},38,[1967,1972,1976,1980,1984],{"type":43,"tag":368,"props":1968,"children":1969},{"style":381},[1970],{"type":49,"value":1971},"  --trace-dir",{"type":43,"tag":368,"props":1973,"children":1974},{"style":438},[1975],{"type":49,"value":1077},{"type":43,"tag":368,"props":1977,"children":1978},{"style":449},[1979],{"type":49,"value":1521},{"type":43,"tag":368,"props":1981,"children":1982},{"style":438},[1983],{"type":49,"value":1092},{"type":43,"tag":368,"props":1985,"children":1986},{"style":449},[1987],{"type":49,"value":1284},{"type":43,"tag":368,"props":1989,"children":1991},{"class":370,"line":1990},39,[1992,1997,2001,2006,2011,2015],{"type":43,"tag":368,"props":1993,"children":1994},{"style":381},[1995],{"type":49,"value":1996},"  --o11y-dir",{"type":43,"tag":368,"props":1998,"children":1999},{"style":438},[2000],{"type":49,"value":1077},{"type":43,"tag":368,"props":2002,"children":2003},{"style":449},[2004],{"type":49,"value":2005},"$O11Y_ROOT",{"type":43,"tag":368,"props":2007,"children":2008},{"style":381},[2009],{"type":49,"value":2010},"\u002F",{"type":43,"tag":368,"props":2012,"children":2013},{"style":449},[2014],{"type":49,"value":1496},{"type":43,"tag":368,"props":2016,"children":2017},{"style":438},[2018],{"type":49,"value":1048},{"type":43,"tag":368,"props":2020,"children":2022},{"class":370,"line":2021},40,[2023],{"type":43,"tag":368,"props":2024,"children":2025},{"emptyLinePlaceholder":1219},[2026],{"type":49,"value":1222},{"type":43,"tag":368,"props":2028,"children":2030},{"class":370,"line":2029},41,[2031],{"type":43,"tag":368,"props":2032,"children":2033},{"style":519},[2034],{"type":49,"value":2035},"# e. RELEASE\n",{"type":43,"tag":368,"props":2037,"children":2039},{"class":370,"line":2038},42,[2040,2044,2048,2052,2057,2061,2065,2069,2074],{"type":43,"tag":368,"props":2041,"children":2042},{"style":375},[2043],{"type":49,"value":979},{"type":43,"tag":368,"props":2045,"children":2046},{"style":381},[2047],{"type":49,"value":1254},{"type":43,"tag":368,"props":2049,"children":2050},{"style":381},[2051],{"type":49,"value":1259},{"type":43,"tag":368,"props":2053,"children":2054},{"style":381},[2055],{"type":49,"value":2056}," update",{"type":43,"tag":368,"props":2058,"children":2059},{"style":438},[2060],{"type":49,"value":1077},{"type":43,"tag":368,"props":2062,"children":2063},{"style":449},[2064],{"type":49,"value":1360},{"type":43,"tag":368,"props":2066,"children":2067},{"style":438},[2068],{"type":49,"value":1092},{"type":43,"tag":368,"props":2070,"children":2071},{"style":381},[2072],{"type":49,"value":2073}," --status",{"type":43,"tag":368,"props":2075,"children":2076},{"style":381},[2077],{"type":49,"value":2078}," REQUEST_RELEASE\n",{"type":43,"tag":52,"props":2080,"children":2081},{},[2082,2084,2090,2092,2098,2100,2105,2107,2113,2115,2120],{"type":49,"value":2083},"This writes the inner-agent trace to ",{"type":43,"tag":58,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":49,"value":2089},".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F",{"type":49,"value":2091}," and the CDP bisect to ",{"type":43,"tag":58,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":49,"value":2097},".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F.o11y\u002F\u003Crun-id>\u002F",{"type":49,"value":2099},". The traced ",{"type":43,"tag":58,"props":2101,"children":2103},{"className":2102},[],[2104],{"type":49,"value":979},{"type":49,"value":2106}," CLI also emits per-command rich node descriptors to ",{"type":43,"tag":58,"props":2108,"children":2110},{"className":2109},[],[2111],{"type":49,"value":2112},".o11y\u002F\u003Crun-id>\u002Fcdp\u002Fdescriptors.ndjson",{"type":49,"value":2114}," (one JSON object per page-driving call: target tag\u002Fid\u002Frole\u002FaccessibleName\u002Fattributes\u002Fxpath\u002Fbounding-rect). The descriptors file feeds downstream codegen; it is ",{"type":43,"tag":332,"props":2116,"children":2117},{},[2118],{"type":49,"value":2119},"not",{"type":49,"value":2121}," required for hypothesis formation — skip it when reading the trace.",{"type":43,"tag":219,"props":2123,"children":2125},{"id":2124},"read-the-trace",[2126],{"type":49,"value":2127},"Read the trace",{"type":43,"tag":87,"props":2129,"children":2131},{"className":360,"code":2130,"language":362,"meta":95,"style":95},"cat .\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Fsummary.md\n",[2132],{"type":43,"tag":58,"props":2133,"children":2134},{"__ignoreMap":95},[2135],{"type":43,"tag":368,"props":2136,"children":2137},{"class":370,"line":371},[2138,2143,2148,2152,2156,2160,2164],{"type":43,"tag":368,"props":2139,"children":2140},{"style":375},[2141],{"type":49,"value":2142},"cat",{"type":43,"tag":368,"props":2144,"children":2145},{"style":381},[2146],{"type":49,"value":2147}," .\u002Fautobrowse\u002Ftraces\u002F",{"type":43,"tag":368,"props":2149,"children":2150},{"style":438},[2151],{"type":49,"value":441},{"type":43,"tag":368,"props":2153,"children":2154},{"style":381},[2155],{"type":49,"value":832},{"type":43,"tag":368,"props":2157,"children":2158},{"style":449},[2159],{"type":49,"value":837},{"type":43,"tag":368,"props":2161,"children":2162},{"style":438},[2163],{"type":49,"value":507},{"type":43,"tag":368,"props":2165,"children":2166},{"style":381},[2167],{"type":49,"value":2168},"\u002Flatest\u002Fsummary.md\n",{"type":43,"tag":52,"props":2170,"children":2171},{},[2172],{"type":49,"value":2173},"The summary has duration, cost, turns, the decision log, and the final JSON output.",{"type":43,"tag":52,"props":2175,"children":2176},{},[2177],{"type":49,"value":2178},"If the agent failed or got stuck, look deeper:",{"type":43,"tag":170,"props":2180,"children":2181},{},[2182,2195],{"type":43,"tag":174,"props":2183,"children":2184},{},[2185,2187,2193],{"type":49,"value":2186},"Read ",{"type":43,"tag":58,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":49,"value":2192},".\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Ftrace.json",{"type":49,"value":2194}," — search for the failure turn",{"type":43,"tag":174,"props":2196,"children":2197},{},[2198],{"type":49,"value":2199},"Read screenshots around the failure point with the Read tool",{"type":43,"tag":52,"props":2201,"children":2202},{},[2203,2222,2224,2230],{"type":43,"tag":332,"props":2204,"children":2205},{},[2206,2208,2213,2215,2221],{"type":49,"value":2207},"When ",{"type":43,"tag":58,"props":2209,"children":2211},{"className":2210},[],[2212],{"type":49,"value":106},{"type":49,"value":2214}," was used — start with ",{"type":43,"tag":58,"props":2216,"children":2218},{"className":2217},[],[2219],{"type":49,"value":2220},"unified-events.jsonl",{"type":49,"value":551},{"type":49,"value":2223}," The harness joins the agent's turn log and the browser's CDP firehose into one time-ordered NDJSON stream at the run root. One file, source-tagged (",{"type":43,"tag":58,"props":2225,"children":2227},{"className":2226},[],[2228],{"type":49,"value":2229},"source: \"agent\" | \"browser\"",{"type":49,"value":2231},"), interleaved by wall-clock timestamp. Skim it top-to-bottom; the failure cause is usually one or two adjacent lines (the agent issued command X, the browser responded with Y).",{"type":43,"tag":87,"props":2233,"children":2235},{"className":360,"code":2234,"language":362,"meta":95,"style":95},"cat .\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002Funified-events.jsonl\n",[2236],{"type":43,"tag":58,"props":2237,"children":2238},{"__ignoreMap":95},[2239],{"type":43,"tag":368,"props":2240,"children":2241},{"class":370,"line":371},[2242,2246,2250,2254,2258,2262,2266],{"type":43,"tag":368,"props":2243,"children":2244},{"style":375},[2245],{"type":49,"value":2142},{"type":43,"tag":368,"props":2247,"children":2248},{"style":381},[2249],{"type":49,"value":2147},{"type":43,"tag":368,"props":2251,"children":2252},{"style":438},[2253],{"type":49,"value":441},{"type":43,"tag":368,"props":2255,"children":2256},{"style":381},[2257],{"type":49,"value":832},{"type":43,"tag":368,"props":2259,"children":2260},{"style":449},[2261],{"type":49,"value":837},{"type":43,"tag":368,"props":2263,"children":2264},{"style":438},[2265],{"type":49,"value":507},{"type":43,"tag":368,"props":2267,"children":2268},{"style":381},[2269],{"type":49,"value":2270},"\u002Flatest\u002Funified-events.jsonl\n",{"type":43,"tag":52,"props":2272,"children":2273},{},[2274,2276,2282,2284,2290,2292,2297],{"type":49,"value":2275},"The structured files (",{"type":43,"tag":58,"props":2277,"children":2279},{"className":2278},[],[2280],{"type":49,"value":2281},"trace.json",{"type":49,"value":2283},", ",{"type":43,"tag":58,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":49,"value":2289},".o11y\u002F\u003Crun-id>\u002Fcdp\u002F*",{"type":49,"value":2291},") are ",{"type":43,"tag":332,"props":2293,"children":2294},{},[2295],{"type":49,"value":2296},"also agent-consumable as drill-downs",{"type":49,"value":2298}," when the unified stream points at something you need more of:",{"type":43,"tag":2300,"props":2301,"children":2302},"table",{},[2303,2322],{"type":43,"tag":2304,"props":2305,"children":2306},"thead",{},[2307],{"type":43,"tag":2308,"props":2309,"children":2310},"tr",{},[2311,2317],{"type":43,"tag":2312,"props":2313,"children":2314},"th",{},[2315],{"type":49,"value":2316},"Need",{"type":43,"tag":2312,"props":2318,"children":2319},{},[2320],{"type":49,"value":2321},"Drill-down file or command",{"type":43,"tag":2323,"props":2324,"children":2325},"tbody",{},[2326,2344,2361,2378,2395,2420],{"type":43,"tag":2308,"props":2327,"children":2328},{},[2329,2335],{"type":43,"tag":2330,"props":2331,"children":2332},"td",{},[2333],{"type":49,"value":2334},"Per-page totals + timing (events, network counts, errors by page)",{"type":43,"tag":2330,"props":2336,"children":2337},{},[2338],{"type":43,"tag":58,"props":2339,"children":2341},{"className":2340},[],[2342],{"type":49,"value":2343},".o11y\u002F\u003Crun-id>\u002Fcdp\u002Fsummary.json",{"type":43,"tag":2308,"props":2345,"children":2346},{},[2347,2352],{"type":43,"tag":2330,"props":2348,"children":2349},{},[2350],{"type":49,"value":2351},"All failed network requests in one place",{"type":43,"tag":2330,"props":2353,"children":2354},{},[2355],{"type":43,"tag":58,"props":2356,"children":2358},{"className":2357},[],[2359],{"type":49,"value":2360},".o11y\u002F\u003Crun-id>\u002Fcdp\u002Fnetwork\u002Ffailed.jsonl",{"type":43,"tag":2308,"props":2362,"children":2363},{},[2364,2369],{"type":43,"tag":2330,"props":2365,"children":2366},{},[2367],{"type":49,"value":2368},"Full console exception payloads (stacktraces, etc.)",{"type":43,"tag":2330,"props":2370,"children":2371},{},[2372],{"type":43,"tag":58,"props":2373,"children":2375},{"className":2374},[],[2376],{"type":49,"value":2377},".o11y\u002F\u003Crun-id>\u002Fcdp\u002Fconsole\u002Fexceptions.jsonl",{"type":43,"tag":2308,"props":2379,"children":2380},{},[2381,2386],{"type":43,"tag":2330,"props":2382,"children":2383},{},[2384],{"type":49,"value":2385},"Per-page slice (only events on page N)",{"type":43,"tag":2330,"props":2387,"children":2388},{},[2389],{"type":43,"tag":58,"props":2390,"children":2392},{"className":2391},[],[2393],{"type":49,"value":2394},".o11y\u002F\u003Crun-id>\u002Fcdp\u002Fpages\u002F\u003Cpid>\u002F",{"type":43,"tag":2308,"props":2396,"children":2397},{},[2398,2403],{"type":43,"tag":2330,"props":2399,"children":2400},{},[2401],{"type":49,"value":2402},"Full reasoning text \u002F untruncated tool outputs for a specific turn",{"type":43,"tag":2330,"props":2404,"children":2405},{},[2406,2411,2413,2419],{"type":43,"tag":58,"props":2407,"children":2409},{"className":2408},[],[2410],{"type":49,"value":2281},{"type":49,"value":2412}," (filter by ",{"type":43,"tag":58,"props":2414,"children":2416},{"className":2415},[],[2417],{"type":49,"value":2418},"turn === N",{"type":49,"value":783},{"type":43,"tag":2308,"props":2421,"children":2422},{},[2423,2428],{"type":43,"tag":2330,"props":2424,"children":2425},{},[2426],{"type":49,"value":2427},"Ad-hoc grouped query (e.g. top hosts, errors-by-page)",{"type":43,"tag":2330,"props":2429,"children":2430},{},[2431],{"type":43,"tag":58,"props":2432,"children":2434},{"className":2433},[],[2435],{"type":49,"value":2436},"O11Y_ROOT=.\u002Fautobrowse\u002Ftraces\u002F\u003Ctask-name>\u002Flatest\u002F.o11y node ${CLAUDE_SKILL_DIR}\u002F..\u002Fbrowser-trace\u002Fscripts\u002Fquery.mjs \u003Crun-id> \u003Ccmd>",{"type":43,"tag":52,"props":2438,"children":2439},{},[2440],{"type":49,"value":2441},"The unified stream is the default; drill into structured files only when you need a grouped query, a full-text payload, or filtering the stream can't give you.",{"type":43,"tag":219,"props":2443,"children":2445},{"id":2444},"form-one-hypothesis",[2446],{"type":49,"value":2447},"Form one hypothesis",{"type":43,"tag":52,"props":2449,"children":2450},{},[2451],{"type":49,"value":2452},"Find the exact turn where things went wrong. What single heuristic would have prevented it?",{"type":43,"tag":52,"props":2454,"children":2455},{},[2456,2458,2463,2465,2475,2477,2483,2485,2491,2493,2499,2501,2507],{"type":49,"value":2457},"Under ",{"type":43,"tag":58,"props":2459,"children":2461},{"className":2460},[],[2462],{"type":49,"value":106},{"type":49,"value":2464},", the hypothesis must cite a ",{"type":43,"tag":332,"props":2466,"children":2467},{},[2468,2470],{"type":49,"value":2469},"specific event from ",{"type":43,"tag":58,"props":2471,"children":2473},{"className":2472},[],[2474],{"type":49,"value":2220},{"type":49,"value":2476}," (line number or timestamp) — or name the drill-down file if you had to descend into one. This keeps updates evidence-grounded rather than vibes-driven. A hypothesis based only on the agent's commands might say \"the click didn't work\"; grounded in the unified stream, it can say \"line 47 of unified-events.jsonl: ",{"type":43,"tag":58,"props":2478,"children":2480},{"className":2479},[],[2481],{"type":49,"value":2482},"browse open",{"type":49,"value":2484}," was followed by ",{"type":43,"tag":58,"props":2486,"children":2488},{"className":2487},[],[2489],{"type":49,"value":2490},"Network.responseReceived",{"type":49,"value":2492}," status 403 on ",{"type":43,"tag":58,"props":2494,"children":2496},{"className":2495},[],[2497],{"type":49,"value":2498},"\u002Fapi\u002Fcheckout",{"type":49,"value":2500}," — switch to ",{"type":43,"tag":58,"props":2502,"children":2504},{"className":2503},[],[2505],{"type":49,"value":2506},"--verified --proxies",{"type":49,"value":2508},".\"",{"type":43,"tag":52,"props":2510,"children":2511},{},[2512],{"type":49,"value":2513},"Examples:",{"type":43,"tag":170,"props":2515,"children":2516},{},[2517,2522,2535,2556,2569],{"type":43,"tag":174,"props":2518,"children":2519},{},[2520],{"type":49,"value":2521},"\"After clicking the dropdown, wait 1s — options animate in before they're clickable\"",{"type":43,"tag":174,"props":2523,"children":2524},{},[2525,2527,2533],{"type":49,"value":2526},"\"Navigate directly to ",{"type":43,"tag":58,"props":2528,"children":2530},{"className":2529},[],[2531],{"type":49,"value":2532},"\u002Fpay-invoice\u002F",{"type":49,"value":2534}," — skip the landing page entirely\"",{"type":43,"tag":174,"props":2536,"children":2537},{},[2538,2540,2546,2548,2554],{"type":49,"value":2539},"\"Use ",{"type":43,"tag":58,"props":2541,"children":2543},{"className":2542},[],[2544],{"type":49,"value":2545},"browse fill #field_3 value",{"type":49,"value":2547}," not ",{"type":43,"tag":58,"props":2549,"children":2551},{"className":2550},[],[2552],{"type":49,"value":2553},"browse type",{"type":49,"value":2555}," — this field clears on focus\"",{"type":43,"tag":174,"props":2557,"children":2558},{},[2559,2561,2567],{"type":49,"value":2560},"\"The page shows a spinner at turn 8 — add ",{"type":43,"tag":58,"props":2562,"children":2564},{"className":2563},[],[2565],{"type":49,"value":2566},"browse wait timeout 2000",{"type":49,"value":2568}," before snapshot\"",{"type":43,"tag":174,"props":2570,"children":2571},{},[2572,2574,2579,2581,2586,2588,2594,2596,2601,2603,2608],{"type":49,"value":2573},"(with ",{"type":43,"tag":58,"props":2575,"children":2577},{"className":2576},[],[2578],{"type":49,"value":106},{"type":49,"value":2580},") \"At line 47 of unified-events.jsonl, 3 consecutive ",{"type":43,"tag":58,"props":2582,"children":2584},{"className":2583},[],[2585],{"type":49,"value":2490},{"type":49,"value":2587}," events on ",{"type":43,"tag":58,"props":2589,"children":2591},{"className":2590},[],[2592],{"type":49,"value":2593},"\u002Fapi\u002Favailability",{"type":49,"value":2595}," returned 403 right after ",{"type":43,"tag":58,"props":2597,"children":2599},{"className":2598},[],[2600],{"type":49,"value":2482},{"type":49,"value":2602}," — the site is fingerprinting; the next iter needs ",{"type":43,"tag":58,"props":2604,"children":2606},{"className":2605},[],[2607],{"type":49,"value":2506},{"type":49,"value":2508},{"type":43,"tag":219,"props":2610,"children":2612},{"id":2611},"update-strategymd",[2613],{"type":49,"value":2614},"Update strategy.md",{"type":43,"tag":52,"props":2616,"children":2617},{},[2618,2620,2626],{"type":49,"value":2619},"Edit ",{"type":43,"tag":58,"props":2621,"children":2623},{"className":2622},[],[2624],{"type":49,"value":2625},".\u002Fautobrowse\u002Ftasks\u002F\u003Ctask-name>\u002Fstrategy.md",{"type":49,"value":2627},". Keep everything that worked. Fix the specific failure. Add a concrete heuristic.",{"type":43,"tag":52,"props":2629,"children":2630},{},[2631],{"type":49,"value":2632},"Good strategies have:",{"type":43,"tag":170,"props":2634,"children":2635},{},[2636,2646,2656,2666],{"type":43,"tag":174,"props":2637,"children":2638},{},[2639,2644],{"type":43,"tag":332,"props":2640,"children":2641},{},[2642],{"type":49,"value":2643},"Fast path",{"type":49,"value":2645},": direct URL or shortcuts to skip exploration",{"type":43,"tag":174,"props":2647,"children":2648},{},[2649,2654],{"type":43,"tag":332,"props":2650,"children":2651},{},[2652],{"type":49,"value":2653},"Step-by-step workflow",{"type":49,"value":2655},": exact sequence with timing notes",{"type":43,"tag":174,"props":2657,"children":2658},{},[2659,2664],{"type":43,"tag":332,"props":2660,"children":2661},{},[2662],{"type":49,"value":2663},"Site-specific knowledge",{"type":49,"value":2665},": selector IDs, form field names, success indicators",{"type":43,"tag":174,"props":2667,"children":2668},{},[2669,2674],{"type":43,"tag":332,"props":2670,"children":2671},{},[2672],{"type":49,"value":2673},"Failure recovery",{"type":49,"value":2675},": what to do when X goes wrong",{"type":43,"tag":219,"props":2677,"children":2679},{"id":2678},"judge-the-result",[2680],{"type":49,"value":2681},"Judge the result",{"type":43,"tag":52,"props":2683,"children":2684},{},[2685],{"type":49,"value":2686},"Read the new summary. Did it pass? Make clear progress?",{"type":43,"tag":170,"props":2688,"children":2689},{},[2690,2700],{"type":43,"tag":174,"props":2691,"children":2692},{},[2693,2698],{"type":43,"tag":332,"props":2694,"children":2695},{},[2696],{"type":49,"value":2697},"Pass or progress",{"type":49,"value":2699}," → keep, next iteration",{"type":43,"tag":174,"props":2701,"children":2702},{},[2703,2708],{"type":43,"tag":332,"props":2704,"children":2705},{},[2706],{"type":49,"value":2707},"No progress or regression",{"type":49,"value":2709}," → revert strategy.md to the previous version and try a different hypothesis",{"type":43,"tag":219,"props":2711,"children":2713},{"id":2712},"generate-a-runnable-script-optional",[2714],{"type":49,"value":2715},"Generate a runnable script (optional)",{"type":43,"tag":52,"props":2717,"children":2718},{},[2719,2721,2727],{"type":49,"value":2720},"Once the task has converged, you can produce a deterministic, runnable script\nin one or more frameworks via ",{"type":43,"tag":58,"props":2722,"children":2724},{"className":2723},[],[2725],{"type":49,"value":2726},"scripts\u002Fcodegen.mjs",{"type":49,"value":2728},". This is one shot of an\nLLM call per framework, cached by content hash, with optional verify-against-\nfresh-session and rewrite-on-failure.",{"type":43,"tag":87,"props":2730,"children":2732},{"className":360,"code":2731,"language":362,"meta":95,"style":95},"node ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fcodegen.mjs \\\n  --task \u003Cname> \\\n  --workspace .\u002Fautobrowse \\\n  --frameworks playwright,stagehand \\\n  --verify\n",[2733],{"type":43,"tag":58,"props":2734,"children":2735},{"__ignoreMap":95},[2736,2764,2792,2808,2825],{"type":43,"tag":368,"props":2737,"children":2738},{"class":370,"line":371},[2739,2743,2747,2751,2755,2760],{"type":43,"tag":368,"props":2740,"children":2741},{"style":375},[2742],{"type":49,"value":800},{"type":43,"tag":368,"props":2744,"children":2745},{"style":438},[2746],{"type":49,"value":471},{"type":43,"tag":368,"props":2748,"children":2749},{"style":449},[2750],{"type":49,"value":476},{"type":43,"tag":368,"props":2752,"children":2753},{"style":438},[2754],{"type":49,"value":481},{"type":43,"tag":368,"props":2756,"children":2757},{"style":381},[2758],{"type":49,"value":2759},"\u002Fscripts\u002Fcodegen.mjs",{"type":43,"tag":368,"props":2761,"children":2762},{"style":449},[2763],{"type":49,"value":1284},{"type":43,"tag":368,"props":2765,"children":2766},{"class":370,"line":460},[2767,2771,2775,2780,2784,2788],{"type":43,"tag":368,"props":2768,"children":2769},{"style":381},[2770],{"type":49,"value":1748},{"type":43,"tag":368,"props":2772,"children":2773},{"style":438},[2774],{"type":49,"value":827},{"type":43,"tag":368,"props":2776,"children":2777},{"style":381},[2778],{"type":49,"value":2779},"nam",{"type":43,"tag":368,"props":2781,"children":2782},{"style":449},[2783],{"type":49,"value":837},{"type":43,"tag":368,"props":2785,"children":2786},{"style":438},[2787],{"type":49,"value":507},{"type":43,"tag":368,"props":2789,"children":2790},{"style":449},[2791],{"type":49,"value":1284},{"type":43,"tag":368,"props":2793,"children":2794},{"class":370,"line":515},[2795,2800,2804],{"type":43,"tag":368,"props":2796,"children":2797},{"style":381},[2798],{"type":49,"value":2799},"  --workspace",{"type":43,"tag":368,"props":2801,"children":2802},{"style":381},[2803],{"type":49,"value":911},{"type":43,"tag":368,"props":2805,"children":2806},{"style":449},[2807],{"type":49,"value":1284},{"type":43,"tag":368,"props":2809,"children":2810},{"class":370,"line":1105},[2811,2816,2821],{"type":43,"tag":368,"props":2812,"children":2813},{"style":381},[2814],{"type":49,"value":2815},"  --frameworks",{"type":43,"tag":368,"props":2817,"children":2818},{"style":381},[2819],{"type":49,"value":2820}," playwright,stagehand",{"type":43,"tag":368,"props":2822,"children":2823},{"style":449},[2824],{"type":49,"value":1284},{"type":43,"tag":368,"props":2826,"children":2827},{"class":370,"line":1141},[2828],{"type":43,"tag":368,"props":2829,"children":2830},{"style":381},[2831],{"type":49,"value":2832},"  --verify\n",{"type":43,"tag":52,"props":2834,"children":2835},{},[2836,2838,2844,2846,2852,2854,2860,2862,2868,2870,2875,2877,2882],{"type":49,"value":2837},"Each framework gets its own subdirectory under ",{"type":43,"tag":58,"props":2839,"children":2841},{"className":2840},[],[2842],{"type":49,"value":2843},"tasks\u002F\u003Cname>\u002F\u003Cframework>\u002F",{"type":49,"value":2845},"\nwith the emitted script and a self-contained scaffold (",{"type":43,"tag":58,"props":2847,"children":2849},{"className":2848},[],[2850],{"type":49,"value":2851},"package.json",{"type":49,"value":2853},",\n",{"type":43,"tag":58,"props":2855,"children":2857},{"className":2856},[],[2858],{"type":49,"value":2859},"tsconfig.json",{"type":49,"value":2861},"). The directory is runnable standalone with\n",{"type":43,"tag":58,"props":2863,"children":2865},{"className":2864},[],[2866],{"type":49,"value":2867},"cd tasks\u002F\u003Cname>\u002Fplaywright && npm install && npx tsx \u003Cname>.ts",{"type":49,"value":2869}," — the only\nruntime requirement is ",{"type":43,"tag":58,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":49,"value":153},{"type":49,"value":2876}," (plus ",{"type":43,"tag":58,"props":2878,"children":2880},{"className":2879},[],[2881],{"type":49,"value":744},{"type":49,"value":2883}," for\nthe Stagehand target).",{"type":43,"tag":52,"props":2885,"children":2886},{},[2887,2889,2895,2896,2902,2904,2910,2912,2918],{"type":49,"value":2888},"Builtin frameworks: ",{"type":43,"tag":58,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":49,"value":2894},"playwright",{"type":49,"value":2283},{"type":43,"tag":58,"props":2897,"children":2899},{"className":2898},[],[2900],{"type":49,"value":2901},"stagehand",{"type":49,"value":2903},". Add a custom framework with\n",{"type":43,"tag":58,"props":2905,"children":2907},{"className":2906},[],[2908],{"type":49,"value":2909},"--prompt-template \u003Cpath> --frameworks custom",{"type":49,"value":2911}," (and provide your own runner\nor pass ",{"type":43,"tag":58,"props":2913,"children":2915},{"className":2914},[],[2916],{"type":49,"value":2917},"--no-verify",{"type":49,"value":2919},").",{"type":43,"tag":52,"props":2921,"children":2922},{},[2923],{"type":49,"value":2924},"Common flags:",{"type":43,"tag":2300,"props":2926,"children":2927},{},[2928,2944],{"type":43,"tag":2304,"props":2929,"children":2930},{},[2931],{"type":43,"tag":2308,"props":2932,"children":2933},{},[2934,2939],{"type":43,"tag":2312,"props":2935,"children":2936},{},[2937],{"type":49,"value":2938},"Flag",{"type":43,"tag":2312,"props":2940,"children":2941},{},[2942],{"type":49,"value":2943},"Purpose",{"type":43,"tag":2323,"props":2945,"children":2946},{},[2947,2969,2998,3015,3032,3049,3066],{"type":43,"tag":2308,"props":2948,"children":2949},{},[2950,2959],{"type":43,"tag":2330,"props":2951,"children":2952},{},[2953],{"type":43,"tag":58,"props":2954,"children":2956},{"className":2955},[],[2957],{"type":49,"value":2958},"--frameworks a,b,...",{"type":43,"tag":2330,"props":2960,"children":2961},{},[2962,2964],{"type":49,"value":2963},"Comma-separated; default ",{"type":43,"tag":58,"props":2965,"children":2967},{"className":2966},[],[2968],{"type":49,"value":2894},{"type":43,"tag":2308,"props":2970,"children":2971},{},[2972,2988],{"type":43,"tag":2330,"props":2973,"children":2974},{},[2975,2981,2983],{"type":43,"tag":58,"props":2976,"children":2978},{"className":2977},[],[2979],{"type":49,"value":2980},"--verify",{"type":49,"value":2982}," \u002F ",{"type":43,"tag":58,"props":2984,"children":2986},{"className":2985},[],[2987],{"type":49,"value":2917},{"type":43,"tag":2330,"props":2989,"children":2990},{},[2991,2993],{"type":49,"value":2992},"Run the produced script against a fresh BB session; default ",{"type":43,"tag":58,"props":2994,"children":2996},{"className":2995},[],[2997],{"type":49,"value":2980},{"type":43,"tag":2308,"props":2999,"children":3000},{},[3001,3010],{"type":43,"tag":2330,"props":3002,"children":3003},{},[3004],{"type":43,"tag":58,"props":3005,"children":3007},{"className":3006},[],[3008],{"type":49,"value":3009},"--max-retries N",{"type":43,"tag":2330,"props":3011,"children":3012},{},[3013],{"type":49,"value":3014},"Rewrite-on-verify-failure cap; default 2",{"type":43,"tag":2308,"props":3016,"children":3017},{},[3018,3027],{"type":43,"tag":2330,"props":3019,"children":3020},{},[3021],{"type":43,"tag":58,"props":3022,"children":3024},{"className":3023},[],[3025],{"type":49,"value":3026},"--cache-only",{"type":43,"tag":2330,"props":3028,"children":3029},{},[3030],{"type":49,"value":3031},"Error if cache miss (CI-friendly)",{"type":43,"tag":2308,"props":3033,"children":3034},{},[3035,3044],{"type":43,"tag":2330,"props":3036,"children":3037},{},[3038],{"type":43,"tag":58,"props":3039,"children":3041},{"className":3040},[],[3042],{"type":49,"value":3043},"--force",{"type":43,"tag":2330,"props":3045,"children":3046},{},[3047],{"type":49,"value":3048},"Bust the cache",{"type":43,"tag":2308,"props":3050,"children":3051},{},[3052,3061],{"type":43,"tag":2330,"props":3053,"children":3054},{},[3055],{"type":43,"tag":58,"props":3056,"children":3058},{"className":3057},[],[3059],{"type":49,"value":3060},"--dry-run",{"type":43,"tag":2330,"props":3062,"children":3063},{},[3064],{"type":49,"value":3065},"Estimate prompt size + cost; don't call the LLM",{"type":43,"tag":2308,"props":3067,"children":3068},{},[3069,3078],{"type":43,"tag":2330,"props":3070,"children":3071},{},[3072],{"type":43,"tag":58,"props":3073,"children":3075},{"className":3074},[],[3076],{"type":49,"value":3077},"--run \u003Cid>",{"type":43,"tag":2330,"props":3079,"children":3080},{},[3081,3083,3089],{"type":49,"value":3082},"Force a specific ",{"type":43,"tag":58,"props":3084,"children":3086},{"className":3085},[],[3087],{"type":49,"value":3088},"run-NNN",{"type":49,"value":3090}," (default: latest passing)",{"type":43,"tag":52,"props":3092,"children":3093},{},[3094,3096,3102],{"type":49,"value":3095},"Output is one JSON line per framework on stdout. Non-zero exit if any\nselected framework's final state is ",{"type":43,"tag":58,"props":3097,"children":3099},{"className":3098},[],[3100],{"type":49,"value":3101},"passed: false",{"type":49,"value":551},{"type":43,"tag":52,"props":3104,"children":3105},{},[3106,3108,3114,3116,3122],{"type":49,"value":3107},"See ",{"type":43,"tag":58,"props":3109,"children":3111},{"className":3110},[],[3112],{"type":49,"value":3113},"references\u002Fplaywright-cdp-bridge.md",{"type":49,"value":3115}," for the canonical\n",{"type":43,"tag":58,"props":3117,"children":3119},{"className":3118},[],[3120],{"type":49,"value":3121},"connectOverCDP",{"type":49,"value":3123}," patterns the emitted scripts follow.",{"type":43,"tag":219,"props":3125,"children":3127},{"id":3126},"after-all-iterations-publish-if-ready",[3128],{"type":49,"value":3129},"After all iterations — publish if ready",{"type":43,"tag":52,"props":3131,"children":3132},{},[3133,3135,3140,3142,3147],{"type":49,"value":3134},"If the task passed on 2+ of the last 3 iterations ",{"type":43,"tag":332,"props":3136,"children":3137},{},[3138],{"type":49,"value":3139},"or has reached the max iteration limit",{"type":49,"value":3141},", install it as a Claude Code skill. ",{"type":43,"tag":332,"props":3143,"children":3144},{},[3145],{"type":49,"value":3146},"Do not just copy strategy.md",{"type":49,"value":3148}," — the skill must be self-contained and useful to someone who has never seen this codebase. If graduating at max iterations without a clean pass, note the known failure point but still document everything learned.",{"type":43,"tag":52,"props":3150,"children":3151},{},[3152,3154,3159],{"type":49,"value":3153},"Install by writing to ",{"type":43,"tag":58,"props":3155,"children":3157},{"className":3156},[],[3158],{"type":49,"value":670},{"type":49,"value":168},{"type":43,"tag":87,"props":3161,"children":3163},{"className":360,"code":3162,"language":362,"meta":95,"style":95},"mkdir -p ~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\n",[3164],{"type":43,"tag":58,"props":3165,"children":3166},{"__ignoreMap":95},[3167],{"type":43,"tag":368,"props":3168,"children":3169},{"class":370,"line":371},[3170,3174,3178,3183,3187,3191,3195],{"type":43,"tag":368,"props":3171,"children":3172},{"style":375},[3173],{"type":49,"value":378},{"type":43,"tag":368,"props":3175,"children":3176},{"style":381},[3177],{"type":49,"value":384},{"type":43,"tag":368,"props":3179,"children":3180},{"style":381},[3181],{"type":49,"value":3182}," ~\u002F.claude\u002Fskills\u002F",{"type":43,"tag":368,"props":3184,"children":3185},{"style":438},[3186],{"type":49,"value":441},{"type":43,"tag":368,"props":3188,"children":3189},{"style":381},[3190],{"type":49,"value":832},{"type":43,"tag":368,"props":3192,"children":3193},{"style":449},[3194],{"type":49,"value":837},{"type":43,"tag":368,"props":3196,"children":3197},{"style":438},[3198],{"type":49,"value":457},{"type":43,"tag":52,"props":3200,"children":3201},{},[3202],{"type":49,"value":3203},"Use this structure for the SKILL.md:",{"type":43,"tag":87,"props":3205,"children":3209},{"className":3206,"code":3207,"language":3208,"meta":95,"style":95},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nname: \u003Ctask-name>\ndescription: \u003C1-2 sentences describing what this skill does and when to use it. Include trigger keywords.>\n---\n\n# \u003CTask Title> — Browser Skill\n\n## Purpose\n\u003C1-2 sentences: what this automates and why it exists.>\n\n## When to Use\n\u003CWhen should someone reach for this skill.>\n\n## Browse CLI Reference\nThe inner agent uses the `browse` CLI. Key commands for this task:\n- `browse stop` — kill existing session (always run before switching to remote)\n- `browse open \u003Curl> --remote` — start a fresh Browserbase cloud session and navigate\n- `browse open \u003Curl> --local` — start a clean local browser and navigate\n- `browse tab new \u003Curl>` — open URL in a new tab\n- `browse wait load` — wait for page to finish loading\n- `browse wait timeout \u003Cms>` — wait a fixed amount of time for spinners or animations\n- `browse wait selector \"\u003Cselector>\"` — wait for an element to become visible\n- `browse get title` — verify you're on the right page\n- `browse get text body` — extract all visible text (preferred for content extraction)\n- `browse snapshot` — get accessibility tree; each node has a ref in `[X-Y]` format (e.g. `[0-5]`, `[2-147]`)\n- `browse click [X-Y]` — click element by ref from the latest snapshot (include the brackets)\n\n**Never use `--session \u003Cname>` flags in SKILL.md.** Named sessions are a parallel-run workaround — they contaminate skills with infrastructure concerns. Skills must work in isolation with the default session.\n\n## Workflow\n\n### Step 1 — Start session\n\u003Cexact browse commands in order>\n\n### Step 2 — Navigate\n\u003Cexact URL and verification steps>\n\n### Step 3 — Extract\n\u003Cexact extraction commands>\n\n### Step 4 — Output\n\u003Cwhat JSON to emit, referencing the schema below>\n\n## Site-Specific Gotchas\n\u003CBullet list of every hard-won heuristic from the iterations. This is the core value of the skill.>\n\n## Failure Recovery\n\u003CWhat to do when navigation fails, session is contaminated, or extraction returns garbage>\n\n## Expected Output\n```json\n\u003Cpaste the exact expected output schema from task.md>\n","markdown",[3210],{"type":43,"tag":58,"props":3211,"children":3212},{"__ignoreMap":95},[3213,3221,3239,3256,3263,3270,3297,3304,3317,3325,3332,3344,3390,3397,3405,3413,3421,3447,3471,3496,3504,3530,3556,3564,3572,3580,3588,3595,3620,3627,3635,3642,3650,3686,3693,3701,3736,3743,3751,3775,3782,3790,3841,3849,3858,3950,3958,3967,4041,4049,4058,4067],{"type":43,"tag":368,"props":3214,"children":3215},{"class":370,"line":371},[3216],{"type":43,"tag":368,"props":3217,"children":3218},{"style":438},[3219],{"type":49,"value":3220},"---\n",{"type":43,"tag":368,"props":3222,"children":3223},{"class":370,"line":460},[3224,3230,3234],{"type":43,"tag":368,"props":3225,"children":3227},{"style":3226},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[3228],{"type":49,"value":3229},"name",{"type":43,"tag":368,"props":3231,"children":3232},{"style":438},[3233],{"type":49,"value":168},{"type":43,"tag":368,"props":3235,"children":3236},{"style":381},[3237],{"type":49,"value":3238}," \u003Ctask-name>\n",{"type":43,"tag":368,"props":3240,"children":3241},{"class":370,"line":515},[3242,3247,3251],{"type":43,"tag":368,"props":3243,"children":3244},{"style":3226},[3245],{"type":49,"value":3246},"description",{"type":43,"tag":368,"props":3248,"children":3249},{"style":438},[3250],{"type":49,"value":168},{"type":43,"tag":368,"props":3252,"children":3253},{"style":381},[3254],{"type":49,"value":3255}," \u003C1-2 sentences describing what this skill does and when to use it. Include trigger keywords.>\n",{"type":43,"tag":368,"props":3257,"children":3258},{"class":370,"line":1105},[3259],{"type":43,"tag":368,"props":3260,"children":3261},{"style":438},[3262],{"type":49,"value":3220},{"type":43,"tag":368,"props":3264,"children":3265},{"class":370,"line":1141},[3266],{"type":43,"tag":368,"props":3267,"children":3268},{"emptyLinePlaceholder":1219},[3269],{"type":49,"value":1222},{"type":43,"tag":368,"props":3271,"children":3272},{"class":370,"line":1166},[3273,3278,3283,3288,3292],{"type":43,"tag":368,"props":3274,"children":3275},{"style":438},[3276],{"type":49,"value":3277},"# \u003C",{"type":43,"tag":368,"props":3279,"children":3280},{"style":3226},[3281],{"type":49,"value":3282},"Task",{"type":43,"tag":368,"props":3284,"children":3285},{"style":1532},[3286],{"type":49,"value":3287}," Title",{"type":43,"tag":368,"props":3289,"children":3290},{"style":438},[3291],{"type":49,"value":507},{"type":43,"tag":368,"props":3293,"children":3294},{"style":375},[3295],{"type":49,"value":3296}," — Browser Skill\n",{"type":43,"tag":368,"props":3298,"children":3299},{"class":370,"line":1191},[3300],{"type":43,"tag":368,"props":3301,"children":3302},{"emptyLinePlaceholder":1219},[3303],{"type":49,"value":1222},{"type":43,"tag":368,"props":3305,"children":3306},{"class":370,"line":1206},[3307,3312],{"type":43,"tag":368,"props":3308,"children":3309},{"style":438},[3310],{"type":49,"value":3311},"## ",{"type":43,"tag":368,"props":3313,"children":3314},{"style":375},[3315],{"type":49,"value":3316},"Purpose\n",{"type":43,"tag":368,"props":3318,"children":3319},{"class":370,"line":1215},[3320],{"type":43,"tag":368,"props":3321,"children":3322},{"style":449},[3323],{"type":49,"value":3324},"\u003C1-2 sentences: what this automates and why it exists.>\n",{"type":43,"tag":368,"props":3326,"children":3327},{"class":370,"line":1225},[3328],{"type":43,"tag":368,"props":3329,"children":3330},{"emptyLinePlaceholder":1219},[3331],{"type":49,"value":1222},{"type":43,"tag":368,"props":3333,"children":3334},{"class":370,"line":1234},[3335,3339],{"type":43,"tag":368,"props":3336,"children":3337},{"style":438},[3338],{"type":49,"value":3311},{"type":43,"tag":368,"props":3340,"children":3341},{"style":375},[3342],{"type":49,"value":3343},"When to Use\n",{"type":43,"tag":368,"props":3345,"children":3346},{"class":370,"line":1287},[3347,3351,3356,3361,3366,3371,3376,3381,3386],{"type":43,"tag":368,"props":3348,"children":3349},{"style":438},[3350],{"type":49,"value":441},{"type":43,"tag":368,"props":3352,"children":3353},{"style":3226},[3354],{"type":49,"value":3355},"When",{"type":43,"tag":368,"props":3357,"children":3358},{"style":1532},[3359],{"type":49,"value":3360}," should",{"type":43,"tag":368,"props":3362,"children":3363},{"style":1532},[3364],{"type":49,"value":3365}," someone",{"type":43,"tag":368,"props":3367,"children":3368},{"style":1532},[3369],{"type":49,"value":3370}," reach",{"type":43,"tag":368,"props":3372,"children":3373},{"style":1532},[3374],{"type":49,"value":3375}," for",{"type":43,"tag":368,"props":3377,"children":3378},{"style":1532},[3379],{"type":49,"value":3380}," this",{"type":43,"tag":368,"props":3382,"children":3383},{"style":1532},[3384],{"type":49,"value":3385}," skill.",{"type":43,"tag":368,"props":3387,"children":3388},{"style":438},[3389],{"type":49,"value":457},{"type":43,"tag":368,"props":3391,"children":3392},{"class":370,"line":1324},[3393],{"type":43,"tag":368,"props":3394,"children":3395},{"emptyLinePlaceholder":1219},[3396],{"type":49,"value":1222},{"type":43,"tag":368,"props":3398,"children":3399},{"class":370,"line":1371},[3400],{"type":43,"tag":368,"props":3401,"children":3402},{"style":449},[3403],{"type":49,"value":3404},"## Browse CLI Reference\n",{"type":43,"tag":368,"props":3406,"children":3407},{"class":370,"line":1404},[3408],{"type":43,"tag":368,"props":3409,"children":3410},{"style":449},[3411],{"type":49,"value":3412},"The inner agent uses the `browse` CLI. Key commands for this task:\n",{"type":43,"tag":368,"props":3414,"children":3415},{"class":370,"line":1412},[3416],{"type":43,"tag":368,"props":3417,"children":3418},{"style":449},[3419],{"type":49,"value":3420},"- `browse stop` — kill existing session (always run before switching to remote)\n",{"type":43,"tag":368,"props":3422,"children":3423},{"class":370,"line":1472},[3424,3429,3433,3438,3442],{"type":43,"tag":368,"props":3425,"children":3426},{"style":449},[3427],{"type":49,"value":3428},"- `browse open ",{"type":43,"tag":368,"props":3430,"children":3431},{"style":438},[3432],{"type":49,"value":441},{"type":43,"tag":368,"props":3434,"children":3435},{"style":3226},[3436],{"type":49,"value":3437},"url",{"type":43,"tag":368,"props":3439,"children":3440},{"style":438},[3441],{"type":49,"value":507},{"type":43,"tag":368,"props":3443,"children":3444},{"style":449},[3445],{"type":49,"value":3446}," --remote` — start a fresh Browserbase cloud session and navigate\n",{"type":43,"tag":368,"props":3448,"children":3449},{"class":370,"line":1503},[3450,3454,3458,3462,3466],{"type":43,"tag":368,"props":3451,"children":3452},{"style":449},[3453],{"type":49,"value":3428},{"type":43,"tag":368,"props":3455,"children":3456},{"style":438},[3457],{"type":49,"value":441},{"type":43,"tag":368,"props":3459,"children":3460},{"style":3226},[3461],{"type":49,"value":3437},{"type":43,"tag":368,"props":3463,"children":3464},{"style":438},[3465],{"type":49,"value":507},{"type":43,"tag":368,"props":3467,"children":3468},{"style":449},[3469],{"type":49,"value":3470}," --local` — start a clean local browser and navigate\n",{"type":43,"tag":368,"props":3472,"children":3473},{"class":370,"line":1528},[3474,3479,3483,3487,3491],{"type":43,"tag":368,"props":3475,"children":3476},{"style":449},[3477],{"type":49,"value":3478},"- `browse tab new ",{"type":43,"tag":368,"props":3480,"children":3481},{"style":438},[3482],{"type":49,"value":441},{"type":43,"tag":368,"props":3484,"children":3485},{"style":3226},[3486],{"type":49,"value":3437},{"type":43,"tag":368,"props":3488,"children":3489},{"style":438},[3490],{"type":49,"value":507},{"type":43,"tag":368,"props":3492,"children":3493},{"style":449},[3494],{"type":49,"value":3495},"` — open URL in a new tab\n",{"type":43,"tag":368,"props":3497,"children":3498},{"class":370,"line":1569},[3499],{"type":43,"tag":368,"props":3500,"children":3501},{"style":449},[3502],{"type":49,"value":3503},"- `browse wait load` — wait for page to finish loading\n",{"type":43,"tag":368,"props":3505,"children":3506},{"class":370,"line":1603},[3507,3512,3516,3521,3525],{"type":43,"tag":368,"props":3508,"children":3509},{"style":449},[3510],{"type":49,"value":3511},"- `browse wait timeout ",{"type":43,"tag":368,"props":3513,"children":3514},{"style":438},[3515],{"type":49,"value":441},{"type":43,"tag":368,"props":3517,"children":3518},{"style":3226},[3519],{"type":49,"value":3520},"ms",{"type":43,"tag":368,"props":3522,"children":3523},{"style":438},[3524],{"type":49,"value":507},{"type":43,"tag":368,"props":3526,"children":3527},{"style":449},[3528],{"type":49,"value":3529},"` — wait a fixed amount of time for spinners or animations\n",{"type":43,"tag":368,"props":3531,"children":3532},{"class":370,"line":1611},[3533,3538,3542,3547,3551],{"type":43,"tag":368,"props":3534,"children":3535},{"style":449},[3536],{"type":49,"value":3537},"- `browse wait selector \"",{"type":43,"tag":368,"props":3539,"children":3540},{"style":438},[3541],{"type":49,"value":441},{"type":43,"tag":368,"props":3543,"children":3544},{"style":3226},[3545],{"type":49,"value":3546},"selector",{"type":43,"tag":368,"props":3548,"children":3549},{"style":438},[3550],{"type":49,"value":507},{"type":43,"tag":368,"props":3552,"children":3553},{"style":449},[3554],{"type":49,"value":3555},"\"` — wait for an element to become visible\n",{"type":43,"tag":368,"props":3557,"children":3558},{"class":370,"line":1620},[3559],{"type":43,"tag":368,"props":3560,"children":3561},{"style":449},[3562],{"type":49,"value":3563},"- `browse get title` — verify you're on the right page\n",{"type":43,"tag":368,"props":3565,"children":3566},{"class":370,"line":1674},[3567],{"type":43,"tag":368,"props":3568,"children":3569},{"style":449},[3570],{"type":49,"value":3571},"- `browse get text body` — extract all visible text (preferred for content extraction)\n",{"type":43,"tag":368,"props":3573,"children":3574},{"class":370,"line":1688},[3575],{"type":43,"tag":368,"props":3576,"children":3577},{"style":449},[3578],{"type":49,"value":3579},"- `browse snapshot` — get accessibility tree; each node has a ref in `[X-Y]` format (e.g. `[0-5]`, `[2-147]`)\n",{"type":43,"tag":368,"props":3581,"children":3582},{"class":370,"line":1696},[3583],{"type":43,"tag":368,"props":3584,"children":3585},{"style":449},[3586],{"type":49,"value":3587},"- `browse click [X-Y]` — click element by ref from the latest snapshot (include the brackets)\n",{"type":43,"tag":368,"props":3589,"children":3590},{"class":370,"line":1705},[3591],{"type":43,"tag":368,"props":3592,"children":3593},{"emptyLinePlaceholder":1219},[3594],{"type":49,"value":1222},{"type":43,"tag":368,"props":3596,"children":3597},{"class":370,"line":1714},[3598,3603,3607,3611,3615],{"type":43,"tag":368,"props":3599,"children":3600},{"style":449},[3601],{"type":49,"value":3602},"**Never use `--session ",{"type":43,"tag":368,"props":3604,"children":3605},{"style":438},[3606],{"type":49,"value":441},{"type":43,"tag":368,"props":3608,"children":3609},{"style":3226},[3610],{"type":49,"value":3229},{"type":43,"tag":368,"props":3612,"children":3613},{"style":438},[3614],{"type":49,"value":507},{"type":43,"tag":368,"props":3616,"children":3617},{"style":449},[3618],{"type":49,"value":3619},"` flags in SKILL.md.** Named sessions are a parallel-run workaround — they contaminate skills with infrastructure concerns. Skills must work in isolation with the default session.\n",{"type":43,"tag":368,"props":3621,"children":3622},{"class":370,"line":1742},[3623],{"type":43,"tag":368,"props":3624,"children":3625},{"emptyLinePlaceholder":1219},[3626],{"type":49,"value":1222},{"type":43,"tag":368,"props":3628,"children":3629},{"class":370,"line":1788},[3630],{"type":43,"tag":368,"props":3631,"children":3632},{"style":449},[3633],{"type":49,"value":3634},"## Workflow\n",{"type":43,"tag":368,"props":3636,"children":3637},{"class":370,"line":1827},[3638],{"type":43,"tag":368,"props":3639,"children":3640},{"emptyLinePlaceholder":1219},[3641],{"type":49,"value":1222},{"type":43,"tag":368,"props":3643,"children":3644},{"class":370,"line":1835},[3645],{"type":43,"tag":368,"props":3646,"children":3647},{"style":449},[3648],{"type":49,"value":3649},"### Step 1 — Start session\n",{"type":43,"tag":368,"props":3651,"children":3652},{"class":370,"line":1844},[3653,3657,3662,3667,3672,3677,3682],{"type":43,"tag":368,"props":3654,"children":3655},{"style":438},[3656],{"type":49,"value":441},{"type":43,"tag":368,"props":3658,"children":3659},{"style":3226},[3660],{"type":49,"value":3661},"exact",{"type":43,"tag":368,"props":3663,"children":3664},{"style":1532},[3665],{"type":49,"value":3666}," browse",{"type":43,"tag":368,"props":3668,"children":3669},{"style":1532},[3670],{"type":49,"value":3671}," commands",{"type":43,"tag":368,"props":3673,"children":3674},{"style":1532},[3675],{"type":49,"value":3676}," in",{"type":43,"tag":368,"props":3678,"children":3679},{"style":1532},[3680],{"type":49,"value":3681}," order",{"type":43,"tag":368,"props":3683,"children":3684},{"style":438},[3685],{"type":49,"value":457},{"type":43,"tag":368,"props":3687,"children":3688},{"class":370,"line":1853},[3689],{"type":43,"tag":368,"props":3690,"children":3691},{"emptyLinePlaceholder":1219},[3692],{"type":49,"value":1222},{"type":43,"tag":368,"props":3694,"children":3695},{"class":370,"line":1862},[3696],{"type":43,"tag":368,"props":3697,"children":3698},{"style":449},[3699],{"type":49,"value":3700},"### Step 2 — Navigate\n",{"type":43,"tag":368,"props":3702,"children":3703},{"class":370,"line":1899},[3704,3708,3712,3717,3722,3727,3732],{"type":43,"tag":368,"props":3705,"children":3706},{"style":438},[3707],{"type":49,"value":441},{"type":43,"tag":368,"props":3709,"children":3710},{"style":3226},[3711],{"type":49,"value":3661},{"type":43,"tag":368,"props":3713,"children":3714},{"style":1532},[3715],{"type":49,"value":3716}," URL",{"type":43,"tag":368,"props":3718,"children":3719},{"style":1532},[3720],{"type":49,"value":3721}," and",{"type":43,"tag":368,"props":3723,"children":3724},{"style":1532},[3725],{"type":49,"value":3726}," verification",{"type":43,"tag":368,"props":3728,"children":3729},{"style":1532},[3730],{"type":49,"value":3731}," steps",{"type":43,"tag":368,"props":3733,"children":3734},{"style":438},[3735],{"type":49,"value":457},{"type":43,"tag":368,"props":3737,"children":3738},{"class":370,"line":1936},[3739],{"type":43,"tag":368,"props":3740,"children":3741},{"emptyLinePlaceholder":1219},[3742],{"type":49,"value":1222},{"type":43,"tag":368,"props":3744,"children":3745},{"class":370,"line":1965},[3746],{"type":43,"tag":368,"props":3747,"children":3748},{"style":449},[3749],{"type":49,"value":3750},"### Step 3 — Extract\n",{"type":43,"tag":368,"props":3752,"children":3753},{"class":370,"line":1990},[3754,3758,3762,3767,3771],{"type":43,"tag":368,"props":3755,"children":3756},{"style":438},[3757],{"type":49,"value":441},{"type":43,"tag":368,"props":3759,"children":3760},{"style":3226},[3761],{"type":49,"value":3661},{"type":43,"tag":368,"props":3763,"children":3764},{"style":1532},[3765],{"type":49,"value":3766}," extraction",{"type":43,"tag":368,"props":3768,"children":3769},{"style":1532},[3770],{"type":49,"value":3671},{"type":43,"tag":368,"props":3772,"children":3773},{"style":438},[3774],{"type":49,"value":457},{"type":43,"tag":368,"props":3776,"children":3777},{"class":370,"line":2021},[3778],{"type":43,"tag":368,"props":3779,"children":3780},{"emptyLinePlaceholder":1219},[3781],{"type":49,"value":1222},{"type":43,"tag":368,"props":3783,"children":3784},{"class":370,"line":2029},[3785],{"type":43,"tag":368,"props":3786,"children":3787},{"style":449},[3788],{"type":49,"value":3789},"### Step 4 — Output\n",{"type":43,"tag":368,"props":3791,"children":3792},{"class":370,"line":2038},[3793,3797,3802,3807,3812,3817,3822,3827,3832,3837],{"type":43,"tag":368,"props":3794,"children":3795},{"style":438},[3796],{"type":49,"value":441},{"type":43,"tag":368,"props":3798,"children":3799},{"style":3226},[3800],{"type":49,"value":3801},"what",{"type":43,"tag":368,"props":3803,"children":3804},{"style":1532},[3805],{"type":49,"value":3806}," JSON",{"type":43,"tag":368,"props":3808,"children":3809},{"style":1532},[3810],{"type":49,"value":3811}," to",{"type":43,"tag":368,"props":3813,"children":3814},{"style":1532},[3815],{"type":49,"value":3816}," emit,",{"type":43,"tag":368,"props":3818,"children":3819},{"style":1532},[3820],{"type":49,"value":3821}," referencing",{"type":43,"tag":368,"props":3823,"children":3824},{"style":1532},[3825],{"type":49,"value":3826}," the",{"type":43,"tag":368,"props":3828,"children":3829},{"style":1532},[3830],{"type":49,"value":3831}," schema",{"type":43,"tag":368,"props":3833,"children":3834},{"style":1532},[3835],{"type":49,"value":3836}," below",{"type":43,"tag":368,"props":3838,"children":3839},{"style":438},[3840],{"type":49,"value":457},{"type":43,"tag":368,"props":3842,"children":3844},{"class":370,"line":3843},43,[3845],{"type":43,"tag":368,"props":3846,"children":3847},{"emptyLinePlaceholder":1219},[3848],{"type":49,"value":1222},{"type":43,"tag":368,"props":3850,"children":3852},{"class":370,"line":3851},44,[3853],{"type":43,"tag":368,"props":3854,"children":3855},{"style":449},[3856],{"type":49,"value":3857},"## Site-Specific Gotchas\n",{"type":43,"tag":368,"props":3859,"children":3861},{"class":370,"line":3860},45,[3862,3866,3871,3876,3881,3886,3891,3896,3901,3905,3910,3915,3920,3924,3929,3934,3938,3942,3946],{"type":43,"tag":368,"props":3863,"children":3864},{"style":438},[3865],{"type":49,"value":441},{"type":43,"tag":368,"props":3867,"children":3868},{"style":3226},[3869],{"type":49,"value":3870},"Bullet",{"type":43,"tag":368,"props":3872,"children":3873},{"style":1532},[3874],{"type":49,"value":3875}," list",{"type":43,"tag":368,"props":3877,"children":3878},{"style":1532},[3879],{"type":49,"value":3880}," of",{"type":43,"tag":368,"props":3882,"children":3883},{"style":1532},[3884],{"type":49,"value":3885}," every",{"type":43,"tag":368,"props":3887,"children":3888},{"style":1532},[3889],{"type":49,"value":3890}," hard-won",{"type":43,"tag":368,"props":3892,"children":3893},{"style":1532},[3894],{"type":49,"value":3895}," heuristic",{"type":43,"tag":368,"props":3897,"children":3898},{"style":1532},[3899],{"type":49,"value":3900}," from",{"type":43,"tag":368,"props":3902,"children":3903},{"style":1532},[3904],{"type":49,"value":3826},{"type":43,"tag":368,"props":3906,"children":3907},{"style":1532},[3908],{"type":49,"value":3909}," iterations.",{"type":43,"tag":368,"props":3911,"children":3912},{"style":1532},[3913],{"type":49,"value":3914}," This",{"type":43,"tag":368,"props":3916,"children":3917},{"style":1532},[3918],{"type":49,"value":3919}," is",{"type":43,"tag":368,"props":3921,"children":3922},{"style":1532},[3923],{"type":49,"value":3826},{"type":43,"tag":368,"props":3925,"children":3926},{"style":1532},[3927],{"type":49,"value":3928}," core",{"type":43,"tag":368,"props":3930,"children":3931},{"style":1532},[3932],{"type":49,"value":3933}," value",{"type":43,"tag":368,"props":3935,"children":3936},{"style":1532},[3937],{"type":49,"value":3880},{"type":43,"tag":368,"props":3939,"children":3940},{"style":1532},[3941],{"type":49,"value":3826},{"type":43,"tag":368,"props":3943,"children":3944},{"style":1532},[3945],{"type":49,"value":3385},{"type":43,"tag":368,"props":3947,"children":3948},{"style":438},[3949],{"type":49,"value":457},{"type":43,"tag":368,"props":3951,"children":3953},{"class":370,"line":3952},46,[3954],{"type":43,"tag":368,"props":3955,"children":3956},{"emptyLinePlaceholder":1219},[3957],{"type":49,"value":1222},{"type":43,"tag":368,"props":3959,"children":3961},{"class":370,"line":3960},47,[3962],{"type":43,"tag":368,"props":3963,"children":3964},{"style":449},[3965],{"type":49,"value":3966},"## Failure Recovery\n",{"type":43,"tag":368,"props":3968,"children":3970},{"class":370,"line":3969},48,[3971,3975,3980,3984,3989,3994,3999,4004,4009,4013,4018,4023,4027,4032,4037],{"type":43,"tag":368,"props":3972,"children":3973},{"style":438},[3974],{"type":49,"value":441},{"type":43,"tag":368,"props":3976,"children":3977},{"style":3226},[3978],{"type":49,"value":3979},"What",{"type":43,"tag":368,"props":3981,"children":3982},{"style":1532},[3983],{"type":49,"value":3811},{"type":43,"tag":368,"props":3985,"children":3986},{"style":1532},[3987],{"type":49,"value":3988}," do",{"type":43,"tag":368,"props":3990,"children":3991},{"style":1532},[3992],{"type":49,"value":3993}," when",{"type":43,"tag":368,"props":3995,"children":3996},{"style":1532},[3997],{"type":49,"value":3998}," navigation",{"type":43,"tag":368,"props":4000,"children":4001},{"style":1532},[4002],{"type":49,"value":4003}," fails,",{"type":43,"tag":368,"props":4005,"children":4006},{"style":1532},[4007],{"type":49,"value":4008}," session",{"type":43,"tag":368,"props":4010,"children":4011},{"style":1532},[4012],{"type":49,"value":3919},{"type":43,"tag":368,"props":4014,"children":4015},{"style":1532},[4016],{"type":49,"value":4017}," contaminated,",{"type":43,"tag":368,"props":4019,"children":4020},{"style":1532},[4021],{"type":49,"value":4022}," or",{"type":43,"tag":368,"props":4024,"children":4025},{"style":1532},[4026],{"type":49,"value":3766},{"type":43,"tag":368,"props":4028,"children":4029},{"style":1532},[4030],{"type":49,"value":4031}," returns",{"type":43,"tag":368,"props":4033,"children":4034},{"style":1532},[4035],{"type":49,"value":4036}," garbage",{"type":43,"tag":368,"props":4038,"children":4039},{"style":438},[4040],{"type":49,"value":457},{"type":43,"tag":368,"props":4042,"children":4044},{"class":370,"line":4043},49,[4045],{"type":43,"tag":368,"props":4046,"children":4047},{"emptyLinePlaceholder":1219},[4048],{"type":49,"value":1222},{"type":43,"tag":368,"props":4050,"children":4052},{"class":370,"line":4051},50,[4053],{"type":43,"tag":368,"props":4054,"children":4055},{"style":449},[4056],{"type":49,"value":4057},"## Expected Output\n",{"type":43,"tag":368,"props":4059,"children":4061},{"class":370,"line":4060},51,[4062],{"type":43,"tag":368,"props":4063,"children":4064},{"style":449},[4065],{"type":49,"value":4066},"```json\n",{"type":43,"tag":368,"props":4068,"children":4070},{"class":370,"line":4069},52,[4071,4075,4080,4084,4089,4094,4099,4103,4107,4112],{"type":43,"tag":368,"props":4072,"children":4073},{"style":438},[4074],{"type":49,"value":441},{"type":43,"tag":368,"props":4076,"children":4077},{"style":3226},[4078],{"type":49,"value":4079},"paste",{"type":43,"tag":368,"props":4081,"children":4082},{"style":1532},[4083],{"type":49,"value":3826},{"type":43,"tag":368,"props":4085,"children":4086},{"style":1532},[4087],{"type":49,"value":4088}," exact",{"type":43,"tag":368,"props":4090,"children":4091},{"style":1532},[4092],{"type":49,"value":4093}," expected",{"type":43,"tag":368,"props":4095,"children":4096},{"style":1532},[4097],{"type":49,"value":4098}," output",{"type":43,"tag":368,"props":4100,"children":4101},{"style":1532},[4102],{"type":49,"value":3831},{"type":43,"tag":368,"props":4104,"children":4105},{"style":1532},[4106],{"type":49,"value":3900},{"type":43,"tag":368,"props":4108,"children":4109},{"style":1532},[4110],{"type":49,"value":4111}," task.md",{"type":43,"tag":368,"props":4113,"children":4114},{"style":438},[4115],{"type":49,"value":457},{"type":43,"tag":87,"props":4117,"children":4120},{"className":4118,"code":4119,"language":49},[90],"\nAfter writing the SKILL.md, confirm it's installed:\n```bash\nls ~\u002F.claude\u002Fskills\u002F\u003Ctask-name>\u002FSKILL.md\n",[4121],{"type":43,"tag":58,"props":4122,"children":4123},{"__ignoreMap":95},[4124],{"type":49,"value":4119},{"type":43,"tag":52,"props":4126,"children":4127},{},[4128,4130,4136],{"type":49,"value":4129},"The skill is now available as ",{"type":43,"tag":58,"props":4131,"children":4133},{"className":4132},[],[4134],{"type":49,"value":4135},"\u002F\u003Ctask-name>",{"type":49,"value":4137}," in Claude Code.",{"type":43,"tag":209,"props":4139,"children":4140},{},[],{"type":43,"tag":75,"props":4142,"children":4144},{"id":4143},"final-report-multi-task-mode",[4145],{"type":49,"value":4146},"Final report (multi-task mode)",{"type":43,"tag":52,"props":4148,"children":4149},{},[4150],{"type":49,"value":4151},"After all sub-agents complete, print a markdown table:",{"type":43,"tag":2300,"props":4153,"children":4154},{},[4155,4185],{"type":43,"tag":2304,"props":4156,"children":4157},{},[4158],{"type":43,"tag":2308,"props":4159,"children":4160},{},[4161,4165,4170,4175,4180],{"type":43,"tag":2312,"props":4162,"children":4163},{},[4164],{"type":49,"value":3282},{"type":43,"tag":2312,"props":4166,"children":4167},{},[4168],{"type":49,"value":4169},"Iterations",{"type":43,"tag":2312,"props":4171,"children":4172},{},[4173],{"type":49,"value":4174},"Final Status",{"type":43,"tag":2312,"props":4176,"children":4177},{},[4178],{"type":49,"value":4179},"Graduated",{"type":43,"tag":2312,"props":4181,"children":4182},{},[4183],{"type":49,"value":4184},"Cost",{"type":43,"tag":2323,"props":4186,"children":4187},{},[4188,4216],{"type":43,"tag":2308,"props":4189,"children":4190},{},[4191,4196,4201,4206,4211],{"type":43,"tag":2330,"props":4192,"children":4193},{},[4194],{"type":49,"value":4195},"google-flights",{"type":43,"tag":2330,"props":4197,"children":4198},{},[4199],{"type":49,"value":4200},"5",{"type":43,"tag":2330,"props":4202,"children":4203},{},[4204],{"type":49,"value":4205},"✅ pass",{"type":43,"tag":2330,"props":4207,"children":4208},{},[4209],{"type":49,"value":4210},"yes",{"type":43,"tag":2330,"props":4212,"children":4213},{},[4214],{"type":49,"value":4215},"$0.42",{"type":43,"tag":2308,"props":4217,"children":4218},{},[4219,4224,4228,4233,4238],{"type":43,"tag":2330,"props":4220,"children":4221},{},[4222],{"type":49,"value":4223},"amazon-add-to-cart",{"type":43,"tag":2330,"props":4225,"children":4226},{},[4227],{"type":49,"value":4200},{"type":43,"tag":2330,"props":4229,"children":4230},{},[4231],{"type":49,"value":4232},"❌ fail",{"type":43,"tag":2330,"props":4234,"children":4235},{},[4236],{"type":49,"value":4237},"no",{"type":43,"tag":2330,"props":4239,"children":4240},{},[4241],{"type":49,"value":4242},"$1.20",{"type":43,"tag":52,"props":4244,"children":4245},{},[4246,4248,4254],{"type":49,"value":4247},"Then write a persistent session report to ",{"type":43,"tag":58,"props":4249,"children":4251},{"className":4250},[],[4252],{"type":49,"value":4253},".\u002Fautobrowse\u002Freports\u002F",{"type":49,"value":4255}," so there's a durable record of the run inside the workspace:",{"type":43,"tag":87,"props":4257,"children":4259},{"className":360,"code":4258,"language":362,"meta":95,"style":95},"mkdir -p .\u002Fautobrowse\u002Freports\n",[4260],{"type":43,"tag":58,"props":4261,"children":4262},{"__ignoreMap":95},[4263],{"type":43,"tag":368,"props":4264,"children":4265},{"class":370,"line":371},[4266,4270,4274],{"type":43,"tag":368,"props":4267,"children":4268},{"style":375},[4269],{"type":49,"value":378},{"type":43,"tag":368,"props":4271,"children":4272},{"style":381},[4273],{"type":49,"value":384},{"type":43,"tag":368,"props":4275,"children":4276},{"style":381},[4277],{"type":49,"value":399},{"type":43,"tag":52,"props":4279,"children":4280},{},[4281,4283,4289],{"type":49,"value":4282},"Write the file ",{"type":43,"tag":58,"props":4284,"children":4286},{"className":4285},[],[4287],{"type":49,"value":4288},".\u002Fautobrowse\u002Freports\u002FYYYY-MM-DD-HH-MM-\u003Ctasks>.md",{"type":49,"value":4290}," with:",{"type":43,"tag":87,"props":4292,"children":4294},{"className":3206,"code":4293,"language":3208,"meta":95,"style":95},"# AutoBrowse Session Report\n**Date:** \u003CISO date>\n**Tasks:** \u003Ccomma-separated list>\n**Environment:** remote|local\n**Total cost:** $X.XX\n\n## Results\n\n| Task | Iterations | Pass Rate | Final Status | Graduated | Cost |\n|------|-----------|-----------|--------------|-----------|------|\n| ... | ... | X\u002F5 | ✅\u002F❌ | yes\u002Fno | $X.XX |\n\n## Per-Task Learnings\n\n### \u003Ctask-name>\n- **Key insight 1:** \u003Cwhat the agent learned>\n- **Key insight 2:** \u003Canother heuristic>\n- **Failure mode fixed:** \u003Cwhat was failing and how it was resolved>\n\n## Iteration Log\n\n### \u003Ctask-name>\n| Iter | Turns | Cost | Status | Hypothesis tested |\n|------|-------|------|--------|-------------------|\n| 1 | 79 | $18.75 | ❌ fail | baseline |\n| 2 | 9 | $0.26 | ✅ pass | session contamination fix |\n| ... | ... | ... | ... | ... |\n",[4295],{"type":43,"tag":58,"props":4296,"children":4297},{"__ignoreMap":95},[4298,4311,4348,4381,4402,4423,4430,4442,4449,4512,4520,4580,4587,4599,4606,4623,4671,4708,4773,4780,4792,4799,4814,4865,4873,4925,4977],{"type":43,"tag":368,"props":4299,"children":4300},{"class":370,"line":371},[4301,4306],{"type":43,"tag":368,"props":4302,"children":4303},{"style":438},[4304],{"type":49,"value":4305},"# ",{"type":43,"tag":368,"props":4307,"children":4308},{"style":375},[4309],{"type":49,"value":4310},"AutoBrowse Session Report\n",{"type":43,"tag":368,"props":4312,"children":4313},{"class":370,"line":460},[4314,4320,4326,4330,4334,4339,4344],{"type":43,"tag":368,"props":4315,"children":4317},{"style":4316},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[4318],{"type":49,"value":4319},"**",{"type":43,"tag":368,"props":4321,"children":4323},{"style":4322},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[4324],{"type":49,"value":4325},"Date:",{"type":43,"tag":368,"props":4327,"children":4328},{"style":4316},[4329],{"type":49,"value":4319},{"type":43,"tag":368,"props":4331,"children":4332},{"style":438},[4333],{"type":49,"value":827},{"type":43,"tag":368,"props":4335,"children":4336},{"style":3226},[4337],{"type":49,"value":4338},"ISO",{"type":43,"tag":368,"props":4340,"children":4341},{"style":1532},[4342],{"type":49,"value":4343}," date",{"type":43,"tag":368,"props":4345,"children":4346},{"style":438},[4347],{"type":49,"value":457},{"type":43,"tag":368,"props":4349,"children":4350},{"class":370,"line":515},[4351,4355,4360,4364,4368,4373,4377],{"type":43,"tag":368,"props":4352,"children":4353},{"style":4316},[4354],{"type":49,"value":4319},{"type":43,"tag":368,"props":4356,"children":4357},{"style":4322},[4358],{"type":49,"value":4359},"Tasks:",{"type":43,"tag":368,"props":4361,"children":4362},{"style":4316},[4363],{"type":49,"value":4319},{"type":43,"tag":368,"props":4365,"children":4366},{"style":438},[4367],{"type":49,"value":827},{"type":43,"tag":368,"props":4369,"children":4370},{"style":3226},[4371],{"type":49,"value":4372},"comma-separated",{"type":43,"tag":368,"props":4374,"children":4375},{"style":1532},[4376],{"type":49,"value":3875},{"type":43,"tag":368,"props":4378,"children":4379},{"style":438},[4380],{"type":49,"value":457},{"type":43,"tag":368,"props":4382,"children":4383},{"class":370,"line":1105},[4384,4388,4393,4397],{"type":43,"tag":368,"props":4385,"children":4386},{"style":4316},[4387],{"type":49,"value":4319},{"type":43,"tag":368,"props":4389,"children":4390},{"style":4322},[4391],{"type":49,"value":4392},"Environment:",{"type":43,"tag":368,"props":4394,"children":4395},{"style":4316},[4396],{"type":49,"value":4319},{"type":43,"tag":368,"props":4398,"children":4399},{"style":449},[4400],{"type":49,"value":4401}," remote|local\n",{"type":43,"tag":368,"props":4403,"children":4404},{"class":370,"line":1141},[4405,4409,4414,4418],{"type":43,"tag":368,"props":4406,"children":4407},{"style":4316},[4408],{"type":49,"value":4319},{"type":43,"tag":368,"props":4410,"children":4411},{"style":4322},[4412],{"type":49,"value":4413},"Total cost:",{"type":43,"tag":368,"props":4415,"children":4416},{"style":4316},[4417],{"type":49,"value":4319},{"type":43,"tag":368,"props":4419,"children":4420},{"style":449},[4421],{"type":49,"value":4422}," $X.XX\n",{"type":43,"tag":368,"props":4424,"children":4425},{"class":370,"line":1166},[4426],{"type":43,"tag":368,"props":4427,"children":4428},{"emptyLinePlaceholder":1219},[4429],{"type":49,"value":1222},{"type":43,"tag":368,"props":4431,"children":4432},{"class":370,"line":1191},[4433,4437],{"type":43,"tag":368,"props":4434,"children":4435},{"style":438},[4436],{"type":49,"value":3311},{"type":43,"tag":368,"props":4438,"children":4439},{"style":375},[4440],{"type":49,"value":4441},"Results\n",{"type":43,"tag":368,"props":4443,"children":4444},{"class":370,"line":1206},[4445],{"type":43,"tag":368,"props":4446,"children":4447},{"emptyLinePlaceholder":1219},[4448],{"type":49,"value":1222},{"type":43,"tag":368,"props":4450,"children":4451},{"class":370,"line":1215},[4452,4457,4462,4466,4471,4475,4480,4484,4489,4493,4498,4502,4507],{"type":43,"tag":368,"props":4453,"children":4454},{"style":438},[4455],{"type":49,"value":4456},"|",{"type":43,"tag":368,"props":4458,"children":4459},{"style":449},[4460],{"type":49,"value":4461}," Task ",{"type":43,"tag":368,"props":4463,"children":4464},{"style":438},[4465],{"type":49,"value":4456},{"type":43,"tag":368,"props":4467,"children":4468},{"style":449},[4469],{"type":49,"value":4470}," Iterations ",{"type":43,"tag":368,"props":4472,"children":4473},{"style":438},[4474],{"type":49,"value":4456},{"type":43,"tag":368,"props":4476,"children":4477},{"style":449},[4478],{"type":49,"value":4479}," Pass Rate ",{"type":43,"tag":368,"props":4481,"children":4482},{"style":438},[4483],{"type":49,"value":4456},{"type":43,"tag":368,"props":4485,"children":4486},{"style":449},[4487],{"type":49,"value":4488}," Final Status ",{"type":43,"tag":368,"props":4490,"children":4491},{"style":438},[4492],{"type":49,"value":4456},{"type":43,"tag":368,"props":4494,"children":4495},{"style":449},[4496],{"type":49,"value":4497}," Graduated ",{"type":43,"tag":368,"props":4499,"children":4500},{"style":438},[4501],{"type":49,"value":4456},{"type":43,"tag":368,"props":4503,"children":4504},{"style":449},[4505],{"type":49,"value":4506}," Cost ",{"type":43,"tag":368,"props":4508,"children":4509},{"style":438},[4510],{"type":49,"value":4511},"|\n",{"type":43,"tag":368,"props":4513,"children":4514},{"class":370,"line":1225},[4515],{"type":43,"tag":368,"props":4516,"children":4517},{"style":438},[4518],{"type":49,"value":4519},"|------|-----------|-----------|--------------|-----------|------|\n",{"type":43,"tag":368,"props":4521,"children":4522},{"class":370,"line":1234},[4523,4527,4532,4536,4540,4544,4549,4553,4558,4562,4567,4571,4576],{"type":43,"tag":368,"props":4524,"children":4525},{"style":438},[4526],{"type":49,"value":4456},{"type":43,"tag":368,"props":4528,"children":4529},{"style":449},[4530],{"type":49,"value":4531}," ... ",{"type":43,"tag":368,"props":4533,"children":4534},{"style":438},[4535],{"type":49,"value":4456},{"type":43,"tag":368,"props":4537,"children":4538},{"style":449},[4539],{"type":49,"value":4531},{"type":43,"tag":368,"props":4541,"children":4542},{"style":438},[4543],{"type":49,"value":4456},{"type":43,"tag":368,"props":4545,"children":4546},{"style":449},[4547],{"type":49,"value":4548}," X\u002F5 ",{"type":43,"tag":368,"props":4550,"children":4551},{"style":438},[4552],{"type":49,"value":4456},{"type":43,"tag":368,"props":4554,"children":4555},{"style":449},[4556],{"type":49,"value":4557}," ✅\u002F❌ ",{"type":43,"tag":368,"props":4559,"children":4560},{"style":438},[4561],{"type":49,"value":4456},{"type":43,"tag":368,"props":4563,"children":4564},{"style":449},[4565],{"type":49,"value":4566}," yes\u002Fno ",{"type":43,"tag":368,"props":4568,"children":4569},{"style":438},[4570],{"type":49,"value":4456},{"type":43,"tag":368,"props":4572,"children":4573},{"style":449},[4574],{"type":49,"value":4575}," $X.XX ",{"type":43,"tag":368,"props":4577,"children":4578},{"style":438},[4579],{"type":49,"value":4511},{"type":43,"tag":368,"props":4581,"children":4582},{"class":370,"line":1287},[4583],{"type":43,"tag":368,"props":4584,"children":4585},{"emptyLinePlaceholder":1219},[4586],{"type":49,"value":1222},{"type":43,"tag":368,"props":4588,"children":4589},{"class":370,"line":1324},[4590,4594],{"type":43,"tag":368,"props":4591,"children":4592},{"style":438},[4593],{"type":49,"value":3311},{"type":43,"tag":368,"props":4595,"children":4596},{"style":375},[4597],{"type":49,"value":4598},"Per-Task Learnings\n",{"type":43,"tag":368,"props":4600,"children":4601},{"class":370,"line":1371},[4602],{"type":43,"tag":368,"props":4603,"children":4604},{"emptyLinePlaceholder":1219},[4605],{"type":49,"value":1222},{"type":43,"tag":368,"props":4607,"children":4608},{"class":370,"line":1404},[4609,4614,4619],{"type":43,"tag":368,"props":4610,"children":4611},{"style":438},[4612],{"type":49,"value":4613},"### \u003C",{"type":43,"tag":368,"props":4615,"children":4616},{"style":3226},[4617],{"type":49,"value":4618},"task-name",{"type":43,"tag":368,"props":4620,"children":4621},{"style":438},[4622],{"type":49,"value":457},{"type":43,"tag":368,"props":4624,"children":4625},{"class":370,"line":1412},[4626,4631,4636,4641,4645,4649,4653,4657,4662,4667],{"type":43,"tag":368,"props":4627,"children":4628},{"style":438},[4629],{"type":49,"value":4630},"-",{"type":43,"tag":368,"props":4632,"children":4633},{"style":4316},[4634],{"type":49,"value":4635}," **",{"type":43,"tag":368,"props":4637,"children":4638},{"style":4322},[4639],{"type":49,"value":4640},"Key insight 1:",{"type":43,"tag":368,"props":4642,"children":4643},{"style":4316},[4644],{"type":49,"value":4319},{"type":43,"tag":368,"props":4646,"children":4647},{"style":438},[4648],{"type":49,"value":827},{"type":43,"tag":368,"props":4650,"children":4651},{"style":3226},[4652],{"type":49,"value":3801},{"type":43,"tag":368,"props":4654,"children":4655},{"style":1532},[4656],{"type":49,"value":3826},{"type":43,"tag":368,"props":4658,"children":4659},{"style":1532},[4660],{"type":49,"value":4661}," agent",{"type":43,"tag":368,"props":4663,"children":4664},{"style":1532},[4665],{"type":49,"value":4666}," learned",{"type":43,"tag":368,"props":4668,"children":4669},{"style":438},[4670],{"type":49,"value":457},{"type":43,"tag":368,"props":4672,"children":4673},{"class":370,"line":1472},[4674,4678,4682,4687,4691,4695,4700,4704],{"type":43,"tag":368,"props":4675,"children":4676},{"style":438},[4677],{"type":49,"value":4630},{"type":43,"tag":368,"props":4679,"children":4680},{"style":4316},[4681],{"type":49,"value":4635},{"type":43,"tag":368,"props":4683,"children":4684},{"style":4322},[4685],{"type":49,"value":4686},"Key insight 2:",{"type":43,"tag":368,"props":4688,"children":4689},{"style":4316},[4690],{"type":49,"value":4319},{"type":43,"tag":368,"props":4692,"children":4693},{"style":438},[4694],{"type":49,"value":827},{"type":43,"tag":368,"props":4696,"children":4697},{"style":3226},[4698],{"type":49,"value":4699},"another",{"type":43,"tag":368,"props":4701,"children":4702},{"style":1532},[4703],{"type":49,"value":3895},{"type":43,"tag":368,"props":4705,"children":4706},{"style":438},[4707],{"type":49,"value":457},{"type":43,"tag":368,"props":4709,"children":4710},{"class":370,"line":1503},[4711,4715,4719,4724,4728,4732,4736,4741,4746,4750,4755,4760,4764,4769],{"type":43,"tag":368,"props":4712,"children":4713},{"style":438},[4714],{"type":49,"value":4630},{"type":43,"tag":368,"props":4716,"children":4717},{"style":4316},[4718],{"type":49,"value":4635},{"type":43,"tag":368,"props":4720,"children":4721},{"style":4322},[4722],{"type":49,"value":4723},"Failure mode fixed:",{"type":43,"tag":368,"props":4725,"children":4726},{"style":4316},[4727],{"type":49,"value":4319},{"type":43,"tag":368,"props":4729,"children":4730},{"style":438},[4731],{"type":49,"value":827},{"type":43,"tag":368,"props":4733,"children":4734},{"style":3226},[4735],{"type":49,"value":3801},{"type":43,"tag":368,"props":4737,"children":4738},{"style":1532},[4739],{"type":49,"value":4740}," was",{"type":43,"tag":368,"props":4742,"children":4743},{"style":1532},[4744],{"type":49,"value":4745}," failing",{"type":43,"tag":368,"props":4747,"children":4748},{"style":1532},[4749],{"type":49,"value":3721},{"type":43,"tag":368,"props":4751,"children":4752},{"style":1532},[4753],{"type":49,"value":4754}," how",{"type":43,"tag":368,"props":4756,"children":4757},{"style":1532},[4758],{"type":49,"value":4759}," it",{"type":43,"tag":368,"props":4761,"children":4762},{"style":1532},[4763],{"type":49,"value":4740},{"type":43,"tag":368,"props":4765,"children":4766},{"style":1532},[4767],{"type":49,"value":4768}," resolved",{"type":43,"tag":368,"props":4770,"children":4771},{"style":438},[4772],{"type":49,"value":457},{"type":43,"tag":368,"props":4774,"children":4775},{"class":370,"line":1528},[4776],{"type":43,"tag":368,"props":4777,"children":4778},{"emptyLinePlaceholder":1219},[4779],{"type":49,"value":1222},{"type":43,"tag":368,"props":4781,"children":4782},{"class":370,"line":1569},[4783,4787],{"type":43,"tag":368,"props":4784,"children":4785},{"style":438},[4786],{"type":49,"value":3311},{"type":43,"tag":368,"props":4788,"children":4789},{"style":375},[4790],{"type":49,"value":4791},"Iteration Log\n",{"type":43,"tag":368,"props":4793,"children":4794},{"class":370,"line":1603},[4795],{"type":43,"tag":368,"props":4796,"children":4797},{"emptyLinePlaceholder":1219},[4798],{"type":49,"value":1222},{"type":43,"tag":368,"props":4800,"children":4801},{"class":370,"line":1611},[4802,4806,4810],{"type":43,"tag":368,"props":4803,"children":4804},{"style":438},[4805],{"type":49,"value":4613},{"type":43,"tag":368,"props":4807,"children":4808},{"style":3226},[4809],{"type":49,"value":4618},{"type":43,"tag":368,"props":4811,"children":4812},{"style":438},[4813],{"type":49,"value":457},{"type":43,"tag":368,"props":4815,"children":4816},{"class":370,"line":1620},[4817,4821,4826,4830,4835,4839,4843,4847,4852,4856,4861],{"type":43,"tag":368,"props":4818,"children":4819},{"style":438},[4820],{"type":49,"value":4456},{"type":43,"tag":368,"props":4822,"children":4823},{"style":449},[4824],{"type":49,"value":4825}," Iter ",{"type":43,"tag":368,"props":4827,"children":4828},{"style":438},[4829],{"type":49,"value":4456},{"type":43,"tag":368,"props":4831,"children":4832},{"style":449},[4833],{"type":49,"value":4834}," Turns ",{"type":43,"tag":368,"props":4836,"children":4837},{"style":438},[4838],{"type":49,"value":4456},{"type":43,"tag":368,"props":4840,"children":4841},{"style":449},[4842],{"type":49,"value":4506},{"type":43,"tag":368,"props":4844,"children":4845},{"style":438},[4846],{"type":49,"value":4456},{"type":43,"tag":368,"props":4848,"children":4849},{"style":449},[4850],{"type":49,"value":4851}," Status ",{"type":43,"tag":368,"props":4853,"children":4854},{"style":438},[4855],{"type":49,"value":4456},{"type":43,"tag":368,"props":4857,"children":4858},{"style":449},[4859],{"type":49,"value":4860}," Hypothesis tested ",{"type":43,"tag":368,"props":4862,"children":4863},{"style":438},[4864],{"type":49,"value":4511},{"type":43,"tag":368,"props":4866,"children":4867},{"class":370,"line":1674},[4868],{"type":43,"tag":368,"props":4869,"children":4870},{"style":438},[4871],{"type":49,"value":4872},"|------|-------|------|--------|-------------------|\n",{"type":43,"tag":368,"props":4874,"children":4875},{"class":370,"line":1688},[4876,4880,4885,4889,4894,4898,4903,4907,4912,4916,4921],{"type":43,"tag":368,"props":4877,"children":4878},{"style":438},[4879],{"type":49,"value":4456},{"type":43,"tag":368,"props":4881,"children":4882},{"style":449},[4883],{"type":49,"value":4884}," 1 ",{"type":43,"tag":368,"props":4886,"children":4887},{"style":438},[4888],{"type":49,"value":4456},{"type":43,"tag":368,"props":4890,"children":4891},{"style":449},[4892],{"type":49,"value":4893}," 79 ",{"type":43,"tag":368,"props":4895,"children":4896},{"style":438},[4897],{"type":49,"value":4456},{"type":43,"tag":368,"props":4899,"children":4900},{"style":449},[4901],{"type":49,"value":4902}," $18.75 ",{"type":43,"tag":368,"props":4904,"children":4905},{"style":438},[4906],{"type":49,"value":4456},{"type":43,"tag":368,"props":4908,"children":4909},{"style":449},[4910],{"type":49,"value":4911}," ❌ fail ",{"type":43,"tag":368,"props":4913,"children":4914},{"style":438},[4915],{"type":49,"value":4456},{"type":43,"tag":368,"props":4917,"children":4918},{"style":449},[4919],{"type":49,"value":4920}," baseline ",{"type":43,"tag":368,"props":4922,"children":4923},{"style":438},[4924],{"type":49,"value":4511},{"type":43,"tag":368,"props":4926,"children":4927},{"class":370,"line":1696},[4928,4932,4937,4941,4946,4950,4955,4959,4964,4968,4973],{"type":43,"tag":368,"props":4929,"children":4930},{"style":438},[4931],{"type":49,"value":4456},{"type":43,"tag":368,"props":4933,"children":4934},{"style":449},[4935],{"type":49,"value":4936}," 2 ",{"type":43,"tag":368,"props":4938,"children":4939},{"style":438},[4940],{"type":49,"value":4456},{"type":43,"tag":368,"props":4942,"children":4943},{"style":449},[4944],{"type":49,"value":4945}," 9 ",{"type":43,"tag":368,"props":4947,"children":4948},{"style":438},[4949],{"type":49,"value":4456},{"type":43,"tag":368,"props":4951,"children":4952},{"style":449},[4953],{"type":49,"value":4954}," $0.26 ",{"type":43,"tag":368,"props":4956,"children":4957},{"style":438},[4958],{"type":49,"value":4456},{"type":43,"tag":368,"props":4960,"children":4961},{"style":449},[4962],{"type":49,"value":4963}," ✅ pass ",{"type":43,"tag":368,"props":4965,"children":4966},{"style":438},[4967],{"type":49,"value":4456},{"type":43,"tag":368,"props":4969,"children":4970},{"style":449},[4971],{"type":49,"value":4972}," session contamination fix ",{"type":43,"tag":368,"props":4974,"children":4975},{"style":438},[4976],{"type":49,"value":4511},{"type":43,"tag":368,"props":4978,"children":4979},{"class":370,"line":1705},[4980,4984,4988,4992,4996,5000,5004,5008,5012,5016,5020],{"type":43,"tag":368,"props":4981,"children":4982},{"style":438},[4983],{"type":49,"value":4456},{"type":43,"tag":368,"props":4985,"children":4986},{"style":449},[4987],{"type":49,"value":4531},{"type":43,"tag":368,"props":4989,"children":4990},{"style":438},[4991],{"type":49,"value":4456},{"type":43,"tag":368,"props":4993,"children":4994},{"style":449},[4995],{"type":49,"value":4531},{"type":43,"tag":368,"props":4997,"children":4998},{"style":438},[4999],{"type":49,"value":4456},{"type":43,"tag":368,"props":5001,"children":5002},{"style":449},[5003],{"type":49,"value":4531},{"type":43,"tag":368,"props":5005,"children":5006},{"style":438},[5007],{"type":49,"value":4456},{"type":43,"tag":368,"props":5009,"children":5010},{"style":449},[5011],{"type":49,"value":4531},{"type":43,"tag":368,"props":5013,"children":5014},{"style":438},[5015],{"type":49,"value":4456},{"type":43,"tag":368,"props":5017,"children":5018},{"style":449},[5019],{"type":49,"value":4531},{"type":43,"tag":368,"props":5021,"children":5022},{"style":438},[5023],{"type":49,"value":4511},{"type":43,"tag":209,"props":5025,"children":5026},{},[],{"type":43,"tag":75,"props":5028,"children":5030},{"id":5029},"rules",[5031],{"type":49,"value":5032},"Rules",{"type":43,"tag":170,"props":5034,"children":5035},{},[5036,5064,5089,5099,5109,5119,5140],{"type":43,"tag":174,"props":5037,"children":5038},{},[5039,5049,5051,5057,5059],{"type":43,"tag":332,"props":5040,"children":5041},{},[5042,5044],{"type":49,"value":5043},"Only edit ",{"type":43,"tag":58,"props":5045,"children":5047},{"className":5046},[],[5048],{"type":49,"value":71},{"type":49,"value":5050}," — never touch ",{"type":43,"tag":58,"props":5052,"children":5054},{"className":5053},[],[5055],{"type":49,"value":5056},"task.md",{"type":49,"value":5058}," (unless creating it from the template) or ",{"type":43,"tag":58,"props":5060,"children":5062},{"className":5061},[],[5063],{"type":49,"value":760},{"type":43,"tag":174,"props":5065,"children":5066},{},[5067,5072,5074,5079,5081,5087],{"type":43,"tag":332,"props":5068,"children":5069},{},[5070],{"type":49,"value":5071},"Stay in the workspace",{"type":49,"value":5073}," — all training writes go to ",{"type":43,"tag":58,"props":5075,"children":5077},{"className":5076},[],[5078],{"type":49,"value":541},{"type":49,"value":5080},", never to ",{"type":43,"tag":58,"props":5082,"children":5084},{"className":5083},[],[5085],{"type":49,"value":5086},"~\u002F.claude\u002Fskills\u002Fautobrowse\u002F",{"type":49,"value":5088},". The skill source is read-only.",{"type":43,"tag":174,"props":5090,"children":5091},{},[5092,5097],{"type":43,"tag":332,"props":5093,"children":5094},{},[5095],{"type":49,"value":5096},"One hypothesis per iteration",{"type":49,"value":5098}," — test one change at a time",{"type":43,"tag":174,"props":5100,"children":5101},{},[5102,5107],{"type":43,"tag":332,"props":5103,"children":5104},{},[5105],{"type":49,"value":5106},"Build on wins",{"type":49,"value":5108}," — keep what worked, add to it",{"type":43,"tag":174,"props":5110,"children":5111},{},[5112,5117],{"type":43,"tag":332,"props":5113,"children":5114},{},[5115],{"type":49,"value":5116},"Trust the trace",{"type":49,"value":5118}," — the inner agent shows exactly what it saw and did",{"type":43,"tag":174,"props":5120,"children":5121},{},[5122,5132,5134],{"type":43,"tag":332,"props":5123,"children":5124},{},[5125,5127],{"type":49,"value":5126},"Graduate to ",{"type":43,"tag":58,"props":5128,"children":5130},{"className":5129},[],[5131],{"type":49,"value":344},{"type":49,"value":5133}," — the only file you write there is the final graduated ",{"type":43,"tag":58,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":49,"value":5139},"SKILL.md",{"type":43,"tag":174,"props":5141,"children":5142},{},[5143,5148,5150,5155,5157,5163,5165,5171,5172,5178],{"type":43,"tag":332,"props":5144,"children":5145},{},[5146],{"type":49,"value":5147},"Don't release before bisecting",{"type":49,"value":5149}," — under ",{"type":43,"tag":58,"props":5151,"children":5153},{"className":5152},[],[5154],{"type":49,"value":106},{"type":49,"value":5156},", the order at the end of each iteration is non-negotiable: ",{"type":43,"tag":58,"props":5158,"children":5160},{"className":5159},[],[5161],{"type":49,"value":5162},"stop-capture",{"type":49,"value":5164}," → ",{"type":43,"tag":58,"props":5166,"children":5168},{"className":5167},[],[5169],{"type":49,"value":5170},"bisect-cdp",{"type":49,"value":5164},{"type":43,"tag":58,"props":5173,"children":5175},{"className":5174},[],[5176],{"type":49,"value":5177},"browse cloud sessions update REQUEST_RELEASE",{"type":49,"value":5179},". Bisect depends on the session still existing when the trace stops.",{"type":43,"tag":5181,"props":5182,"children":5183},"style",{},[5184],{"type":49,"value":5185},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":5187,"total":1412},[5188,5209,5216,5228,5246,5260,5278],{"slug":5189,"name":5189,"fn":5190,"description":5191,"org":5192,"tags":5193,"stars":23,"repoUrl":24,"updatedAt":5208},"agent-experience","audit developer experience with AI agents","Audit the developer experience of a product, SDK, docs site, or SKILL.md by dropping multiple Claude subagents at it with only a tiny task prompt and real tools (WebFetch, Bash, Write). Agents must discover the docs themselves, install deps, ask for credentials if needed, and attempt real execution. The skill captures each agent's trace — tool calls, retries, wall time, errors — and scores on Setup Friction, Speed, Efficiency, Error Recovery, and Doc Quality, then emits an HTML report with an A–F grade and concrete fixes. Use when the user asks to audit agent experience, test a skill, audit docs for agents, check if a SDK is agent-friendly, validate a SKILL.md, measure agent DX, or benchmark how painful onboarding is for an AI agent. Triggers: 'audit agent experience', 'test this skill', 'audit docs for agents', 'is my SDK agent-friendly', 'run a DX audit', 'agent experience test', 'test my docs', 'how do agents do with my product'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5194,5195,5198,5199,5202,5205],{"name":18,"slug":19,"type":15},{"name":5196,"slug":5197,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":5200,"slug":5201,"type":15},"Engineering","engineering",{"name":5203,"slug":5204,"type":15},"Multi-Agent","multi-agent",{"name":5206,"slug":5207,"type":15},"QA","qa","2026-05-29T06:58:56.259807",{"slug":4,"name":4,"fn":5,"description":6,"org":5210,"tags":5211,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5212,5213,5214,5215],{"name":18,"slug":19,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":5217,"name":5217,"fn":5218,"description":5219,"org":5220,"tags":5221,"stars":23,"repoUrl":24,"updatedAt":5227},"browser","automate browser interactions via CLI","Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications. Supports remote Browserbase sessions with Browserbase Identity, Verified browsers, automatic CAPTCHA solving, and residential proxies — ideal for protected websites and JavaScript-heavy pages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5222,5223,5224],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5225,"slug":5226,"type":15},"CLI","cli","2026-04-06T18:06:22.005051",{"slug":5229,"name":5229,"fn":5230,"description":5231,"org":5232,"tags":5233,"stars":23,"repoUrl":24,"updatedAt":5245},"browser-to-api","generate OpenAPI specs from browser traffic","Turn a website's observable HTTP traffic into a best-effort OpenAPI 3.1 spec by analyzing a `browser-trace` capture. Use when the user wants to discover\u002Fextract API endpoints from a browser session, build an OpenAPI doc from network traffic, or document a third-party site's XHR\u002Ffetch surface for client integration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5234,5237,5238,5239,5242],{"name":5235,"slug":5236,"type":15},"API Development","api-development",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5240,"slug":5241,"type":15},"HTTP","http",{"name":5243,"slug":5244,"type":15},"OpenAPI","openapi","2026-05-14T06:07:27.298495",{"slug":114,"name":114,"fn":5247,"description":5248,"org":5249,"tags":5250,"stars":23,"repoUrl":24,"updatedAt":5259},"capture and debug browser automation traces","Capture a full DevTools-protocol trace of any browser automation — CDP firehose, screenshots, and DOM dumps — then bisect the stream into per-page searchable buckets. Use when the user wants to debug a failed run, audit network\u002Fconsole\u002FDOM activity, attach a trace to an in-progress session, or feed structured per-page summaries back into an agent loop so its next iteration learns from the last one.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5251,5252,5253,5256],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5254,"slug":5255,"type":15},"Debugging","debugging",{"name":5257,"slug":5258,"type":15},"Observability","observability","2026-04-28T05:41:33.024656",{"slug":5261,"name":5261,"fn":5262,"description":5263,"org":5264,"tags":5265,"stars":23,"repoUrl":24,"updatedAt":5277},"browser-use-to-stagehand","migrate browser-use scripts to Stagehand","Migrate browser-use (Python) browser-automation scripts to Stagehand v3 (TypeScript) on Browserbase. Use when the user wants to convert, port, rewrite, or migrate a browser-use Agent script to Stagehand, map browser-use features\u002FAPIs to Stagehand primitives (act\u002Fextract\u002Fobserve\u002Fagent), or move agentic browser automation onto Browserbase with more determinism. Triggers on \"browser-use\", \"browser_use\", or \"Agent(task=...)\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5266,5267,5268,5271,5274],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5269,"slug":5270,"type":15},"Migration","migration",{"name":5272,"slug":5273,"type":15},"Python","python",{"name":5275,"slug":5276,"type":15},"TypeScript","typescript","2026-06-26T07:57:47.428249",{"slug":5279,"name":5279,"fn":5280,"description":5281,"org":5282,"tags":5283,"stars":23,"repoUrl":24,"updatedAt":5297},"company-research","conduct deep company and product research","Company discovery and deep research skill. Researches a company's product and ICP,\ndiscovers target companies to sell to using Browserbase Search API, deeply researches\neach using a Plan→Research→Synthesize pattern, and scores ICP fit — compiled into\na scored research report and CSV. Supports depth modes (quick\u002Fdeep\u002Fdeeper) for\nbalancing scale vs intelligence.\nUse when the user wants to: (1) find companies to sell to, (2) research potential\ncustomers, (3) discover companies matching an ICP, (4) build a target company list,\n(5) do market research on prospects. Triggers: \"find companies to sell to\",\n\"company research\", \"find prospects\", \"ICP research\", \"target companies\",\n\"who should we sell to\", \"market research\", \"lead research\", \"prospect list\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5284,5285,5288,5291,5294],{"name":9,"slug":8,"type":15},{"name":5286,"slug":5287,"type":15},"Competitive Intelligence","competitive-intelligence",{"name":5289,"slug":5290,"type":15},"Marketing","marketing",{"name":5292,"slug":5293,"type":15},"Research","research",{"name":5295,"slug":5296,"type":15},"Sales","sales","2026-04-27T05:34:56.172569",{"items":5299,"total":1472},[5300,5311,5320,5327,5333,5341,5348,5356,5364,5378,5390,5403],{"slug":979,"name":979,"fn":5301,"description":5302,"org":5303,"tags":5304,"stars":5308,"repoUrl":5309,"updatedAt":5310},"run Browserbase browser automation","Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch\u002Fsearch, diagnostics, and Browse.sh skill discovery\u002Finstallation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase resources, call Browserbase Functions, browse or scaffold Browserbase templates, fetch or search web content, diagnose browse setup, find or install a skill for a website task, discover site-specific Browse.sh skills, or install\u002Frefresh this browse skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5305,5306,5307],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5225,"slug":5226,"type":15},23676,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand","2026-06-06T07:11:24.95733",{"slug":5189,"name":5189,"fn":5190,"description":5191,"org":5312,"tags":5313,"stars":23,"repoUrl":24,"updatedAt":5208},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5314,5315,5316,5317,5318,5319],{"name":18,"slug":19,"type":15},{"name":5196,"slug":5197,"type":15},{"name":9,"slug":8,"type":15},{"name":5200,"slug":5201,"type":15},{"name":5203,"slug":5204,"type":15},{"name":5206,"slug":5207,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":5321,"tags":5322,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5323,5324,5325,5326],{"name":18,"slug":19,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":5217,"name":5217,"fn":5218,"description":5219,"org":5328,"tags":5329,"stars":23,"repoUrl":24,"updatedAt":5227},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5330,5331,5332],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5225,"slug":5226,"type":15},{"slug":5229,"name":5229,"fn":5230,"description":5231,"org":5334,"tags":5335,"stars":23,"repoUrl":24,"updatedAt":5245},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5336,5337,5338,5339,5340],{"name":5235,"slug":5236,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5240,"slug":5241,"type":15},{"name":5243,"slug":5244,"type":15},{"slug":114,"name":114,"fn":5247,"description":5248,"org":5342,"tags":5343,"stars":23,"repoUrl":24,"updatedAt":5259},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5344,5345,5346,5347],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5254,"slug":5255,"type":15},{"name":5257,"slug":5258,"type":15},{"slug":5261,"name":5261,"fn":5262,"description":5263,"org":5349,"tags":5350,"stars":23,"repoUrl":24,"updatedAt":5277},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5351,5352,5353,5354,5355],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":5269,"slug":5270,"type":15},{"name":5272,"slug":5273,"type":15},{"name":5275,"slug":5276,"type":15},{"slug":5279,"name":5279,"fn":5280,"description":5281,"org":5357,"tags":5358,"stars":23,"repoUrl":24,"updatedAt":5297},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5359,5360,5361,5362,5363],{"name":9,"slug":8,"type":15},{"name":5286,"slug":5287,"type":15},{"name":5289,"slug":5290,"type":15},{"name":5292,"slug":5293,"type":15},{"name":5295,"slug":5296,"type":15},{"slug":5365,"name":5365,"fn":5366,"description":5367,"org":5368,"tags":5369,"stars":23,"repoUrl":24,"updatedAt":5377},"competitor-analysis","analyze competitors across features and pricing","Competitor research and intelligence skill. Takes a user's company (with optional\nseed competitor URLs), auto-discovers additional competitors via Browserbase Search API,\ndeeply researches each using a 4-lane pattern (marketing surface, external signal,\npublic benchmarks, strategic diff vs the user's company), and compiles the results\ninto an HTML report with four views: overview, per-competitor deep dive, side-by-side\nfeature\u002Fpricing matrix, and a chronological mentions feed (news, reviews,\nsocial, comparison pages, and public benchmarks).\nUse when the user wants to: (1) analyze competitors, (2) build a competitive matrix,\n(3) extract competitor pricing \u002F features, (4) find comparison pages and online\nmentions of competitors, (5) surface public benchmarks. Triggers: \"competitor analysis\",\n\"analyze competitors\", \"competitive intel\", \"competitor research\", \"competitor pricing\",\n\"feature comparison\", \"price comparison\", \"find comparisons\", \"who's comparing us\",\n\"competitor mentions\", \"competitor benchmarks\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5370,5371,5372,5373,5374],{"name":9,"slug":8,"type":15},{"name":5286,"slug":5287,"type":15},{"name":5289,"slug":5290,"type":15},{"name":5292,"slug":5293,"type":15},{"name":5375,"slug":5376,"type":15},"Strategy","strategy","2026-06-19T09:41:33.392499",{"slug":5379,"name":5379,"fn":5380,"description":5381,"org":5382,"tags":5383,"stars":23,"repoUrl":24,"updatedAt":5389},"cookie-sync","sync Chrome cookies to a Browserbase context","Sync cookies from local Chrome to a Browserbase persistent context so the browse CLI can access authenticated sites. Use when the user wants to browse as themselves, sync cookies, or log into sites via Browserbase.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5384,5387,5388],{"name":5385,"slug":5386,"type":15},"Auth","auth",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:06:23.3251",{"slug":5391,"name":5391,"fn":5392,"description":5393,"org":5394,"tags":5395,"stars":23,"repoUrl":24,"updatedAt":5402},"event-prospecting","research event speakers for sales prospecting","Event prospecting skill. Takes a conference \u002F event speakers URL,\nextracts the people, filters their companies against the user's\nICP, then deep-researches only the speakers at ICP-fit companies.\nOutputs a person-first HTML report where each card answers \"why\nshould the AE talk to this person?\" with all public links and a\none-click DM opener.\nUse when the user wants to: (1) find leads at a specific\nconference, (2) prep for an event, (3) research event speakers,\n(4) build a target list from a sponsor\u002Fexhibitor page,\n(5) scrape conference speakers and rank by ICP fit.\nTriggers: \"find leads at {event}\", \"research speakers at\",\n\"prospect this conference\", \"stripe sessions leads\",\n\"ai engineer summit prospects\", \"event prospecting\",\n\"scrape conference speakers\", \"who should I meet at\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5396,5397,5400,5401],{"name":9,"slug":8,"type":15},{"name":5398,"slug":5399,"type":15},"Prospecting","prospecting",{"name":5292,"slug":5293,"type":15},{"name":5295,"slug":5296,"type":15},"2026-04-28T05:41:31.770467",{"slug":5404,"name":5404,"fn":5405,"description":5406,"org":5407,"tags":5408,"stars":23,"repoUrl":24,"updatedAt":5413},"fetch","fetch URLs without a browser session","Use this skill when the user wants to retrieve a URL without a full browser session: fetch HTML or JSON from static pages, inspect status codes or headers, follow redirects, or get page source for simple scraping. Prefer it over a browser when JavaScript rendering and page interaction are not needed. Supports proxies and redirect control.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5409,5410],{"name":5240,"slug":5241,"type":15},{"name":5411,"slug":5412,"type":15},"Web Scraping","web-scraping","2026-04-06T18:06:19.462477"]