Agent skill

Browser Test Loop

by OneWave-AI in OneWave-AI/claude-skills

A skill your agent uses to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page.

MITAuto-check passed

Install Browser Test Loop

skills CLI
$ npx skills add OneWave-AI/claude-skills --skill browser-test-loop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OneWave-AI/claude-skills browser-test-loop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/browser-test-loop .claude/skills/browser-test-loop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
browser-test-loop
GitHub stars
323
Token cost
~897 tokens
SKILL.md length
445 words
Files
1
Skills in repo
70
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page.

  • Works in 5 steps: Name the assertion in one sentence.… → Write the smallest script that proves… → Run it. Read the failure, not the summary. → …
  • Actually verify a web change in a real browser instead of assuming it works — click through a flow
  • SKILL.md covers Core Behavior, Setup, The Loop and What to Assert, plus 4 more sections
  • Calls npx and npm

What it does

Browser Test Loop is an agent skill from OneWave-AI/claude-skills. Use to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page. Trigger when a UI change needs proof, a bug only reproduces in the browser, or the user asks to test, check, or screenshot the running app.

Its SKILL.md is about 900 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: 200+ production-ready Claude Code skills for sales, marketing, design, engineering, and AI agent architecture. Built and maintained by OneWave AI. The licence is MIT.

When your agent uses it

  • Actually verify a web change in a real browser instead of assuming it works — click through a flow
  • Catch console errors
  • Check a form submits
  • Confirm a fix on the page

Example prompts

  • “/browser-test-loop”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Name the assertion in one sentence. "After submitting the contact form with a valid email, a success message appears and no console error…
  2. Write the smallest script that proves it. One flow per file.
  3. Run it. Read the failure, not the summary.
  4. Fix the app, not the test — unless the test encoded the wrong expectation, in which case say so out loud.
  5. Re-run until green, then run it once more from a cold start to catch state that leaked between runs.

What it can do on your machine

Read from SKILL.md and the folder at commit fc5b785. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Browser Test Loop loads about 897 tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 445 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~897

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OneWave-AI/claude-skills at commit fc5b785, republished under its MIT licence (© OneWave-AI). 445 words, ~897 tokens.

