Use when reviewing a change set for user experience quality — traces user flows instead of code paths, validates that the implementation delivers the right experience against the goals doc's UX spec
Traces user flows end-to-end against the goals doc. Validates that the implementation delivers the right experience — not just that the code is correct, but that the user gets the outcome they expect in a way that feels right.
Use /deep-review for code path correctness. Use /ux-review for user flow validation. Different lenses.
/ux-review [target] --scope .work/dev/{id}/
--scope <path> (required): Path to the dev folder containing goals.md. The goals doc is not optional for UX review — without it, there's no authoritative description of intended user experience to review against. If no goals doc exists, stop and tell the user to run /dev-scope first or provide the UX intent inline.git diff --cached)all: all uncommitted changesbranch: changes vs base branch (git diff main...HEAD)pr: current PR changes (gh pr diff)commit:SHA: specific commit| Skill | Traces | Finds |
|---|---|---|
/deep-review | Code paths | Bugs, regressions, performance issues, design problems |
/ux-review | User flows | Dead ends, missing feedback, discoverability gaps, UX breaks |
Use both together for user-facing changes: /deep-review catches code-level issues, /ux-review catches experience-level issues.
Not every change needs a UX review. Skip when:
When in doubt, run it — a quick "no UX findings" is cheap, a shipped UX bug is not.
{scope}/goals.md — focus on the User Experience and Success Criteria sections. These are the spec you're reviewing against./deep-review):
git diff --cachedall: git diff HEADbranch: git diff main...HEADpr: gh pr diffcommit:SHA: git show SHAFor each change in the diff, determine:
Filter out changes with no user-facing surface — note them as "no UX impact" and move on.
Unlike /deep-review which traces code paths from the diff, trace user paths:
Not every lens applies to every change — skip lenses that don't apply and say so.
Does the implementation actually deliver the user flow described in goals.md?
Does the UI communicate what's happening at every stage?
Can users find and understand this feature?
Does it feel like GitLens?
Does it fit into how people actually work in VS Code?
Is the right information presented at the right time?
git stash to save work in progress").Can all users use this feature effectively?
/deep-review and /reviewFor each finding include:
| Field | Values |
|---|---|
| lens | flow delivery / feedback / discoverability / consistency / workflow / information design / accessibility |
| severity | critical (blocks merge) / high (should fix) / medium (fix soon) / low (note) |
| confidence | confirmed / likely / low-confidence |
| location | file:line or user-facing surface (e.g., "Commit Graph context menu") |
Then: what the user experiences, what they should experience instead, suggested fix.
lens: feedback | severity: high | confidence: confirmed location:
src/commands/git/push.ts:142-> push command error pathIssue: When push fails due to no upstream branch, the error is caught and logged but the user sees nothing -- no notification, no status bar update, no output channel message. The operation silently fails.
Expected: The user should see an actionable notification: "No upstream branch set for {branch}. Set upstream?" with a button to run
git push --set-upstream.Fix: Add a
window.showWarningMessagein thePushError.is(ex, 'noUpstream')branch with an action button that runs the set-upstream command.
If no issues found, say so explicitly, then list residual risks and open questions for manual testing.