From qa-mobile-pack
Parses a BrowserStack/SauceLabs/LambdaTest test failure (pasted JSON or session ID) into a clean 5-line markdown summary plus likely root-cause hypotheses. Use when the user shares a cloud-grid failure, a session UUID, asks "why did this run fail", or pastes WDIO/Appium grid output.
npx claudepluginhub rabusek/qa-mobile-packThis skill is limited to using the following tools:
Turn a noisy cloud-grid failure into something a QA engineer can triage in under 30 seconds. Input is `$ARGUMENTS` — either a session UUID or a JSON blob from BrowserStack/SauceLabs/LambdaTest API.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Turn a noisy cloud-grid failure into something a QA engineer can triage in under 30 seconds. Input is $ARGUMENTS — either a session UUID or a JSON blob from BrowserStack/SauceLabs/LambdaTest API.
Requires browserstack MCP for live session fetch — see qa-mobile-pack/mcp/README.md. If MCP is not available, ask the user to paste the session JSON.
[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} → session ID. If browserstack MCP is available, fetch session details. Otherwise stop and request the JSON.automate/sessions/{id}.json shape, SauceLabs jobs/{id} shape, or LambdaTest sessions/{id} shape).device (model name, e.g. iPhone 15 Pro)os + os_versionlocale (default en-US if missing)browser_version or app_versioncreated_at / timestampfailed_step (last step name before failure, or reason)error_message — first 200 chars onlyvideo_url / screencast_urllogs_url / appium_logs_urlnetwork_url / har_urltiming, network, selector, device, data. Base the tags on signals from the error message (e.g. ElementNotInteractable → timing; ECONNRESET/5xx → network; NoSuchElement → selector; OutOfMemory/ANR → device).**Failure summary**
- Device: <model> (<os> <os_version>, locale <locale>)
- App/Browser: <version>
- When: <timestamp>
- Failed step: <step name>
- Error: <first 200 chars>
**Artefacts**
- Video: <video_url>
- Logs: <logs_url>
- Network HAR: <network_url>
**Likely causes**
1. [<tag>] <hypothesis>
2. [<tag>] <hypothesis>
3. [<tag>] <hypothesis>