@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,430 @@
1
+ # Onboarding & User Activation
2
+
3
+ Onboarding is the critical bridge between sign-up and engaged usage. This reference covers patterns for first-run experiences, progressive disclosure, activation metrics, and re-engagement.
4
+
5
+ ---
6
+
7
+ ## Contents
8
+
9
+ - Onboarding Patterns
10
+ - Progressive Disclosure
11
+ - User Activation
12
+ - Personalization
13
+ - Sign-Up Flow
14
+ - First-Run Experience
15
+ - Re-Engagement
16
+ - Measuring Success
17
+ - Anti-Patterns
18
+ - Sources
19
+
20
+ ---
21
+
22
+ ## Onboarding Patterns
23
+
24
+ ### Product Tours
25
+
26
+ ```
27
+ ┌─────────────────────────────────────────┐
28
+ │ ┌──────────────────────────────┐ │
29
+ │ │ Step 2 of 4 │ │
30
+ │ │ ───────────── │ │
31
+ │ │ Create your first project │ │
32
+ │ │ │ │
33
+ │ │ Click the + button to get │ │
34
+ │ │ started with a new project. │ │
35
+ │ │ │ │
36
+ │ │ [Back] [Next] [Skip tour] │ │
37
+ │ └──────────────────────────────┘ │
38
+ │ ▼ │
39
+ │ [ + New Project ] │
40
+ └─────────────────────────────────────────┘
41
+ ```
42
+
43
+ **Best practices:**
44
+ - Keep tours to 3-5 steps maximum
45
+ - Highlight one feature per step with a spotlight/overlay
46
+ - Always allow skipping ("Skip tour" visible on every step)
47
+ - Point to the actual UI element being described
48
+ - Show progress indicator (step N of M)
49
+ - Trigger contextually, not on every login
50
+
51
+ ### Tooltip Walkthroughs
52
+
53
+ ```
54
+ ┌──────────────────────┐
55
+ │ 💡 Quick tip │
56
+ │ Use / to search │
57
+ │ commands quickly. │
58
+ │ │
59
+ │ [Got it] [Show more] │
60
+ └───────┬──────────────┘
61
+ ▼
62
+ ┌────────────────────────────────────────┐
63
+ │ [Search commands... /] │
64
+ └────────────────────────────────────────┘
65
+ ```
66
+
67
+ - Appear in context when user first encounters a feature
68
+ - One tooltip at a time (never stack)
69
+ - Dismissible and don't block interaction with the feature
70
+ - "Got it" dismisses permanently; "Show more" opens full docs
71
+ - Respect dismissals (don't re-show on next session)
72
+
73
+ ### Onboarding Checklists
74
+
75
+ ```
76
+ ┌─ Getting Started ───────────────────────┐
77
+ │ │
78
+ │ ✅ Create your account │
79
+ │ ✅ Set up your profile │
80
+ │ 🔲 Invite a team member │
81
+ │ 🔲 Create your first project │
82
+ │ 🔲 Connect an integration │
83
+ │ │
84
+ │ ████████████░░░░░░░░ 60% complete │
85
+ │ │
86
+ │ [Dismiss checklist] │
87
+ └──────────────────────────────────────────┘
88
+ ```
89
+
90
+ **Best practices:**
91
+ - 4-6 items (not overwhelming)
92
+ - Pre-check completed items (account creation counts!)
93
+ - Progress bar/percentage for motivation
94
+ - Link each item directly to the relevant action
95
+ - Dismissible but recoverable from settings
96
+ - Celebrate completion (confetti, congratulations message)
97
+ - Order items by value delivered, not complexity
98
+
99
+ ### Empty States as Onboarding
100
+
101
+ ```
102
+ ┌─────────────────────────────────────────┐
103
+ │ │
104
+ │ 📁 │
105
+ │ No projects yet │
106
+ │ │
107
+ │ Create your first project to start │
108
+ │ collaborating with your team. │
109
+ │ │
110
+ │ [+ Create Project] │
111
+ │ │
112
+ │ Or try a template: │
113
+ │ [Marketing Plan] [Sprint Board] [Wiki] │
114
+ │ │
115
+ └─────────────────────────────────────────┘
116
+ ```
117
+
118
+ - Show helpful illustration (not just "no data")
119
+ - Clear call-to-action for the logical next step
120
+ - Offer templates or sample data to reduce blank-page anxiety
121
+ - Brief explanation of what this area is for
122
+ - Never show a completely empty screen with no guidance
123
+
124
+ ### Sample Data / Sandbox
125
+
126
+ - Pre-populated example data that demonstrates product value
127
+ - Clearly labeled as sample/demo data ("This is example data — delete anytime")
128
+ - Easy one-click removal when user is ready
129
+ - Shows real functionality, not just screenshots
130
+ - Avoids cluttering the user's actual workspace
131
+
132
+ ---
133
+
134
+ ## Progressive Disclosure
135
+
136
+ ### Layered Complexity
137
+
138
+ ```
139
+ Level 1 — Basic (default view):
140
+ ┌────────────────────────────────┐
141
+ │ Name: [ ] │
142
+ │ Email: [ ] │
143
+ │ │
144
+ │ [Save] │
145
+ └────────────────────────────────┘
146
+
147
+ Level 2 — Show more:
148
+ ┌────────────────────────────────┐
149
+ │ Name: [ ] │
150
+ │ Email: [ ] │
151
+ │ │
152
+ │ ▾ Advanced settings │
153
+ │ ┌──────────────────────────┐ │
154
+ │ │ Role: [Admin ▾] │ │
155
+ │ │ Team: [Engineering ▾] │ │
156
+ │ │ Timezone: [Auto ▾] │ │
157
+ │ └──────────────────────────┘ │
158
+ │ │
159
+ │ [Save] │
160
+ └────────────────────────────────┘
161
+ ```
162
+
163
+ **Principles:**
164
+ - Show the most common options by default
165
+ - Hide advanced options behind expandable sections
166
+ - Use sensible defaults so advanced options are rarely needed
167
+ - Label advanced sections clearly ("Advanced settings", "More options")
168
+ - Persist user's disclosure preference per section
169
+
170
+ ### Feature Revelation Strategies
171
+
172
+ - **Usage-based**: Unlock features as users demonstrate readiness
173
+ - **Time-based**: Introduce features over first week of usage
174
+ - **Role-based**: Show features relevant to user's selected role
175
+ - **Need-based**: Surface features when context suggests need
176
+ - Avoid gating features artificially — if a user seeks them out, show them
177
+
178
+ ---
179
+
180
+ ## User Activation
181
+
182
+ ### Defining Activation Metrics
183
+
184
+ ```
185
+ Activation = user reached the "aha moment"
186
+
187
+ Examples:
188
+ - Slack: Sent first message in a channel
189
+ - Dropbox: Uploaded first file
190
+ - GitHub: Made first commit
191
+ - Figma: Created first design frame
192
+ - Notion: Created and shared first page
193
+ ```
194
+
195
+ ### Time-to-Value (TTV)
196
+
197
+ The time between sign-up and the user experiencing core product value.
198
+
199
+ **Optimization strategies:**
200
+ - Remove unnecessary sign-up steps (defer profile completion)
201
+ - Auto-configure based on sign-up context (role, company size)
202
+ - Pre-populate with relevant templates or data
203
+ - Guide users to the core action immediately
204
+ - Measure TTV and optimize for reduction
205
+
206
+ ### The "Aha Moment"
207
+
208
+ ```
209
+ Identify by analyzing:
210
+ 1. What do retained users have in common?
211
+ 2. What action separates retained from churned users?
212
+ 3. How quickly do successful users reach this action?
213
+
214
+ Design toward it:
215
+ - Make the path to the aha moment as short as possible
216
+ - Remove friction between sign-up and first value
217
+ - Celebrate when users reach it
218
+ ```
219
+
220
+ ---
221
+
222
+ ## Personalization
223
+
224
+ ### Role-Based Onboarding
225
+
226
+ ```
227
+ ┌─────────────────────────────────────────┐
228
+ │ Welcome! What's your role? │
229
+ │ │
230
+ │ ┌───────────┐ ┌──────────────┐ │
231
+ │ │ 🎨 │ │ 💻 │ │
232
+ │ │ Designer │ │ Developer │ │
233
+ │ └───────────┘ └──────────────┘ │
234
+ │ ┌───────────┐ ┌──────────────┐ │
235
+ │ │ 📊 │ │ 👤 │ │
236
+ │ │ Manager │ │ Other │ │
237
+ │ └───────────┘ └──────────────┘ │
238
+ │ │
239
+ │ This helps us customize your setup. │
240
+ └─────────────────────────────────────────┘
241
+ ```
242
+
243
+ - Ask 1-2 personalization questions max during sign-up
244
+ - Customize dashboard, default views, and feature highlights based on role
245
+ - Allow changing selection later without losing work
246
+ - Make it clear how this choice affects their experience
247
+ - Skip if irrelevant (single-purpose tools don't need role selection)
248
+
249
+ ### Skill-Level Adaptation
250
+
251
+ - Detect usage patterns to infer expertise level
252
+ - Offer "beginner" vs. "experienced" onboarding paths
253
+ - Show keyboard shortcuts to power users, guided tours to beginners
254
+ - Progressively reduce hand-holding as usage increases
255
+ - Allow manual skill-level toggle in settings
256
+
257
+ ---
258
+
259
+ ## Sign-Up Flow
260
+
261
+ ### Reducing Friction
262
+
263
+ ```
264
+ Minimal sign-up (3 fields max):
265
+ ┌────────────────────────────────┐
266
+ │ Get started │
267
+ │ │
268
+ │ Email: [ ] │
269
+ │ Password: [ ] │
270
+ │ │
271
+ │ [Create Account] │
272
+ │ │
273
+ │ ── or continue with ── │
274
+ │ [Google] [GitHub] [SSO] │
275
+ │ │
276
+ │ Already have an account? │
277
+ │ Sign in │
278
+ └────────────────────────────────┘
279
+ ```
280
+
281
+ **Best practices:**
282
+ - Social login / SSO options reduce friction significantly
283
+ - Defer non-essential fields (name, company) to post-sign-up
284
+ - Email-first flow: collect email, then ask for password on next step
285
+ - Magic link option for password-free sign-up
286
+ - Show password requirements inline, not after failed submission
287
+ - Single-field entry: email only, then decide sign-in vs. sign-up
288
+
289
+ ### Progressive Profiling
290
+
291
+ Collect user information over time, not all at once.
292
+
293
+ ```
294
+ Sign-up: Email + password only
295
+ First use: "What's your name?" (in-context)
296
+ Day 3: "What's your team size?" (when relevant)
297
+ Day 7: "Connect your calendar?" (when value is clear)
298
+ ```
299
+
300
+ - Each request provides clear value to the user
301
+ - Ask in context (team size when inviting first member)
302
+ - Never block core features behind profile completion
303
+ - Show profile completion percentage (optional, gamification)
304
+
305
+ ### Deferred Registration
306
+
307
+ - Let users try the product before requiring sign-up
308
+ - Save anonymous work and transfer to account on registration
309
+ - Show value before asking for commitment
310
+ - "Continue as guest" option where applicable
311
+
312
+ ---
313
+
314
+ ## First-Run Experience
315
+
316
+ ### Blank Slate Design
317
+
318
+ Every empty screen is an opportunity to onboard:
319
+
320
+ | Screen | Instead of "No data" | Show |
321
+ |--------|---------------------|------|
322
+ | Dashboard | Empty widgets | Pre-configured widgets with sample data |
323
+ | Project list | "No projects" | Templates + "Create first project" CTA |
324
+ | Inbox | "No messages" | "Invite your team to start conversations" |
325
+ | Analytics | "No data yet" | "Connect a data source" + preview |
326
+
327
+ ### Starter Templates
328
+
329
+ - Offer 3-5 templates relevant to user's role/industry
330
+ - Preview template before selecting
331
+ - "Start from scratch" always available
332
+ - Templates should be fully functional, not just layouts
333
+ - Allow customization immediately after selection
334
+
335
+ ### Guided Setup Wizards
336
+
337
+ ```
338
+ Step 1 Step 2 Step 3 Done!
339
+ [Profile] ──→ [Team] ──→ [Integrations] ──→ [🎉]
340
+ ● ○ ○ ○
341
+ ```
342
+
343
+ - Maximum 3-5 steps
344
+ - Show progress and allow skipping each step
345
+ - Save progress if user abandons mid-wizard
346
+ - Offer "Do this later" for optional steps
347
+ - Each step should deliver immediate value
348
+
349
+ ---
350
+
351
+ ## Re-Engagement
352
+
353
+ ### Return User Flows
354
+
355
+ ```
356
+ ┌─────────────────────────────────────────┐
357
+ │ Welcome back, Alex! │
358
+ │ │
359
+ │ Since you were last here: │
360
+ │ • 3 new comments on "Q4 Report" │
361
+ │ • Sarah shared "Design Brief" with you │
362
+ │ • Your trial ends in 5 days │
363
+ │ │
364
+ │ [Go to Q4 Report] [View all updates] │
365
+ └─────────────────────────────────────────┘
366
+ ```
367
+
368
+ - Show relevant updates since last visit
369
+ - Deep-link to unfinished work or pending actions
370
+ - Don't re-show completed onboarding steps
371
+ - Feature announcements for major changes only
372
+
373
+ ### What's New Patterns
374
+
375
+ - Changelog accessible from a "What's new" menu item or badge
376
+ - Brief inline announcements for features relevant to user's workflow
377
+ - "New" badges on navigation items (auto-dismiss after first visit)
378
+ - Major updates: one-time modal with clear benefit statement
379
+ - Never block user workflow for feature announcements
380
+
381
+ ---
382
+
383
+ ## Measuring Success
384
+
385
+ ### Key Metrics
386
+
387
+ | Metric | Target | How to measure |
388
+ |--------|--------|---------------|
389
+ | Sign-up completion | > 85% | Users who complete sign-up / started |
390
+ | Onboarding completion | > 65% | Users who finish checklist / total |
391
+ | Time to first value | < 5 min | Time from sign-up to activation event |
392
+ | Day 1 retention | > 40% | Users who return the day after sign-up |
393
+ | Day 7 retention | > 25% | Users who return within first week |
394
+ | Activation rate | > 30% | Users who reach aha moment / total sign-ups |
395
+ | Tour skip rate | Monitor | High skip may indicate poor tour design |
396
+ | Checklist item completion | Track per item | Identifies friction points |
397
+
398
+ ### Drop-Off Analysis
399
+
400
+ - Funnel visualization for each onboarding step
401
+ - Identify where users abandon (highest drop-off = biggest opportunity)
402
+ - Segment by user source, role, and device
403
+ - A/B test onboarding variations against activation rate
404
+ - Qualitative: user session recordings of first-run experience
405
+
406
+ ---
407
+
408
+ ## Anti-Patterns
409
+
410
+ 1. **Mandatory lengthy tours** — Forcing users through 10+ steps before they can use the product
411
+ 2. **Information overload** — Teaching everything at once instead of progressively
412
+ 3. **No skip option** — Trapping users in onboarding flows
413
+ 4. **Ignoring return users** — Showing the same onboarding to returning users
414
+ 5. **Empty states with no guidance** — "No data" with no next step
415
+ 6. **Asking too much at sign-up** — 10-field registration forms
416
+ 7. **Irrelevant personalization questions** — Asking role when it doesn't affect the experience
417
+ 8. **Celebrating too early** — Confetti when user hasn't done anything meaningful yet
418
+ 9. **Feature dumping** — Showing every feature in tooltips before user needs them
419
+ 10. **No measurement** — Not tracking where users drop off in onboarding
420
+
421
+ ---
422
+
423
+ ## Sources
424
+
425
+ - [UserOnboard](https://www.useronboard.com/) — Real product onboarding teardowns
426
+ - [ProductLed: User Activation](https://productled.com/) — Activation frameworks
427
+ - [Appcues: State of User Onboarding](https://www.appcues.com/) — Onboarding benchmarks
428
+ - [Nielsen Norman Group: Onboarding](https://www.nngroup.com/articles/onboarding/) — UX research
429
+ - [Intercom: Onboarding](https://www.intercom.com/blog/onboarding/) — SaaS onboarding best practices
430
+ - [Reforge: Activation](https://www.reforge.com/) — Growth frameworks