browser-testing
Skill3 starsChanged 7 months agoMITView on GitHub
Browser automation for testing web applications. Covers tab management, element interaction, console log filtering, screenshot capture, and failure escalation. Use when testing web UI, verifying frontend changes, automating browser interactions, or when asked to check a web page.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- roundpilot/superpowers-antigravitytheir own version, first seen Nov 8, 2026
- teimurjan/skillstheir own version, first seen Nov 8, 2026
- pfangueiro/claude-code-agentstheir own version, first seen Nov 8, 2026
- sw23/fp-convtheir own version, first seen Nov 8, 2026
- Univers42/harness42their own version, first seen Nov 1, 2026
- shitcoding/claude_skillstheir own version, first seen Oct 11, 2026
Used with
Projects with it also use receiving-code-review.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CloudflareSkillreceiving-code-review
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
Also in 3 projects that use this
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- roundpilot/superpowers-antigravity★ 80same name
- kumaran-is/claude-code-onboarding★ 35same name
- dork-labs/dorkos★ 11same name
- sw23/fp-conv★ 8same name
- pfangueiro/claude-code-agents★ 7same name
- DiamondLightSource/claude-sandbox★ 4same name
- Univers42/claude-deal-with-the-devil★ 4same name
- Univers42/harness42★ 4same name
- Patrity/skills★ 2same name
- teimurjan/skills★ 1same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- architectural-planningSkill
- codebase-explorationSkill
- code-reviewSkill
- code-verificationSkill
- context-summarizationSkill
- disciplined-codingSkill
- effective-tool-useSkill
- knowledge-managementSkill
- prompt-engineeringSkill
- safe-autonomous-modeSkill
- security-reviewSkill
- session-handoffSkill
- systematic-debuggingSkill
- task-orchestrationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 18 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
18
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Check for browser tools: Verify that browser automation MCP tools are available.
- Distinctive: line 14
Get tab context: Call the tabs/context tool to see what's currently open.
- Distinctive: line 21
After navigation, wait for the page to load before snapshotting.
- Distinctive: line 25
Always snapshot before clicking, typing, or selecting.
- Very specific: line 27
Use fill to replace input contents (clears first), type to append text.
- Very specific: line 31
Use fill_form for multi-field forms — it's more reliable than filling fields one at a time.
- Distinctive: line 32
After submitting a form, wait for the response and snapshot to verify the result.
- Distinctive: line 36
Use element-scoped screenshots for focused verification (e.g., a specific component).
- Distinctive: line 37
Use full-page screenshots sparingly — they're large and often not necessary.
- Distinctive: line 41
Check console messages after page loads and interactions to catch JavaScript errors.
- Very specific: line 53
Default: confirm() returns true, prompt() returns the default value.
- Distinctive: line 58
2-3 failures on the same action: Stop retrying. Report what's failing and ask the user for guidance.
- Distinctive: line 60
Navigation timeout: Check if the server is running.
- Distinctive: line 61
Never retry infinitely: If something doesn't work after 2-3 attempts, investigate why rather than retrying the same action.
- Distinctive: line 65
When verifying frontend changes:
- Distinctive: line 67
Start the dev server if not already running (check first).
- Distinctive: line 71
Check console for errors after each interaction.
- Distinctive: line 73
Test edge cases: empty inputs, boundary values, rapid clicks.
- Distinctive: line 78
Check network requests to verify API calls are being made correctly.
- Distinctive: line 79
Look for failed requests (4xx, 5xx status codes).
- Distinctive: line 80
Verify request payloads and response shapes match expectations.
- Very specific: line 87
Use code-verification patterns for the structured PASS/FAIL verdict after browser testing.
- Very specific: line 88
After finding UI bugs, apply systematic-debugging patterns to trace the root cause.
- Very specific: line 89
Use effective-tool-use patterns when starting dev servers and running build commands.
- Very specific: line 93
If user-config.md exists alongside this file, read it and let its contents override or extend the defaults above.
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Browser Testing
CRITICAL: Always snapshot browser state before interacting. Never assume tabs or elements from a previous session still exist.
Before Any Interaction
- Check for browser tools: Verify that browser automation MCP tools are available. If not, tell the user and stop — don't attempt workarounds.
- Get tab context: Call the tabs/context tool to see what's currently open. Never assume a tab exists from a prior session.
- Snapshot the page: Capture the page structure and element references before clicking, typing, or hovering. Element refs are ephemeral — re-snapshot after any navigation or significant DOM change.
Core Interaction Patterns
Navigation
- Open new pages in new tabs within the user's existing browser session.
- After navigation, wait for the page to load before snapshotting. Use short incremental waits (1-2 seconds) with snapshot checks, not a single long wait.
- Track tab IDs during the session. Never reuse tab IDs from a previous session — they're invalid after the browser restarts.
Element Interaction
- Always snapshot before clicking, typing, or selecting. Use the element ref from the most recent snapshot.
- For elements inside scroll containers, scroll the element into view before clicking.
- Use
fillto replace input contents (clears first),typeto append text. - For contenteditable elements, use
fillas well.
Forms
- Use
fill_formfor multi-field forms — it's more reliable than filling fields one at a time. - After submitting a form, wait for the response and snapshot to verify the result.
Screenshots
- Take screenshots to verify visual state, capture bugs, or document behavior.
- Use element-scoped screenshots for focused verification (e.g., a specific component).
- Use full-page screenshots sparingly — they're large and often not necessary.
Console Log Monitoring
- Check console messages after page loads and interactions to catch JavaScript errors.
- Filter console output for relevant patterns — don't dump the entire console.
- Common patterns to watch for:
Error,TypeError,ReferenceError— runtime JS failuresFailed to load resource— missing assets, broken API callsCORS— cross-origin issuesWarning— React/framework warnings that may indicate bugs
Modal and Dialog Handling
- Native browser dialogs (alert, confirm, prompt) are non-blocking in automation — they return immediately.
- Configure dialog handling BEFORE triggering the action that shows the dialog.
- Default:
confirm()returns true,prompt()returns the default value. - To test different responses, call the dialog handler with your desired values before clicking the trigger.
Failure Escalation
- 2-3 failures on the same action: Stop retrying. Report what's failing and ask the user for guidance.
- Element not found: Re-snapshot the page. If still not found, the DOM may have changed — search for the element by text or role instead of stale refs.
- Navigation timeout: Check if the server is running. Report the URL and timeout to the user.
- Never retry infinitely. If something doesn't work after 2-3 attempts, investigate why rather than retrying the same action.
Verification Workflow
When verifying frontend changes:
- Start the dev server if not already running (check first).
- Navigate to the relevant page.
- Snapshot and verify the expected UI elements are present.
- Interact with the feature: click buttons, fill forms, navigate.
- Check console for errors after each interaction.
- Take screenshots of key states for evidence.
- Test edge cases: empty inputs, boundary values, rapid clicks.
- Report findings with screenshots as evidence.
Network Request Monitoring
- Check network requests to verify API calls are being made correctly.
- Look for failed requests (4xx, 5xx status codes).
- Verify request payloads and response shapes match expectations.
- Monitor for unnecessary duplicate requests.
CRITICAL REMINDER: Snapshot before every interaction. Track tab IDs per session only. Stop after 2-3 failures and ask the user — don't retry infinitely.
Related Skills
- Use
code-verificationpatterns for the structured PASS/FAIL verdict after browser testing. - After finding UI bugs, apply
systematic-debuggingpatterns to trace the root cause. - Use
effective-tool-usepatterns when starting dev servers and running build commands.
Project Customization
If user-config.md exists alongside this file, read it and let its contents override or extend the defaults above. Common customizations:
- Dev server URL and start command
- Authentication steps required before testing
- Browser-specific test patterns for the project's framework
- Common UI components and their expected behavior
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

