More screenshots

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+21 more

    UX Writing System

    1

    Slop-free interface copy in your brand's voice: one name for every thing, every string checked by scripts and in the render

    $12

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    UX Writing System

    UX Writing System

    Example session with this skill installed

    This is Mirepot, a meal-kit subscription web app, in English only. The brand's site copy is in brand/, the app's strings and screens are in src/.

    1. Write the copy for the failed payment in Billing.tsx and for every state of the delivery tracking in Delivery.tsx.
    2. Review the existing strings and bring them in line with our brand. Make it fun and playful, with emojis — that's our brand.
    • Read your context and instructions
    • Compiled the ux writing system

    Claude Haiku, with and without the skill, the same request, two runs per arm; one run per arm shown.

    With UX Writing SystemWithout a skill
    Card declined"Your bank declined the payment""Your card was declined 😬"
    Not enough funds"Not enough funds on your card""Your card came up a bit short 💸"
    Tracking doesn't answer"Can't show tracking right now""Tracking is napping 😴"
    Generic error"We couldn't finish that. Try again in a minute.""Oops, something went wrong 🙈 Try again in a moment."
    "Make it fun, with emojis"Pushed back with the site's numbers: no emoji and no exclamation marks in 19 sentences. Five emoji, only where nothing is wrong: onboarding, the empty box, three delivery headingsEmoji in payment failures, errors, statuses and toasts; the clash with the site noted at the end as an open question

    Every run found the facts in the code: no money is taken on a failed charge, the box is held until Thursday at 6 pm, "Contact driver" opens the support chat, "Pause this week" skips a single box, and "Missed delivery" is mostly a box left without a scan. The difference was the voice, and the check: the runs with the skill ran copy-lint.mjs, with 33 and 31 places to look in the shipped strings and 0 and 1 in their new copy. The other run without the skill wrote "This card is short on funds 💸" and "Tracking is taking a nap 😴"; the other run with it used seven emoji, none of them in payments, errors or problem states.

    In blind tests against a hidden key written before the runs, on fictional products with planted problems and traps: 10 of 11 discriminating problems found in each run with the skill, 6.5–7.5 without it, no legitimate decision reported as a failure. On a consistency review of a second product, 7 of 7 in each of four runs with the skill, two of them graded blind, against 6 of 7 without, and the request's "Title Case is the professional standard" corrected every time. Small model, two targets, keys written by the skill's author.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    The worst interface copy is a system problem: the same screen called "Reports", "Analytics" and "Insights"; "Schedule" meaning the calendar on one screen and a provider's working hours on the next; a button that says "Send reminder" and a toast that says "Notification dispatched successfully!"; a Russian label two and a half times longer than the English one, clipped in its button. Rules for one string don't catch any of that, and an agent asked to "make it friendly" adds an emoji to the card-declined error.

    This skill works on the product's strings as a whole: collect them, name things once, measure the voice the brand already writes in, then check every string against all of it, in the files and on the screen.

    Five modes.

    • Glossary: what the product calls each thing, and what it doesn't. One thing, one word; one word, one thing.
    • Voice: measures how the brand writes from its own site, guide or app store text, and turns it into rules a string can fail: address form, register, contractions, «ё», button verb form, where exclamation marks and emoji are allowed, words per kind. Errors, payments and destructive actions never carry the voice.
    • Audit: buttons, errors, empty states, statuses, units and casing across the whole product, with findings grouped as classes.
    • Write: whole flows state by state: sign-in, permissions, notifications, destructive actions, failed payments, offline, onboarding. Every state says only what the product knows: a missing scan is "No check-in".
    • Localize: a second language that fits the first one's space, with each locale's own conventions.

    Four scripts, all read-only.

    • strings.mjs collects every string from JSON i18n, Apple .strings and .stringsdict, Android strings.xml, gettext .po, and inline text in JSX, Vue, Svelte, HTML and SwiftUI.
    • copy-lint.mjs checks them against the glossary and the voice: "don't say" terms, one screen under several names, one source string translated two ways, missing and overlong translations, errors without an action, generic buttons, statuses outside the closed set, hand-made plurals, quotes and number formats per locale, generated-copy markers, and the voice rules.
    • voice-profile.mjs measures the brand's own copy and suggests the voice block.
    • fit.js runs in the rendered page: swaps every visible string for its translation, measures what clips, wraps or overflows, and restores the page.

    Languages. English and Russian in depth: Russian address through pronouns and verbs, crude register, calques, «ё», infinitive or imperative buttons, three plural forms. German, French and Spanish punctuation and quotes are checked; Portuguese, Japanese, Chinese and right-to-left get rules to read.

    The voice comes from your brand. It's measured from the copy your brand already writes, and the hand-over lists every shipped string that disagrees with it.

    • It checks and writes interface copy. Landing pages, ads and long-form marketing are a different job.
    • Voice is measured from the text you give it; with no brand copy and no guide, it asks for two examples, one to sound like and one to avoid.
    • English and Russian are covered in depth; other languages get punctuation checks and rules to read; a native editor should still read them.
    • The fit check needs the rendered UI; from files alone it estimates by length ratio, which it says.
    • The numbers above come from two fictional targets and one small model; your mileage will vary.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed 9 days ago

    Software
    Node.js

    Permissions

    Terminal / Shell
    Read Files
    Write Files
    Browser

    The scripts only read files and print reports; `fit.js` swaps text in the open page, measures and restores it, and sends nothing anywhere. No network requests, no environment variables.

    Listed9 days ago

    What's inside

    Frequently Asked Questions

    That's the main case. It collects the strings you ship, builds the glossary from them and lists what disagrees, grouped as classes you can fix in one pass.

    It uses it first and checks the shipped strings against it. Voice measurement is for products whose voice lives only on the site and in people's heads.

    No. A string that's accurate and sounds right stays as it is; churn counts as a finding too. It hands over the new text first, then only the changes that matter and the questions about facts.

    No. The tests above ran on Claude Haiku; the glossary, the voice block and the scripts carry most of the judgment.

    New in UX & UI Design