npx skills add ...
npx skills add ssheleg/super-ux --skill brand-voice
Use when defining, calibrating or checking how a product speaks — tone of voice, brand voice, verbal identity, the words the product owns and the words it bans, canonical facts, per-surface register, locales. Triggers - "tone of voice" / "тон оф войс", "brand voice" / "голос бренда", "brandbook" / "брендбук", "our terminology" / "наша терминология", "how should this sound" / "как это должно звучать", "the copy is inconsistent" / "текстовка разная везде", starting any marketing surface, onboarding a product into docs/brand/. For writing the actual text, see copywriting.
npx skills add ssheleg/super-ux --skill brand-voice
Part of super-ux — see system-map.md for the whole pipeline. After changes, run
python3 docs/brand/lint.py.
docs/ux/ decides what the product does. This skill decides how it
speaks, and owns docs/brand/ in the target project.
Format contract: brand-contract.md
(brand-contract v1). Read it before writing or editing anything under
docs/brand/. Never deviate from its file names, field names or statuses —
the linter and the audit key off them.
The pack library: voice-packs.md — six archetypes, each with a declared failure mode. The register model: surface-registers.md. Locales: localization.md.
voice.md says its Status
is, how many facts carry ⚠ TBD or no source, locale parity, and the
linter's error and warning counts.The pack is derived from docs/ux/foundation.md — personas, jobs, and the
deciding input: what the user loses when the product fails. A voice that
charms when the stakes are a playlist is intolerable when the stakes are
payroll.
The dependency runs one way. A persona never changes because a tone was
appealing. With no foundation, work in degraded mode: stamp
Derived-from: inferred, say plainly that the WHY layer should be built, and
continue rather than blocking.
The route itself has a spoken opt-out: an operator saying "no brand" / «без бренда» declines it — proceed without the pack and say so, rather than dropping it silently.
| Situation | Workflow |
|---|---|
No docs/brand/ | Init |
| Pack chosen, product specifics missing | Calibrate |
| Positioning, personas or facts changed | Update |
| Consistency questioned, or before a launch | Validate |
Announce which one you are running.
docs/brand/ from this skill's own templates/brand/, and fill the
Sources: block first — nothing else can be checked until the linter
knows where the project keeps its text.strings.md: routes, screens, buttons, states,
errors, empty states. Every string gets a row with its file:line and the
scenario it serves. For a large codebase, use available read-only subagents
in parallel, one area each; without delegation, inspect the same areas
sequentially and keep the same evidence requirements.voice.md's Humanization pass: field. own is the default and the only one
that reads this pack's registers and facts; npx sshlg-skills humanizers shows
what else is installed and how to install what is not. Ask once — the field
exists so nobody is asked twice, and it selects a pass, never a verdict.Status: draft.The pack is a starting position; this is where it becomes the product's own.
Public: no.Forbidden: always carries both the physics and the brand half.voice.md so the audit can look for
it by name.Present section by section for approval. Approved moves draft →
validated.
terminology.md,
strings.md and every locale in the same change.Status: draft until re-approved.Last calibrated.Derived-from resolves against the foundation.python3 docs/brand/lint.py and fold its findings
in. It proves the mechanical half; report what it cannot see as questions
for /ux-audit copy.python3 docs/brand/lint.py exits 0, or every remaining finding is
reported with a reason.What else is in references/. This skill names 6 contract(s) directly; references/ holds 13, because a contract this skill names links others and the whole closure ships inside the skill — the skills CLI installs one directory and a sibling's file would arrive dangling. Open the ones named here; the rest are reached from them, by name, when a contract sends you.