Skip to main content

gauntlet

Run a real-world navigation and capability gauntlet on Browser Control across live websites, fix general DOM/ARIA/CDP root causes, benchmark speed and token efficiency, and finish with a mandatory simplify pass. Use when asked to run a gauntlet, dogfood Browser Control on real sites, or do an improvement pass.

Informações da origem

Repositório
anomalyco/browser-control
Última atividade na origem
6 de outubro de 2026 às 06:28
Idioma detectado do SKILL.md
inglês
Estrelas
440
Forks
26

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
gauntlet
description
Run a real-world navigation and capability gauntlet on Browser Control across live websites, fix general DOM/ARIA/CDP root causes, benchmark speed and token efficiency, and finish with a mandatory simplify pass. Use when asked to run a gauntlet, dogfood Browser Control on real sites, or do an improvement pass.
# Gauntlet Run Browser Control against uncurated live websites, fix general root causes as you hit them, lock each fix in with a minimal offline regression test, and always finish with a **Simplify** pass so new capabilities never accumulate site-specific hacks or bloated files. ```ts ┌─────────────────────────────────────────────────────────────────────┐ │ │ ▼ │ [1. Gauntlet] ──► [2. Autoresearch] ──► [3. Simplify] ──► [4. Harvest] ─┘ Real-site Latency, token & Compress code, Promote recurring field tasks round-trip profile remove hacks UI flows to CLIs ``` ## Workflow ### 1. Gauntlet — Adversarial Real-Site Field Pass 1. Create a dedicated session (`browser-control session new "🧭 gauntlet"`) and pick 4–6 diverse live sites that stress different web patterns (never perform destructive/irreversible actions like placing an order): - **Portal UI libraries**: `https://ui.shadcn.com/docs/components/radix/select` (Radix `<button role="combobox">`, body-portaled `[role="listbox"]` / `[role="option"]`) - **Complex web apps**: `https://github.com/Effect-TS/effect/issues` (Primer `[role="menu"]` / `[role="menuitemradio"]`, filter dialogs, `snapshot({ delta: true })`) - **Dense SPAs & e-commerce / booking**: `https://resy.com`, `https://www.ubereats.com` (top-level `<header>` search bars, carousels, focus-locked modals, deep card lists) - **Layout tables & prose**: `https://news.ycombinator.com`, `https://en.wikipedia.org`, `https://www.npmjs.com` - **Web Components & Shadow DOM**: `https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot`, `https://www.reddit.com/r/typescript/` 2. Drive each task through the public agent interface (`snapshot()`, `ref("eN")`, `screenshotWithLabels()`, `network`). 3. Whenever a step fails, times out, misses an interactive control, emits duplicate lines, or forces a blind `waitForTimeout` sleep: - Inspect the live DOM in the session to find the **general DOM, W3C ARIA, or CDP root cause**. - **Never** hardcode site-specific domain names or CSS class names. Express every rule in terms of standard HTML tags, ARIA roles/attributes, computed styles, or DOM structure. - Fix the root cause in `src/` (or `extension/src/`), add a minimal offline HTML regression check to `scripts/check-snapshot.ts` or `test/`, deploy to `/Users/kit/.browser-control/current-runtime` (`pnpm runtime:prepare` + `pnpm runtime:select` + `browser-control relay restart`), and re-verify on the live site. ### 2. Autoresearch — Speed, Token & Round-Trip Check Measure across the gauntlet sites: - **Wall-clock latency (`ms`)** per `snapshot()` call (target: `15–40 ms` on standard pages, `< 180 ms` on 9,000-node Shadow DOM pages). - **Token footprint (`chars` / `lines`)**: eliminate duplicate `heading` + `link` pairs, redundant `listitem` / `p` wrappers, and layout-table noise. - **Avoidable round-trips & sleeps**: prefer event-driven settle (`MutationObserver`, `Emulation.setFocusEmulationEnabled`) over manual `waitForTimeout` padding. ### 3. Simplify — Mandatory Coherence & Compression Pass After fixing gauntlet findings, always run a `simplify` pass before finishing: - Remove any ad-hoc branches, dead flags, or overlapping helpers introduced during debugging. - Keep module boundaries clean (`src/snapshot.ts` owns DOM inspection and input helpers; `src/execute.ts` owns `ExecuteSandbox` and page recovery). - Run the full verification gate: ```bash pnpm exec tsx scripts/check-snapshot.ts pnpm check:locals && pnpm check:unused && pnpm audit:duplicates pnpm test ``` ### 4. Harvest — UI-to-API Promotion (Optional) When testing a multi-step workflow (like Uber Eats or Resy), verify that `network.start()` + `network.stop()` produces a clean `.endpoints` digest and that `BrowserControlClient.origin(url, { session, headers, handoffOnAuthFailure: true })` can drive the JSON API directly in one turn. Always delete temporary gauntlet sessions (`browser-control session delete "🧭 gauntlet"`) when finished.
Ver no GitHub