plugins/lisa-expo/skills/ops-browser-uat/SKILL.md
Browser-based user acceptance testing via Playwright MCP tools. Logs into the application, navigates through features, and captures visual proof with screenshots.
npx skillsauth add codyswanngt/lisa ops-browser-uatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Perform browser-based user acceptance testing using Playwright MCP tools.
Argument: $ARGUMENTS — scenario and environment (e.g., smoke-test dev, login staging, player-detail dev, custom production /path)
playwright browser and load all browser tools.Before running any scenario, read these project files to discover configuration:
e2e/constants.ts — environment URLs, test credentials (phone, OTP), timeouts, viewportse2e/selectors.ts — all data-testid values organized by feature areae2e/fixtures/auth.fixture.ts — exact login/logout flow to replicate via MCP toolsplaywright.config.ts — video/trace recording config, test directoryReplicate the login flow from e2e/fixtures/auth.fixture.ts using Playwright MCP tools. Read the file to get the exact steps, which typically follow this pattern:
browser_navigate to {BASE_URL}/signinbrowser_snapshot to discover page elementsbrowser_fill_form — fill the phone input (discover placeholder text from auth fixture)browser_click — click the "Next" buttonbrowser_wait_for — wait for URL to contain confirm-code (timeout from constants)browser_snapshot to discover OTP inputbrowser_fill_form — fill the OTP input (discover testid from selectors, value from constants)browser_wait_for — wait for URL to NOT contain confirm-codebrowser_take_screenshot — capture login proofExpo's development error overlay may appear. Dismiss it:
browser_evaluate with script:
document.getElementById('error-overlay')?.remove();
document.querySelectorAll('[id*="error"]').forEach(el => el.remove());
browser_press_key — press "Escape" as backup// browser_evaluate
localStorage.getItem("@authData") !== null
Discover the menu button and sign-out flow from e2e/selectors.ts and e2e/fixtures/auth.fixture.ts:
browser_click — menu button element (discover testid from selectors)browser_click — element with text "Sign Out"browser_wait_for — URL contains signinRead e2e/selectors.ts to get the complete data-testid reference for the project. The selectors object is organized by feature area (auth, nav, home sections, player detail, etc.).
Use [data-testid="{TESTID}"] to target elements in Playwright MCP tools.
Full app walkthrough. Read e2e/selectors.ts to identify which sections and elements to verify:
Just the login flow with screenshot proof.
Login → verify all home screen sections have data. Screenshot each section.
Login → navigate to user-specified URL → interact as instructed → screenshot.
At each verification point:
browser_take_screenshot — visual proof of current statebrowser_console_messages — check for JavaScript errorsbrowser_network_requests — monitor for failed API calls (4xx, 5xx)Report UAT results as a table:
| Step | Action | Status | Notes | |------|--------|--------|-------| | 1 | Navigate to /signin | PASS | Page loaded in 1.2s | | 2 | Enter phone number | PASS | Input accepted | | 3 | Click Next | PASS | Navigated to /confirm-code | | 4 | Enter OTP | PASS | OTP accepted | | 5 | Verify home screen | PASS | All sections present | | 6 | Logout | PASS | Redirected to /signin |
Include total PASS/FAIL count and any JS errors or failed network requests observed.
documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.