# Verify Page Loaded

> Confirms that the current page has finished loading and is ready for interaction. Detects loading spinners, skeleton screens, and content placeholders. Run before extraction skills.

- **Type:** Skill
- **Install:** `agentstack add skill-bettyguo-browser-skills-verify-page-loaded`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [bettyguo](https://agentstack.voostack.com/s/bettyguo)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [bettyguo](https://github.com/bettyguo)
- **Source:** https://github.com/bettyguo/browser-skills/tree/main/skills/verify-page-loaded

## Install

```sh
agentstack add skill-bettyguo-browser-skills-verify-page-loaded
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Verify Page Loaded

## When to invoke

After any navigation, and after any interaction that may have triggered new content (clicking pagination, expanding a section, submitting a form). Especially important before extraction skills — extracting from a half-rendered DOM produces incomplete results.

This skill is **vision-forbidden** (`max_vision_calls: 0`). If the deterministic checks fail, the skill returns `failed` and the agent knows the page is genuinely not ready — vision wouldn't help.

## Recipe

1. wait_for_dom_ready timeout=10s
2. wait_for_selector selector="body" state=visible timeout=2s
3. wait extra=200ms
4. assert no_visible_element selector="[aria-busy='true']" timeout=3s
5. assert no_visible_element selector=".loading, .spinner, [class*='skeleton']" timeout=3s

## Success criteria

- assert dom_ready
- assert no_visible_element selector="[aria-busy='true']"
- assert main_content_present

The `main_content_present` assertion checks for one of: ``, `[role=main]`, ``, or a body height > 200px (heuristic for "something rendered").

## When NOT to use

- On pages that legitimately stay in a loading state (live dashboards, video-call interfaces, etc.). Use a custom skill or rely on agent reasoning.
- Inside an extraction loop where the page is the same as before; this skill assumes a fresh state.

## Known failures

- **Single-page apps with no DOMContentLoaded signal change:** rare but happens with React/Vue apps that use shadow DOM heavily. Falls back to the spinner-absence check.
- **Pages with always-present skeleton-style classes:** some design systems use `.skeleton` for normal layout elements, not loading. Authors can override the recipe to remove step 5.
- **Sites that block until consent is given:** if a cookie banner is also blocking, run [`dismiss-cookie-banner`](../dismiss-cookie-banner/SKILL.md) first.

## Example usage

```
Agent task: "Get the latest cs.AI papers from arxiv."
→ matcher selects [verify-page-loaded, extract-table-pagination]
→ invoke_skill("verify-page-loaded") → success in 89ms, deterministic_path=true
→ invoke_skill("extract-table-pagination") proceeds against a fully-rendered page
```

## Related skills

- `dismiss-cookie-banner` — usually precedes this skill
- `extract-table-pagination` — usually follows this skill
- `handle-infinite-scroll` — uses similar primitives but with a different success criterion

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [bettyguo](https://github.com/bettyguo)
- **Source:** [bettyguo/browser-skills](https://github.com/bettyguo/browser-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-bettyguo-browser-skills-verify-page-loaded
- Seller: https://agentstack.voostack.com/s/bettyguo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
