Skip to content
cccskills
FreePublished on GitHub

ux-copy

Use when you write any words a user reads in a mockup or a hand-off - content language and voice, buttons, labels, errors, empty states, confirmations, numbers and dates, and the longest-string check

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

UX Copy

Overview

The words are part of the design: a button label decides whether the user knows what happens next, an error decides whether they can recover. Copy written as an afterthought — "Submit", "Error occurred", "No data" — is how a well-drawn screen still fails.

Core principle: Say what happens, in the user's words, in the product's language — and write the longest version you will ever see.

Language and voice

  • Write in the product audience's content language (the brief names it) — never in TaskTrooper's own UI locale just because the board is in it.
  • Read the product's existing strings first (locales/*.json, Localizable.strings, res/values/strings.xml, lib/l10n/*.arb) and reuse its terms exactly: if the app says "Workspace", a new screen does not say "Project". Match its voice — formal or casual, "you" or impersonal.
  • Copy the brief gives is used verbatim. Copy you wrote is listed in #notes as draft copy.

Patterns

ElementWriteNot
Buttonverb + object, sentence case: "Send invoice""Submit", "OK", "Click here"
Destructive buttonnames the thing: "Delete invoice""Delete", "Yes"
Field labela noun above the field: "Customer email"the placeholder as the only label
Placeholderan example: "name@company.com"the label repeated
Helper textthe constraint, before the user hits it: "At least 8 characters"a tooltip-only hint
Errorwhat happened + how to fix, no blame, no apology: "Enter an email address like name@company.com""Invalid input", "Oops! Something went wrong"
System errorwhat failed + what to do: "Invoices couldn't load. Check your connection and try again." + "Retry"an error code alone
Empty, first usewhy it is empty + the one next action: "No invoices yet — create your first one in under a minute." + "New invoice""No data"
Empty, no resultsthe query + the way out: "No invoices match "Ortiz"" + "Clear search"the first-use empty state
Successthe outcome with the object: "Invoice INV-204 sent to Dana Ortiz""Success!"
Confirmation dialogtitle asks with the object ("Delete invoice INV-204?"), body states the consequence ("This can't be undone."), buttons are the verb and "Cancel""Are you sure?" with Yes / No
Linkwhere it goes: "View invoice""Click here", "More"
Icon-only controlits accessible name, written in the spec: "Filter invoices"nothing

Numbers, dates, plurals

  • Amounts, dates and numbers in the content language's locale format, with the currency the product uses; tabular figures where amounts line up.
  • Plurals for every count ("1 invoice", "2 invoices"); relative dates only for recent events ("2 hours ago"), absolute beyond that.

Length

  • Draw the longest plausible string at least once: the longest customer name, a title that wraps to three lines, a five-digit count. German, Finnish and Turkish run 30–40% longer than English.
  • Say what truncates and where the full text lives — on touch screens there is no hover to reveal it.

Common Mistakes

  • Generic labels that fit any screen ("Submit", "Details", "Manage").
  • One empty state for "nothing yet" and "nothing matches".
  • Apologetic, jokey or blaming errors.
  • Copy in the board's language instead of the product's.

Red Flags

  • A placeholder doing a label's job.
  • An error message that does not say how to recover.
  • A destructive action whose button says only "Delete" or "Yes".

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper117Updated Oct 21, 2026

See all skills by makifbaysal

Report a problem with this skill