pluginagentmarketplace

ux-writing

Master UX writing - microcopy, voice and tone, error messages, CTAs, content strategy

pluginagentmarketplace 3 Updated 9mo ago

Resources

3
GitHub

Install

npx skillscat add pluginagentmarketplace/custom-plugin-ux-design/ux-writing

Install via the SkillsCat registry.

SKILL.md

UX Writing Skill

Atomic Skill: Craft clear, concise, and helpful content that guides users through experiences

Purpose

This skill provides frameworks for writing effective interface copy and establishing content systems.

Skill Invocation

Skill("custom-plugin-ux-design:ux-writing")

Parameter Schema

Input Parameters

interface UXWritingParams {
  // Required
  task: "microcopy" | "voice_tone" | "errors" | "ctas" | "audit";
  context: string;

  // Optional
  brand_voice?: {
    personality: string[];
    formality: "formal" | "neutral" | "casual";
  };
  constraints?: {
    character_limit?: number;
    localization?: string[];
  };
  emotional_context?: "neutral" | "frustrated" | "excited" | "confused";
}

Validation Rules

task:
  type: enum
  required: true
  values: [microcopy, voice_tone, errors, ctas, audit]

context:
  type: string
  required: true
  min_length: 10

constraints.character_limit:
  type: number
  min: 1
  max: 500

Execution Flow

UX WRITING EXECUTION
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Step 1: UNDERSTAND CONTEXT
โ”œโ”€โ”€ Identify user goal
โ”œโ”€โ”€ Define emotional context
โ””โ”€โ”€ Note constraints

Step 2: APPLY VOICE
โ”œโ”€โ”€ Match brand voice
โ”œโ”€โ”€ Adjust tone for context
โ””โ”€โ”€ Consider localization

Step 3: DRAFT CONTENT
โ”œโ”€โ”€ Write initial version
โ”œโ”€โ”€ Create alternatives
โ””โ”€โ”€ Check constraints

Step 4: REFINE
โ”œโ”€โ”€ Simplify language
โ”œโ”€โ”€ Remove jargon
โ”œโ”€โ”€ Verify clarity

Step 5: VALIDATE
โ”œโ”€โ”€ Test with users
โ”œโ”€โ”€ Check accessibility
โ””โ”€โ”€ Document patterns

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Retry Logic

retry_config:
  max_attempts: 3
  backoff_type: linear
  initial_delay_ms: 500
  max_delay_ms: 3000
  retryable_errors:
    - TONE_MISMATCH
    - LIMIT_EXCEEDED

Logging Hooks

interface UXWritingLog {
  timestamp: string;
  event: "draft_created" | "refined" | "approved";
  content_type: string;
  character_count: number;
  readability_score: number;
  alternatives_generated: number;
}

Learning Modules

Module 1: Microcopy Fundamentals

MICROCOPY TYPES
โ”œโ”€โ”€ Button labels
โ”œโ”€โ”€ Form labels
โ”œโ”€โ”€ Placeholder text
โ”œโ”€โ”€ Helper text
โ”œโ”€โ”€ Error messages
โ”œโ”€โ”€ Success messages
โ”œโ”€โ”€ Loading states
โ”œโ”€โ”€ Empty states
โ”œโ”€โ”€ Tooltips
โ””โ”€โ”€ Notifications

WRITING PRINCIPLES
โ”œโ”€โ”€ Clarity over cleverness
โ”œโ”€โ”€ Concise but complete
โ”œโ”€โ”€ Action-oriented
โ”œโ”€โ”€ User-focused
โ””โ”€โ”€ Consistent

Module 2: Voice & Tone

VOICE DIMENSIONS
โ”œโ”€โ”€ Personality traits
โ”‚   โ”œโ”€โ”€ Friendly vs Professional
โ”‚   โ”œโ”€โ”€ Playful vs Serious
โ”‚   โ””โ”€โ”€ Casual vs Formal
โ”œโ”€โ”€ Vocabulary choices
โ”‚   โ”œโ”€โ”€ Technical level
โ”‚   โ”œโ”€โ”€ Brand-specific terms
โ”‚   โ””โ”€โ”€ Inclusive language
โ””โ”€โ”€ Sentence structure
    โ”œโ”€โ”€ Active voice
    โ”œโ”€โ”€ Sentence length
    โ””โ”€โ”€ Punctuation style

TONE ADAPTATION
โ”œโ”€โ”€ Neutral context: Standard voice
โ”œโ”€โ”€ Frustrated user: Empathetic, helpful
โ”œโ”€โ”€ Excited user: Match energy
โ”œโ”€โ”€ Confused user: Clear, guiding
โ””โ”€โ”€ Error situation: Calm, actionable

Module 3: Error Messages

ERROR MESSAGE STRUCTURE
โ”œโ”€โ”€ What happened (clear, honest)
โ”œโ”€โ”€ Why it happened (if helpful)
โ””โ”€โ”€ What to do next (actionable)

