Repro
vaadin/web-components
Reproduce a Vaadin web component bug from a GitHub issue in vaadin/web-components.
Broad regression QA of the Breeze RMM web UI via Playwright — exercising everyday MSP workflows and setup tasks like a human QA tester, logging functional PASS/FAIL plus UI/UX observations, and…
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LanternOps/breeze ui-qa-sweep --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .claude/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .claude/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweepType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LanternOps/breeze ui-qa-sweep --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .agents/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .agents/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LanternOps/breeze ui-qa-sweep --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .cursor/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .cursor/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LanternOps/breeze.git --path .claude/skills/ui-qa-sweep--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LanternOps/breeze ui-qa-sweep --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .gemini/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .gemini/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LanternOps/breeze ui-qa-sweepInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .github/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .github/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LanternOps/breeze --skill ui-qa-sweep -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LanternOps/breeze ui-qa-sweep --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ui-qa-sweep .opencode/skills/ui-qa-sweep && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ui-qa-sweep" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ui-qa-sweep into .opencode/skills/ui-qa-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-qa-sweep", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ui-qa-sweepBroad regression QA of the Breeze RMM web UI via Playwright — exercising everyday MSP workflows and setup tasks like a human QA tester, logging functional PASS/FAIL plus UI/UX observations, and…
UI QA Sweep is an agent skill from LanternOps/breeze. Broad regression QA of the Breeze RMM web UI via Playwright — exercising everyday MSP workflows and setup tasks like a human QA tester, logging functional PASS/FAIL plus UI/UX observations, and filing GitHub issues from findings. Use this whenever the user asks to "QA the UI", do "extensive UI testing", a "regression sweep", "test everyday flows", "act as QA", verify recently/previously merged PRs end-to-end through the browser, or walk backward through PR history checking the UI. This is the whole-app sweep —…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering UI design, Frontend development and Browser testing. It works with GitHub and Playwright. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5a2d714. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghdockerpnpmcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
2breeze.appFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
E2E_ADMIN_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
UI QA Sweep loads about 3k tokens when it runs. Until then it costs about 149 tokens; SKILL.md has 1,480 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
Fix: `.env` `PUBLIC_API_URL=http://localhost`, add `http://localhost` toeads env on restart (no image rebuild). `.env` is gitignored — local only.eze.local` / **`BreezeAdmin123!`** (the `.env`Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LanternOps/breeze at commit 5a2d714, republished under its AGPL-3.0 licence (© LanternOps). 1,480 words, ~2,999 tokens.
.claude/skills/ui-qa-sweep/SKILL.md (or your agent's skills folder).feature-testing verifies one freshly-implemented feature. This skill is the
opposite: a wide regression pass over the whole product as a skeptical human
QA tester would do it — log in, click everything an MSP touches day to day, try
the setup/onboarding tasks, and walk backward through merged PRs confirming each
shipped change still works in the browser. The deliverable is an evidence log
(functional results and UI/UX observations) plus GitHub issues for real
defects.
Bias toward breadth and skepticism. The most valuable findings here are not "feature X exists" — they're silent failures, dead ends, confusing copy, console errors, broken empty states, and things that look fine but give the user no feedback. Treat "the API returned a clean error but the UI showed nothing" as a bug, not a pass.
gh pr list --state merged, newest→oldest,
translate each UI-affecting PR into a concrete click-path, verify it.docs/testing/FEATURE_TEST_LOG.md as you go
(not just at the end), with a running UI/UX observations sub-log.github-issues skill; one focused issue per defect,
dedupe against open issues first, link to the log.pnpm wt-stack down (or the same--f docker compose ... down -v --remove-orphans for a compose-mode stack) from the worktree that
created it, then docker compose ls -a to confirm nothing from this sweep
is still up. State in the final summary what you left running and why.
Nothing reaps a stack for you — full checklist: worktree-stack skill →
"Tear down when done".Use TaskCreate to track the checklist so progress survives context limits.
Prefer dispatching this sweep to a background agent (it is long-running and
context-heavy); a single agent must own the Playwright browser — never run two
browser-driving agents concurrently against the shared MCP browser.
The local stack is frequently misconfigured for browser access. See the
local-playwright-env-setup memory for the full rationale. Short version:
http://localhost through Caddy :80. Do not use
https://2breeze.app (public tunnel is typically down → CF 530; Chromium
rejects Caddy's self-signed cert and the MCP browser has no
ignoreHTTPSErrors).PUBLIC_API_URL. The web app preserves
the URL scheme, so an https:// value force-upgrades API calls and resets.
Fix: .env PUBLIC_API_URL=http://localhost, add http://localhost to
CORS_ALLOWED_ORIGINS, leave BREEZE_DOMAIN unset, then
docker compose up -d --force-recreate web caddy. Dev web is astro dev and
re-reads env on restart (no image rebuild). .env is gitignored — local only.--build rebuild, the API container gets a new IP; restart caddy
or it 502s the API on a stale upstream.curl -s -o /dev/null -w '%{http_code}' http://localhost/health → 200.admin@breeze.local / BreezeAdmin123! (the .env
E2E_ADMIN_PASSWORD is stale). Clear login rate limits if needed (see
feature-testing Phase 2).Load Playwright tools via ToolSearch("select:mcp__plugin_playwright_playwright__browser_navigate,...").
Log in, then visit every sidebar destination once and record: does it render,
HTTP status of its primary data call, console errors/warnings. This is cheap and
catches the highest-impact regressions (a whole page 500ing). Known noise to
note but not chase: a non-platform-admin sees 403 on
/admin/account-deletion-requests/pending-count and the third-party catalog
(tracked — see issues; don't refile).
Nav surface (current): Dashboard, Devices, Alerts (Alerts/Rules/Channels), Incidents, Remote Access, Scripts, Patches (Compliance/Patches/Update Rings), Fleet, AI Workspace, Network Monitor, Security, Sensitive Data, Peripherals, AI Risk, CIS Benchmarks, Compliance Baselines, Network Discovery, Software Library, Software Policies, Config Policies, Backup, Cloud Backup, Disaster Recovery, Integrations, Reports, Analytics, Audit Trail, Event Logs, Settings (Partner, Organizations, AI Usage, Custom Fields, Saved Filters, Users, Roles, Enrollment Keys).
These are the things an MSP tech does on a normal day. For each: perform the action through the UI, verify the result is visibly confirmed (toast, state change, list update — not just a 2xx in the network tab), and check no console error. A backend success with no UI feedback is a fail (this is the #1 recurring defect class — see issue #720).
These are the things done when setting up a tenant or a new feature. Watch
especially for: validation messages being readable (not [object Object], not
silent, not over-generic), guided next-steps after creation, and sidebar/list
sync after create/delete.
configuration-policy skill for
internals).javascript:/data:.Fixture-limited items (single-org seed, offline devices, no platform admin) — note as BLOCKED with the prerequisite, don't fake a pass. Re-test guidance goes in the log.
gh pr list --repo LanternOps/breeze --state merged --limit 60 \
--json number,title,mergedAt --jq 'sort_by(.mergedAt)|reverse|.[]|"\(.number) \(.title)"'Walk newest→oldest. Skip pure chore/deps/CI/refactor/agent-only PRs (no web surface). For each UI-affecting PR, translate the title into a concrete click-path and verify the change is present and works. When the recent window is covered, keep going further back — this is a backward sweep, there is no natural stopping point except the user's call or running out of UI-affecting PRs. Record the oldest PR number reached so a later run can resume.
Append to docs/testing/FEATURE_TEST_LOG.md under a dated
## UI QA Sweep — YYYY-MM-DD section. Write entries as you go, not at the
end (a long sweep will hit context limits; unflushed findings are lost).
Per area:
### [Area / PR#] — PASS | PARTIAL | FAIL | BLOCKED
- ✅ what worked (with the concrete check)
- ❌ BUG: symptom → API actual (status + body) vs UI actual; why it's a bug
- ⚠️ UI/UX: friction, confusing copy, layout, console noise (the parallel log)
- prerequisite/re-test note if BLOCKEDKeep a running UI/UX observations list separate from pass/fail — small papercuts (ambiguous labels, missing empty states, overlays that intercept clicks, console errors, transient toasts) are the point, not a side note.
End with a summary table (area → result) and a "Top findings" section calling out systemic patterns (e.g. "N features share a broken toast path").
Invoke the github-issues skill. Rules that matter here:
gh issue list --state open and grep for keywords first — dedupe. If related
but distinct (different symptom, same file), cross-link, don't refile.[UI] symptom...; body = Description (with exact API status+body vs UI
behavior), suspected root cause, proposed fix, affected files, "Reported By:
internal Playwright UI QA sweep <date>, evidence in FEATURE_TEST_LOG.md".@reporter; still don't close issues yourself.browser_snapshot target=... + browser_evaluate DOM probes; screenshot only
when a visual check is the point./admin/* 403s) — note once, move on.fixed inset-0 divs with no role=dialog. Asserting "did a dialog open"
by role/class will wrongly conclude an action silently failed (this bit a
Reboot-button check). Assert on the modal's title/body text (or a
data-testid) instead, and confirm the outcome (toast/state change), not
the container.© LanternOps, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/ui-qa-sweep of LanternOps/breeze.
Open the folder on GitHubat commit 5a2d714
UI QA Sweep next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| UI QA Sweep this skillLanternOps/breeze | 131 | — | ~3k | Automated safety check: Notes | AGPL-3.0 | |
| Reprovaadin/web-components | 582 | — | ~1.3k | Automated safety check: Pass | None | |
| UI Visual DebuggingNangoHQ/nango | 13k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Verify Debbie Codesdebs-obrien/debbie.codes | 142 | — | ~1.9k | Automated safety check: Pass | None | |
| UI Reviewjvm-skills/jvm-skills | 140 | — | ~545 | Automated safety check: Pass | Apache-2.0 | |
| Shogun Screenshotyohey-w/multi-agent-shogun | 1.4k | — | ~901 | Automated safety check: Notes | MIT |
vaadin/web-components
Reproduce a Vaadin web component bug from a GitHub issue in vaadin/web-components.
NangoHQ/nango
A skill your agent uses when modifying or visually debugging Nango frontend UI, including packages/webapp, packages/connect-ui, browser interactions, screenshots, and visual regressions.
debs-obrien/debbie.codes
Drive the live debbie.codes Nuxt site (web UI) the way a user does via Playwright — launch the dev server, doctor health, exercise mapped features, capture screenshots/ARIA evidence, and clean up.
jvm-skills/jvm-skills
Verify UI/UX by running Playwright tests and reviewing screenshots.
yohey-w/multi-agent-shogun
スクリーンショットの取得・加工を行う。ローカルスクショから最新画像を取得、 PlaywrightでWebページをキャプチャ、画像のトリミング・リサイズ、機微情報を黒塗りマスキング。
LiteyukiStudio/LiteyukiBot
Build, review, or test LiteyukiBot v7's React/Vite WebUI under webui/ and its packaged static delivery in packages/webui/.
LanternOps/breeze
Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.
LanternOps/breeze
A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.
LanternOps/breeze
Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
LanternOps/breeze
Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…
LanternOps/breeze
A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…
LanternOps/breeze
A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…
Works with
Categories
Broad regression QA of the Breeze RMM web UI via Playwright — exercising everyday MSP workflows and setup tasks like a human QA tester, logging functional PASS/FAIL plus UI/UX observations, and…. UI QA Sweep is an agent skill from LanternOps/breeze. Broad regression QA of the Breeze RMM web UI via Playwright — exercising everyday MSP workflows and setup tasks like a human QA tester, logging functional PASS/FAIL plus UI/UX observations, and filing GitHub issues from findings.
UI QA Sweep fits situations like: asks to QA the UI; do extensive UI testing; A regression sweep; test everyday flows.
Run `npx skills add LanternOps/breeze --skill ui-qa-sweep -a claude-code`. Or copy the skill folder (.claude/skills/ui-qa-sweep in LanternOps/breeze) into .claude/skills/ui-qa-sweep in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LanternOps/breeze --skill ui-qa-sweep -a codex`. Or copy the skill folder (.claude/skills/ui-qa-sweep in LanternOps/breeze) into .agents/skills/ui-qa-sweep in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LanternOps/breeze --skill ui-qa-sweep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-qa-sweep, .gemini/skills/ui-qa-sweep, .github/skills/ui-qa-sweep and .opencode/skills/ui-qa-sweep in your project.
Going by SKILL.md and its folder, UI QA Sweep needs the command-line tools its instructions call (gh, docker, pnpm and curl) and credentials named E2E_ADMIN_PASSWORD. Our summary lists: Docker.
SKILL.md names 1 domain. In commands or code: 2breeze.app; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
UI QA Sweep is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with UI QA Sweep: Repro (vaadin/web-components, 582 stars), UI Visual Debugging (NangoHQ/nango, 13k stars), Verify Debbie Codes (debs-obrien/debbie.codes, 142 stars) and UI Review (jvm-skills/jvm-skills, 140 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 131 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.
Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.