ux-compare — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ux-compare (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Read N pattern libraries produced by ux-extract and synthesise a comparison. Answers questions like:
A single extract is a reference point. Multiple extracts are a design library. A comparison is a decision aid — it turns the library into "here's what to do and why".
First, discover what's available. Pattern libraries live at:
docs/ux-extracts/<app-name>/pattern-library.md.jez/artifacts/ux-extracts/<app-name>/pattern-library.mdList everything you find. Show the user the inventory with the extraction date for each so they can spot stale ones:
Available pattern libraries:
- claude.ai (extracted 2026-03-12)
- linear.app (extracted 2026-02-28)
- notion.so (extracted 2026-01-15) ← 3 months old
- superhuman (extracted 2026-03-20)If only one library exists, stop and suggest running ux-extract on more apps first. A one-library "comparison" is just the library.
Ask the user what to compare — or infer from their request:
Narrower scope produces sharper recommendations. Default to asking: "What feature or pattern do you want to compare?"
By default, include every library the user mentions or all of them if they don't specify. Let them exclude: "all except notion — their library is too stale".
For each library in scope, read the full pattern-library.md. Note:
For the scope requested, walk each pattern category that appears in any library. For each category:
After walking categories, collect what's absent across the set. If 4 of 5 apps have no undo on destructive actions, that's a pattern. If 3 of 5 apps have no keyboard shortcut for new-record creation, that's a decision someone keeps making.
Close with opinionated guidance:
The recommendations section is the reason to run the comparison. Without it, the doc is a pile of bullets. With it, it's a decision.
Write to docs/ux-comparisons/<topic>-YYYY-MM-DD.md (or .jez/artifacts/ux-comparisons/<topic>-YYYY-MM-DD.md if that path exists).
Topic slug from the scope — e.g. empty-states, keyboard-shortcuts, onboarding, destructive-actions.
See references/comparison-template.md for the full output shape.
Short version:
# UX Comparison: Empty States
Compared: claude.ai, linear.app, notion.so, superhuman
Date: 2026-04-19
Scope: How these apps handle empty states across list views, onboarding, and zero-data dashboards.
## At a glance
[2-3 sentences: what converges, what diverges, what's missing across the set]
## Pattern-by-pattern
### Empty list state
- **claude.ai**: illustration + headline + description + primary CTA + 3 shortcut hints
- **linear**: headline only, small text, no CTA
- **notion**: template picker (unique — offers 12 templates)
- **superhuman**: empty state not reached in extract (all-data demo account)
Convergence: most show some form of guidance; none are fully blank.
Divergence: claude.ai guides toward keyboard workflow; notion guides toward templates.
Unique: notion's template-first empty state.
Coverage gap: superhuman not assessed.
### Empty search results
[...]
## Recommendations
- **Safe default**: illustration + one-line description + primary CTA. All convergent apps do this.
- **Consider**: shortcut hints (like claude.ai) if your power-user persona is strong. Tradeoff: adds visual noise that doesn't help first-time users.
- **Skip**: notion's template picker unless you have a templates feature.
- **Fill a gap**: none of the 4 apps explain *why* the list is empty. A one-liner ("No clients yet — add your first to get started") is convergent practice and worth preserving.
## Source libraries
- claude.ai — 2026-03-12
- linear.app — 2026-02-28
- notion.so — 2026-01-15 (stale, re-extract recommended)
- superhuman — 2026-03-20ux-extract first| When | Read |
|---|---|
| Writing the comparison document | references/comparison-template.md |
Comparisons scale non-linearly. 3 apps is comfortable; 5 is the upper bound of readability; 10 becomes a matrix that's impossible to synthesise in prose. If comparing more than 5 libraries, bucket them:
Or do several narrower comparisons rather than one mega-comparison.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.