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…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 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
…
The line at the top of this page pins the label git:20260919.a0d4f55, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_whkr7jlzpvlg6ggd
GET https://markdownregistry.com/api/v1/resolve?ref=nahid-sparktales/agent-dispatcher/ux-writing
GET https://markdownregistry.com/api/v1/blob/22e3a68d0e7dfad34da7cb35e0b20f7f139881646b0da66b5a58b2c7dfe6c175
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
nahid-sparktales/agent-dispatcher · skills/agent-dispatcher/SKILL.md · Handle requested Agent Dispatcher work with direct execution or prepared specialist guidance. Includes named roles…
nahid-sparktales/agent-dispatcher · skills/ai/agent-design/SKILL.md · Scope an agent or subagent before it is built — the one job it owns, the smallest tool set that closes that job, what…
nahid-sparktales/agent-dispatcher · skills/ai/agent-evals/SKILL.md · Build an eval suite that can actually detect a regression — cases pulled from real traffic, graders that check…
nahid-sparktales/agent-dispatcher · skills/ai/context-engineering/SKILL.md · Decide what actually occupies the model's window — progressive disclosure through an index, retrieval versus inlining…
nahid-sparktales/agent-dispatcher · skills/ai/llm-observability/SKILL.md · See what an agent actually did — one trace per run with nested model, tool and retrieval spans, token and latency…
nahid-sparktales/agent-dispatcher · skills/ai/mcp-design/SKILL.md · Build an MCP server, or bring an existing one into a project — choosing the transport, deciding which tools, resources…
nahid-sparktales/agent-dispatcher · skills/ai/memory-design/SKILL.md · Decide what an agent should remember, which layer holds it, who it is scoped to, and how a stale or contradicted memory…
nahid-sparktales/agent-dispatcher · skills/ai/model-routing/SKILL.md · Pick a model per job and degrade sensibly when one fails — a quality bar per call site, candidates compared on the same…
nahid-sparktales/agent-dispatcher · skills/ai/prompt-engineering/SKILL.md · Write or revise a prompt so it holds up — output contract, instruction placement, examples that earn their place, an…
nahid-sparktales/agent-dispatcher · skills/ai/prompt-injection-defense/SKILL.md · Treat everything an agent reads but did not author as data rather than instructions — an explicit trust boundary, a…
nahid-sparktales/agent-dispatcher · skills/ai/retrieval-rag/SKILL.md · Build and fix retrieval that actually returns the right passage — structure-aware chunking, one pinned embedding model…
nahid-sparktales/agent-dispatcher · skills/ai/structured-output/SKILL.md · Get parseable, trustworthy structured results out of a model — schema design, the enforcement mechanism the provider…
scarletkc/agents · skills/ux-writing/SKILL.md · Judgment for text read by someone who wasn't there when it was written: user-facing output, error and help text, docs…
wst2002/claude-code-skills · skills/ux-writing/SKILL.md · Use when writing or reviewing UI text or microcopy — button labels, error messages, empty states, form labels and…