Download SKILL.mdSave it as .claude/skills/browser-test-loop/SKILL.md (or your agent's skills folder).
name
browser-test-loop
description
Use to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page. Trigger when a UI change needs proof, a bug only reproduces in the browser, or the user asks to test, check, or screenshot the running app.
tools
Read, Write, Edit, Bash, Glob, Grep

Browser Test Loop

Code that compiles is not code that works. This is the loop that closes the gap between "the diff looks right" and "the page does the thing".

Core Behavior

Drive a real browser against the running app, assert on what actually rendered, and fix what fails. Never report a UI change as working on the strength of the diff alone.

Setup

Playwright is the default. It installs its own browsers and runs headless in CI.

bash
npm i -D @playwright/test && npx playwright install chromium

Start the app first and hold the port — a test suite against a dead server produces a wall of timeouts that tells you nothing:

bash
npm run dev > /tmp/dev.log 2>&1 &
npx wait-on http://localhost:3000

The Loop

  1. Name the assertion in one sentence. "After submitting the contact form with a valid email, a success message appears and no console error fires." Vague goals produce vague tests.
  2. Write the smallest script that proves it. One flow per file.
  3. Run it. Read the failure, not the summary.
  4. Fix the app, not the test — unless the test encoded the wrong expectation, in which case say so out loud.
  5. Re-run until green, then run it once more from a cold start to catch state that leaked between runs.

What to Assert

  • The user-visible outcome: text on screen, a URL change, a row that appeared.
  • Zero unexpected console errors. Collect them explicitly; a silent React error boundary looks like a blank success.
  • Network calls that should have fired, and their status codes.
  • The empty, loading, and error states — not just the happy path.
js
const errors = []
page.on('console', m => m.type() === 'error' && errors.push(m.text()))
page.on('pageerror', e => errors.push(e.message))
// ... drive the flow ...
expect(errors).toEqual([])
Show full SKILL.md (195 more words)Show less

Selector Rules

Query the way a person looks at a page: role, label, and visible text. getByRole('button', { name: 'Send' }) survives a restyle; .btn-primary > span:nth-child(2) does not. Add data-testid only where the visible text is genuinely ambiguous.

Screenshots

Take one on failure automatically, and one at the end of a flow when a human needs to eyeball the result. Full-page for layout questions, element-scoped for a component. Save under /tmp unless the user wants them kept.

bash
npx playwright test --reporter=line 2>&1 | tail -30

Pipe the output. A full Playwright HTML reporter dump is thousands of tokens of nothing.

Common Failure Modes

SymptomReal cause
Every test times outApp never started, or wrong port
Passes locally, fails headlessAnimation or viewport size, not logic
Flaky on CI onlyWaiting on a timeout instead of a condition
Blank page, no errorClient-side exception swallowed by an error boundary
Works once, fails on re-runTest wrote state it never cleaned up

Never fix flake with waitForTimeout. Wait for the condition — a selector, a response, a URL.

Reporting

Say what flow was driven, what was asserted, and the result. If something is still unverified, name it. Screenshots go with the answer when the question was visual.

© OneWave-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in browser-test-loop of OneWave-AI/claude-skills.

Open the folder on GitHubat commit fc5b785

Compare with similar skills

Browser Test Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Browser Test Loop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Browser Test Loop this skillOneWave-AI/claude-skills323—~897Automated safety check: PassMIT
ActualizeNeoLabHQ/context-engineering-kit1.7k—~932Automated safety check: PassGPL-3.0
Is This Actually Goodmohitagw15856/pm-claude-skills1.4k—~884Automated safety check: PassMIT
Actual Budgetsundial-org/awesome-openclaw-skills663—~1.6kAutomated safety check: PassNone
Budget Cash Flowsickn33/agentic-awesome-skills47k1 repos~4.1kAutomated safety check: PassMIT
Skill Compliance Checkeraffaan-m/ECC275k1 repos~623Automated safety check: PassMIT

Similar skills

  • Actualize

    NeoLabHQ/context-engineering-kit

    Reconcile the project's FPF state with recent repository changes

    1.7k GitHub stars~932 tokensUpdated 1 mo ago
    Knowledge ManagementAuto-check passed
  • Is This Actually Good

    mohitagw15856/pm-claude-skills

    Get an honest verdict on whether something you made is actually good — not the reflexive 'this is great!' but a real, criteria-based judgment.

    1.4k GitHub stars~884 tokensUpdated yesterday
    Auto-check passed
  • Actual Budget

    sundial-org/awesome-openclaw-skills

    Query and manage personal finances via the official Actual Budget Node.js API.

    663 GitHub stars~1.6k tokensUpdated 7 mo ago
    Business, Finance & HRAuto-check passed
  • Budget Cash Flow

    sickn33/agentic-awesome-skills

    Budget against actual by department, category and period, with budget and actual amounts, variance, percentage used and linked expenses.

    47k GitHub starsUsed in 1 repo~4.1k tokens
    Business, Finance & HRAuto-check passed
  • Measures whether agents actually follow a skill, rule or agent definition by generating scenarios at three strictness levels and scoring tool-call traces.

    275k GitHub starsUsed in 1 repo~623 tokens
    Agent WorkflowsAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.8k tokensUpdated today
    Research & ScienceAuto-check: notes

More from OneWave-AI/claude-skills

All 70 skills in this repo
  • CRM Data Cleanup

    OneWave-AI/claude-skills

    Finds duplicate and junk records in a CRM CSV export with fuzzy matching, normalizes fields and writes a reviewable merge plan plus import-ready files without touching the live CRM.

    323 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Design Export Repair

    OneWave-AI/claude-skills

    Repairs broken decks and PDFs exported from Claude Design or similar AI deck generators: clipped text, wrong fonts and corrupted .pptx package structure.

    323 GitHub stars~2.6k tokensUpdated 6 days ago
    Auto-check passed
  • Bi Measure Builder

    OneWave-AI/claude-skills

    Writes, explains, debugs, and optimizes BI calculations - Power BI / Fabric DAX measures and calculated columns, Tableau calculated fields (FIXED/INCLUDE/EXCLUDE LOD expressions, table…

    323 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • Bookkeeping Close

    OneWave-AI/claude-skills

    Categorizes transactions, reconciles bank and card statements to the ledger, works a month-end checklist and prepares a close package, without ever forcing a balance.

    323 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check passed
  • CSV and Excel Merger

    OneWave-AI/claude-skills

    Combines CSV, TSV and Excel files into one verified table with pandas, by stacking or joining, mapping columns, normalizing keys and removing duplicates.

    323 GitHub stars~1.6k tokensUpdated 6 days ago
    Auto-check passed
  • Sec Filing Puller

    OneWave-AI/claude-skills

    Pulls financial statement numbers for US public companies straight from SEC EDGAR's free official XBRL APIs (companyfacts, companyconcept, frames, submissions) into a cited table.

    323 GitHub stars~2.1k tokensUpdated 6 days ago
    Auto-check passed

Questions about Browser Test Loop

What does Browser Test Loop do?

A skill your agent uses to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page. Browser Test Loop is an agent skill from OneWave-AI/claude-skills. Use to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page.

When should I use Browser Test Loop?

Browser Test Loop fits situations like: actually verify a web change in a real browser instead of assuming it works — click through a flow; catch console errors; check a form submits; confirm a fix on the page.

How do I install Browser Test Loop in Claude Code?

Run `npx skills add OneWave-AI/claude-skills --skill browser-test-loop -a claude-code`. Or copy the skill folder (browser-test-loop in OneWave-AI/claude-skills) into .claude/skills/browser-test-loop in your project. Claude Code loads it when a task matches its description.

How do I install Browser Test Loop in Codex?

Run `npx skills add OneWave-AI/claude-skills --skill browser-test-loop -a codex`. Or copy the skill folder (browser-test-loop in OneWave-AI/claude-skills) into .agents/skills/browser-test-loop in your project. Codex loads it when a task matches its description.

Can I use Browser Test Loop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OneWave-AI/claude-skills --skill browser-test-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/browser-test-loop, .gemini/skills/browser-test-loop, .github/skills/browser-test-loop and .opencode/skills/browser-test-loop in your project.

What does Browser Test Loop need to run?

Going by SKILL.md and its folder, Browser Test Loop needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js.

Does Browser Test Loop access the network?

SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Browser Test Loop safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Browser Test Loop use?

Browser Test Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Browser Test Loop use?

About 897 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Browser Test Loop?

Skills that share tags, products or a category with Browser Test Loop: Actualize (NeoLabHQ/context-engineering-kit, 1.7k stars), Is This Actually Good (mohitagw15856/pm-claude-skills, 1.4k stars), Actual Budget (sundial-org/awesome-openclaw-skills, 663 stars) and Budget Cash Flow (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Browser Test Loop?

OneWave-AI (a GitHub organization) maintains it in OneWave-AI/claude-skills, which has 323 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 2, 2026.

Source: OneWave-AI/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.