recovery

recovery is a skill for Claude Code from MigoXLab/webqa-agent. It costs 11 tokens per session (1,000 once invoked), scanned A, original, Apache-2.0.

A recovery procedure for browser automation when an action fails, has the wrong effect, or leaves the page in an unexpected state. Browser automation means using software to interact with websites.

In plain words
What is it for?
Recovering from failed clicks, incorrect form fills, blocked pages, failed uploads, unexpected pop-ups, JavaScript errors, redirects, and other browser-automation problems.
Why use it?
It prevents the agent from guessing after a failure. The agent first checks the page, screenshot, browser errors, and network activity before deciding how to recover.

Skill for Claude Code

Written for Claude Code: when-to-use in frontmatter.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/migoxlab/webqa-agent/recovery
Any agent
npx skills add MigoXLab/webqa-agent --skill recovery
Clone the repo
git clone --depth 1 https://github.com/MigoXLab/webqa-agent

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for recovery

README.md
[![agentmods](https://agentmods.dev/badge/skills/migoxlab/webqa-agent/recovery.svg)](https://agentmods.dev/skills/migoxlab/webqa-agent/recovery)
Your own site
<a href="https://agentmods.dev/skills/migoxlab/webqa-agent/recovery"><img src="https://agentmods.dev/badge/skills/migoxlab/webqa-agent/recovery.svg" alt="Measured on agentmods" height="20"></a>
Per session 11 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,000 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00011 $0.01000
Opus 5 $0.00005 $0.00500
Sonnet 5 $0.00002 $0.00200
Haiku 4.5 $0.00001 $0.00100

Measured 6d ago against content hash 462fd7aa8f5a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

recovery scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

webqa_agent/executor/flash/skills/recovery/SKILL.md · 120 lines

How it starts

The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Recovery Skill

Structured recovery for browser automation failures. Covers execution errors, semantic failures, state divergence, tool limitations, and environmental blockers.

When to Use

Load this skill when any of these occur:

  • A tool returns an error (is_error in tool result).
  • A post-action screenshot shows no change or an unexpected change.
  • A verification step (snapshot / verify) contradicts the expected state.
  • An action succeeded but the effect is wrong (filled wrong field, clicked wrong element, upload didn't trigger, text truncated).
  • An unexpected element blocks progress (modal, banner, CAPTCHA, cookie consent).

Recovery Loop

Follow three phases in order. Do not skip OBSERVE.

Step 1 — OBSERVE

Re-perceive the actual page state before making any recovery decision.

Batch these read-only tools in a single turn (the engine runs them concurrently):

  • take_snapshot — current DOM / accessibility tree.
  • take_screenshot — current visual state.
  • list_console_messages — JS errors that may explain the failure.
  • list_network_requests — failed API calls or unexpected redirects.

Before / after comparison: Compare the current state against what the page looked like before the failed action. Ask:

  1. What changed? (anything at all — URL, DOM, visual layout)
  2. What should have changed but didn't?
  3. Are there new elements that weren't there before (modals, errors)?

Step 2 — DIAGNOSE

Classify the failure and assess progress.

Error classification — load the error-taxonomy reference for the full list: load_skill(skill_name="recovery", reference="error-taxonomy")

Key questions:

  • Is this an execution error (tool reported failure) or a semantic error (tool succeeded but wrong effect)?
  • Is the root cause a tool limitation, a wrong selector, a page state change, or an environmental blocker?

Progress assessment — did the action make any progress toward the goal?

  • Partial progress (e.g. 3 of 5 fields filled): preserve what worked, recover only the failed part.
  • Zero progress (nothing changed): the approach itself may be wrong; escalate sooner.
  • Negative progress (broke something): undo if possible (evaluate_script({ code: "history.back()" }) or navigate to the previous URL), then re-observe.

Read the full file on GitHub · 120 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 120 lines · 11 tokens per session scan A 462fd7aa8f5a

Subscribe to this mod's changes

recovery is a skill published in the GitHub repository MigoXLab/webqa-agent (230 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 11 tokens to every session and 1,000 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

web-exfiltration-detection

Detect data exfiltration via URL path encoding and chained webfetch navigation. Covers fake trusted UI injection, letter-level URL path exfiltration, and multi-hop navigation hijacking. Use when the agent has web/URL fetch capability and stores user memory or personal context.

Tencent/AI-Infra-Guard · 61 tokens

browserwing-executor

Control browser automation through HTTP API. Supports page navigation, element interaction (click, type, select), data extraction, accessibility snapshot analysis, screenshot, JavaScript execution, and batch operations.

MemTensor/MemOS · 42 tokens

dev-browser

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website"…

MemTensor/MemOS · 84 tokens

web-search

This skill should be used when users need to search the web for information, find current content, look up news articles, search for images, or find videos. It uses DuckDuckGo's search API to return results in clean, formatted output (text, markdown, or JSON). Use for research, fact-checking, finding recent…

opensquilla/opensquilla · 76 tokens

langbot-testing

Test LangBot WebUI and core product flows with an automated browser and backend logs. Use when validating the configured LangBot frontend, pipeline Debug Chat, model provider setup and test buttons, bot and knowledge-base UI flows, or troubleshooting failed LangBot end-to-end tests.

langbot-app/LangBot · 58 tokens

browse

Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch/search, diagnostics, and Browse.sh skill discovery/installation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase…

rivet-dev/agentos · 109 tokens