Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add soumyachk101/VibeLens --skill design-reviewgit clone --depth 1 https://github.com/soumyachk101/VibeLensWrote 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/soumyachk101/vibelens/design-review)<a href="https://agentmods.dev/skills/soumyachk101/vibelens/design-review"><img src="https://agentmods.dev/badge/skills/soumyachk101/vibelens/design-review/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/soumyachk101/vibelens/design-review"><img src="https://agentmods.dev/badge/skills/soumyachk101/vibelens/design-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00107 | $0.02015 |
| Opus 5 | $0.00053 | $0.01007 |
| Sonnet 5 | $0.00021 | $0.00403 |
| Haiku 4.5 | $0.00011 | $0.00201 |
Grade A, and why
design-review 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 12d 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 — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Design review
Target: $ARGUMENTS (if empty, ask which URL and port the dev server is on, or infer it from the project's dev script — Next.js 3000, Vite 5173, CRA 3000).
What this skill is for
Generated UI is rarely broken. It is undifferentiated: correct HTML, plausible Tailwind, and every decision left at its default. This review names the specific defaults that are still in place and replaces them with chosen values.
Two sources, two jobs. The screenshot is the only thing that can tell you whether the page reads as designed — hierarchy, density, rhythm, weight of the accent. The simplifiedDOM is the only thing that can tell you why, because it carries the real ids and utility classes. A finding with no class or element behind it is an opinion; do not ship opinions.
The full catalogue of tells, with the reasoning behind each one, is docs/design/ANTI-SLOP.md. Read it when a finding needs depth. Do not restate it here.
Steps
-
Capture the page with
inspect_localhost_ui,fullPage: true, viewportdesktop. Add amobilecapture too — density and hierarchy failures are loudest at 390px. Raisedelayto 2000–3000 if the DOM comes back nearly empty; you cannot review an unhydrated page. -
Check
summary.domTruncated. If it istrue, the tree is partial. Scope every finding to what you actually saw and say which regions you could not reach. -
Work the nine checks below in this order. The order is deliberate: typography and colour dominate perceived quality, so a page that fails check 1 is not helped by fixing check 7.
- Type scale, or one size repeated. Collect every
text-*/font-sizeclass in the DOM and count the distinct values. Three or fewer distinct sizes across a full page means there is no scale and no hierarchy — everything istext-smandtext-basewith weight doing all the work. Eight or more usually means sizes were picked ad hoc per component. Look at the screenshot: can you identify the single most important element on the page in under a second? If not, the scale is the cause. Hand off to thetype-systemskill for the fix. - The accent is the framework default.
blue-500,blue-600,indigo-500,#3b82f6,#6366f1, shadcn's untouched--primary, Bootstrap#0d6efd. These are the single strongest tell, because they are the colour of not having decided. Also flag the opposite failure: an accent used on every card, badge, border and heading, which destroys its meaning. Hand off to thecolor-systemskill for the fix. - One radius everywhere. Grep the class lists for
rounded-*. If a 1200px-wide page section, a 320px card, a 36px button and a 20px badge all carryrounded-lg, nothing reads as nested — radius should scale with the box. If everything isrounded-fullor everything is square, that is the same failure in a different direction. - Spacing carries hierarchy, or is uniform. Collect
gap-*,p-*,m-*,space-y-*. If one value (usually4) accounts for most of them, the page has no grouping: related elements sit as far apart as unrelated ones. Related items should be tighter than the space around their group, and section-level rhythm should be several steps larger than component-level rhythm. See docs/design/SPACING-LAYOUT.md. - Optical alignment. Look at the screenshot, not the DOM. Icons centred by box rather than by mass; a button label that sits low because the cap height is not the box centre; a quote mark or bullet flush to the container instead of hanging outside it; numerals in a column aligned left instead of on the decimal; a card grid whose last row is centred when it should be flush-left. Nothing optically adjusted anywhere on a page is itself the finding.
- Real empty, loading and error states. Search the DOM and then the
source for what renders when a list is empty, a fetch is in flight, or a
request fails. A bare
null, a centred "No data", or a spinner where the content will be are all the same defect. The tool cannot click, so reach these states by having the user navigate to one, or by temporarily rendering the state in code, capturing it, and reverting. - Visible focus. Look for
focus:outline-nonewith no accompanyingfocus-visible:ring on anything interactive — that is a removed affordance, not a style. Absent focus styling on customdiv-based controls counts too. Focus cannot be captured (the tool cannot tab), so verify it in the DOM and CSS, and say so. - Neutral ramp and surfaces. Pure
#000/#fffbackgrounds,bg-whiteon a dark-mode-capable page, and text attext-gray-*with no hue are the flattest possible choices. Real interfaces tint their neutrals toward the accent and separate surfaces by a step of lightness rather than by a hard border. Flagbg-white+border-gray-200+text-blackas a set, not as three findings. - Copy. "Lorem ipsum", "Card Title", "Your description here", "Get
Started" on four different buttons, "Feature One/Two/Three",
alt="image". Filler copy makes every other decision look provisional because nothing was sized against real content. Also flag headings that are longer than the element they label and buttons whose label does not say what happens.
- Type scale, or one size repeated. Collect every
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.
- 12d ago First seen · 136 lines · 107 tokens per session scan A 1c1927e42fef
design-review is a skill published in the GitHub repository soumyachk101/VibeLens (0 stars, last pushed 5d ago), licensed MIT. It adds 107 tokens to every session and 2,015 once invoked, about $0.0005 per session on Opus 5. 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-31.
Other skills, from other repositories
frontend-ui-engineering
Builds production-quality, accessible, responsive user-facing UIs. Use when building or modifying interfaces and pages, creating components, implementing layouts, meeting WCAG accessibility requirements, managing state, or when the output needs to look and feel production-quality rather than AI-generated.
21st-ui
Find, install, and generate UI with 21st.dev. Use when the user asks for a UI component (pricing table, hero, navbar, dashboard, form, etc.), wants design inspiration, needs a brand logo as an SVG component, or wants to generate new UI from a prompt.
excalidraw-architect
Choose and compose the right Excalidraw diagram - architecture, flowchart, sequence, state, ER, swimlane, process, timeline, quadrant, pyramid, venn, loop, gantt, bar, line, scatter, and more - using the excalidraw-architect-mcp server. Use whenever a reader would learn more from a picture than from prose, or when…
ui-designer
Elite UI/UX Design Lead & Frontend Architect. Generates distinctive, non-templated interfaces with opinionated aesthetics, deliberate typography, and exact UX copy. Triggers on UI design, frontend styling, or layout creation.
a11y-audit
When building interactive components, reviewing a PR for accessibility, or fixing a11y lint errors.
webstudio-ai-designer
Comprehensive guide and toolkit for designing, mutating, and syncing Webstudio projects using local fast-edit JSON mutations and cloud push (webstudio import). Use whenever creating new pages, editing styles, generating UI components, or syncing Webstudio designs.