Install
$ agentstack add skill-mikefluff-skills-microcopy ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Write microcopy strings for software product UI. Output is one or more short strings (rarely > 20 words each) that match the place they appear: button, error, empty state, tooltip, helper text, modal, onboarding card.
Use when the user wants to fill a UI element with text. The skill picks the right register (default: friendly-professional, no jargon, no slang), the right length budget per element type, and applies the universal rules: plain language, action-oriented, never blame the user, never use jargon.
This skill does NOT:
- write marketing landing pages (different scale + register)
- write technical documentation (use
essay-writefor longer-form docs) - design layouts or component structures (use a design tool)
- write cold outreach (use
cold-email)
ROLE
Read the request → identify UI element type → check length budget → write the string(s) → run universal rules check → return paste-ready text.
PIPELINE
- Identify element type. From the request: button / error message / empty state / tooltip / helper text / modal / 404-500-offline page / onboarding card / inline alert / toast notification. Each has different length budget and tone — see
references/element-types.md.
- Identify context. What's around the element? What did the user just do (or fail to do)? What's the next action they can take? Microcopy without context is decorative; with context, it's load-bearing.
- Apply length budget. See
references/length-budgets.md:
- Button label: ≤ 8 words (most: 1-3 words)
- Tooltip: ≤ 12 words
- Error message: 1 sentence (≤ 20 words)
- Helper text: 1 short sentence
- Empty state heading: ≤ 6 words; body: ≤ 25 words
- Modal title: ≤ 8 words; body: ≤ 50 words
- Apply universal rules — see
references/rules.md:
- Plain language (8th-grade reading level)
- Action-oriented (verb first when possible)
- Never blame the user ("Your input is wrong" ❌ → "This email is missing the @" ✅)
- Never use jargon (system-level, not user-level)
- Be specific (don't say "an error occurred" — say what failed)
- Always offer next step (what should the user DO?)
- Pick voice. Default: friendly-professional (see
references/voice-by-product-type.mdfor adjustments). Override only if user names a different brand voice.
- Run
writer— but delete the water, not the function. Microcopy is almost entirely function: the next step, the recovery action, the button verb. Writer's default treatment is deletion, and at this length a single deleted clause can remove the only actionable thing on screen. Treat functional elements by replacement or simplification instead. After the pass, verify the next step is still stated. Seeforbidden-substitutions.mdin thewriterskill.
- Output. One or multiple strings (if alternatives are useful), each formatted for paste. If error → also include the structured form:
code,title,body,action.
MODES
microcopy for— write a single stringmicrocopy --variants 3— return 3 alternatives in different registers (e.g. casual / friendly / minimal)microcopy error— structured error: title + body + primary actionmicrocopy empty-state— structured empty state: heading + body + primary CTA + secondarymicrocopy 404 / 500 / offline / maintenance— full-page errormicrocopy --improve— rewrite a weak existing string with notes on why
REFERENCES (load on demand)
| File | When to load | |---|---| | [references/element-types.md](references/element-types.md) | Identifying element type — full taxonomy with examples per type | | [references/length-budgets.md](references/length-budgets.md) | Checking budget — exact word and character limits per type | | [references/rules.md](references/rules.md) | Applying the 10 universal rules (plain language, action verbs, no blame, no jargon, etc.) | | [references/voice-by-product-type.md](references/voice-by-product-type.md) | Picking voice — adjustments for SaaS / dev tool / fintech / e-commerce / consumer / B2B | | [references/banned-words.md](references/banned-words.md) | Strip list — words that mark text as low-quality microcopy (jargon, hedge words, robot-speak) |
EXAMPLES
See [examples/before-after.md](examples/before-after.md) — 10 calibration pairs covering errors, buttons, empty states, tooltips, 404 pages.
CONSTRAINTS
- Never blame the user. Always frame as "this didn't happen" not "you did it wrong".
- Never use jargon. "Authentication failed" → "We couldn't sign you in".
- Always offer next step. Error tells what failed AND what to do. Empty state tells what's missing AND what to add.
- Use sentence case for buttons. "Save changes" not "Save Changes" (unless the brand specifically uses title case).
- No exclamation marks for routine actions. Reserved for genuine celebrations (signup complete, first achievement). Default tone is calm.
- No emojis in errors. They look infantilizing. OK in achievement / onboarding microcopy if brand allows.
- Be specific about what failed. "Server error" ❌ → "We couldn't reach our servers — check your connection or try again in a minute" ✅
- Don't use technical codes user-facing. "HTTP 500" stays in the dev console; user sees friendly explanation.
- Plural / singular careful. "1 item selected" not "1 items selected". Most i18n libraries handle this; check the platform.
- Localizable. Avoid puns, idioms, culture-specific references unless the product is single-locale.
INVOCATION HINTS
When the user says any of:
- "write / rewrite an error message for..."
- "empty state copy for..."
- "tooltip wording / helper text for..."
- "button label / button copy"
- "404 / 500 / offline page text"
- "onboarding text / card copy"
- "modal title / modal body"
- "toast notification text"
- "inline alert wording"
RU triggers (use the skill when the user writes any of):
- «текст ошибки / сообщение об ошибке / напиши ошибку для ...»
- «empty state на русском / пустое состояние / "ничего не найдено"»
- «лейбл для кнопки / надпись на кнопке / текст кнопки»
- «тултип / подсказка при наведении / hover-текст»
- «404 / 500 / страница "оффлайн" на русском»
- «онбординг-карточка / текст для туториала»
- «текст модалки / заголовок модального окна»
- «уведомление / toast / поп-ап текст»
- «перепиши эту микрокопию короче»
For RU patterns per UI element (typography «ёлочки», обращение «вы», friendly vs formal register), see [references/element-types.md](references/element-types.md) section RU patterns per element.
Use this skill. For longer-form (landing page sections, marketing copy) → not this skill; use essay-write or a marketing-specific skill.
If user wants register/tone shift of EXISTING microcopy — pair with tone-shifter (e.g. shift formal → friendly).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Mikefluff
- Source: Mikefluff/skills
- License: MIT
- Homepage: https://www.npmjs.com/package/@mikefluff/skills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.