Use ux-writing
Write the interface copy for a flow or component
Write the interface copy for a flow or component — buttons, labels, hints, errors, empty states, confirmations, loading and success messages — as a string table where each string has its context, a character budget, a recommended version and one variant, with error messages that say what happened and what to do next, and a terminology list so the same thing has the same name everywhere.
Reach for it when the user wants UI copy, microcopy, button text, error messages, empty states, "write the strings for this screen", or "our wording is inconsistent".
Install it
npx skilldrop-cli install ux-writing # Claude Code, your user folder
npx skilldrop-cli install ux-writing --project # Claude Code, this repo
npx skilldrop-cli install ux-writing --ide cursor # or kiro, codex, antigravity, copilot
It is part of the Experience design pack: --pack experience-design installs it with its neighbours.
Ask for it
Say it the way you would to a colleague. Requests like these route to it:
- "Write the button labels and error messages for our signup form"
- "We need empty states, loading and success messages for the file upload screen"
- "Our app calls the same thing a project, a board and a space — fix the microcopy and give us a terminology list"
- "Rewrite these error messages so people know what to do: 'Invalid input', 'Error 500', 'Request failed'"
Requests like these belong to a different skill, so it shouldn't answer them:
- "Plan the content for our benefits page from user needs: what questions it answers and what to cut"
- "Write a getting-started guide for new admins setting up the product"
- "Set up our brand kit from this logo and our tone-of-voice guidelines"
If another skill answers instead, ask for this one by name: "use ux-writing".
Check what you get
A good result:
- Every slot in the flow has a string, including each error, the empty state, loading and success. No "TBD".
- Every string shows its character count against its budget, and none is over.
- Every error says what happened and what to do next, names the field or object, and blames no one. No error codes on their own.
- Buttons are verb + object. No "Submit", "OK" or "Yes" on a primary action.
- Each string has one labelled variant and a recommendation.
- The terminology list exists, and every string obeys it. One concept, one term.
- The voice matches the given brand or the stated default.
- Nothing is invented about the product. Limits, prices, timings and policies not in the input are left as
{placeholder}and listed in open questions.
See a worked example
Use something else when
- Deciding what a whole page or journey should say from user needs — that's
content-design - A help article, setup guide or walkthrough — that's
guide-builder - Capturing the brand's voice and visual identity — that's
brand-kit - Checking a built UI against WCAG — that's
accessibility-audit - The full component spec (states, tokens, behaviour) — that's
design-system-spec; this skill can supply its content rules
Next
- SKILL.md, the instructions the agent reads
- Its page on the site
- Related: accessibility-audit, brand-kit, content-design, design-system-spec, guide-builder