better-writing Skill: Write and Review Interface Copy in Your Product's Voice
Writes and reviews interface copy such as labels, errors, empty states and confirmations, in your product's own voice.
- Installs
- 31.5K
- on skills.sh
- Stars
- 10K
- on GitHub
- Files
- 2
- besides SKILL.md
- Updated
- Oct 2026
- last repo commit
better-writing makes your agent write and review the words inside an interface. It first finds the strings, nouns and verbs your project already uses, then checks copy against rules such as verb-first buttons, errors that say how to fix the problem, empty states that point forward and undo instead of "Are you sure?". A review comes back as a table of findings rated HIGH, MEDIUM or LOW and ends with Block or Approve. It leaves how text renders, accessibility, layout and color to four sibling skills in the same repo.
Good for
- Product designers and UX writers who want consistent microcopy
- Front-end developers writing error messages and button labels
- Teams with translations who need strings built for plurals and locales
- Claude Code and Codex users who already run skills
Install better-writing
Claude Code
- 1
Copy this prompt.
Install the better-writing skill in Claude Code. Run this command: npx skills add https://github.com/jakubkrehel/skills --skill better-writing Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
From its listing on skills.sh. Source.
What's in the skill
When it loads
Writes and reviews interface copy, from labels and errors to empty states and confirmations, so it matches the product's voice and tells people what to do next.
Sections in SKILL.md
- Inventory the existing strings first
- One voice, one vocabulary
- Address the reader directly
- Plain words over clever ones
- Build strings whole
- Verb-first buttons
- Links describe their destination
- One capitalization policy
- Settings describe the ON state
- Errors say how to fix, next to where it broke
- Undo beats confirmation
- Empty states point forward
- Placeholders show an example
- Before you finish
- Reporting
Key facts
- Author
- jakubkrehel (repo owner)
- License
- MIT
- Installs on skills.sh
- 31,502 (Nov 2, 2026)
- GitHub stars
- 10,003 (Nov 2, 2026, whole repo)
- Last commit
- Oct 25, 2026
- What installs
- 3 files including SKILL.md: patterns.md and an agents/openai.yaml display file; no scripts
- skills.sh audits
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: pass
What it includes
Finds your translation calls, locale files and the terms you use
Before writing it searches for t(, i18n., FormattedMessage and $t( plus locale files such as locales/**/*.json, and lists the noun for each object and the verb for each action.
Files ·
Inventory existing stringsKeeps new copy in the voice your product already has
A local edit does not invent a new voice. Tone flexes with the stakes, from warm for onboarding to serious for data loss.
One voice, one vocabularyWrites "you", not "the user", and prefers plain words
No idioms, no humor that will not translate, and no "we" in errors.
Address the reader directlyOne message with placeholders, never glued fragments
Uses ICU-style plurals and Intl formatting for numbers, dates and lists. Recipes are in patterns.md.
Build strings wholeButtons start with a verb; links name their destination
"Save draft", not "OK!"; "Read the billing docs", not "Click here".
Verb-first buttons and clear linksOne case policy per element type; toggles describe the ON state
Sentence case is the default if the project has no policy. "Send read receipts", not "Don't send read receipts".
Capitalization and togglesPuts the fix next to the field that failed
No blame, no "Oops", no exclamation marks. Example: "Choose a password with at least 8 characters".
Errors say how to fixPrefers undo for reversible actions; confirms irreversible ones
A confirmation names the action and the object, says what is lost, and uses verb-plus-object buttons. Account or repo deletion asks you to type the name.
Undo beats confirmationEmpty states point forward; placeholders show an example
An empty state says what the place is and offers one next action. A placeholder shows a realistic value such as name@example.com.
Empty states and placeholdersGreps for known bad patterns before it finishes
Flags things like "Click here", "Oops", "Are you sure", "successfully" and a string built with " + n + ".
Read ·
Detection tableFindings by principle with severity, ending Block or Approve
A table of Severity, Location (path/to/file:line), Before, After and Why. Strings from a CMS or server it could not see are reported as Not verified.
Review report
From the official docs
Permissions
Low risk
It writes interface copy in your project, so a careless run can change text you meant to keep. Review the diff before you commit.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It edits the text in your interface
The skill writes interface copy, so expect changes to labels and messages in your code. Read the diff before you keep it. github.com
Server and CMS copy is not checked
SKILL.md says strings it could not see are reported as Not verified. Check those yourself. github.com
Technical details
| Turning on read-only | No read-only switch. Ask for a review only and no edits if you want findings without changes. |
|---|---|
| Scopes |
|
Questions
What does better-writing do?
It makes your agent write and review interface copy: labels, errors, empty states, confirmations and the terms that run through them. It matches your product's existing voice and flags copy that misleads people or leaves them without a way forward.
How do I install better-writing in Claude Code?
Use the install box above. The README's command installs every skill in the repo; to take only this one, add --skill better-writing to the skills command, a flag the skills CLI documents.
Does better-writing work in the Claude app or Codex?
The install box has a tab for each. The README documents the skills CLI and a Claude Code plugin and does not mention the Claude app or Codex, so treat both as untested by the author.
Does better-writing need an API key?
No. It bundles no scripts and SKILL.md names no key or service. It reads your project files to find existing copy.
Is better-writing safe?
It bundles no scripts, so the risk is edits to your UI text. It writes copy in your project and reviews existing strings, so read the diff before you keep the changes. Strings that come from a CMS or API are reported as Not verified because the skill cannot see them.
Do I need the other better-* skills?
SKILL.md hands rendering, accessibility, layout and color questions to better-typography, better-accessibility, better-layout and better-colors. It leaves those topics to them, so install them too if you want those checks.
Information
updated Nov 2, 2026
- Repository
- jakubkrehel/skills
- Folder
skills/better-writing
Sources
Docs, issue trackers and discussions this page is built from.
Show all 4Hide
- better-writing SKILL.md · github.com
- jakubkrehel/skills README · github.com
- better-writing patterns.md · github.com
- skills CLI commands · github.com