| name | i-clarify |
| description | Use when the user says: "improve the copy", "error messages are confusing", "UX writing". Improve UX clarity, reduce confusion, and improve information hierarchy. |
| user-invocable | true |
Identify and improve unclear, confusing, or poorly written interface text to make the product easier to understand and use.
MANDATORY PREPARATION
Read ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/i-frontend-design/SKILL.md for design principles, anti-patterns, and the Context Gathering Protocol. Follow the protocol before proceeding — if no design context exists yet, you MUST run /i-teach-impeccable first. Additionally gather: audience technical level and users' mental state in context.
Assess Current Copy
Identify what makes the text unclear or ineffective:
-
Find clarity problems:
- Jargon: Technical terms users won't understand
- Ambiguity: Multiple interpretations possible
- Passive voice: "Your file has been uploaded" vs "We uploaded your file"
- Length: Too wordy or too terse
- Assumptions: Assuming user knowledge they don't have
- Missing context: Users don't know what to do or why
- Tone mismatch: Too formal, too casual, or inappropriate for situation
-
Understand the context:
- Who's the audience? (Technical? General? First-time users?)
- What's the user's mental state? (Stressed during error? Confident during success?)
- What's the action? (What do we want users to do?)
- What's the constraint? (Character limits? Space limitations?)
CRITICAL: Clear copy helps users succeed. Unclear copy creates frustration, errors, and support tickets.
Plan Copy Improvements
Create a strategy for clearer communication:
- Primary message: What's the ONE thing users need to know?
- Action needed: What should users do next (if anything)?
- Tone: How should this feel? (Helpful? Apologetic? Encouraging?)
- Constraints: Length limits, brand voice, localization considerations
IMPORTANT: Good UX writing is invisible. Users should understand immediately without noticing the words.
Propose Changes
After analyzing the current state, present your proposed changes to the user:
- Assessment: What's wrong and why (your domain analysis above)
- Proposed changes: Specific changes ranked by impact, with rationale
- Verification plan: What to check after implementation (LLM self-check items + Playwright verification if available)
Then STOP and confirm before implementing:
AskUserQuestion:
question: "Here's what I propose. How would you like to proceed?"
header: "Confirm"
options:
- label: "Implement"
description: "Looks good — go ahead and make these changes."
- label: "Refine scope"
description: "I want to adjust what's included before you start."
- label: "Challenge this first"
description: "I'll run /mine-challenge against your proposal before we proceed."
- label: "Stop here"
description: "Don't implement anything. The proposal is in this conversation only."
If "Implement" → proceed to implementation below.
If "Refine scope" → ask what to change, update proposal, re-confirm.
If "Challenge this first" → invoke /mine-challenge inline against the proposal, read findings, revise proposal, re-present this gate.
If "Stop here" → end the skill.
Improve Copy Systematically
Refine text across the common surfaces: error messages, form labels and instructions, button/CTA text, help text and tooltips, empty states, success messages, loading states, confirmation dialogs, and navigation labels. The shape of the fix is the same everywhere — name the specific thing, say what to do next, never blame the user. Two illustrative pairs:
Error — "Error 403: Forbidden" → "You don't have permission to view this page. Contact your admin for access."
Confirmation — "Are you sure?" → "Delete 'Project Alpha'? This can't be undone." (and label the button "Delete project," not "Yes")
Apply Clarity Principles
Be specific, concise, active, human, helpful, and consistent — name the action ("Save changes," not "OK"; "Enter email," not "Enter value"), and pick one term per concept and stick to it.
NEVER:
- Use jargon without explanation
- Blame users ("You made an error" → "This field is required")
- Be vague ("Something went wrong" without explanation)
- Use passive voice unnecessarily
- Write overly long explanations (be concise)
- Use humor for serious or high-stakes errors — data loss, permission errors, blocking failures require empathy, not jokes. For playful brands, humor may be appropriate for 404s and minor recoverable errors, but empathy should be the default. If brand personality is not established in design context, use empathy-first default for all errors.
- Assume technical knowledge
- Vary terminology (pick one term and stick with it)
- Repeat information (headers restating intros, redundant explanations)
- Use placeholders as the only labels (they disappear when users type)
Verify Improvements
Test that copy improvements work:
- Comprehension: Can users understand without context?
- Actionability: Do users know what to do next?
- Brevity: Is it as short as possible while remaining clear?
- Consistency: Does it match terminology elsewhere?
- Tone: Is it appropriate for the situation?
Remember: You're a clarity expert with excellent communication skills. Write like you're explaining to a smart friend who's unfamiliar with the product. Be clear, be helpful, be human.
Completion
After implementation, summarize in conversation:
- Changes made: List each file changed and what was done
- Verification: LLM self-check results (anti-pattern scan, consistency check). Note if Playwright was available for visual verification.
- Suggested next step: Any follow-up skills that would complement this work (e.g., after /i-typeset, suggest /i-polish for a final pass)