ERROR TONE GUIDELINES
โ”œโ”€โ”€ Never blame the user
โ”œโ”€โ”€ Be specific, not vague
โ”œโ”€โ”€ Offer a solution
โ”œโ”€โ”€ Use plain language
โ””โ”€โ”€ Keep it brief

EXAMPLES
Bad: "Error 500"
Good: "We couldn't save your changes. Please try again."

Bad: "Invalid input"
Good: "Email addresses need an @ symbol"

Bad: "Something went wrong"
Good: "We couldn't load your files. Check your connection and refresh."

Module 4: CTAs & Buttons

CTA PRINCIPLES
โ”œโ”€โ”€ Start with action verb
โ”œโ”€โ”€ Be specific about outcome
โ”œโ”€โ”€ Keep it short (2-4 words)
โ”œโ”€โ”€ Match user expectation
โ””โ”€โ”€ Create appropriate urgency

ACTION VERBS BY CONTEXT
โ”œโ”€โ”€ Creation: Create, Add, New
โ”œโ”€โ”€ Continuation: Continue, Next
โ”œโ”€โ”€ Confirmation: Save, Submit, Confirm
โ”œโ”€โ”€ Navigation: Go, Open, View
โ”œโ”€โ”€ Communication: Send, Share, Invite
โ””โ”€โ”€ Removal: Delete, Remove, Cancel

PRIMARY vs SECONDARY
โ”œโ”€โ”€ Primary: Main action (emphasized)
โ”œโ”€โ”€ Secondary: Alternative action
โ””โ”€โ”€ Tertiary: Escape/cancel

Module 5: Content Strategy

CONTENT PATTERNS
โ”œโ”€โ”€ Consistent terminology
โ”œโ”€โ”€ Reusable content blocks
โ”œโ”€โ”€ Scalable voice system
โ””โ”€โ”€ Localization-ready

CONTENT GOVERNANCE
โ”œโ”€โ”€ Style guide
โ”œโ”€โ”€ Terminology glossary
โ”œโ”€โ”€ Approval workflow
โ”œโ”€โ”€ Update process
โ””โ”€โ”€ Quality metrics

Error Handling

Error Code Description Recovery
UXW-001 Jargon detected Suggest plain language
UXW-002 Tone mismatch Realign with voice
UXW-003 CTA unclear Strengthen verb
UXW-004 Error unhelpful Add action steps
UXW-005 Limit exceeded Prioritize, truncate

Writing Formulas

Error Messages

[Acknowledge] + [Explain (if helpful)] + [Action]

"We couldn't save your file. It may be too large.
Try reducing the size or contact support."

Empty States

[What would be here] + [How to add it]

"No messages yet. Start a conversation by tapping New Message."

Loading States

[What's happening] + [Progress (if known)]

"Loading your dashboard..."
"Uploading file (3 of 5)..."

Troubleshooting

Problem: Users misunderstand labels

Diagnosis:
โ”œโ”€โ”€ Check: Jargon usage
โ”œโ”€โ”€ Check: Context clarity
โ”œโ”€โ”€ Check: Consistency
โ””โ”€โ”€ Solution: Simplify

Steps:
1. Test with real users
2. Replace technical terms
3. Add helper text
4. A/B test alternatives

Problem: CTAs have low engagement

Diagnosis:
โ”œโ”€โ”€ Check: Verb strength
โ”œโ”€โ”€ Check: Value clarity
โ”œโ”€โ”€ Check: Visual prominence
โ””โ”€โ”€ Solution: Optimize copy

Steps:
1. Use stronger action verbs
2. Clarify the outcome
3. Test alternatives
4. Consider placement

Unit Test Templates

describe("UXWritingSkill", () => {
  describe("microcopy generation", () => {
    it("should meet character limit", async () => {
      const result = await invoke({
        task: "microcopy",
        context: "button label",
        constraints: { character_limit: 20 }
      });
      expect(result.text.length).toBeLessThanOrEqual(20);
    });
  });

  describe("error messages", () => {
    it("should include actionable step", async () => {
      const result = await invoke({
        task: "errors",
        context: "file upload failed"
      });
      expect(result.message).toMatch(/try|check|contact/i);
    });

    it("should not blame user", async () => {
      const result = await invoke({
        task: "errors",
        context: "invalid input"
      });
      expect(result.message).not.toMatch(/you|your mistake/i);
    });
  });

  describe("readability", () => {
    it("should score grade 8 or lower", async () => {
      const result = await invoke({
        task: "microcopy",
        context: "onboarding instructions"
      });
      expect(result.readability.grade_level).toBeLessThanOrEqual(8);
    });
  });
});

Quality Metrics

Metric Target Measurement
Readability Grade 8 Flesch-Kincaid
Task completion > 95% User testing
Error recovery > 90% Recovery rate
Consistency 100% Terminology audit

Version History

Version Date Changes
1.0.0 2025-12-30 Production-grade upgrade