Borrowing it
Nothing to install: this file belongs to r5rana/agentware. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/r5rana/agentware/main/.claude/skills/ui-verification/SKILL.mdgit clone --depth 1 https://github.com/r5rana/agentwareWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/r5rana/agentware/ui-verification)<a href="https://agentmods.dev/skills/r5rana/agentware/ui-verification"><img src="https://agentmods.dev/badge/skills/r5rana/agentware/ui-verification/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/r5rana/agentware/ui-verification"><img src="https://agentmods.dev/badge/skills/r5rana/agentware/ui-verification.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 5 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 114 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 122 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 168 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 125 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 204 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.02078 |
| Opus 5.5 | $0.00000 | $0.00831 |
| Sonnet 5.5 | $0.00000 | $0.00416 |
| Haiku 4.5 | $0.00000 | $0.00208 |
Grade A, and why
ui-verification scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.
UI Verification Skill — Playwright
When to invoke: when a task changes UI behavior, page rendering, or web-API interactions. ALWAYS ask the user first; never run E2E checks unprompted.
Why this skill exists
Marking a UI task "complete" because the build and unit tests pass is risky — units don't catch routing bugs, hydration issues, race conditions on real network calls, broken visual states, or wrong API payloads. A real browser hitting the real running app is the only honest "complete" for a UI task. This skill is gated on user consent at every checkpoint.
Prerequisites
- The target web app has Playwright installed and a
playwright.config.*. If onboarding's Step 6 ran, it is set up; otherwise run the "Manual setup" at the end of this file. - The configuration entry recording the web-app path and runner command lives at
<KDIR>/configurations/playwright.md(whereKDIR=$(scripts/agentware config --knowledge-dir-only)). Read it before running any spec — paths differ per user. - The web app is runnable locally. Prefer letting
playwright.config.*manage the dev server via itswebServerblock.
When to ask the user
Before marking a UI-affecting task complete in the worklog, ALWAYS ask:
"This task touches the UI. Want me to run a Playwright check before marking it complete? (y/n; default: n)"
- If no: mark complete, but note in the worklog that the E2E check was deferred. Do not silently skip.
- If yes: ask which depth to run.
Depth modes
| Mode | What it does | Default when |
|---|---|---|
| shallow | Render + visible-element assertions | Pure visual / styling change |
| with-api | Shallow + intercept the relevant API request, assert payload + status | Any change touching a fetch / form submit / mutation |
| deep | With-API + multi-step user flow + state mutations | Complex flows, sequential-interaction bug fixes |
If unsure, default to with-api when the change involves a network call, else shallow.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 221 lines · 0 tokens per session scan A 1a6ce388b3f6
ui-verification is a skill published in the GitHub repository r5rana/agentware (24 stars, last pushed 2mo ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 2,078 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
browse
Drive a real browser through Aside: open a page, read it, click through a flow, take screenshots, check console errors. (gstack).
cua-driver
Use Cua Driver for desktop or browser tasks that are awkward or unavailable through Bash/APIs, or when the user explicitly wants GUI interaction: app testing, visual bug reproduction, form filling, calendar entry, screenshots, and demo recording. Also covers Cua setup; not OpenAI Codex Computer Use or web research.
create-verification-skill
Create a repo-local verification skill and exhaustive feature map for driving a real app through its UI, CLI, or API. Use for "create a verification skill", "make a verify skill for this repo", or "document how agents can verify this app".
browser-qa
A browser-based quality check for deployed web pages and user flows. It uses browser automation to test rendering, navigation, forms, interactions, responsive behaviour, and accessibility-related issues.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
test-electron-app
Drive the real running PostHog Electron app (live tRPC, workspace-server, real data) over CDP with agent-browser. Connect to the running app on port 9222, test desktop changes against a local Django stack, snapshot the accessibility tree, inspect network requests, and screenshot only when explicitly asked. Use when…