copy-writer

copy-writer is an agent for coding agents from Laith0003/ux-skill. It costs 52 tokens per session (2,651 once invoked), scanned A, original, MIT.

A specialist that writes the small pieces of text in a product interface, such as error messages, empty states, buttons, loading messages, and form help.

In plain words
What is it for?
Use it to draft or revise interface copy for a component, page, or user flow, including success, failure, loading, empty, and form states.
Why use it?
It prevents different screens and states from using inconsistent wording or vague messages, while following a supplied voice and audience.

Agent

Part of the ux-skill plugin — 25 commands, 5 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/laith0003/ux-skill/copy-writer
Clone the repo
git clone --depth 1 https://github.com/Laith0003/ux-skill

Or install ux-skill, the plugin that ships this one along with the rest of its 25 commands, 5 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for copy-writer

README.md
[![agentmods](https://agentmods.dev/badge/agents/laith0003/ux-skill/copy-writer.svg)](https://agentmods.dev/agents/laith0003/ux-skill/copy-writer)
Your own site
<a href="https://agentmods.dev/agents/laith0003/ux-skill/copy-writer"><img src="https://agentmods.dev/badge/agents/laith0003/ux-skill/copy-writer.svg" alt="Measured on agentmods" height="20"></a>
Per session 52 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,651 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00052 $0.02651
Opus 5 $0.00026 $0.01326
Sonnet 5 $0.00010 $0.00530
Haiku 4.5 $0.00005 $0.00265

Measured 5d ago against content hash 76f5e0c153bb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

copy-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/copy-writer.md · 243 lines

How it starts

The opening of the file, as written. The whole thing — 243 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Copy Writer

You write the strings that ship. Error messages, empty states, CTAs, loading states, success messages, toasts, helper text, form labels, button text. You do NOT invent the voice — the calling command hands you a voice profile. Your job is to apply it consistently across every state of a surface so the product sounds like one product, not ten.

What you receive (always — the calling command provides these)

  1. The voice profile — adjectives like direct, warm, brief, playful, calm, confident, with concrete do/don't examples
  2. The target surface — a component, a page, a flow, or a specific state
  3. The audience — who reads this (customer, partner, staff, admin, developer)
  4. The locale(s) — single-language or multi-locale (Arabic RTL, etc.)
  5. Any brand-specific banned words or required terminology
  6. For a rebuild of an existing brand/site: the client's current copy. Preserve that human-written copy VERBATIM by default — headlines, body, microcopy. Rewrite a string ONLY when the brief explicitly asks, or when the string is genuinely broken (a vague error, a missing state). The client's words are their voice; do not "improve" them unprompted.

What you return

  1. Every string for the surface in a single block, organized by state
  2. For rewrites: before/after pairs so the dispatcher can diff
  3. A 3-line self-review noting:
    • The voice principles you leaned on most
    • Any string that pushed against the voice (and what you did)
    • Any locale-specific call you made

Nothing else. No preamble. No "Here's the copy."

Discipline

1. Error messages — three jobs, one sentence

Every error must do three things:

  1. Name the field (or scope) that failed
  2. Name the problem specifically
  3. Name the fix the user can take

NEVER "form contains errors." NEVER "Something went wrong." NEVER "Please try again."

Wrong Right
"Invalid input." "Phone number must include country code."
"Something went wrong." "Couldn't reach the server. Check your connection and retry."
"Form contains errors." (Inline @error per field; submit button shows "Fix highlighted fields")
"Please try again later." "Server is busy. We'll retry in 30 seconds."
"Authentication failed." "Wrong code. Request a new one or check your messages."

Read the full file on GitHub · 243 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 243 lines · 52 tokens per session scan A 76f5e0c153bb

Subscribe to this mod's changes

copy-writer is an agent published in the GitHub repository Laith0003/ux-skill (66 stars, last pushed 1mo ago), licensed MIT. It adds 52 tokens to every session and 2,651 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

wire

Produces developer-ready handoff specs, annotated prototype flows, and component state documentation that bridges design and engineering. Use when you need a design handoff doc, flow annotation, or component spec with all states and edge cases. Trigger with "write my handoff spec", "document this user flow".

jeremylongshore/tons-of-skills-marketplace · 61 tokens

_orchestrator-protocol

Bu dosya FCM projesindeki tüm orkestratör agentların uyması zorunlu 8 maddelik protokolü tanımlar. Her agent (screen-builder, ds-auditor, token-syncer) görev başlangıcında ilk eylem olarak bu dosyayı Read ile yüklemek zorundadır. Her agent dosyasında bu 8 maddeden üretilmiş 10 satırlık kondense inline checklist ayrıca…

atezer/FMCP · 0 tokens

ds-auditor

Figma ekranlarını 5 kategori açısından denetler (DS compliance / a11y / drift / visual QA / impact). Read-only çalışır; düzeltme sadece önerir. "DS audit", "a11y kontrolü", "drift kontrol", "visual QA", "impact analizi", "ekranı denetle" ifadeleriyle tetiklenir.

atezer/FMCP · 84 tokens

screen-builder

DS-compliant Figma ekran üretim agent'ı. Text / yüklenmiş görsel / Figma benchmark / "fikrim yok" girdilerinden ekran üretir. "ekran tasarla", "figma'da ekran oluştur", "alternatif üret", "bu görselden ilham al" ifadeleriyle tetiklenir. Claude Code sub-agent isolation avantajıyla ana conversation context'ini temiz…

atezer/FMCP · 91 tokens

token-syncer

Figma design token'larını kod dosyalarıyla (CSS/Tailwind/Swift/Compose/Sass) senkronize eder. Diff preview + onay + write zorunlu akış. "token sync", "export tokens", "Tailwind'e aktar", "design tokens" ifadeleriyle tetiklenir.

atezer/FMCP · 72 tokens

ijfw-assumptions-analyzer

Use when surfacing hidden assumptions in a brief or plan before execution begins -- what does the plan assume that the spec doesn't guarantee?

FerroxLabs/ijfw · 34 tokens