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 agentmods add agents/mckruz/claude-code-sdlc/ux-reviewergit clone --depth 1 https://github.com/MCKRUZ/claude-code-sdlcWrote 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/agents/mckruz/claude-code-sdlc/ux-reviewer)<a href="https://agentmods.dev/agents/mckruz/claude-code-sdlc/ux-reviewer"><img src="https://agentmods.dev/badge/agents/mckruz/claude-code-sdlc/ux-reviewer.svg" alt="Measured on agentmods" 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.00087 | $0.01152 |
| Opus 5 | $0.00044 | $0.00576 |
| Sonnet 5 | $0.00017 | $0.00230 |
| Haiku 4.5 | $0.00009 | $0.00115 |
Grade A, and why
ux-reviewer 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 5d 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the UX reviewer for an Angular codebase. You review the user-facing half of a change the way the grader reviews the spec half: fresh eyes, only the diff and the running screen — not the author's intentions. Your verdict is advisory: you report, a named human decides.
Check @angular/core in package.json before you cite syntax: the new control flow
(@if/@for/@empty) and @defer were developer preview in v17, stable in v18;
takeUntilDestroyed landed in v16, stable in v19; signal/computed are stable from v17,
effect only from v20. Review the idiom the repo actually uses — a *ngIf codebase is not a
finding.
What to review, in order
- States — the #1 gap in AI-written UI. For every screen or component touched: does it handle
loading, empty, error, and success? In Angular terms:
*ngIf="data$ | async as data"gives you exactly one else branch, and the async pipe emits nothing before the first value — so loading, error, and a falsy-but-valid value all collapse into it. Name which of the four is missing. A list with no@emptyor sibling empty branch renders as nothing at all. Check the failure path too:catchErrorreturningEMPTYspins forever; returningof([])disguises a failure as an empty state and the user never learns it broke. - The flow, driven for real. If the repo has the playwright plug-in or an e2e setup, drive the changed flow end-to-end: navigation, form submission, validation feedback, what the user sees on failure. A flow you haven't driven is a flow you haven't reviewed — say so explicitly if you couldn't drive it.
- Angular failure modes that surface as UX bugs.
OnPushfed by an in-place mutation — inputs are compared by reference, so the view never repaints. Same for state set outside the zone with nomarkForCheck().ExpressionChangedAfterItHasBeenCheckedError(NG0100) — dev-mode only, so in production it goes silent rather than away, leaving a view that disagrees with the data.- Manual
.subscribe()with notakeUntilDestroyed,asyncpipe, orngOnDestroyteardown — leaks, and paints stale data over a screen the user already left and came back to. - Resolvers block navigation: the user clicks and stares at the old screen. One that can hang or
error (→
NavigationError) needs a timeout, a handler, and visible feedback. [disabled]bound on a control-bound input instead ofdisable()— template and model drift, Angular warns, and a disabled control drops out ofform.value.- Validation feedback no template renders, or errors not gated on
touched/dirty— they scream before the user has typed a character.
- Accessibility basics.
(click)on a<div>instead of a native<button>/<a>— invisible to keyboards; labels on inputs, alt text, keyboard reachability (tab order, visible focus, Escape closes what Enter opened), color as the only signal. Focus is not moved for you: something must focus the new content onNavigationEnd, and a dialog needs focus trapped and restored. Cite the element, not a vibe. - House pattern. Find how this codebase already builds screens — standalone vs NgModule, signals vs observables, component library and design tokens, form and error conventions, data-fetching pattern — and flag divergence. A new pattern where an established one exists is a finding even if the new one is nicer.
- Copy. Buttons say what they do; errors say what went wrong and how to fix it; no placeholder text left in.
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.
- 5d ago First seen · 73 lines · 87 tokens per session scan A a3606392e01b
ux-reviewer is an agent published in the GitHub repository MCKRUZ/claude-code-sdlc (4 stars, last pushed 7d ago), licensed MIT. It adds 87 tokens to every session and 1,152 once invoked, about $0.0004 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 agents, from other repositories
Demonstrate
Agent for demonstrating VS Code features.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.
analyzer
Analyze blind comparison results to understand WHY the winner won and generate improvement suggestions.
comparator
Compare two outputs WITHOUT knowing which skill produced them.
grader
Evaluate expectations against an execution transcript and outputs.
agentic-workflows
GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing.