Run a UI/UX review of the Linyup product — a cross-app consistency sweep, one feature area, or the whole app — using the ux-reviewer agent. Reviews for the studio-manager and contact personas, reports ranked findings with proposed fixes, and persists a dated report. Analysis only; no implementation. Use when the user wants to know where the UX is degrading, or before deciding what to simplify next.
Install
npx skillscat add francodgstn/dgstn-linyup/ux-review Install via the SkillsCat registry.
UX review
Orchestrates the ux-reviewer agent. The agent reviews ONE scope per invocation
and is read-only; this skill batches the runs, merges the reports, and writes the
result to docs/ux-review-YYYY-MM.md.
/ux-review sweep, then every area, merged (the whole app)
/ux-review M4 one area
/ux-review M7 C2 several areas
/ux-review C2 --brief table only, detail for the top 3
/ux-review sweep cross-app consistency onlyWhy it is batched
A whole-app review is never one agent invocation. There are ~58 admin pages,
~25 public routes and ~96k lines in apps/web alone; one pass over all of it
yields a long list ranked by nothing, which gets skimmed once and ignored.
So: 1 SWEEP + N AREA runs, each capped at 8 findings, merged here.
Run the SWEEP first and pass its result into the area runs. Consistency
problems are invisible from inside any single area — that is exactly the
degradation the user is worried about — and knowing "there are six hand-rolled
tab bars" changes how an area run reads the one in front of it.
Procedure
Read the previous report — the newest
docs/ux-review-*.md, if any. Pass
its findings table to every agent run so findings are markednew,repeat of <id>orregressedrather than silently restated.Gather evidence inputs. The agent's findings are only as good as these,
andobservedoutranks everything it can infer alone:- a recent
/persona-ux-testreport (runtime friction, F1…Fn) — the
strongest input. Offer to run one first if none exists and the user has the
app running. - in-app feedback (
docs/in-app-feedback.md; the ops console lists
submissions with route + viewport + plan attached). The agent cannot read
Firestore — paste it.
Say explicitly in the final report which inputs were available. A review with
no observed evidence is weaker, and should say so rather than pretend.
- a recent
Run SWEEP. Launch
ux-reviewerwith the mode, the prior report, and the
evidence inputs.Run the areas. Default to all 16 for a whole-app review; otherwise only
the ids given. Launch in parallel — they are independent and read-only —
but pass--briefwhen running more than ~4 at once, or the merged output
will not fit. Pull full detail afterwards only for what you intend to act on.Merge. De-duplicate across areas (the same root cause surfaces in several
— the merged entry lists every area it appeared in, which is itself a signal
of severity). Re-rank globally by cost to the user. RenumberUX-1…n.Write
docs/ux-review-YYYY-MM.mdin the shape ofdocs/security-audit-2026-07.md: a headline paragraph on what was reviewed
and the top-line judgement, then| # | Sev | Finding | Area | Owner | Status |with
Statusstarting as▶ Openand updated to✅ Fixed/▶ Deferred/✅ Acceptedas work lands. Then the full work-order blocks, then
What's good, then Dropped.Report to the user: the table, the top 3 in full, and a one-line note of
what was dropped. Do not paste every block into chat — the file is the
artifact.
Handing findings to dev agents
Each finding block is a self-contained work order (files, proposed change, what
must not change, owner, verification). Hand one to the named owner —web-agent, mobile-agent, functions-agent — with the block and nothing else;
if it cannot act on that alone, the block was underspecified and the reviewer
should be asked to tighten it.
Do not hand the whole report to one agent. These are independent changes with
different owners, and several are L/XL refactors that deserve their own plan.
Guardrails
- The agent is read-only (
disallowedTools: Edit, Write, Agent). It proposes;
it never implements. Keep it that way — an agent that can edit will. - Never ask it to run the app. Runtime evidence comes from
/persona-ux-test. - Accessibility belongs to
design:accessibility-review; a single screen or
mockup belongs todesign:design-critique. Route those rather than widening
this one. - Resist acting on findings in the same pass. The report is for deciding what
to simplify; implementing while reviewing anchors both.
After two or three runs
Promote whatever recurs into docs/ux-principles.md — the judgement calls that
cannot be derived from code (vocabulary lock, which patterns are canonical,
defaults-over-settings). The agent already reads that file if it exists and
treats it as outranking its own judgement. Writing it before any review has run
would be speculative; harvest it instead.