name: browser-core-efficient description: Use when working in the embedded browser and you want the cheapest reliable interaction loop.
Browser Core Efficient
Use this skill when operating the workspace-embedded browser and efficiency matters.
Goals
- reduce browser tool round trips
- reduce large state snapshots
- reduce unnecessary screenshots and page text reads
- prefer reliable one-call actions over browse-then-browse-again loops
Default Loop
- If the target is already known, use
browser_actdirectly with locator signals. - If the target is semantically known but the page is large, use
browser_find. - Use
browser_get_stateonly for orientation or when the target is still unclear. - After page-changing actions, use
wait_foron the action itself when possible. - Re-read state only if the action result is ambiguous.
Tool Selection
- Prefer
browser_actover index-based tools when text, label, role, selector, or ref can identify the target. - Prefer
browser_findbeforebrowser_get_statewhen you know what you want but not where it is. - Use
browser_clickandbrowser_typeonly when you already have a stable index from a fresh state snapshot. - Use
browser_select_tabandbrowser_close_tabinstead of spending extra calls re-orienting around tabs. - Use
browser_waitfor explicit stabilization, especially for URL changes, DOM changes, and download completion.
State Discipline
- Default to
browser_get_statewith compact detail. - Do not request page text unless the task is primarily about reading content.
- Do not request screenshots unless DOM-first signals are insufficient.
- When a fact may live in custom-element attributes,
data-*attributes,hrefs, or hydration data rather than visible text, inspect that targeted page-local DOM source before concluding the fact is unavailable. - If a page change likely invalidated earlier refs or indexes, treat them as stale and re-locate the target.
Wait Discipline
- Prefer action-local
wait_forover a separate follow-up wait call. - Use
interactiveordomcontentloadedafter lightweight transitions. - Use full load completion only when the page truly needs it.
- Use
download_startedanddownload_completedfor browser-triggered downloads instead of manual polling through state reads.
Escalation Rules
- Escalate to
browser_get_state detail=standardonly when compact state is insufficient. - Escalate to
include_page_text=trueonly when the page content itself is the task output. - Escalate to
browser_evaluatefor narrow read-only extraction when the required fact is likely present in page-local attributes or hydration data but not exposed cleanly through visible text. - Escalate to screenshots for visual ambiguity, layout validation, canvas/chart/PDF content, or explicit user-visible confirmation.
- Escalate to debug or observability tools only after the cheaper path fails.