@wazir-dev/cli 1.0.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 (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,700 @@
1
+ # Onboarding Patterns
2
+
3
+ > **Module Type:** Pattern
4
+ > **Domain:** UX Design / User Onboarding
5
+ > **Last Updated:** 2026-03-07
6
+ > **Confidence:** High -- based on NNG research, Appcues data, UX Collective analysis, and cross-industry teardowns
7
+
8
+ ---
9
+
10
+ ## Quick Reference Checklist
11
+
12
+ Before shipping any onboarding flow, verify against this list:
13
+
14
+ - [ ] Users reach their first value moment within 60 seconds
15
+ - [ ] Account creation is deferred until after demonstrating value
16
+ - [ ] Every permission request includes a clear, benefit-framed rationale
17
+ - [ ] A skip option is visible on every non-essential screen
18
+ - [ ] Progress indication is present throughout multi-step flows
19
+ - [ ] The flow adapts based on user role, intent, or prior context
20
+ - [ ] Empty states guide users toward their first meaningful action
21
+ - [ ] Contextual help is available at the point of need, not upfront
22
+ - [ ] Celebration micro-interactions reinforce completion of key milestones
23
+ - [ ] The entire flow is keyboard-navigable and screen-reader accessible
24
+ - [ ] Reduced-motion alternatives exist for all animations
25
+ - [ ] Returning users are not forced to repeat completed onboarding
26
+ - [ ] Re-onboarding exists for major feature releases
27
+ - [ ] The flow has been tested on iOS, Android, and web with platform-appropriate patterns
28
+ - [ ] Abandonment recovery paths exist (deep links, email nudges, resume state)
29
+
30
+ ---
31
+
32
+ ## 1. Pattern Anatomy
33
+
34
+ Onboarding is the bridge between a user's first encounter with a product and their
35
+ realization of its core value. It is not a single pattern but a family of related
36
+ patterns, each suited to different contexts, complexity levels, and user needs.
37
+
38
+ ### 1.1 App Intro / Welcome Screens
39
+
40
+ **What it is:** 2-4 screens on first launch communicating the app's value proposition
41
+ via illustration + headline + subtitle.
42
+
43
+ **When to use:** App purpose is not obvious from name/icon; brand storytelling is
44
+ central (e.g., Headspace); expectations need setting before interaction.
45
+
46
+ **When to avoid:** App function is self-evident (calculator, weather); users arrive
47
+ with strong intent; value already communicated via app store screenshots.
48
+
49
+ **Guidance:** Limit to 3 screens max -- NNG research shows tutorials are "quickly
50
+ forgotten." Focus on benefits, not features. Always include skip. Appcues found
51
+ 49% of trial users want to explore on their own. Use pagination dots for scope.
52
+
53
+ ### 1.2 Feature Tours / Product Tours
54
+
55
+ **What it is:** Guided walkthrough highlighting specific UI elements via tooltips,
56
+ coach marks, or spotlight overlays anchored to interface components.
57
+
58
+ **When to use:** Non-obvious interaction patterns; key features hidden behind menus
59
+ or gestures; collaborative products where users need workflow understanding.
60
+
61
+ **When to avoid:** UI follows platform conventions; better UI design could eliminate
62
+ the need (the best onboarding is no onboarding); returning users.
63
+
64
+ **Guidance:** Anchor to actual UI elements, not abstract illustrations. Limit to
65
+ 3-5 steps -- longer tours see exponential drop-off. Make tours interactive: require
66
+ the user to perform the action, not just read. Offer "remind me later" alongside skip.
67
+
68
+ ### 1.3 Progressive Disclosure
69
+
70
+ **What it is:** Revealing features incrementally as the user advances, rather than
71
+ presenting everything upfront.
72
+
73
+ **When to use:** High-complexity products (design tools, project management, IDEs);
74
+ different user segments need different feature sets; overwhelming learning curve.
75
+
76
+ **When to avoid:** Power users needing immediate advanced access; simple products
77
+ where progressive disclosure adds unnecessary friction.
78
+
79
+ **Guidance:** Tie feature reveals to user actions, not arbitrary timelines. Use
80
+ behavioral triggers: show the export tutorial after the first document creation,
81
+ not on day 3. Jakob Nielsen introduced progressive disclosure in 1995 to reduce
82
+ errors in complex applications. Notion exemplifies this: basic blocks first,
83
+ databases revealed as users build more complex pages.
84
+
85
+ ### 1.4 Contextual Tooltips
86
+
87
+ **What it is:** Targeted help messages appearing at the moment a user encounters
88
+ a feature or interaction point for the first time.
89
+
90
+ **When to use:** Non-standard UI patterns needing inline explanation; just-in-time
91
+ help without workflow interruption; organically discovered features.
92
+
93
+ **When to avoid:** Tooltip would obscure the element; information exceeds 1-2
94
+ sentences; multiple tooltips would appear simultaneously.
95
+
96
+ **Guidance:** NNG distinguishes "push" (proactive) from "pull" (user-triggered)
97
+ contextual help. Prefer pull patterns for non-critical info. Position consistently,
98
+ never occluding the target. Dismiss on interaction with the target element. Track
99
+ shown tooltips and never re-show dismissed ones.
100
+
101
+ ### 1.5 Interactive Tutorials
102
+
103
+ **What it is:** Learn-by-doing experiences where users complete real tasks within a
104
+ guided sandbox or with guardrails on the live product.
105
+
106
+ **When to use:** Procedural knowledge required (design tools, code editors); non-
107
+ technical users learning technical workflows; multi-step "aha moment."
108
+
109
+ **When to avoid:** Users experienced with the category; tutorial cannot use real
110
+ data; time-to-value must be under 30 seconds.
111
+
112
+ **Guidance:** Duolingo is the gold standard: users complete a real translation
113
+ exercise before creating an account. Use user's actual data when possible. Allow
114
+ exit and resume. Celebrate completion with clear feedback.
115
+
116
+ ### 1.6 Empty State Onboarding
117
+
118
+ **What it is:** Using blank screens as onboarding surfaces guiding users toward
119
+ their first meaningful action.
120
+
121
+ **When to use:** Value only visible after user-generated content; new accounts
122
+ start blank (project management, CRM); "cold start" anxiety reduction.
123
+
124
+ **Guidance:** Replace every empty state with a clear CTA: "Create your first
125
+ project" not "No projects yet." Include cloneable templates. Show what the
126
+ populated state looks like through previews. Notion and Linear both use this
127
+ effectively with CTAs, templates, and success previews.
128
+
129
+ ### 1.7 Checklist-Driven Onboarding
130
+
131
+ **What it is:** A visible task list guiding users through setup, tracking completion
132
+ and providing progress feedback.
133
+
134
+ **When to use:** Multi-step setup (profile, integrations, team, preferences); users
135
+ benefit from knowing full scope upfront; gamification fits the tone.
136
+
137
+ **When to avoid:** More than 7 items (overwhelm); strict-order steps (use wizard);
138
+ casual products where checklists feel formal.
139
+
140
+ **Guidance:** Show progress persistently. Pre-check auto-completed steps. Allow
141
+ any-order completion. Appcues research shows checklists exploit the Zeigarnik
142
+ effect: incomplete tasks create psychological tension motivating completion.
143
+
144
+ ### 1.8 Pattern Selection Matrix
145
+
146
+ | Pattern | Best For | Complexity | User Effort | Time to Value |
147
+ |---------|----------|------------|-------------|---------------|
148
+ | Welcome Screens | Brand-led products | Low | Passive | Slow |
149
+ | Feature Tours | Feature-rich UIs | Medium | Passive | Medium |
150
+ | Progressive Disclosure | Complex tools | High | Active | Gradual |
151
+ | Contextual Tooltips | Standard UIs with nuances | Low | Active | Fast |
152
+ | Interactive Tutorials | Skill-based products | High | Active | Medium |
153
+ | Empty States | Content-creation tools | Low | Active | Fast |
154
+ | Checklists | Multi-step setup products | Medium | Active | Medium |
155
+
156
+ ---
157
+
158
+ ## 2. Best-in-Class Examples
159
+
160
+ ### 2.1 Duolingo -- Value Before Commitment
161
+
162
+ **Pattern:** Interactive tutorial + deferred signup + personalization
163
+
164
+ Users select a language and complete a real translation exercise before account
165
+ creation. A 7-step personalization flow segments by proficiency, goals, and daily
166
+ time. Progress bars are omnipresent. Gamification is woven into onboarding itself:
167
+ XP for the first exercise, streak counter initialized. Sign-up is framed as "save
168
+ your progress" rather than "create an account."
169
+
170
+ **Key metric:** "First lesson completed" activation event.
171
+
172
+ ### 2.2 Notion -- Role-Based Personalization
173
+
174
+ **Pattern:** Personalization survey + empty state + template suggestions
175
+
176
+ Asks user role (student, designer, engineer, manager) and team size upfront,
177
+ driving template and feature selection. Minimal visual distraction with one input
178
+ per step. Empty states throughout serve as ongoing onboarding surfaces. Progressive
179
+ disclosure: basic blocks first, databases/relations introduced as usage deepens.
180
+
181
+ **Key metric:** "First page created with real content."
182
+
183
+ ### 2.3 Slack -- Collaborative Activation
184
+
185
+ **Pattern:** Workspace setup checklist + interactive tutorial + team invite
186
+
187
+ Onboarding is framed as workspace creation, not personal setup. Slackbot serves
188
+ as an interactive guide through actual messaging. Conversational, emoji-rich
189
+ microcopy reduces anxiety. Team invite positioned early: "Slack works best with
190
+ your team." Invited (Nth) users get a distinct streamlined flow skipping workspace
191
+ setup, focusing on preferences and channel discovery.
192
+
193
+ **Key metric:** "First real message sent to a teammate."
194
+
195
+ ### 2.4 Figma -- Action-First Design
196
+
197
+ **Pattern:** Minimal setup + collaborative prompt + learning by doing
198
+
199
+ Users reach the editor within 3 clicks -- fastest time-to-canvas of any design
200
+ tool. Onboarding happens inside the actual product with contextual hints as tools
201
+ are discovered. Collaboration introduced immediately. Community templates serve as
202
+ both onboarding and inspiration.
203
+
204
+ **Key metric:** "First shape drawn on canvas."
205
+
206
+ ### 2.5 Linear -- Focused Elegance
207
+
208
+ **Pattern:** Single-input-per-step wizard + workspace setup + feature hints
209
+
210
+ Each screen contains exactly one input or decision. Dark, polished UI matches the
211
+ product perfectly -- no jarring transition. Keyboard shortcuts subtly introduced
212
+ alongside mouse interactions. The killer feature (cycles/sprints) is hinted at
213
+ during setup, creating anticipation.
214
+
215
+ **Key metric:** "First issue created in a project."
216
+
217
+ ### 2.6 Headspace -- Emotional Onboarding
218
+
219
+ **Pattern:** Welcome animation + personalization + immediate guided experience
220
+
221
+ A calming breathing exercise begins within seconds, delivering core value before
222
+ any setup. Personalization frames questions as caring ("What brings you to
223
+ Headspace?"). Notification permission tied to benefit. Originally had 38% drop-off;
224
+ reduced by making intro screens easily exitable.
225
+
226
+ **Key metric:** "First meditation completed" (week-two users 5x more likely to convert).
227
+
228
+ ### 2.7 TikTok -- Zero-Friction Content Consumption
229
+
230
+ **Pattern:** Content-first + deferred everything + behavioral learning
231
+
232
+ The most radical approach: no traditional onboarding. Users see full-screen video
233
+ immediately. No profile upload, no required interest selection, no follows needed.
234
+ The algorithm learns preferences through watch behavior. Contextual education
235
+ embedded in consumption: "double-tap to like" appears subtly over playing video.
236
+
237
+ **Key metric:** "First 5 videos watched to completion."
238
+
239
+ ### 2.8 Comparative Analysis
240
+
241
+ | App | Steps to Value | Signup Required? | Personalization | Primary Pattern |
242
+ |-----|---------------|-----------------|-----------------|-----------------|
243
+ | Duolingo | 1 exercise | After value | Deep (7 steps) | Interactive tutorial |
244
+ | Notion | Template clone | Yes, upfront | Role-based | Empty state |
245
+ | Slack | Send message | Yes (workspace) | Team-based | Checklist + bot |
246
+ | Figma | Draw on canvas | Yes, minimal | Light | Action-first |
247
+ | Linear | Create issue | Yes (workspace) | Workspace config | Wizard |
248
+ | Headspace | Breathing exercise | After value | Goal-based | Emotional + guided |
249
+ | TikTok | 0 (immediate) | No | Behavioral | Content-first |
250
+
251
+ ---
252
+
253
+ ## 3. User Flow Mapping
254
+
255
+ ### 3.1 Primary Flow: First Launch to First Value
256
+
257
+ ```
258
+ App Launch --> Splash (0.5-2s) --> Value Proposition (1-3 screens, skippable)
259
+ --> Permission Requests (only what is needed NOW)
260
+ --> Account Creation (defer if possible; social auth, skip/guest)
261
+ --> Personalization (2-5 questions, each visibly changes experience)
262
+ --> FIRST VALUE MOMENT (the goal)
263
+ --> Celebration + Next Steps --> Ongoing Progressive Onboarding
264
+ ```
265
+
266
+ ### 3.2 Permission Request Timing
267
+
268
+ Request permissions with context, at the moment of relevance:
269
+ - **Camera:** when user taps "Take Photo"
270
+ - **Location:** when user opens map or taps "Find nearby"
271
+ - **Notifications:** after value experienced, framed as benefit
272
+ - **Contacts:** when user explicitly initiates "invite friends"
273
+
274
+ **Pre-permission priming pattern:** Show a custom dialog explaining WHY before the
275
+ system dialog. "To send meditation reminders at your preferred time, we need
276
+ notification access." Offer [Allow] and [Not Now]. If denied, explain how to
277
+ enable in Settings. Never re-prompt aggressively.
278
+
279
+ ### 3.3 Skip and Resume Architecture
280
+
281
+ **Skip rules:** Every non-essential step needs a visible skip mechanism.
282
+ - Welcome screens: "Skip" to product
283
+ - Personalization: "Use defaults"
284
+ - Tutorial: "I already know this"
285
+ - Team invite: "I'll do this later" (with reminder)
286
+
287
+ **Resume after abandonment:**
288
+ - Persist state server-side, not just locally
289
+ - On next launch: "Pick up where you left off?" -- never restart from beginning
290
+ - If 7+ days passed, offer fresh start alongside resume
291
+ - Email/push nudges at 24h, 72h, 7d with deep links to abandonment point
292
+
293
+ ### 3.4 Edge Cases
294
+
295
+ **Returning users after long absence:**
296
+ Show "Welcome back -- here's what's new" with 2-3 changelog highlights. Restore
297
+ previous context (last document, last search). Never re-show original onboarding.
298
+
299
+ **Account migration:**
300
+ Pre-migration email explaining changes. Migration wizard mapping old concepts to
301
+ new. Preserve all data/settings. Provide accessible "what changed" reference.
302
+ Allow temporary old-version access during transition.
303
+
304
+ **Team invites (Nth user onboarding):**
305
+ Skip product value props -- teammates already explained. Focus on workspace context.
306
+ Pre-populate team info and show who invited them. Tailored checklist: complete
307
+ profile, join channels/projects, first action. Appcues shows Nth-user flows should
308
+ have 40-60% fewer steps than first-user onboarding.
309
+
310
+ **Re-onboarding for new features:**
311
+ Use in-app modals/banners, not full flow restarts. Target by segment (role, plan,
312
+ usage). Provide "what's new" section on demand. Contextual tooltips on new UI.
313
+ Optional interactive walkthrough. Respect "don't show again" persistently.
314
+
315
+ ---
316
+
317
+ ## 4. Micro-Interactions
318
+
319
+ Micro-interactions transform onboarding from a chore into an experience. Each has
320
+ four components: trigger, rule, feedback, and loop/mode.
321
+
322
+ ### 4.1 Page Transitions
323
+
324
+ - Horizontal slide for linear sequences (mental model of "moving forward")
325
+ - Crossfade for non-sequential transitions (skip, settings)
326
+ - Duration: 250-350ms. Use `cubic-bezier(0.4, 0.0, 0.2, 1)` (Material standard)
327
+ - Shared-element transitions when elements persist across screens (progress bar)
328
+ - Avoid zoom/3D transitions -- they distract from content
329
+
330
+ ### 4.2 Progress Indicators
331
+
332
+ | Type | Use When | Example |
333
+ |------|----------|---------|
334
+ | Step dots | 3-5 discrete screens | Welcome carousel |
335
+ | Progress bar | Linear multi-step flow | Account setup wizard |
336
+ | Checklist | Non-linear tasks | Workspace configuration |
337
+ | Fraction (2/5) | Exact position needed | Survey questions |
338
+ | Ring/circle | Single metric | Profile completeness |
339
+
340
+ Always show progress -- it reduces abandonment. Animate progress fill for momentum.
341
+ Pre-fill for auto-completed steps to create endowed progress effect (starting at
342
+ 2/10 completes more than 0/8 with same work remaining).
343
+
344
+ ### 4.3 Skip Button Design
345
+
346
+ - **Placement:** Top-right corner (close/dismiss convention)
347
+ - **Style:** Text link, muted color -- visible but not competing with primary CTA
348
+ - **Copy:** "Skip" / "I already know this" / "Use defaults" / "Not now" / "Later"
349
+ - **Behavior:** Advance to next meaningful state, not blank screen. Track skip
350
+ rates per screen -- high rate signals low-value step.
351
+
352
+ ### 4.4 Celebration Animations
353
+
354
+ **Celebrate:** First value moment, checklist completion, profile setup, first invite.
355
+
356
+ **Guidelines:**
357
+ - Duration: 1-2 seconds (registers without blocking)
358
+ - Match product visual language: confetti, checkmarks, character animations
359
+ - Pair with encouraging copy: "You're all set!" / "Great start!"
360
+ - Haptic feedback on mobile (UIImpactFeedbackGenerator / HapticFeedbackConstants)
361
+ - Use Lottie/Rive for complex animations; degrade to static for reduced motion
362
+ - Never auto-play sound
363
+ - Iconic examples: Asana's flying unicorn, Mailchimp's high-five
364
+
365
+ ### 4.5 Tooltip Pointing and Highlighting
366
+
367
+ **Spotlight/coach mark pattern:**
368
+ - Dim background to 60-70% opacity overlay
369
+ - Cut out target element so it appears highlighted
370
+ - Pulse animation on target draws attention without aggression
371
+ - Arrow must touch/nearly touch the target; tooltip must not occlude it
372
+ - Click highlighted element: perform normal action AND advance tour
373
+ - Provide next/back/skip-all navigation with step count (2 of 4)
374
+
375
+ ### 4.6 Loading States During Onboarding
376
+
377
+ Use branded skeleton screens with incremental progress messages ("Creating your
378
+ channels... Importing preferences... Almost there..."). Never show blank screen
379
+ or generic spinner during onboarding -- every moment is a branding opportunity.
380
+
381
+ ---
382
+
383
+ ## 5. Anti-Patterns
384
+
385
+ ### 5.1 Mandatory Multi-Screen Carousel
386
+
387
+ 5+ screen carousel with no skip. NNG: "deck-of-cards tutorials make the interface
388
+ appear more complicated than it is and strain user's memory." Users retain nothing.
389
+ **Fix:** 1-2 value screens with skip, or contextual help within the product.
390
+
391
+ ### 5.2 Account Wall Before Value
392
+
393
+ Requiring signup before any product experience. Users have zero investment.
394
+ Appcues: "if your app requires signup before exploration, you'll shed customers."
395
+ **Fix:** Duolingo model -- experience value first, frame signup as "save progress."
396
+
397
+ ### 5.3 Feature-Dump Onboarding
398
+
399
+ Listing every feature during onboarding. Information overload causes cognitive
400
+ shutdown. Feature lists are perceived as marketing, not help.
401
+ **Fix:** Introduce only 1-2 features for the first value moment. Reveal the rest
402
+ progressively.
403
+
404
+ ### 5.4 No Skip Option
405
+
406
+ Forcing every step on all users. Experienced and returning users trapped in flows
407
+ designed for the lowest common denominator.
408
+ **Fix:** Every non-essential screen gets a visible skip mechanism.
409
+
410
+ ### 5.5 Re-Showing Completed Onboarding
411
+
412
+ Same flow on every launch or update. Signals the app does not know the user.
413
+ **Fix:** Persist completion state with versioned flag (onboarding_v3_completed).
414
+
415
+ ### 5.6 Teaching UI Instead of Value
416
+
417
+ "Tap here to open the menu" -- mechanics without purpose. Users forget instructions
418
+ disconnected from goals within seconds.
419
+ **Fix:** Frame as outcomes: "Find projects your team is working on."
420
+
421
+ ### 5.7 Permission Requests Without Context
422
+
423
+ Batch-requesting camera, location, notifications, contacts on first launch with
424
+ no explanation. Feels invasive. Denied permissions are hard to recover on iOS.
425
+ **Fix:** Pre-permission priming with benefit explanation. Request at relevance.
426
+
427
+ ### 5.8 Onboarding That Does Not Match the Product
428
+
429
+ Different colors, typography, illustration style from the actual product. Creates
430
+ jarring transition and subconscious deception.
431
+ **Fix:** Design onboarding as part of the product, same design system. Linear
432
+ exemplifies this -- onboarding is indistinguishable from the product.
433
+
434
+ ### 5.9 Tooltip Overload
435
+
436
+ 8-15 tooltips on a single screen with "1 of 12" counter. Users click Next
437
+ reflexively without reading. NNG: tutorials "don't necessarily improve performance."
438
+ **Fix:** Max 3-5 per tour. Break longer tours across sessions. Replace most
439
+ tooltips with self-evident UI.
440
+
441
+ ### 5.10 Asking Too Many Questions
442
+
443
+ 10+ question survey before any product use. Users do not trust the product enough
444
+ for this investment yet.
445
+ **Fix:** 2-4 high-impact questions max. Derive the rest from behavior (TikTok's
446
+ approach: ask nothing, learn everything from usage).
447
+
448
+ ### 5.11 Dark Patterns in Onboarding
449
+
450
+ Tricking users into notifications, contact sharing, or paid trials. Short-term
451
+ metric gains destroyed by trust damage, negative reviews, regulatory risk.
452
+ **Fix:** Transparent communication. "Start free trial" clearly distinct from
453
+ "Continue."
454
+
455
+ ### 5.12 No Ongoing Onboarding
456
+
457
+ Treating onboarding as a one-time first-session event. Users discover new needs
458
+ as they grow; advanced features need their own onboarding moments.
459
+ **Fix:** Build continuous onboarding: tooltips for new features, progressive
460
+ unlocking, contextual help at usage milestones.
461
+
462
+ ### 5.13 Ignoring the Empty State
463
+
464
+ After onboarding, dropping users on a blank screen with no guidance.
465
+ **Fix:** Every empty state needs a primary CTA, optional templates, and an
466
+ illustration showing what the populated state looks like.
467
+
468
+ ---
469
+
470
+ ## 6. Accessibility
471
+
472
+ Accessible onboarding is not optional. Users with disabilities encounter your
473
+ product for the first time too.
474
+
475
+ ### 6.1 Screen Reader Support for Carousels and Tours
476
+
477
+ **WCAG requirements:** 1.3.1 Info and Relationships (semantic structure); 4.1.2
478
+ Name, Role, Value (accessible names on all interactive elements).
479
+
480
+ **Carousel implementation:**
481
+ ```html
482
+ <div role="region" aria-label="Welcome tour" aria-roledescription="carousel">
483
+ <div role="group" aria-roledescription="slide" aria-label="1 of 3">
484
+ <h2>Welcome to AppName</h2>
485
+ <p>Description of first value proposition</p>
486
+ </div>
487
+ <button aria-label="Previous slide">...</button>
488
+ <button aria-label="Next slide">...</button>
489
+ <div aria-live="polite">Slide 1 of 3</div>
490
+ </div>
491
+ ```
492
+
493
+ **Tour/tooltip requirements:** Move focus to tooltip programmatically. Announce
494
+ via aria-live. Ensure spotlight overlay does not trap focus. Return focus to
495
+ highlighted element after dismissal.
496
+
497
+ ### 6.2 Keyboard Navigation
498
+
499
+ WCAG 2.1.1 (Level A): every interaction operable via keyboard alone.
500
+ - Tab order follows visual order: content, then controls
501
+ - Arrow keys for carousel slides (left/right)
502
+ - Enter/Space for buttons; Escape to dismiss tooltips/modals/overlays
503
+ - Focus moves to step heading on navigation; no focus trapping behind overlays
504
+ - Skip button must be in tab order; progress indicators keyboard-accessible
505
+
506
+ ### 6.3 Reduced Motion Alternatives
507
+
508
+ Respect `prefers-reduced-motion` at OS level:
509
+ ```css
510
+ @media (prefers-reduced-motion: reduce) {
511
+ .onboarding-step { transition: opacity 200ms ease; }
512
+ .confetti, .particle-effect { display: none; }
513
+ .carousel { animation: none; }
514
+ }
515
+ ```
516
+
517
+ **Replace, do not remove:** Animated confetti becomes static checkmark with text.
518
+ Slide transitions become instant switch or fade. Bouncing tooltips become static
519
+ with visible border. Progress bar animation becomes instant fill.
520
+
521
+ ### 6.4 Progress and Timing
522
+
523
+ - Announce progress to screen readers: "Step 2 of 5: Choose your interests"
524
+ - Use `aria-valuenow/min/max` on progress bars
525
+ - Announce completion: "Onboarding complete"
526
+ - WCAG 2.2.1 Timing Adjustable: auto-advancing must be pausable/extendable
527
+ - WCAG 2.2.2 Pause, Stop, Hide: auto-playing carousels need pause controls
528
+ - Prefer user-initiated navigation only; no auto-advance
529
+ - Minimum 3-4 seconds per sentence for reading time
530
+
531
+ ### 6.5 Color, Contrast, and Touch Targets
532
+
533
+ - Progress indicators must not rely solely on color (add labels/patterns)
534
+ - Tooltip text: 4.5:1 contrast ratio (WCAG AA); large text: 3:1
535
+ - All buttons/interactive elements: minimum 44x44 CSS pixels (WCAG 2.5.8)
536
+ - Carousel dots: make tappable at 44x44 or provide separate next/prev buttons
537
+
538
+ ---
539
+
540
+ ## 7. Cross-Platform Adaptation
541
+
542
+ ### 7.1 iOS
543
+
544
+ **Permissions:** One-shot model -- denial requires manual Settings navigation.
545
+ Pre-permission priming screens are essential. Request only what is needed now.
546
+
547
+ **App Tracking Transparency (ATT):** Required since iOS 14.5 for cross-app
548
+ tracking. Must appear before any tracking. Timing strategies:
549
+ - **Early (first launch):** Largest reach, low opt-in (~15-25%)
550
+ - **Mid-funnel (after value):** Higher opt-in (~30-40%)
551
+ - **Best practice:** Show after first value moment with custom pre-permission
552
+ screen. Never use dark patterns -- Apple reviews for this.
553
+
554
+ **Design conventions:** System-standard permission UI. Support Dynamic Type.
555
+ Test on iPhone SE (small screen). Support orientation modes.
556
+
557
+ ### 7.2 Android
558
+
559
+ **Permissions:** Runtime since Android 6.0+. Android 12+ added approximate vs.
560
+ precise location. Android 13+ requires explicit notification permission. "Don't
561
+ ask again" appears after two denials -- cannot re-prompt, must direct to Settings.
562
+
563
+ **Design conventions:** Material Design 3. Edge-to-edge display (Android 15+).
564
+ Predictive back gestures. Test on diverse screen sizes including foldables.
565
+ Ensure animations do not jank on budget hardware. Privacy disclosure for Play Store.
566
+
567
+ ### 7.3 Web
568
+
569
+ **Progressive onboarding:** No "first launch" moment. Users arrive from search,
570
+ social, direct links, email invites. Detect first-time visitors via cookies/
571
+ localStorage. Support deep-linking: contextual onboarding for specific features.
572
+
573
+ **No app store screenshots:** Landing page and in-app flow carry full burden.
574
+ Consider product tour video on landing page.
575
+
576
+ **Browser permissions:** Custom pre-permission screens critical since browser
577
+ prompts are easily dismissed and hard to re-trigger. Camera/mic requested inline.
578
+
579
+ **Responsive:** Same flow must work 320px to 2560px. Mobile: full-screen steps,
580
+ bottom CTAs. Tablet: centered card. Desktop: side panel or modal.
581
+
582
+ **Session persistence:** Persist state server-side for logged-in users, localStorage
583
+ for anonymous. Handle cleared storage and browser switches.
584
+
585
+ ### 7.4 Cross-Platform Consistency
586
+
587
+ - **Consistent value narrative:** Same "why" everywhere
588
+ - **Synced personalization:** Mobile prefs reflected on web
589
+ - **Platform-native interactions:** Swipe on mobile, click on web
590
+ - **Feature parity awareness:** Do not onboard platform-exclusive features elsewhere
591
+ - **Synced state:** Complete mobile onboarding, skip on web (via account sync)
592
+
593
+ ---
594
+
595
+ ## 8. Decision Tree: How Much Onboarding?
596
+
597
+ ### 8.1 Scoring Factors (1-10 each)
598
+
599
+ | Factor | 1 (Low) | 10 (High) |
600
+ |--------|---------|-----------|
601
+ | Product Complexity | Single-purpose utility | Expert system (CAD, DAW) |
602
+ | Audience Tech Gap (inverted) | Pro developers | Tech-averse users |
603
+ | Interaction Novelty | Standard platform patterns | New paradigm (AR, voice) |
604
+ | Setup Requirements | Works immediately | Config + migration + team |
605
+ | Error Consequence | Trivially reversible | Irreversible (medical, legal) |
606
+
607
+ ### 8.2 Strategy by Total Score
608
+
609
+ **5-15 -- Minimal:** Zero/one welcome screen. Self-evident UI. Contextual tooltips
610
+ for non-obvious features only. (Calculator, Weather, Flashlight)
611
+
612
+ **16-25 -- Light:** 1-2 skippable value screens. Brief personalization (1-2 Qs).
613
+ Empty states with CTAs. Optional feature highlights. (News app, Simple to-do, Social)
614
+
615
+ **26-35 -- Standard:** 2-3 value screens or short tour. 3-5 personalization
616
+ questions. Guided first action. Checklist for setup. Contextual tooltips.
617
+ (Slack, Notion, Headspace)
618
+
619
+ **36-45 -- Comprehensive:** Full interactive tutorial with sandbox. Extensive
620
+ config. Video walkthroughs. Progressive disclosure system. In-app help center.
621
+ 14+ day onboarding email sequence. (Figma, Adobe CC, Salesforce)
622
+
623
+ **46-50 -- White-Glove:** All above plus dedicated human specialist. Custom
624
+ implementation and data migration. Training sessions. Phased rollout with
625
+ check-ins. (Enterprise ERP, Medical systems, Industrial software)
626
+
627
+ ### 8.3 Decision Flowchart
628
+
629
+ ```
630
+ Is the core action self-evident?
631
+ |
632
+ YES --> Value reachable in <30 seconds?
633
+ | YES --> MINIMAL (tooltips only)
634
+ | NO --> LIGHT (guided first action)
635
+ |
636
+ NO --> Setup required before use?
637
+ YES --> Team/collaborative product?
638
+ | YES --> STANDARD+ (checklist + team setup)
639
+ | NO --> STANDARD (personalization + tutorial)
640
+ NO --> Novel interaction model?
641
+ YES --> COMPREHENSIVE (interactive tutorial)
642
+ NO --> LIGHT (contextual help)
643
+ ```
644
+
645
+ ### 8.4 Measuring Effectiveness
646
+
647
+ **Primary metrics:**
648
+ - Activation rate (% reaching defined activation event)
649
+ - Time to first value (seconds from launch to value moment)
650
+ - Completion rate (% finishing full onboarding)
651
+ - Per-step drop-off (identifies problem steps)
652
+
653
+ **Secondary metrics:**
654
+ - Day 1 / Day 7 retention
655
+ - Feature adoption rate for onboarded features
656
+ - Support ticket volume (fewer = better onboarding)
657
+ - Skip rate per step (high = low-value step)
658
+
659
+ **Optimization:** A/B test variants. Instrument every step. Interview abandoners
660
+ and early churners. Review session recordings. Iterate continuously --
661
+ onboarding is never "done."
662
+
663
+ ---
664
+
665
+ ## References
666
+
667
+ ### Research and Frameworks
668
+ - NNG. "Onboarding Tutorials vs. Contextual Help." https://www.nngroup.com/articles/onboarding-tutorials/
669
+ - NNG. "Mobile-App Onboarding: Components and Techniques." https://www.nngroup.com/articles/mobile-app-onboarding/
670
+ - NNG. "3 Types of Onboarding New Users." https://www.nngroup.com/videos/onboarding-new-users/
671
+ - UXmatters. "Framework for Choosing Onboarding Experiences." https://www.uxmatters.com/mt/archives/2024/07/a-framework-for-choosing-types-of-onboarding-experiences.php
672
+
673
+ ### Industry Analysis
674
+ - Appcues. "User Onboarding Best Practices." https://www.appcues.com/blog/user-onboarding-best-practices
675
+ - Appcues. "Essential Guide to Mobile Onboarding UI/UX Patterns." https://www.appcues.com/blog/essential-guide-mobile-user-onboarding-ui-ux
676
+ - Appcues. "Onboarding Strategies for Invited Users." https://www.appcues.com/blog/user-onboarding-strategies-invited-users
677
+
678
+ ### Product Teardowns
679
+ - Appcues. "Duolingo's Onboarding Experience." https://goodux.appcues.com/blog/duolingo-user-onboarding
680
+ - Appcues. "TikTok's Activation-Focused Onboarding." https://goodux.appcues.com/blog/tiktok-user-onboarding
681
+ - UserGuiding. "Slack Onboarding Teardown." https://userguiding.com/blog/slack-user-onboarding-teardown
682
+ - Growth.Design. "Headspace Onboarding Case Study." https://growth.design/case-studies/headspace-user-onboarding
683
+ - fmerian. "Linear FTUX." https://fmerian.medium.com/delightful-onboarding-experience-the-linear-ftux-cf56f3bc318c
684
+ - UX Collective. "Duolingo's Onboarding Testing." https://uxdesign.cc/duolingos-onboarding-2-years-on-3cbccad139f7
685
+
686
+ ### Accessibility
687
+ - W3C WAI. "Carousels Tutorial." https://www.w3.org/WAI/tutorials/carousels/
688
+ - Smashing Magazine. "Guide to Accessible Carousels." https://www.smashingmagazine.com/2023/02/guide-building-accessible-carousels/
689
+ - WebAIM. "Animation and Carousels." https://webaim.org/techniques/carousels/
690
+
691
+ ### Anti-Patterns
692
+ - Usetiful. "Common Mobile Onboarding Mistakes." https://blog.usetiful.com/2025/08/how-to-fix-mobile-onboarding-mistakes.html
693
+ - DesignerUp. "200 Onboarding Flows Study." https://designerup.co/blog/i-studied-the-ux-ui-of-over-200-onboarding-flows-heres-everything-i-learned/
694
+
695
+ ### Micro-Interactions
696
+ - UXPin. "Designing Onboarding Microinteractions." https://www.uxpin.com/studio/blog/designing-onboarding-microinteractions-guide/
697
+ - UserGuiding. "15 Onboarding Micro-Interactions." https://userguiding.com/blog/onboarding-microinteractions
698
+
699
+ ### Platform Guidelines
700
+ - Apple. "App Tracking Transparency." https://developer.apple.com/documentation/apptrackingtransparency