@ericrisco/rsc 3.3.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +3 -3
  2. package/manifest.json +43 -22
  3. package/package.json +1 -1
  4. package/scripts/lib/default-skill-floor.js +5 -1
  5. package/scripts/lib/domains.js +2 -2
  6. package/scripts/lib/retired-skills.js +4 -0
  7. package/scripts/rsc.js +1 -1
  8. package/skills/design/SKILL.md +4 -3
  9. package/skills/design/evals/cases.yaml +2 -2
  10. package/skills/ftd/SKILL.md +1 -1
  11. package/skills/react/SKILL.md +2 -1
  12. package/skills/ux/SKILL.md +149 -0
  13. package/skills/ux/THIRD_PARTY.md +32 -0
  14. package/skills/ux/evals/cases.yaml +40 -0
  15. package/skills/ux/references/flows.md +124 -0
  16. package/skills/ux/upstream/UPSTREAM.json +59 -0
  17. package/skills/ux/upstream/ux-designer/GUIDE.md +180 -0
  18. package/skills/ux/upstream/ux-designer/LICENSE +21 -0
  19. package/skills/ux/upstream/ux-designer/references/01-core-principles.md +251 -0
  20. package/skills/ux/upstream/ux-designer/references/02-laws-of-ux.md +330 -0
  21. package/skills/ux/upstream/ux-designer/references/03-accessibility.md +411 -0
  22. package/skills/ux/upstream/ux-designer/references/04-visual-design.md +433 -0
  23. package/skills/ux/upstream/ux-designer/references/05-information-architecture.md +432 -0
  24. package/skills/ux/upstream/ux-designer/references/06-interaction-design.md +495 -0
  25. package/skills/ux/upstream/ux-designer/references/07-forms-and-inputs.md +491 -0
  26. package/skills/ux/upstream/ux-designer/references/08-mobile-ux.md +539 -0
  27. package/skills/ux/upstream/ux-designer/references/09-ux-writing.md +493 -0
  28. package/skills/ux/upstream/ux-designer/references/10-user-research.md +533 -0
  29. package/skills/ux/upstream/ux-designer/references/11-design-systems.md +618 -0
  30. package/skills/ux/upstream/ux-designer/references/12a-presence-awareness.md +395 -0
  31. package/skills/ux/upstream/ux-designer/references/12b-conflict-resolution-sync.md +420 -0
  32. package/skills/ux/upstream/ux-designer/references/13a-canvas-navigation.md +388 -0
  33. package/skills/ux/upstream/ux-designer/references/13b-canvas-objects-performance.md +559 -0
  34. package/skills/ux/upstream/ux-designer/references/14-ai-ux-patterns.md +511 -0
  35. package/skills/ux/upstream/ux-designer/references/15-ethical-design.md +419 -0
  36. package/skills/ux/upstream/ux-designer/references/16-onboarding.md +430 -0
  37. package/skills/ux/upstream/ux-designer/references/17-notifications.md +461 -0
  38. package/skills/ux/upstream/ux-designer/references/18-data-visualization.md +453 -0
  39. package/skills/ux/upstream/ux-designer/references/19-search-ux.md +479 -0
  40. package/skills/ux/upstream/ux-designer/references/20-emotional-design.md +382 -0
  41. package/skills/ux/upstream/ux-designer/references/21-data-tables.md +629 -0
  42. package/skills/ux/upstream/ux-designer/references/22-performance-ux.md +626 -0
  43. package/skills/ux/upstream/ux-designer/references/23-internationalization.md +347 -0
  44. package/skills/ux/upstream/ux-designer/references/24-voice-and-multimodal.md +308 -0
  45. package/skills/ux/upstream/ux-designer/references/25a-barcode-camera-scanning.md +342 -0
  46. package/skills/ux/upstream/ux-designer/references/25b-barcode-scanner-workflows.md +412 -0
  47. package/skills/ux/upstream/ux-designer/references/25c-barcode-display.md +277 -0
  48. package/skills/ux/upstream/ux-usability-foundations/GUIDE.md +285 -0
  49. package/skills/ux/upstream/ux-usability-foundations/LICENSE +21 -0
  50. package/skills/ux/upstream/ux-usability-foundations/references/anti-patterns.md +267 -0
  51. package/skills/ux/upstream/ux-usability-foundations/references/checklists.md +130 -0
  52. package/skills/ux/upstream/ux-usability-foundations/references/decision-prompts.md +340 -0
  53. package/skills/ux/upstream/ux-usability-foundations/references/principle-cards.md +449 -0
  54. package/skills/worktrees/SKILL.md +19 -5
  55. package/targets/branch-guard.mjs +59 -4
  56. package/targets/clone-bootstrap.mjs +1 -1
  57. package/targets/session-memory-adapter.mjs +2 -2
  58. package/targets/team-safe-start.mjs +1 -0
  59. package/targets/worktree-reaper.mjs +14 -1
  60. package/skills/ui-engineering/SKILL.md +0 -113
  61. package/skills/ui-engineering/evals/cases.yaml +0 -38
