super-ux 0.27.1 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -0
- package/README.md +3 -2
- package/cursor/rules/ux-audit.mdc +5 -0
- package/package.json +1 -1
- package/templates/audit-report.md +4 -0
- package/templates/foundation.md +1 -0
- package/templates/scenarios.md +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.28.0 — 2026-08-05
|
|
4
|
+
|
|
5
|
+
Closes the carry-over ledger the 0.27 audit opened. Twenty-three practices,
|
|
6
|
+
five principles, three optional contract fields, a prototype step, and an
|
|
7
|
+
index over a catalog that had grown past the point of being read whole.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **Motion craft — BP-157..164.** BP-130 said durations and easings should be
|
|
11
|
+
tokens and stopped there. These make the decisions it does not: whether the
|
|
12
|
+
element animates at all (frequency decides — a hundred times a day means
|
|
13
|
+
never), what the durations actually are, why `ease-in` is wrong on
|
|
14
|
+
interface motion, entering from a visible state rather than `scale(0)`,
|
|
15
|
+
anchored surfaces growing from their trigger, asymmetric enter/exit,
|
|
16
|
+
interruptibility for anything retriggerable, and hover gated behind a
|
|
17
|
+
hover-capable pointer.
|
|
18
|
+
- **Perceived quality — BP-165..168.** Why a technically correct interface
|
|
19
|
+
still reads as unfinished: mixed icon families and stroke weights, emoji
|
|
20
|
+
used as structural icons, pressed states that reflow their neighbours, and
|
|
21
|
+
a scrim too weak to separate the layers it exists to separate. None of
|
|
22
|
+
these fail an automated check, which is why they survive audits that only
|
|
23
|
+
measure.
|
|
24
|
+
- **Generated-default tells — BP-169..172.** super-ux is a tool agents build
|
|
25
|
+
interfaces with, so it should know the signature of its own defaults: fake
|
|
26
|
+
product screenshots built from markup, implausible placeholder data, the
|
|
27
|
+
three-equal-cards row that means nobody decided the hierarchy, and the
|
|
28
|
+
cluster (`#000000`, two accents, `100vh`, no max-width) that marks a
|
|
29
|
+
question never asked.
|
|
30
|
+
- **Interface state, platform surfaces and locale — BP-173..179**, from the
|
|
31
|
+
Web Interface Guidelines: state in the URL, undo for reversible actions
|
|
32
|
+
instead of a confirmation nobody reads, unsaved work that survives,
|
|
33
|
+
dark mode covering the surfaces the browser draws, localization as a
|
|
34
|
+
design constraint rather than a translation step, scroll containment and
|
|
35
|
+
touch defaults in overlays, and lists virtualized before they ship long.
|
|
36
|
+
- **Motivation principles — PRN-17..21.** Goal-gradient, Zeigarnik, IKEA,
|
|
37
|
+
endowment, zero-price. Each carries a fourth column naming where it turns
|
|
38
|
+
coercive, and a rule that any of them recorded as `applied` says which side
|
|
39
|
+
of that line it is on. They are motivation mechanisms; the same levers
|
|
40
|
+
aimed at the product's interest are dark patterns.
|
|
41
|
+
- **`Telemetry` on a scenario (optional).** The bridge the chain was missing:
|
|
42
|
+
BP-139, BP-140 and BP-129 all assume events exist, and nothing tied a named
|
|
43
|
+
event to the behavior it measures — so renaming a step silently re-pointed
|
|
44
|
+
a dashboard. `object_action`, snake_case, verb last.
|
|
45
|
+
- **`Kill criteria` on a story (optional).** `dropped` has been a valid
|
|
46
|
+
status since v1 with nothing defining when it applies, so it was only ever
|
|
47
|
+
reached by someone losing interest.
|
|
48
|
+
- **A verdict on audit reports — REFINE / REDESIGN / NEW.** Findings alone
|
|
49
|
+
read as a to-do list, and a surface that should be rebuilt gets patched
|
|
50
|
+
indefinitely, one true finding at a time.
|
|
51
|
+
- **A prototype step in `ux-flows`** for the question documents cannot
|
|
52
|
+
settle, plus *diverge before converging*: two genuinely different shapes
|
|
53
|
+
before picking one, and a line on why the loser lost.
|
|
54
|
+
- **`best-practices-index.md`**, generated by
|
|
55
|
+
`plugins/super-ux/scripts/bp_index.py` — 274 lines of tag → ids over a
|
|
56
|
+
catalog that is now 1400+. The validator fails when it drifts.
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
- Taxonomy gains `i18n`; source keys gain `[EmilK]` and `[WIG]`.
|
|
60
|
+
- `PRN-01..16` becomes `PRN-01..21` everywhere it is referenced.
|
|
61
|
+
|
|
62
|
+
The contract stays **v4**. All three new fields are optional and additive, on
|
|
63
|
+
the same precedent as 0.26.1 — no existing `docs/ux` file changes shape and
|
|
64
|
+
there is nothing to migrate.
|
|
65
|
+
|
|
3
66
|
## 0.27.1 — 2026-08-05
|
|
4
67
|
|
|
5
68
|
Re-cut of 0.27.0 on the correct base. The 0.27.0 tag was pushed from a tree
|
package/README.md
CHANGED
|
@@ -185,8 +185,9 @@ The contracts every skill reads:
|
|
|
185
185
|
|---|---|
|
|
186
186
|
| [scenario-format.md](plugins/super-ux/skills/references/scenario-format.md) | **The contract (ux-contract v4).** File layout, every field name, stable IDs (`P` `JTBD` `JRN` `ST` `FLW` `SCR` `SCN`), completeness checklists, the `draft → validated → implemented` lifecycle, audit verdicts and severities, the UX-plan format |
|
|
187
187
|
| [system-map.md](plugins/super-ux/skills/references/system-map.md) | The whole system on one page — pipeline, files, skills, companions, and the four sync rules; every skill points here |
|
|
188
|
-
| [
|
|
189
|
-
| [
|
|
188
|
+
| [best-practices-index.md](plugins/super-ux/skills/references/best-practices-index.md) | Generated tag index over the catalog — tag → ids, id → title. Read it to decide which entries to open; regenerated by `plugins/super-ux/scripts/bp_index.py` and checked for drift by the validator |
|
|
189
|
+
| [ux-design-principles.md](plugins/super-ux/skills/references/ux-design-principles.md) | How the agent thinks: the design pipeline (forward and backwards), task analysis, flow rules, heuristics PRN-01..21, the improvement procedure, anti-patterns |
|
|
190
|
+
| [best-practices.md](plugins/super-ux/skills/references/best-practices.md) | Living, tag-indexed catalog of 179 proven practices — subscription-app laws, mobile/web/voice guidance (Apple HIG 2025, M3 Expressive, NN/g, Baymard, WCAG 2.2), monetization economics (RevenueCat/PLG 2025 benchmarks, ASO, freemium boundaries), web funnels end to end (landing, pricing, checkout, dunning, cancel) and web2app (paid handoff, deferred deep links, storefront rules), motion and page weight (HTTP Archive field data, W3C sustainability), accessibility as it actually fails (WebAIM Million, EAA/ADA exposure), frustration telemetry, gamification and trend governance, growth loops and referral mechanics, empty states, authentication (NIST SP 800-63B rev 4) and form recovery, motion craft and perceived quality, the defaults that make an interface read as generated, interface state, locale and platform surfaces (Web Interface Guidelines), visual craft, Figma structure |
|
|
190
191
|
| [practice-selection.md](plugins/super-ux/skills/references/practice-selection.md) | The deterministic bridge: product profile → mandatory consideration sets → per-artifact checklists → a compliance table where every pulled practice gets a verdict. No silent skips, no cargo cult |
|
|
191
192
|
| [component-guidelines.md](plugins/super-ux/skills/references/component-guidelines.md) | Which control for which job (radios/select/switch, sheet/alert, modal/disclosure, combobox, nav bar/rail, FAB, dates, toasts) and the platform rules — Apple HIG, Material 3, W3C ARIA APG, GOV.UK |
|
|
192
193
|
| [visual-identity.md](plugins/super-ux/skills/references/visual-identity.md) | The visual layer and its owner: one style pack for the whole product, where it's recorded, how it meets Figma and code, and the division of labor with the craft floors |
|
|
@@ -18,6 +18,11 @@ covered, what was left out and why, what could not be verified, and what the
|
|
|
18
18
|
code cannot answer. An audit reads a slice; absence from the report never
|
|
19
19
|
means PASS.
|
|
20
20
|
|
|
21
|
+
**Verdict (required):** REFINE — fix the findings; REDESIGN — they cluster on
|
|
22
|
+
a structure patching will not converge on, name it; NEW — the chain does not
|
|
23
|
+
describe what was built, start upstream. Findings without a verdict read as a
|
|
24
|
+
to-do list, and the surface that needs rebuilding gets patched forever.
|
|
25
|
+
|
|
21
26
|
## Loop
|
|
22
27
|
|
|
23
28
|
1. Read the base (and foundation/flows/screens when they exist); scope =
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "super-ux",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "Scenario-driven UI development for AI agents (Claude Code, Cursor, 70+ agents): a versioned design chain in docs/ux/, a scenario-first hard rule, a deterministic drift linter, and evidence-backed UX audits. This package is the installer CLI.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"super-ux": "bin/super-ux.js"
|
|
@@ -39,6 +39,10 @@ report never means PASS. -->
|
|
|
39
39
|
- **Could not verify:**
|
|
40
40
|
- **Open questions:**
|
|
41
41
|
|
|
42
|
+
## Verdict
|
|
43
|
+
|
|
44
|
+
<REFINE | REDESIGN | NEW> — <one line of reasoning, and the scope it covers>
|
|
45
|
+
|
|
42
46
|
## Practice compliance (deep audits)
|
|
43
47
|
|
|
44
48
|
| Practice | Verdict | How / why not |
|
package/templates/foundation.md
CHANGED
|
@@ -65,5 +65,6 @@ this section just records the on/off choice and the file location.
|
|
|
65
65
|
- **Acceptance criteria:**
|
|
66
66
|
- Given <precondition>, when <action>, then <observable result>.
|
|
67
67
|
- **Priority:** must | should | could
|
|
68
|
+
- **Kill criteria:** <metric below threshold by date -> drop | iterate, or omit>
|
|
68
69
|
- **Status:** proposed
|
|
69
70
|
-->
|
package/templates/scenarios.md
CHANGED
|
@@ -32,6 +32,7 @@ action per step paired with the observable system response:
|
|
|
32
32
|
- **UI elements:** <every button, field, link, dialog, toast involved>
|
|
33
33
|
- **States covered:** <loading | empty | error | success>
|
|
34
34
|
- **Errors & recovery:** <each failure: what the user sees, how they recover>
|
|
35
|
+
- **Telemetry:** <`object_action` event + params, or omit if none>
|
|
35
36
|
- **Status:** draft
|
|
36
37
|
- **Coverage:** none yet
|
|
37
38
|
-->
|