verifying-web-flows

Runs pass/fail acceptance tests on web flows using auto-waiting browser assertions.

Updated Apr 11, 2026
One-click install
npx skills add https://github.com/celikgo/webmobai --skill verifying-web-flows-celikgo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: verifying-web-flows
Source: https://github.com/celikgo/webmobai/tree/main/.claude/skills/verifying-web-flows
Command: npx skills add https://github.com/celikgo/webmobai --skill verifying-web-flows-celikgo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It turns a described user flow into an explicit pass/fail acceptance test, so you get a definitive verdict on whether a flow works instead of a vague audit or manual spot-check. ## Core Features & Use Cases - Five assertion verbs: assert_visible, assert_hidden, assert_text, assert_url, and assert_count, each with built-in auto-wait (default 5s timeout, polling every 100ms) to absorb timing flakes. - Failure triage: failed selector assertions return a self-healing block with the element's prior fingerprint and up to 5 ranked candidate replacements, plus a failure-context bundle (URL, title, viewport, console/network errors, screenshot). - Use Case: Verify that after logging into an app the user lands on /dashboard and sees a welcome heading — drive the login, assert the URL and heading, and get an inline PASS/FAIL scorecard with video evidence. ## Quick Start Verify that after logging into https://app.example.com the user lands on /dashboard and sees the welcome heading.

Frequently Asked Questions about verifying-web-flows

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a pass/fail acceptance test for a web flow?▼

Drive the flow with browser actions like navigate, click, and type, then assert the expected end state with assert_url, assert_visible, assert_text, assert_hidden, or assert_count. Each assertion auto-waits up to its timeout and fails the run if the expectation is unmet.

What is the difference between assert_text and assert_visible in browser testing?▼

assert_visible checks that an element appears on the page, while assert_text checks that an element contains an expected substring (case-sensitive by default). Pass exact: true to assert_text for an exact trimmed-innerText match.

Why does assert_url fail with a matcher error?▼

Since v1.4.0, assert_url requires at least one of contains or pattern; a call with neither is rejected because it would verify nothing. Older tests that relied on a bare assert_url were passing vacuously and will now go red.

What happens when a web flow assertion fails?▼

Selector-based assertions return a self-healing block with the element's recorded fingerprint and up to 5 ranked candidate replacements, plus a failure-context bundle with current URL, title, viewport, recent console and network errors, and a screenshot. A failure is the answer — do not retry to force a pass.

Can I test a flow that starts behind a login?▼

Yes. Launch the browser with storage_state_path pointing to a saved session file so the flow starts already authenticated, rather than re-driving the login. Check the failure block's current URL first — if it is /login, the session expired and the verdict is inconclusive, not a failed flow.