@@ -0,0 +1,493 @@
1
+ # UX Writing & Microcopy
2
+
3
+ UX writing is the practice of crafting user-facing text that helps people use digital products. Every word in an interface is designed to enhance the user experience.
4
+
5
+ ---
6
+
7
+ ## Contents
8
+
9
+ - What is Microcopy?
10
+ - Core Principles
11
+ - Voice and Tone
12
+ - Writing for Common UI Elements
13
+ - Form Copy
14
+ - Accessibility in Writing
15
+ - Localization Considerations
16
+ - AI Tools for UX Writing
17
+ - Testing Microcopy
18
+ - Content Design Process
19
+ - Resources
20
+ - Sources
21
+
22
+ ---
23
+
24
+ ## What is Microcopy?
25
+
26
+ Microcopy refers to the small bits of text throughout an interface:
27
+ - Button labels
28
+ - Error messages
29
+ - Form labels and hints
30
+ - Tooltips
31
+ - Empty states
32
+ - Confirmation messages
33
+ - Loading text
34
+ - Navigation labels
35
+ - Onboarding text
36
+
37
+ ### The Impact of Microcopy
38
+
39
+ Good microcopy:
40
+ - Reduces user errors
41
+ - Increases conversion rates
42
+ - Builds trust and brand personality
43
+ - Decreases support requests
44
+ - Guides users through complex tasks
45
+
46
+ ---
47
+
48
+ ## Core Principles
49
+
50
+ ### Clarity
51
+
52
+ Users should instantly understand what they're reading.
53
+
54
+ ```
55
+ Good: "Delete this file?"
56
+ Bad: "Are you sure you wish to proceed with the deletion of the selected item?"
57
+
58
+ Good: "Sign up"
59
+ Bad: "Get started on your journey"
60
+
61
+ Good: "Saved"
62
+ Bad: "Your changes have been successfully persisted to the database"
63
+ ```
64
+
65
+ ### Conciseness
66
+
67
+ Use the fewest words needed to communicate clearly.
68
+
69
+ ```
70
+ Good: "Password must be 8+ characters"
71
+ Bad: "Please ensure that your password contains a minimum of eight characters"
72
+
73
+ Good: "Email sent"
74
+ Bad: "Your email has been sent successfully"
75
+ ```
76
+
77
+ ### Usefulness
78
+
79
+ Every word should help the user accomplish their goal.
80
+
81
+ ```
82
+ Good: "Enter the 6-digit code from your authenticator app"
83
+ Bad: "Enter code"
84
+
85
+ Good: "We'll email you a receipt"
86
+ Bad: "Transaction complete"
87
+ ```
88
+
89
+ ### Conversational (But Professional)
90
+
91
+ Write like you speak, while maintaining appropriateness.
92
+
93
+ ```
94
+ Good: "Looks like that email doesn't exist. Want to create an account?"
95
+ Bad: "Error 404: User not found in database"
96
+
97
+ Good: "We couldn't find any results for 'xyz'"
98
+ Bad: "Your search query returned zero results"
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Voice and Tone
104
+
105
+ ### Voice vs. Tone
106
+
107
+ **Voice** = Your brand's personality (consistent)
108
+ **Tone** = How you adapt to context (varies)
109
+
110
+ ```
111
+ Voice: Friendly, helpful, professional
112
+ Tone varies:
113
+ - Onboarding: Welcoming, encouraging
114
+ - Errors: Empathetic, solution-focused
115
+ - Success: Celebratory (subtly)
116
+ - Security: Serious, trustworthy
117
+ ```
118
+
119
+ ### Developing Brand Voice
120
+
121
+ Document your voice characteristics:
122
+
123
+ | Attribute | We are... | We are NOT... |
124
+ |-----------|-----------|---------------|
125
+ | Friendly | Warm, approachable | Overly casual, unprofessional |
126
+ | Helpful | Clear, guiding | Condescending, verbose |
127
+ | Confident | Assured, direct | Arrogant, pushy |
128
+ | Human | Conversational, real | Robotic, corporate |
129
+
130
+ ### Adapting Tone
131
+
132
+ ```
133
+ Context: Error Message
134
+ Voice: Helpful
135
+ Tone: Empathetic + Solution-focused
136
+
137
+ "Something went wrong on our end. We're looking into it.
138
+ Your work has been saved—you won't lose anything."
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Writing for Common UI Elements
144
+
145
+ ### Buttons
146
+
147
+ ```
148
+ Good Button Labels:
149
+ - "Sign up" / "Log in" (standard actions)
150
+ - "Add to cart" / "Buy now" (specific actions)
151
+ - "Save changes" / "Save" (what happens)
152
+ - "Send message" (what it does)
153
+ - "Try free for 14 days" (value proposition)
154
+
155
+ Avoid:
156
+ - "Submit" (too generic)
157
+ - "Click here" (not descriptive, accessibility issue)
158
+ - "Yes" / "No" (require context)
159
+ - "OK" (too generic for important actions)
160
+ ```
161
+
162
+ ### Error Messages
163
+
164
+ ```
165
+ Structure: What happened + How to fix it
166
+
167
+ Good:
168
+ "We couldn't log you in. Check your email and password and try again."
169
+
170
+ "That email is already registered. Log in or reset your password."
171
+
172
+ "Your card was declined. Try a different payment method."
173
+
174
+ Avoid:
175
+ "Error"
176
+ "Invalid credentials"
177
+ "Error 422: Unprocessable entity"
178
+ ```
179
+
180
+ ### Empty States
181
+
182
+ ```
183
+ Components:
184
+ 1. What this area is for
185
+ 2. Why it's empty
186
+ 3. How to fill it
187
+
188
+ Example:
189
+ "No projects yet
190
+
191
+ Projects help you organize your work. Create your first project
192
+ to get started.
193
+
194
+ [Create project]"
195
+ ```
196
+
197
+ ### Success Messages
198
+
199
+ ```
200
+ Good:
201
+ "Password updated" ✓
202
+ "Order placed! We'll email you when it ships."
203
+ "Welcome aboard! Let's set up your workspace."
204
+
205
+ Keep it brief—user wants to move on.
206
+ Provide next steps when helpful.
207
+ ```
208
+
209
+ ### Loading States
210
+
211
+ ```
212
+ Generic:
213
+ "Loading..."
214
+
215
+ Contextual (better):
216
+ "Finding nearby restaurants..."
217
+ "Saving your changes..."
218
+ "Connecting to server..."
219
+
220
+ Humorous (use carefully):
221
+ "Reticulating splines..."
222
+ "Convincing pixels to behave..."
223
+ ```
224
+
225
+ ### Confirmation Dialogs
226
+
227
+ ```
228
+ Structure:
229
+ - Clear headline stating action
230
+ - Brief explanation of consequences
231
+ - Actionable button labels
232
+
233
+ Example:
234
+ "Delete this project?
235
+
236
+ This will permanently delete 'Marketing Q4' and all its files.
237
+ This can't be undone.
238
+
239
+ [Cancel] [Delete project]"
240
+
241
+ Not:
242
+ "Are you sure?"
243
+ [Yes] [No]
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Form Copy
249
+
250
+ ### Labels
251
+
252
+ ```
253
+ Good:
254
+ "Email address"
255
+ "Password"
256
+ "First name"
257
+
258
+ Avoid:
259
+ "Your email address"
260
+ "Enter your password"
261
+ "Please provide first name"
262
+ ```
263
+
264
+ ### Placeholder Text
265
+
266
+ ```
267
+ Use for examples, not labels:
268
+ "you@example.com"
269
+ "555-123-4567"
270
+ "Search products..."
271
+
272
+ Don't use as the only label (disappears on focus)
273
+ ```
274
+
275
+ ### Help Text
276
+
277
+ ```
278
+ Place below input or as tooltip:
279
+ "Password must be at least 8 characters"
280
+ "We'll only contact you about your order"
281
+ "Optional—for faster shipping estimates"
282
+ ```
283
+
284
+ ### Validation Messages
285
+
286
+ ```
287
+ Specific and helpful:
288
+ "Enter a valid email (e.g., name@company.com)"
289
+ "Phone number must be 10 digits"
290
+ "Passwords don't match"
291
+
292
+ Not:
293
+ "Invalid input"
294
+ "Please check this field"
295
+ "Error in form"
296
+ ```
297
+
298
+ ---
299
+
300
+ ## Accessibility in Writing
301
+
302
+ ### Link Text
303
+
304
+ ```
305
+ Good:
306
+ "Read our privacy policy"
307
+ "Download the report (PDF, 2.3 MB)"
308
+ "Learn more about pricing"
309
+
310
+ Avoid:
311
+ "Click here"
312
+ "Read more"
313
+ "Here" (as standalone link)
314
+ ```
315
+
316
+ ### Alt Text
317
+
318
+ ```
319
+ Informative images:
320
+ "Bar chart showing 40% increase in sales from Q3 to Q4 2024"
321
+
322
+ Decorative images:
323
+ alt="" (empty)
324
+
325
+ Functional images (buttons/links):
326
+ "Search" (not "magnifying glass icon")
327
+ ```
328
+
329
+ ### Headings
330
+
331
+ ```
332
+ Use logical hierarchy for screen readers:
333
+ <h1>Account Settings</h1>
334
+ <h2>Profile</h2>
335
+ <h2>Security</h2>
336
+ <h3>Password</h3>
337
+ <h3>Two-factor authentication</h3>
338
+ ```
339
+
340
+ ---
341
+
342
+ ## Localization Considerations
343
+
344
+ ### Writing for Translation
345
+
346
+ ```
347
+ Avoid idioms:
348
+ "Piece of cake" → "Easy"
349
+ "Kill two birds" → "Accomplish both"
350
+ "Ball is in your court" → "Your turn to decide"
351
+
352
+ Keep text expandable (30-40% expansion typical):
353
+ English: "Settings"
354
+ German: "Einstellungen"
355
+
356
+ Avoid text in images (can't be translated)
357
+
358
+ Don't embed variables mid-sentence:
359
+ "You have 5 messages" (number placement varies by language)
360
+ → "Messages: 5"
361
+ ```
362
+
363
+ ### Cultural Sensitivity
364
+
365
+ - Date formats vary (MM/DD/YYYY vs. DD/MM/YYYY)
366
+ - Color meanings differ across cultures
367
+ - Gestures and icons may have different connotations
368
+ - Humor often doesn't translate
369
+
370
+ ---
371
+
372
+ ## AI Tools for UX Writing
373
+
374
+ ### Content Generation
375
+
376
+ **ChatGPT / Claude:**
377
+ - Brainstorm alternative phrasings
378
+ - Generate variation options
379
+ - Check tone consistency
380
+
381
+ **Writer / Jasper:**
382
+ - Brand voice enforcement
383
+ - Style guide compliance
384
+ - Terminology consistency
385
+
386
+ ### Quality Checking
387
+
388
+ **Grammarly:**
389
+ - Grammar and spelling
390
+ - Clarity suggestions
391
+ - Tone detection
392
+
393
+ **Hemingway Editor:**
394
+ - Readability score
395
+ - Sentence complexity
396
+ - Passive voice detection
397
+
398
+ ### Important Note
399
+
400
+ AI is a co-pilot, not a replacement. Always:
401
+ - Review and edit AI suggestions
402
+ - Ensure brand voice consistency
403
+ - Test with real users
404
+ - Consider context AI might miss
405
+
406
+ ---
407
+
408
+ ## Testing Microcopy
409
+
410
+ ### A/B Testing
411
+
412
+ Test button text:
413
+ ```
414
+ A: "Sign up free"
415
+ B: "Get started"
416
+ C: "Create account"
417
+ ```
418
+
419
+ Measure: Click-through rate, completion rate
420
+
421
+ ### Usability Testing
422
+
423
+ - Can users complete the task?
424
+ - Do they understand what's happening?
425
+ - Any confusion or hesitation?
426
+ - What do they expect to happen next?
427
+
428
+ ### Preference Testing
429
+
430
+ "Which of these messages is clearer?"
431
+ "Which feels more appropriate for this situation?"
432
+
433
+ ---
434
+
435
+ ## Content Design Process
436
+
437
+ ### 1. Research
438
+ - Understand user needs and language
439
+ - Analyze existing content
440
+ - Review support tickets and FAQs
441
+ - Conduct user interviews
442
+
443
+ ### 2. Strategy
444
+ - Define voice and tone
445
+ - Create content guidelines
446
+ - Map user journeys
447
+ - Identify content touchpoints
448
+
449
+ ### 3. Write
450
+ - Draft multiple options
451
+ - Collaborate with design
452
+ - Iterate with feedback
453
+ - Consider edge cases
454
+
455
+ ### 4. Validate
456
+ - Usability testing
457
+ - A/B testing
458
+ - Accessibility review
459
+ - Stakeholder review
460
+
461
+ ### 5. Maintain
462
+ - Update as product evolves
463
+ - Track metrics
464
+ - Gather ongoing feedback
465
+ - Keep guidelines current
466
+
467
+ ---
468
+
469
+ ## Resources
470
+
471
+ ### Books
472
+ - "Microcopy: The Complete Guide" - Kinneret Yifrah
473
+ - "Strategic Writing for UX" - Torrey Podmajersky
474
+ - "Conversational Design" - Erika Hall
475
+
476
+ ### Courses
477
+ - UX Content Collective - UX Writing Fundamentals
478
+ - UX Writing Hub - UX Writing Academy
479
+ - Coursera - Microcopy & UX Writing
480
+
481
+ ### Communities
482
+ - UX Writing Hub (Slack)
483
+ - Content Design (Slack)
484
+ - r/UXWriting (Reddit)
485
+
486
+ ---
487
+
488
+ ## Sources
489
+
490
+ - [UX Writing Hub](https://uxwritinghub.com/)
491
+ - [Nielsen Norman Group - Writing for the Web](https://www.nngroup.com/topic/writing-web/)
492
+ - [Google Design - Writing](https://design.google/library/ux-writing)
493
+ - [Shopify Polaris - Voice and Tone](https://polaris.shopify.com/foundations/voice-and-tone)