super-ux 0.28.0 → 0.30.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.
@@ -29,3 +29,23 @@
29
29
  - Use `/ux` as the entry point; skills: `ux-foundation`, `ux-flows`
30
30
  (flows + Figma mockups), `ux-scenarios` for maintenance, `ux-audit` for
31
31
  evidence-backed verification. Full map: the plugin's system-map reference.
32
+
33
+ ## Brand voice — hard rule (super-ux)
34
+
35
+ - `docs/brand/` is the source of truth for how the product speaks:
36
+ `voice.md` (axes, narrative, invariants), `terminology.md` (our words and
37
+ the banned ones), `facts.md` (the only source of any public figure),
38
+ `channels.md` (one record per surface), `strings.md` (the interface string
39
+ registry), `locales/<code>.md`.
40
+ - Any change to public-facing text — an interface string, a landing page, a
41
+ post, a store listing, an ad, an email — updates `docs/brand/` in the SAME
42
+ change. A new string with no registry row is drift, not a detail.
43
+ - **Never quote a number that has no row in `facts.md`,** and never invent a
44
+ fact, statistic, quote or expert to fill a gap. Report the gap instead.
45
+ - **One action keeps one name** across button, confirmation, toast, history,
46
+ notification and accessible name. Search `strings.md` before naming one.
47
+ - **No humor, exclamation marks or emoji** on error, destructive confirm,
48
+ billing or paywall surfaces — in any voice.
49
+ - Run `python3 docs/brand/lint.py` after any text change and before calling
50
+ work done. It must exit clean; wire it into CI or pre-commit alongside the
51
+ UX linter so copy drift cannot merge.