Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Ux Writing

ASecurity

Write or repair the words inside an interface — button labels, empty states, error messages, confirmation dialogs, form hints, success and loading text — so a reader knows what just happened and what to do next. Use when a screen's copy is being written or reviewed, when an error says something unhelpful, when a confirmation is vague about what it will do, or when users hesitate at a control. Not for marketing or landing-page copy, not for documentation, and not for deciding layout or visual ...

46 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentsgosecuritydocumentation

Security Analysis

A100/100

Scanned 9/22/2026

Install to Claude Code

$npx -y skills add nahid-sparktales/agent-dispatcher --skill ux-writing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ux Writing?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Ux Writing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nahid-sparktales-ux-writing/badge)](https://www.skillsdirectory.com/skills/nahid-sparktales-ux-writing)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: ux-writing
description: Write or repair the words inside an interface — button labels, empty states, error messages, confirmation dialogs, form hints, success and loading text — so a reader knows what just happened and what to do next. Use when a screen's copy is being written or reviewed, when an error says something unhelpful, when a confirmation is vague about what it will do, or when users hesitate at a control. Not for marketing or landing-page copy, not for documentation, and not for deciding layout or visual design.
---

# UX writing

Interface copy is read mid-task by someone who did not come to read. Every word is either doing
work — naming an outcome, removing a doubt, offering the next move — or it is in the way.

## When this fires

A screen's strings are being written, reviewed or translated; an error, empty state or
confirmation is unclear; a control's label does not match what it does. It does not fire for
prose the user chose to read: docs, marketing pages, release notes.

## Procedure

1. **Collect the actual strings.** Grep the component, route or feature for every user-visible
   string, including the ones not on screen right now — error branches, empty results, disabled
   reasons, toast text. Copy you never saw is copy you never fixed.
2. **Name the reader and the moment.** What were they doing one action ago, what do they already
   know, and what do they need to decide next. Write to that person, not to a persona.
3. **Fix labels first.** A label names the outcome in the reader's words, not the mechanism in
   yours: "Save changes", not "Submit"; "Delete project", not "Confirm". Avoid Yes/No button
   pairs — a button that repeats the verb can be answered without re-reading the question.
4. **Rewrite errors to be actionable.** Say what happened, why when you actually know, and what
   the reader can do. Never blame the reader, never show a raw exception or bare status code as
   the whole message, and keep any support-quotable identifier alongside plain words rather than
   instead of them. Do not promise a retry, a saved draft or a notification that the code does
   not perform.
5. **Separate the three empty states.** Nothing yet (say what will appear here and give one way
   to start), filtered to nothing (name the filter and offer to clear it), and failed to load
   (that is an error, not an empty state — do not let it read as "you have none").
6. **Make confirmations specific.** State the object by name, state the consequence, and repeat
   the verb on the primary button. For anything destructive, say what is lost and whether it can
   be undone — if the code has no undo, the copy must not imply one. When the copy and the code
   disagree about reversibility, stop and raise it; do not paper over it with softer wording.
7. **Cut the words carrying no information.** Padding ("please", "simply", "just"), fake cheer
   ("Oops!"), exclamation marks, and restating the screen's own title. Then check the result
   still sounds like the rest of the product — consistency beats each string being individually
   clever.
8. **Check every string against what the code does.** A label that describes behaviour the
   function does not have is a bug report, not a copy edit. Report it as a bug.
9. **Check the string survives contact with reality.** Longest plausible value, truncation,
   sentence-case consistency with neighbours, and an accessible name for every icon-only control.
   If the product is localized, note that changed strings need re-translation and that other
   languages run longer.

## Checklist

- [ ] Every user-visible string in the changed surface was listed, including unrendered branches
- [ ] Buttons name outcomes; no ambiguous Yes/No pair
- [ ] Each error says what happened and what to do, with no raw exception as the message
- [ ] Empty, filtered-empty and failed-to-load are distinguishable
- [ ] Destructive confirmations name the object and state reversibility truthfully
- [ ] Copy matches actual code behaviour; mismatches reported, not smoothed over
- [ ] Icon-only controls have accessible names
- [ ] Translation and length impact noted where it applies

## Failure handling

- **The right words depend on behaviour you cannot determine** — read the handler. If it is still
  ambiguous, write the copy that is true of both branches and flag the question rather than
  inventing the more reassuring version.
- **Legal, consent, pricing, security or privacy wording** — propose, do not replace. These are
  approved text somewhere; stop and ask before changing them.
- **The string is a translation key or appears in many places** — check every use before editing.
  A label reworded for one screen can be wrong on three others.
- **The real problem is the flow, not the sentence** — say so. Copy that has to apologize for an
  interaction is a design finding; writing around it hides the defect.

## Evidence to report

The before and after of each changed string, with the file and the state it appears in; the
mismatches you found between copy and code; the strings you deliberately left alone and why; and
anything that needs approval or re-translation. "Improved the microcopy" with no strings quoted is
not evidence.

Attribution

nahid-sparktalesnahid-sparktales
View sourceMore from nahid-sparktales →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →