Audits an existing corpus of product copy - buttons, labels, errors, empty states, toasts, tooltips - against clarity, consistency, voice, and actionability heuristics, and delivers a scored findings table with rewrites plus a reusable glossary. Use when someone asks "audit our product copy", "why does our UI text feel inconsistent", "review these error messages", "is it log in or sign in", or before a redesign or localization push. Do NOT use for writing new error messages from scratch - use error-message-writer instead; for first-run and activation flows, use onboarding-copy.
Click to play with sound.
---
name: UX Writing Audit
description: Audits an existing corpus of product copy - buttons, labels, errors, empty states, toasts, tooltips - against clarity, consistency, voice, and actionability heuristics, and delivers a scored findings table with rewrites plus a reusable glossary. Use when someone asks "audit our product copy", "why does our UI text feel inconsistent", "review these error messages", "is it log in or sign in", or before a redesign or localization push. Do NOT use for writing new error messages from scratch - use error-message-writer instead; for first-run and activation flows, use onboarding-copy.
---
# UX Writing Audit
Copy debt is invisible until it isn't: users stall on a button they don't trust, support tickets pile up around one confusing error, and translators quote double because the source text contradicts itself. An audit finds where the words fail and fixes them systematically - not one string at a time, but as a corpus with shared vocabulary and voice. The output is rewrites the team can ship plus a glossary that stops the debt from regrowing.
## Inputs to collect
1. **The strings, with context** - every string in scope, each tagged with its surface (button, field label, error, toast, modal title, empty state, tooltip) and the moment it appears. You cannot audit copy in isolation from the moment it appears. If the team has no string inventory, extracting one is Step 1, not a blocker.
2. **Voice definition** - the product's voice in three adjectives (e.g., "plain, confident, warm"). If none exists, draft one from the best existing copy and label it a proposal.
3. **Locked strings** - legal, regulated, or contractual wording. These get flagged, never rewritten.
4. **Scope priority** - default: errors and empty states first; that is where copy debt concentrates.
## Operating procedure
### Step 1: Inventory
Collect every string into a single list with surface and context. Number them - findings reference string IDs.
### Step 2: Audit each string through the four lenses
**Clarity**… install to load the full skill