LeadUp Browser / Playwright Tester
Purpose
Verify a LeadUp app actually works in a real browser — core flows pass, no
console/network errors, responsive on mobile — and leave behind Playwright
specs so it stays tested.
When to use
Trigger phrases: "test website", "run Playwright", "browser test", "check UI
works", "test admin panel", "test login", "does the form submit", "e2e test
this", "verify the app in a browser".
This skill runs tests. To choose/sequence which browser tool to use →
leadup-mcp-tool-orchestrator. For visual polish, not correctness →
leadup-premium-ui-upgrader.
Inputs needed
- The app/repo and how to run it (Docker command or dev server + port).
- Base URL (default
http://localhost:3000) and which flows matter.
- Test credentials by env var name only — never pasted into chat.
Step-by-step workflow
Use references/playwright-test-flows.md.
- Run the app locally (Docker or correct dev command). Confirm it serves.
- Pick flows: home, navigation, forms, login, logout, protected routes,
admin CRUD, multi-tenant isolation, billing screen (test mode only).
- Drive the browser with the available browser tool/MCP; if none,
write/update Playwright specs the user can run and give manual steps.
- Check health every run: console errors, failed network (4xx/5xx),
loading/error/empty states, responsive at 375/768/1280.
- Capture evidence: pass/fail per flow + screenshots of failures.
- Write/update specs under
e2e/ (creds via env vars only).
- Report results and the single most important fix; log bugs for
leadup-status-updater.
Required output format
- Run command used + base URL.
- Results table — flow | pass/fail | console/network errors | note.
- Failure evidence — screenshots/log excerpts (no secrets).
- Specs created/updated — file paths.
- Top fix — the one issue to address next.
Safety rules
See references/security-rules.md. Most relevant here:
- Test credentials via env vars only; never hardcode real creds in specs or
print them; never test against production with real customer data.
- Use payment test mode only; never trigger live charges.
- Do not disable auth/CORS/CSP to make a test pass — report the blocker.
Common mistakes
- Testing against a stale build instead of the freshly-run app.
- Hardcoding real login credentials into the spec file.
- Calling a white screen "passing" because the URL loaded — assert content.
- Ignoring console/network errors that don't break the happy path.
- Skipping mobile widths on a mobile-first Indian-business SaaS.
- Running destructive admin actions against real data.
Troubleshooting
- Under-triggers: user said "see if the site works" — re-invoke; suggest
triggers.
- Over-triggers for visual design feedback → route to
leadup-premium-ui-upgrader.
- Missing tool/MCP (no browser tool): write/update Playwright specs +
manual step list instead of live driving.
- No internet/browser access: deliver specs and a manual test checklist;
state that live execution was not possible.
- Missing project files: if no run command is discoverable, ask or run
leadup-existing-repo-analyzer first.
- Build/test failure: capture the exact error, classify (build / env /
selector / app bug), report; do not weaken assertions to force green.
Test prompts
Should trigger (5)
- "Test the login on the salon SaaS in the browser."
- "Run Playwright against the jewellery app and check the admin panel."
- "Browser test the venus school site — does navigation work?"
- "Check the contact form actually submits on the clinic site."
- "E2e test the CRM and update the specs."
Should NOT trigger (3)
- "Make the dashboard look premium." (→ premium-ui-upgrader)
- "Which browser tool should we use?" (→ mcp-tool-orchestrator)
- "Is this repo ready to deploy?" (→ deploy-checker)
Functional test cases (2)
- With the app running, produce a results table covering home + login + one
admin CRUD, with console-error status per flow.
- With no browser tool available, output a runnable Playwright spec using
env-var credentials and a manual test checklist.
Success criteria
- App run locally and exercised (or specs delivered if no browser tool).
- Console/network/responsive checks reported per flow.
- Specs created/updated with env-var creds (no secrets committed).
- One clear top fix surfaced.
1---2name: leadup-browser-playwright-tester3description: Test a LeadUp app end-to-end in the browser. Runs the app locally (Docker or dev server), exercises login, forms, navigation, and admin flows, checks console errors and mobile responsiveness, and creates or updates Playwright specs. Use when the user says "test website", "run Playwright", "browser test", "check UI works", "test admin panel", or "test login".4---56# LeadUp Browser / Playwright Tester78## Purpose910Verify a LeadUp app actually works in a real browser — core flows pass, no11console/network errors, responsive on mobile — and leave behind Playwright12specs so it stays tested.1314## When to use1516Trigger phrases: "test website", "run Playwright", "browser test", "check UI17works", "test admin panel", "test login", "does the form submit", "e2e test18this", "verify the app in a browser".1920This skill *runs* tests. To choose/sequence which browser tool to use →21`leadup-mcp-tool-orchestrator`. For visual polish, not correctness →22`leadup-premium-ui-upgrader`.2324## Inputs needed2526- The app/repo and how to run it (Docker command or dev server + port).27- Base URL (default `http://localhost:3000`) and which flows matter.28- Test credentials by **env var name only** — never pasted into chat.2930## Step-by-step workflow3132Use `references/playwright-test-flows.md`.33341. **Run the app locally** (Docker or correct dev command). Confirm it serves.352. **Pick flows**: home, navigation, forms, login, logout, protected routes,36 admin CRUD, multi-tenant isolation, billing screen (test mode only).373. **Drive the browser** with the available browser tool/MCP; if none,38 write/update Playwright specs the user can run and give manual steps.394. **Check health every run**: console errors, failed network (4xx/5xx),40 loading/error/empty states, responsive at 375/768/1280.415. **Capture evidence**: pass/fail per flow + screenshots of failures.426. **Write/update specs** under `e2e/` (creds via env vars only).437. **Report** results and the single most important fix; log bugs for44 `leadup-status-updater`.4546## Required output format47481. **Run command used** + base URL.492. **Results table** — flow | pass/fail | console/network errors | note.503. **Failure evidence** — screenshots/log excerpts (no secrets).514. **Specs created/updated** — file paths.525. **Top fix** — the one issue to address next.5354## Safety rules5556See `references/security-rules.md`. Most relevant here:57- Test credentials via env vars only; never hardcode real creds in specs or58 print them; never test against production with real customer data.59- Use payment **test mode** only; never trigger live charges.60- Do not disable auth/CORS/CSP to make a test pass — report the blocker.6162## Common mistakes6364- Testing against a stale build instead of the freshly-run app.65- Hardcoding real login credentials into the spec file.66- Calling a white screen "passing" because the URL loaded — assert content.67- Ignoring console/network errors that don't break the happy path.68- Skipping mobile widths on a mobile-first Indian-business SaaS.69- Running destructive admin actions against real data.7071## Troubleshooting7273- **Under-triggers**: user said "see if the site works" — re-invoke; suggest74 triggers.75- **Over-triggers** for visual design feedback → route to76 `leadup-premium-ui-upgrader`.77- **Missing tool/MCP** (no browser tool): write/update Playwright specs +78 manual step list instead of live driving.79- **No internet/browser access**: deliver specs and a manual test checklist;80 state that live execution was not possible.81- **Missing project files**: if no run command is discoverable, ask or run82 `leadup-existing-repo-analyzer` first.83- **Build/test failure**: capture the exact error, classify (build / env /84 selector / app bug), report; do not weaken assertions to force green.8586## Test prompts8788### Should trigger (5)891. "Test the login on the salon SaaS in the browser."902. "Run Playwright against the jewellery app and check the admin panel."913. "Browser test the venus school site — does navigation work?"924. "Check the contact form actually submits on the clinic site."935. "E2e test the CRM and update the specs."9495### Should NOT trigger (3)961. "Make the dashboard look premium." (→ premium-ui-upgrader)972. "Which browser tool should we use?" (→ mcp-tool-orchestrator)983. "Is this repo ready to deploy?" (→ deploy-checker)99100### Functional test cases (2)1011. With the app running, produce a results table covering home + login + one102 admin CRUD, with console-error status per flow.1032. With no browser tool available, output a runnable Playwright spec using104 env-var credentials and a manual test checklist.105106## Success criteria107108- App run locally and exercised (or specs delivered if no browser tool).109- Console/network/responsive checks reported per flow.110- Specs created/updated with env-var creds (no secrets committed).111- One clear top fix surfaced.