@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,1191 @@
1
+ # Cognitive Load in UI/UX Design
2
+
3
+ > **Domain**: UI/UX Design Psychology
4
+ > **Scope**: Working memory limits, decision fatigue, attention constraints, and their
5
+ > direct impact on interface design, measurement, ethics, and platform-specific concerns.
6
+ > **Key Authors**: George Miller, John Sweller, Don Norman, Jakob Nielsen, Nelson Cowan
7
+ > **Last Updated**: 2026-03-07
8
+
9
+ ---
10
+
11
+ ## Table of Contents
12
+
13
+ 1. [The Science](#1-the-science)
14
+ - 1.1 Miller's Law (7 plus-or-minus 2)
15
+ - 1.2 Cowan's Refinement (4 chunks)
16
+ - 1.3 Cognitive Load Theory (Sweller)
17
+ - 1.4 Intrinsic vs Extraneous vs Germane Load
18
+ - 1.5 Working Memory Limits
19
+ - 1.6 Attention, Change Blindness, and Inattentional Blindness
20
+ - 1.7 Hick's Law and Decision Time
21
+ - 1.8 Progressive Disclosure
22
+ 2. [Design Implications](#2-design-implications)
23
+ - 15 specific rules with principles and concrete examples
24
+ 3. [Measurement](#3-measurement)
25
+ - Detecting high cognitive load through quantitative and qualitative signals
26
+ 4. [Dark Patterns Warning](#4-dark-patterns-warning)
27
+ - Where cognitive load exploitation crosses the ethical line
28
+ 5. [Platform-Specific Considerations](#5-platform-specific-considerations)
29
+ - Mobile, desktop, touch, and cross-platform concerns
30
+ 6. [Quick Reference Checklist](#6-quick-reference-checklist)
31
+
32
+ ---
33
+
34
+ ## 1. The Science
35
+
36
+ Cognitive load is the total amount of mental effort being used in working memory at any
37
+ given moment. Every interaction a user has with an interface consumes cognitive resources.
38
+ When those resources are exhausted, users make errors, abandon tasks, or develop negative
39
+ associations with the product. Understanding the science behind cognitive load is not
40
+ optional for designers -- it is foundational.
41
+
42
+ ### 1.1 Miller's Law (7 Plus-or-Minus 2)
43
+
44
+ In 1956, cognitive psychologist George Miller published "The Magical Number Seven,
45
+ Plus or Minus Two: Some Limits on Our Capacity for Processing Information" in
46
+ *Psychological Review*. Miller demonstrated that the span of immediate (short-term)
47
+ memory and the accuracy of absolute judgment are both limited to approximately 7
48
+ discrete items (ranging from 5 to 9 depending on the individual and context).
49
+
50
+ **Core Findings:**
51
+
52
+ - The average person can hold approximately 7 (plus or minus 2) items in short-term
53
+ memory simultaneously.
54
+ - This limit applies to "chunks" of information, not raw data points. A chunk is a
55
+ meaningful unit -- a single digit, a word, a familiar phrase, or a recognizable
56
+ pattern can each constitute one chunk.
57
+ - The process of "chunking" allows humans to increase the effective capacity of
58
+ working memory by grouping individual items into larger, meaningful units.
59
+
60
+ **Common Misapplication:**
61
+
62
+ Miller's Law is frequently misquoted as "navigation menus must have no more than 7
63
+ items." This is an oversimplification. The law describes short-term memory capacity,
64
+ not a hard limit on visible UI elements. Users do not need to memorize a navigation
65
+ menu -- they can see it. The real design implication is about how many items a user
66
+ must *hold in working memory simultaneously* to complete a task, not how many items
67
+ are visible on screen.
68
+
69
+ **Correct Application:**
70
+
71
+ - Phone numbers are chunked as (555) 867-5309 rather than 5558675309.
72
+ - Credit card numbers display as 4 groups of 4 digits.
73
+ - When asking users to compare options, limit the comparison dimensions to
74
+ approximately 5-7 attributes at a time.
75
+
76
+ **Reference:** Miller, G.A. (1956). "The Magical Number Seven, Plus or Minus Two."
77
+ *Psychological Review*, 63(2), 81-97.
78
+
79
+ ### 1.2 Cowan's Refinement (4 Chunks)
80
+
81
+ In 2001, Nelson Cowan challenged Miller's estimate. In "The Magical Mystery Four:
82
+ How Is Working Memory Capacity Limited, and Why?" Cowan argued that pure working
83
+ memory capacity -- without rehearsal strategies or long-term memory assistance --
84
+ is closer to 3-5 items, with 4 being the central tendency.
85
+
86
+ **Design Significance:**
87
+
88
+ Cowan's refinement suggests that Miller's 7 plus-or-minus 2 may be optimistic for
89
+ novel or complex information. When users encounter unfamiliar interfaces, unfamiliar
90
+ terminology, or tasks requiring active processing (not just recognition), designers
91
+ should target the lower bound: **4 items** is a safer ceiling for working memory
92
+ demands on new or infrequent users.
93
+
94
+ **Reference:** Cowan, N. (2001). "The Magical Number 4 in Short-Term Memory: A
95
+ Reconsideration of Mental Storage Capacity." *Behavioral and Brain Sciences*,
96
+ 24(1), 87-114.
97
+
98
+ ### 1.3 Cognitive Load Theory (Sweller)
99
+
100
+ John Sweller developed Cognitive Load Theory (CLT) in the late 1980s, originally
101
+ in the context of instructional design. The theory states that learning and task
102
+ performance are optimized when the total cognitive load does not exceed working
103
+ memory capacity.
104
+
105
+ **Foundational Premise:**
106
+
107
+ Working memory is limited in both capacity and duration. Information in working
108
+ memory that is not actively rehearsed decays within approximately 20 seconds.
109
+ Long-term memory, by contrast, has effectively unlimited capacity and duration.
110
+ The goal of good design is to facilitate the transfer of information from working
111
+ memory to long-term memory (schema construction) while minimizing unnecessary
112
+ mental effort.
113
+
114
+ **The Additive Model:**
115
+
116
+ Total Cognitive Load = Intrinsic Load + Extraneous Load + Germane Load
117
+
118
+ If the sum exceeds working memory capacity, performance degrades. The designer's
119
+ job is to minimize extraneous load and manage intrinsic load so that germane load
120
+ (actual learning and task completion) can be maximized.
121
+
122
+ **Reference:** Sweller, J. (1988). "Cognitive Load During Problem Solving: Effects
123
+ on Learning." *Cognitive Science*, 12(2), 257-285.
124
+
125
+ ### 1.4 Intrinsic vs Extraneous vs Germane Load
126
+
127
+ Understanding the three types of cognitive load is essential for making precise
128
+ design decisions. Each type has different causes and different solutions.
129
+
130
+ #### Intrinsic Cognitive Load
131
+
132
+ The inherent difficulty of the task or information itself. Intrinsic load is
133
+ determined by the complexity of the material and the learner's prior knowledge.
134
+ It cannot be eliminated by design -- only managed.
135
+
136
+ **Characteristics:**
137
+ - Directly proportional to the number of interacting elements the user must
138
+ process simultaneously.
139
+ - A simple calculation (2 + 2) has low intrinsic load. Configuring a complex
140
+ API integration has high intrinsic load.
141
+ - Prior expertise reduces intrinsic load because experts have pre-built mental
142
+ schemas that chunk information automatically.
143
+
144
+ **Design Strategy:** You cannot reduce intrinsic load, but you can *manage* it
145
+ through sequencing, scaffolding, and progressive disclosure. Break complex tasks
146
+ into smaller subtasks. Provide worked examples. Use step-by-step wizards for
147
+ inherently complex operations.
148
+
149
+ #### Extraneous Cognitive Load
150
+
151
+ The unnecessary mental effort imposed by poor design, confusing presentation, or
152
+ irrelevant information. Extraneous load is entirely under the designer's control
153
+ and should be ruthlessly minimized.
154
+
155
+ **Sources of Extraneous Load:**
156
+ - Cluttered layouts with competing visual elements.
157
+ - Inconsistent navigation patterns that force users to re-learn interaction models.
158
+ - Jargon or ambiguous labels that require interpretation.
159
+ - Information spread across multiple locations that must be mentally integrated
160
+ (the "split-attention effect").
161
+ - Decorative elements that add no informational value.
162
+ - Requiring users to recall information from a previous screen instead of
163
+ displaying it in context.
164
+
165
+ **Design Strategy:** Eliminate, simplify, consolidate. Every element on screen
166
+ should earn its place. If removing an element does not reduce task completion
167
+ capability, remove it.
168
+
169
+ #### Germane Cognitive Load
170
+
171
+ The productive mental effort directed toward understanding, learning, and
172
+ constructing mental schemas. Germane load is the "good" cognitive load -- it
173
+ represents the user actually engaging with and mastering the task.
174
+
175
+ **Characteristics:**
176
+ - Germane load increases when extraneous load decreases, because freed working
177
+ memory resources can be directed toward meaningful processing.
178
+ - Effective onboarding, clear mental models, and well-designed feedback loops
179
+ increase germane load.
180
+ - If a user is spending cognitive resources on figuring out the interface
181
+ (extraneous), they have fewer resources for understanding the content (germane).
182
+
183
+ **Design Strategy:** Invest the cognitive budget you save by reducing extraneous
184
+ load into features that genuinely help users understand and accomplish their
185
+ goals -- meaningful feedback, clear status indicators, contextual help.
186
+
187
+ ### 1.5 Working Memory Limits
188
+
189
+ Working memory is not a single system. Baddeley's model (1974, revised 2000)
190
+ identifies multiple components:
191
+
192
+ - **Phonological Loop:** Processes verbal and acoustic information. Capacity:
193
+ approximately 2 seconds of speech. Users subvocalize text they read, so overly
194
+ long labels and instructions consume phonological loop resources.
195
+ - **Visuospatial Sketchpad:** Processes visual and spatial information. Capacity:
196
+ approximately 3-4 objects. Complex visual layouts, dense data visualizations,
197
+ and animations compete for this resource.
198
+ - **Central Executive:** Coordinates attention and manages the other components.
199
+ This is the bottleneck. Multitasking, task-switching, and interruptions
200
+ overload the central executive.
201
+ - **Episodic Buffer:** Integrates information from different sources into
202
+ coherent episodes. Capacity: approximately 4 chunks.
203
+
204
+ **Design Implication:**
205
+
206
+ Different types of interface elements tax different working memory subsystems.
207
+ A form that requires reading instructions (phonological), examining a diagram
208
+ (visuospatial), and remembering earlier inputs (episodic) simultaneously is
209
+ attacking all subsystems at once. Distribute demands across time, not across
210
+ subsystems simultaneously.
211
+
212
+ **Reference:** Baddeley, A.D. (2000). "The Episodic Buffer: A New Component
213
+ of Working Memory?" *Trends in Cognitive Sciences*, 4(11), 417-423.
214
+
215
+ ### 1.6 Attention, Change Blindness, and Inattentional Blindness
216
+
217
+ Human attention is not a passive spotlight -- it is an active, resource-limited
218
+ process that selects what to process and what to ignore.
219
+
220
+ #### Change Blindness
221
+
222
+ Change blindness is the failure to notice significant changes in a visual scene
223
+ when those changes coincide with a visual disruption (such as a page transition,
224
+ a blink, or a screen refresh). This is not a user failure -- it is a fundamental
225
+ property of human visual processing.
226
+
227
+ **UI Manifestations:**
228
+ - A user submits a form and a small error message appears at the top of the
229
+ page, but the user does not scroll up to see it.
230
+ - A status indicator changes color (e.g., from yellow to red) in a dashboard
231
+ while the user is focused on a different widget.
232
+ - Content in a carousel updates, but users do not notice the new content because
233
+ the transition was smooth and their attention was elsewhere.
234
+
235
+ **Design Countermeasures:**
236
+ - Make one change at a time whenever possible.
237
+ - Use animation and motion to draw attention to changes, but avoid competing
238
+ animations that dilute the signal.
239
+ - Position critical feedback (errors, confirmations, status changes) near the
240
+ user's current focal point, not in a distant corner.
241
+ - Use visual emphasis (contrast, size, color) to make changes conspicuous.
242
+
243
+ #### Inattentional Blindness
244
+
245
+ Inattentional blindness occurs when a user fails to perceive a clearly visible
246
+ element because their attention is consumed by another task. The classic
247
+ demonstration is the "invisible gorilla" experiment (Simons & Chabris, 1999),
248
+ where participants counting basketball passes failed to notice a person in a
249
+ gorilla suit walking through the scene.
250
+
251
+ **UI Manifestations:**
252
+ - Users miss prominent banners or announcements when they are focused on
253
+ completing a specific task.
254
+ - New features or UI elements go unnoticed after a redesign because users are
255
+ operating on autopilot.
256
+ - Critical warnings are ignored during complex multi-step workflows.
257
+
258
+ **Design Countermeasures:**
259
+ - Reduce overall cognitive load first -- inattentional blindness is more likely
260
+ under high cognitive load.
261
+ - Use modal interruptions sparingly but deliberately for truly critical
262
+ information.
263
+ - Avoid relying solely on passive indicators (badge counts, color changes)
264
+ for information that requires immediate action.
265
+
266
+ **Reference:** Simons, D.J. & Chabris, C.F. (1999). "Gorillas in Our Midst."
267
+ *Perception*, 28(9), 1059-1074.
268
+
269
+ **Reference (NNG):** Nielsen Norman Group. "Change Blindness in UX: Definition."
270
+ https://www.nngroup.com/articles/change-blindness-definition/
271
+
272
+ ### 1.7 Hick's Law and Decision Time
273
+
274
+ Hick's Law (also Hick-Hyman Law) states that the time required to make a
275
+ decision increases logarithmically with the number of choices available.
276
+
277
+ **Formula:**
278
+
279
+ RT = a + b * log2(n)
280
+
281
+ Where:
282
+ - RT = reaction time
283
+ - a = time not related to decision (motor response, perception)
284
+ - b = empirical constant (approximately 150ms per bit of information)
285
+ - n = number of equally probable choices
286
+
287
+ **Practical Implications:**
288
+
289
+ | Choices | Relative Decision Time |
290
+ |---------|----------------------|
291
+ | 2 | Baseline |
292
+ | 4 | ~1.4x baseline |
293
+ | 8 | ~1.8x baseline |
294
+ | 16 | ~2.2x baseline |
295
+ | 32 | ~2.6x baseline |
296
+ | 64 | ~3.0x baseline |
297
+
298
+ **Important Nuances:**
299
+
300
+ 1. Hick's Law applies to *equally probable* choices. If choices are categorized,
301
+ hierarchically organized, or differ in prominence, the law's effect is
302
+ attenuated. A well-organized menu of 20 items may produce faster decisions
303
+ than a flat list of 8 poorly labeled items.
304
+
305
+ 2. The law applies to *decision time*, not search time. For recognition-based
306
+ tasks (scanning a list of familiar items), the relationship is different.
307
+
308
+ 3. Expertise and familiarity reduce the effective number of choices. Expert
309
+ users mentally filter options and may not experience the full logarithmic
310
+ penalty.
311
+
312
+ **Reference:** Hick, W.E. (1952). "On the Rate of Gain of Information."
313
+ *Quarterly Journal of Experimental Psychology*, 4(1), 11-26.
314
+
315
+ ### 1.8 Progressive Disclosure
316
+
317
+ Progressive disclosure is a design strategy that sequences information and
318
+ actions across multiple stages, revealing complexity only as the user needs it
319
+ or requests it. It is one of the most powerful tools for managing cognitive load.
320
+
321
+ **Principles:**
322
+
323
+ 1. **Show the minimum viable interface first.** Present only the information
324
+ and controls necessary for the current step.
325
+ 2. **Reveal details on demand.** Advanced options, additional information, and
326
+ edge-case controls should be accessible but not visible by default.
327
+ 3. **Maintain a clear path to depth.** Users must be able to discover and access
328
+ hidden functionality without frustration.
329
+
330
+ **Examples:**
331
+
332
+ - **Search filters:** Google shows a simple search box. Advanced search operators
333
+ exist but are not displayed unless the user seeks them out.
334
+ - **Settings panels:** macOS System Settings shows top-level categories first,
335
+ with detailed configuration nested within each.
336
+ - **Form fields:** A shipping form shows basic address fields; "Add apartment
337
+ number" or "Add delivery instructions" appear as expandable links.
338
+ - **Feature onboarding:** Slack introduces features progressively -- users learn
339
+ messaging first, then channels, then integrations.
340
+
341
+ **When NOT to Use Progressive Disclosure:**
342
+
343
+ - When hiding options creates confusion about whether a capability exists.
344
+ - When the extra click or tap to reveal information is more costly than the
345
+ cognitive load of displaying it upfront.
346
+ - When users need to compare options that are hidden behind different
347
+ disclosure layers.
348
+ - In emergency or safety-critical interfaces where all relevant information
349
+ must be immediately visible.
350
+
351
+ ---
352
+
353
+ ## 2. Design Implications
354
+
355
+ The following 15 rules translate cognitive load science into actionable design
356
+ decisions. Each rule includes the underlying principle, a specific actionable
357
+ guideline, and a concrete example.
358
+
359
+ ### Rule 1: Chunk Information Into Digestible Groups
360
+
361
+ **Principle:** Miller's Law -- working memory handles approximately 7 (plus-or-minus 2)
362
+ chunks. Cowan's refinement suggests 4 chunks for novel information.
363
+
364
+ **Rule:** Break long lists, dense text, and complex data into visually distinct groups
365
+ of 3-5 items. Use whitespace, headings, dividers, and visual containers to delineate
366
+ chunk boundaries.
367
+
368
+ **Example:** A credit card form displays the number as four groups of four digits
369
+ (XXXX XXXX XXXX XXXX) rather than a single 16-digit field. An e-commerce product
370
+ listing page groups items into rows of 3-4 with clear spacing between rows. A
371
+ settings page organizes 30+ options under 5-6 category headings (Account, Privacy,
372
+ Notifications, Display, Accessibility, Advanced).
373
+
374
+ ### Rule 2: Limit Primary Choices to 5-7 Options
375
+
376
+ **Principle:** Hick's Law -- decision time increases logarithmically with the
377
+ number of choices. Beyond 7 options, decision fatigue accelerates.
378
+
379
+ **Rule:** For primary navigation, action menus, and option selectors, present
380
+ 5-7 choices maximum at any single level. Use categorization and hierarchy to
381
+ accommodate larger option sets.
382
+
383
+ **Example:** A SaaS application's main navigation shows 6 top-level items
384
+ (Dashboard, Projects, Team, Reports, Integrations, Settings). Each section
385
+ contains sub-navigation revealed on selection. A pricing page shows 3 plans
386
+ (Starter, Professional, Enterprise) rather than 8 granular tiers.
387
+
388
+ ### Rule 3: Use Progressive Disclosure Systematically
389
+
390
+ **Principle:** Working memory is preserved when information is delivered at the
391
+ point of need rather than upfront.
392
+
393
+ **Rule:** Default to showing the simplest view. Provide clear, discoverable
394
+ mechanisms (expandable sections, "Show more" links, tabbed interfaces) for
395
+ users who need additional detail or advanced options.
396
+
397
+ **Example:** A project creation flow shows Name and Description fields initially.
398
+ A "More options" link reveals fields for Start Date, Priority, Tags, and Custom
399
+ Fields. GitHub's pull request form shows Title and Description by default, with
400
+ Reviewers, Assignees, Labels, and Milestone as collapsible sidebar sections.
401
+
402
+ ### Rule 4: Reduce Cognitive Friction in Forms
403
+
404
+ **Principle:** Forms are among the highest cognitive load interactions in digital
405
+ products. Each field represents a decision point. Cognitive friction -- the mental
406
+ resistance encountered when an interface forces the user to stop and think --
407
+ accumulates across fields.
408
+
409
+ **Rule:** Minimize the number of fields. Use smart defaults, auto-completion, and
410
+ input masks. Group related fields visually. Show validation inline and in real time.
411
+ Never ask for information you can infer or already have.
412
+
413
+ **Example:** A checkout form auto-detects the card type from the first digits and
414
+ displays the card logo. The city and state auto-populate from the ZIP code. The
415
+ billing address defaults to "Same as shipping" with a checkbox to override. Phone
416
+ number fields use an input mask: (___) ___-____ so the user knows the expected
417
+ format without reading instructions.
418
+
419
+ ### Rule 5: Favor Recognition Over Recall
420
+
421
+ **Principle:** Don Norman and Jakob Nielsen both emphasize that recognition
422
+ (identifying something as previously encountered) requires far less cognitive
423
+ effort than recall (retrieving information from memory without cues).
424
+
425
+ **Rule:** Make all relevant options, actions, and information visible or easily
426
+ retrievable. Never require users to remember information from one screen to use
427
+ on another. Provide recent items, favorites, and contextual suggestions.
428
+
429
+ **Example:** A search bar shows recent searches and autocomplete suggestions as
430
+ the user types, rather than requiring them to remember and type the exact query.
431
+ A file manager shows recently accessed files prominently. An email client shows
432
+ recipient suggestions based on past correspondence rather than requiring users to
433
+ type full email addresses from memory.
434
+
435
+ **Reference:** Nielsen, J. (1994). "10 Usability Heuristics for User Interface
436
+ Design." Heuristic #6: Recognition Rather Than Recall.
437
+
438
+ ### Rule 6: Provide Intelligent Defaults
439
+
440
+ **Principle:** Every decision point consumes working memory. Defaults eliminate
441
+ decisions for the common case, preserving cognitive resources for the exceptional
442
+ case.
443
+
444
+ **Rule:** Pre-select the most common or recommended option. Base defaults on user
445
+ history, locale, device context, or industry norms. Always allow the user to
446
+ override the default.
447
+
448
+ **Example:** A scheduling tool defaults to the user's timezone and a 30-minute
449
+ meeting duration. A text editor defaults to the user's last-used font and size.
450
+ A deployment configuration defaults to the staging environment during business
451
+ hours and requires explicit selection for production. A date picker defaults to
452
+ today's date when creating a new task.
453
+
454
+ ### Rule 7: Minimize Required Decisions Per Screen
455
+
456
+ **Principle:** Decision fatigue is cumulative. Each decision made reduces the
457
+ quality of subsequent decisions (Baumeister et al., 1998). Interfaces that
458
+ require many decisions in sequence produce worse outcomes.
459
+
460
+ **Rule:** Limit each screen to one primary decision or action. Secondary actions
461
+ should be visually subordinate. Eliminate unnecessary decision points through
462
+ automation and smart defaults.
463
+
464
+ **Example:** A wizard-style checkout process presents one decision per step:
465
+ Step 1 (Shipping Address), Step 2 (Shipping Method), Step 3 (Payment),
466
+ Step 4 (Review and Confirm). Each step has one primary action button. An
467
+ onboarding flow asks one preference per screen rather than presenting a
468
+ 20-field preferences form.
469
+
470
+ ### Rule 8: Use Familiar Design Patterns
471
+
472
+ **Principle:** Existing mental schemas (knowledge structures stored in long-term
473
+ memory) reduce intrinsic cognitive load. When users encounter familiar patterns,
474
+ they can operate on autopilot, freeing working memory for the actual task.
475
+
476
+ **Rule:** Follow platform conventions. Use standard interaction patterns (hamburger
477
+ menu on mobile, tabs for parallel content, modals for focused tasks). Deviate only
478
+ when the deviation provides a measurable, significant improvement that justifies the
479
+ learning cost.
480
+
481
+ **Example:** An e-commerce site places the shopping cart icon in the upper right,
482
+ the logo linking to the homepage in the upper left, and the search bar centered at
483
+ the top. A mobile app uses bottom tab navigation with standard icons (Home, Search,
484
+ Add, Notifications, Profile) matching the conventions of the platform's ecosystem.
485
+ The login form follows the standard email-then-password vertical layout with a
486
+ "Forgot Password?" link below the password field.
487
+
488
+ ### Rule 9: Limit Simultaneous Tasks and Distractions
489
+
490
+ **Principle:** The central executive component of working memory cannot truly
491
+ multitask. What appears to be multitasking is actually rapid task-switching, which
492
+ incurs a cognitive switching cost of 200-400ms per switch and increases error rates
493
+ by 50% or more (Monsell, 2003).
494
+
495
+ **Rule:** Design interfaces that support single-task focus. Suppress non-critical
496
+ notifications during focused tasks. Avoid auto-playing media, chat pop-ups, and
497
+ promotional overlays during task completion flows.
498
+
499
+ **Example:** During a multi-step form submission (e.g., insurance application),
500
+ the interface hides the main navigation, promotional banners, and chat widget.
501
+ Only the form, progress indicator, and contextual help are visible. A code editor
502
+ provides a "Zen mode" that removes all chrome except the editing surface. A
503
+ reading app suppresses notifications and hides UI controls after a few seconds.
504
+
505
+ ### Rule 10: Use Visual Hierarchy to Direct Attention
506
+
507
+ **Principle:** The visuospatial sketchpad processes visual information in parallel
508
+ but prioritizes high-contrast, large, and positioned-at-focal-point elements. A
509
+ clear visual hierarchy reduces the cognitive effort required to parse a layout.
510
+
511
+ **Rule:** Establish a clear hierarchy: one primary heading, one primary action,
512
+ and a clear visual flow from most important to least important. Use size, color,
513
+ contrast, spacing, and position to encode importance.
514
+
515
+ **Example:** A dashboard places the single most critical metric (e.g., total
516
+ revenue) in a large, bold font at the top left. Supporting metrics appear in
517
+ medium-sized cards below. Detailed data tables and charts occupy the lower
518
+ portion. The primary action button ("Create Report") uses the brand's primary
519
+ color; secondary actions use outlined or muted styles.
520
+
521
+ ### Rule 11: Provide Clear, Immediate Feedback
522
+
523
+ **Principle:** Uncertainty consumes cognitive resources. When users are unsure
524
+ whether an action succeeded, they must hold the action and its expected outcome
525
+ in working memory while seeking confirmation. This is pure extraneous load.
526
+
527
+ **Rule:** Every user action should produce visible, immediate, and unambiguous
528
+ feedback. Loading states, success confirmations, error messages, and progress
529
+ indicators should appear within 100ms of the triggering action and near the
530
+ action's location.
531
+
532
+ **Example:** A "Save" button changes to "Saving..." with a spinner on click,
533
+ then shows a green checkmark with "Saved" for 2 seconds before reverting. A
534
+ form field shows a red border and inline error message ("Password must be at
535
+ least 8 characters") as soon as the user moves to the next field. A file
536
+ upload shows a progress bar with percentage and estimated time remaining.
537
+
538
+ ### Rule 12: Write Clear, Concise Microcopy
539
+
540
+ **Principle:** The phonological loop processes text by subvocalizing it. Longer
541
+ text takes more time to subvocalize, consuming more working memory resources.
542
+ Ambiguous text requires additional processing to resolve meaning.
543
+
544
+ **Rule:** Use the fewest words that convey the full meaning. Prefer active voice.
545
+ Use the user's vocabulary, not internal jargon. Label buttons with verbs that
546
+ describe the outcome ("Delete Project" not "Submit").
547
+
548
+ **Example:** Instead of "Are you sure you want to proceed with the deletion of
549
+ this item? This action cannot be undone and all associated data will be
550
+ permanently removed from the system," write "Delete this project? This cannot
551
+ be undone." Instead of "Submit" on a form button, write "Create Account" or
552
+ "Place Order" -- the specific outcome.
553
+
554
+ ### Rule 13: Maintain Consistent Mental Models
555
+
556
+ **Principle:** A mental model is the user's internal representation of how a
557
+ system works. Inconsistencies between the mental model and the actual system
558
+ behavior generate extraneous cognitive load as users must reconcile the
559
+ discrepancy.
560
+
561
+ **Rule:** Use consistent terminology, consistent visual patterns, and consistent
562
+ interaction behaviors throughout the product. If "Archive" means "hide but keep"
563
+ in one context, it must mean the same in every context. If swiping left deletes
564
+ in one list, it must not mean "edit" in another.
565
+
566
+ **Example:** A project management tool consistently uses blue for informational
567
+ elements, yellow for warnings, and red for errors/destructive actions across
568
+ all screens. The term "Workspace" always refers to the top-level organizational
569
+ unit, never sometimes meaning a personal space and sometimes meaning a team
570
+ space. The three-dot overflow menu always contains the same categories of actions
571
+ (Edit, Share, Archive, Delete) in the same order across all entity types.
572
+
573
+ ### Rule 14: Use Spatial Memory and Consistent Layout
574
+
575
+ **Principle:** Users build spatial maps of interfaces. Moving elements between
576
+ sessions or between similar screens forces users to re-learn the spatial layout,
577
+ consuming working memory resources that could be directed toward the task.
578
+
579
+ **Rule:** Keep primary navigation, key actions, and frequently used controls in
580
+ fixed positions. Never move elements based on personalization algorithms without
581
+ explicit user consent. Maintain consistent grid systems and layout patterns
582
+ across similar page types.
583
+
584
+ **Example:** A mobile banking app keeps the bottom navigation bar (Accounts,
585
+ Transfers, Payments, More) in a fixed position across all screens. The "Compose"
586
+ button in an email client is always in the same corner regardless of which
587
+ folder the user is viewing. A data table keeps the action buttons (Edit, Delete)
588
+ in the same column position for every row.
589
+
590
+ ### Rule 15: Offload Cognitive Work to the Interface
591
+
592
+ **Principle:** Any calculation, comparison, or integration that the interface can
593
+ perform for the user is cognitive load removed from the user's working memory.
594
+ Don Norman calls this distributing knowledge between "the head" and "the world."
595
+
596
+ **Rule:** Calculate totals, show comparisons, highlight changes, summarize
597
+ complex data, and surface relevant information proactively. Do not require users
598
+ to perform mental arithmetic, cross-reference between pages, or synthesize
599
+ information that the system already possesses.
600
+
601
+ **Example:** A shopping cart shows the running total, applied discounts, tax, and
602
+ final price -- the user never needs to add numbers. A version control interface
603
+ highlights the specific lines that changed between two versions side-by-side,
604
+ rather than showing two full files and expecting the user to spot differences.
605
+ A flight booking site shows which flights are "Best value" or "Fastest" rather
606
+ than requiring users to mentally sort by both price and duration.
607
+
608
+ ---
609
+
610
+ ## 3. Measurement
611
+
612
+ Cognitive load is invisible. You cannot directly observe it. But you can detect
613
+ its effects through a combination of behavioral metrics, self-reported measures,
614
+ and heuristic evaluation.
615
+
616
+ ### 3.1 Behavioral Metrics (Quantitative)
617
+
618
+ #### Task Completion Time
619
+
620
+ **What it measures:** The time from task initiation to successful completion.
621
+ Higher-than-expected task completion times suggest cognitive friction or excessive
622
+ load.
623
+
624
+ **How to use it:**
625
+ - Establish baseline times for core tasks with representative users.
626
+ - Compare times across design variations (A/B testing).
627
+ - Look for specific steps where time increases disproportionately -- these are
628
+ cognitive bottlenecks.
629
+
630
+ **Benchmarks:**
631
+ - Simple actions (clicking a clearly labeled button): < 2 seconds.
632
+ - Form completion (5-7 fields with clear labels): 1-2 minutes.
633
+ - Complex configuration tasks: establish your own baselines, then track
634
+ improvement over iterations.
635
+
636
+ #### Task Completion Rate (Success Rate)
637
+
638
+ **What it measures:** The percentage of users who successfully complete a task
639
+ without assistance.
640
+
641
+ **Interpretation:**
642
+ - Below 70%: severe usability problems likely related to cognitive load.
643
+ - 70-85%: moderate issues; investigate specific failure points.
644
+ - Above 85%: acceptable for most consumer products.
645
+ - Above 95%: target for critical workflows (checkout, signup).
646
+
647
+ #### Error Rate
648
+
649
+ **What it measures:** The frequency and types of errors users make during task
650
+ completion.
651
+
652
+ **Cognitive Load Signals:**
653
+ - High error rates on fields that seem straightforward suggest confusing labels
654
+ or unclear expectations (extraneous load).
655
+ - Errors that increase later in a multi-step flow suggest fatigue and working
656
+ memory depletion.
657
+ - Repeated identical errors across users suggest a systematic design problem,
658
+ not individual user failure.
659
+
660
+ **Types to Track:**
661
+ - **Slips:** Users know the correct action but execute it incorrectly (clicking
662
+ the wrong button, typos). Often caused by poor layout and inadequate spacing.
663
+ - **Mistakes:** Users form an incorrect mental model and take intentionally
664
+ wrong actions. Often caused by unclear labeling, inconsistent patterns, or
665
+ missing feedback.
666
+
667
+ #### Abandonment Rate and Drop-off Points
668
+
669
+ **What it measures:** Where users quit mid-task.
670
+
671
+ **Cognitive Load Signals:**
672
+ - Sharp drop-off at a specific step suggests that step has disproportionately
673
+ high cognitive load.
674
+ - Gradual attrition across steps suggests cumulative cognitive fatigue.
675
+ - Drop-off after encountering a specific element (e.g., a terms-of-service
676
+ wall, a complex configuration panel) identifies the specific load source.
677
+
678
+ ### 3.2 Self-Reported Measures
679
+
680
+ #### System Usability Scale (SUS)
681
+
682
+ A 10-item questionnaire administered after task completion. Produces a score
683
+ from 0-100.
684
+
685
+ **Cognitive Load Relevance:**
686
+ - SUS scores below 50 strongly correlate with high perceived cognitive load.
687
+ - SUS scores above 68 are considered above average.
688
+ - SUS scores above 80 indicate a system that is genuinely easy to use.
689
+ - Several SUS items directly address cognitive load: "I found the system
690
+ unnecessarily complex," "I needed to learn a lot of things before I could
691
+ get going with this system."
692
+
693
+ **Reference:** Brooke, J. (1996). "SUS: A Quick and Dirty Usability Scale."
694
+ *Usability Evaluation in Industry*, 189(194), 4-7.
695
+
696
+ #### NASA Task Load Index (NASA-TLX)
697
+
698
+ A multidimensional assessment tool measuring perceived workload across six
699
+ dimensions: Mental Demand, Physical Demand, Temporal Demand, Performance,
700
+ Effort, and Frustration.
701
+
702
+ **How to use it:**
703
+ - Administer immediately after task completion.
704
+ - The Mental Demand and Effort subscales are most relevant to cognitive load.
705
+ - Compare scores across design iterations to measure improvement.
706
+ - A weighted composite score above 60 (out of 100) indicates high cognitive
707
+ load that warrants design intervention.
708
+
709
+ **Reference:** Hart, S.G. & Staveland, L.E. (1988). "Development of NASA-TLX."
710
+ *Advances in Psychology*, 52, 139-183.
711
+
712
+ #### Single Ease Question (SEQ)
713
+
714
+ A single 7-point Likert scale question asked after each task: "Overall, how
715
+ easy or difficult was this task?"
716
+
717
+ **Advantages:**
718
+ - Minimal respondent burden (can be used after every task in a session).
719
+ - Scores below 4.5 (on the 7-point scale) indicate a task perceived as
720
+ difficult.
721
+ - Useful for pinpointing which specific tasks have the highest cognitive load.
722
+
723
+ **Reference:** Sauro, J. & Dumas, J.S. (2009). "Comparison of Three One-Question,
724
+ Post-Task Usability Questionnaires." *CHI 2009*, 1599-1608.
725
+
726
+ #### Subjective Mental Effort Questionnaire (SMEQ)
727
+
728
+ A single-item visual analog scale (0-150) measuring perceived mental effort.
729
+
730
+ **When to use:**
731
+ - For complex workflows where you need to measure the cognitive demand of
732
+ specific subtasks, not just overall usability.
733
+ - Particularly useful for comparing the cognitive cost of different approaches
734
+ to the same task.
735
+
736
+ ### 3.3 Observational and Heuristic Methods
737
+
738
+ #### User Confusion Signals
739
+
740
+ During usability testing, watch for behavioral indicators of high cognitive load:
741
+
742
+ - **Pausing and staring:** Users stop interacting and look at the screen for
743
+ more than 3-5 seconds without acting.
744
+ - **Re-reading:** Users read the same text or label multiple times.
745
+ - **Hovering without clicking:** Mouse movement without commitment suggests
746
+ uncertainty.
747
+ - **Backtracking:** Users return to previous steps or undo actions.
748
+ - **Verbalizing confusion:** In think-aloud protocols, phrases like "I'm not
749
+ sure what this means," "Where do I...," or "Wait, what?" are direct
750
+ cognitive load indicators.
751
+ - **Seeking external help:** Users look away from the screen, consult
752
+ documentation, or ask the facilitator for clarification.
753
+ - **Sighing, leaning back, or rubbing eyes:** Physical manifestations of
754
+ cognitive fatigue.
755
+
756
+ #### Heuristic Evaluation for Cognitive Load
757
+
758
+ A structured expert review focused specifically on cognitive load. Evaluate
759
+ each screen against these questions:
760
+
761
+ 1. **Chunking:** Is information grouped into logical, visually distinct chunks
762
+ of 3-5 items?
763
+ 2. **Choice Count:** Are there more than 7 options competing for attention at
764
+ any decision point?
765
+ 3. **Recall Demands:** Does the user need to remember information from a
766
+ previous screen?
767
+ 4. **Consistency:** Are interaction patterns, terminology, and visual styles
768
+ consistent across the application?
769
+ 5. **Feedback:** Does every action produce clear, immediate feedback?
770
+ 6. **Defaults:** Are sensible defaults provided for all optional inputs?
771
+ 7. **Progressive Disclosure:** Are advanced or infrequent options hidden behind
772
+ progressive disclosure?
773
+ 8. **Visual Hierarchy:** Is there a clear visual hierarchy with one dominant
774
+ focal point per screen?
775
+ 9. **Microcopy:** Are labels, instructions, and error messages concise and
776
+ unambiguous?
777
+ 10. **Extraneous Elements:** Are there decorative, promotional, or informational
778
+ elements that do not serve the current task?
779
+
780
+ Score each criterion on a 1-5 scale. Aggregate scores below 3.0 on any criterion
781
+ indicate areas requiring immediate attention.
782
+
783
+ ### 3.4 Physiological Measures (Advanced)
784
+
785
+ For teams with access to research lab equipment:
786
+
787
+ - **Eye tracking:** Fixation duration, saccade patterns, and pupil dilation
788
+ correlate with cognitive load. Longer fixations and increased pupil dilation
789
+ indicate higher load.
790
+ - **Electrodermal activity (EDA):** Skin conductance increases with cognitive
791
+ and emotional arousal.
792
+ - **Heart rate variability (HRV):** Decreased HRV correlates with increased
793
+ cognitive demand.
794
+ - **EEG:** Frontal theta band power increases with working memory load.
795
+
796
+ These methods are typically used in academic research or high-stakes product
797
+ development (medical devices, aviation interfaces), not in routine product design.
798
+
799
+ ---
800
+
801
+ ## 4. Dark Patterns Warning
802
+
803
+ Cognitive load science is a tool. Like any tool, it can be wielded ethically
804
+ (reducing load to help users) or unethically (manipulating load to exploit
805
+ users). Dark patterns deliberately increase or strategically deploy cognitive
806
+ load to trick users into decisions that benefit the business at the user's
807
+ expense.
808
+
809
+ ### 4.1 Choice Overload as Manipulation
810
+
811
+ **Pattern:** Presenting an overwhelming number of privacy settings, cancellation
812
+ reasons, or opt-out options to make the user give up and accept the default
813
+ (which benefits the company).
814
+
815
+ **How it works:** The company technically provides user control but makes
816
+ exercising that control so cognitively expensive that most users abandon the
817
+ attempt. This exploits decision fatigue and the "law of less work" -- users
818
+ gravitate toward the path of least cognitive effort.
819
+
820
+ **Example:** A cookie consent dialog presents 347 individual vendor toggles
821
+ instead of a single "Reject All" button. A subscription service requires
822
+ navigating 6 screens, answering 4 retention surveys, and confirming via email
823
+ to cancel.
824
+
825
+ **The ethical line:** Providing granular control is good. Making the default
826
+ path (accepting all cookies, keeping the subscription) require zero effort
827
+ while making the alternative path require extreme effort is manipulation.
828
+ The ethical approach is to make both paths equally easy: "Accept All" and
829
+ "Reject All" should be equally prominent.
830
+
831
+ ### 4.2 Hidden Unsubscribe and Buried Options
832
+
833
+ **Pattern:** Making the unsubscribe, cancel, or delete option extremely
834
+ difficult to find by burying it deep in navigation hierarchies, using low-
835
+ contrast text, or labeling it ambiguously.
836
+
837
+ **How it works:** This exploits the limited capacity of the central executive.
838
+ When users must search through multiple screens and menus to find a specific
839
+ action, the cognitive cost of the search may exceed their motivation, leading
840
+ them to abandon the attempt.
841
+
842
+ **Example:** An email unsubscribe link in 8px gray text at the bottom of a
843
+ marketing email, phrased as "Manage communication preferences" rather than
844
+ "Unsubscribe." A social media account deletion option buried under Settings >
845
+ Account > Security > Advanced > Data Management > Deactivation > "Actually,
846
+ I want to delete" > Confirm > Wait 30 days.
847
+
848
+ **The ethical line:** It is reasonable to confirm destructive actions. It is
849
+ not reasonable to add artificial steps whose sole purpose is to create
850
+ cognitive friction that discourages the action.
851
+
852
+ ### 4.3 Confusing Cancellation Flows (Confirmshaming)
853
+
854
+ **Pattern:** Using emotionally manipulative or cognitively confusing language
855
+ in opt-out and cancellation dialogs.
856
+
857
+ **How it works:** The dialog presents the "stay" option in positive, clear
858
+ language and the "leave" option in negative, confusing, or guilt-inducing
859
+ language. This creates asymmetric cognitive load: the easy-to-understand
860
+ option benefits the company; the hard-to-parse option is the one the user
861
+ actually wants.
862
+
863
+ **Examples:**
864
+ - "Yes, I want to save money!" vs. "No, I don't like saving money."
865
+ - "Keep my premium features" vs. "Downgrade to limited access and lose
866
+ all my data preferences."
867
+ - Double negatives: "Uncheck this box if you do not wish to not receive
868
+ marketing communications."
869
+
870
+ **The ethical line:** The options presented should be cognitively symmetric.
871
+ Both the "yes" and "no" options should be equally clear, equally readable,
872
+ and equally easy to understand. The user should never have to re-read an
873
+ option to parse its meaning.
874
+
875
+ ### 4.4 Manipulative Option Framing
876
+
877
+ **Pattern:** Structuring pricing pages, plan comparisons, or option selectors
878
+ to steer users toward the most profitable choice through cognitive
879
+ manipulation rather than genuine value comparison.
880
+
881
+ **How it works:** The decoy effect (adding an inferior option to make a
882
+ target option look better), asymmetric feature comparison tables (where the
883
+ preferred plan column is wider, highlighted, and labeled "Most Popular"),
884
+ and anchoring (showing an inflated "original price" to make the actual price
885
+ seem like a deal).
886
+
887
+ **Example:** A pricing page shows three plans. The middle plan is
888
+ highlighted, labeled "Most Popular," has a slightly larger card, and is
889
+ the only one with a "Recommended" badge. The cheapest plan deliberately
890
+ omits a key feature that most users need, making the middle plan feel like
891
+ the only reasonable choice. The most expensive plan exists solely as a
892
+ price anchor.
893
+
894
+ **The ethical line:** Recommending a plan is fine. Structuring the comparison
895
+ to make a genuinely informed choice difficult is not. The ethical approach:
896
+ all plans should be presented with equal visual weight, clear feature
897
+ descriptions, and an honest recommendation based on the user's stated needs.
898
+
899
+ ### 4.5 The Broader Ethical Framework
900
+
901
+ When evaluating whether a design decision crosses the ethical line, apply
902
+ this test:
903
+
904
+ 1. **Symmetry Test:** Is the cognitive effort required to choose Option A
905
+ equal to the effort required to choose Option B? If not, which option
906
+ benefits the company, and is the asymmetry justified by legitimate
907
+ user needs?
908
+
909
+ 2. **Informed Consent Test:** Can the user make a fully informed decision
910
+ with the information presented? Or does the design deliberately withhold,
911
+ obscure, or overwhelm with information to prevent informed decision-making?
912
+
913
+ 3. **Reversibility Test:** If the user later realizes they made the wrong
914
+ choice, how easy is it to reverse? Ethical designs make reversal no
915
+ harder than the original choice.
916
+
917
+ 4. **Grandmother Test:** Would you be comfortable if your grandmother
918
+ encountered this interface? Would she understand what she was agreeing to?
919
+
920
+ **Reference:** Brignull, H. (2010). Dark Patterns -- Deceptive Design.
921
+ https://www.deceptive.design/
922
+
923
+ ---
924
+
925
+ ## 5. Platform-Specific Considerations
926
+
927
+ Cognitive load is not a constant. It varies based on the device, context,
928
+ environment, and mode of interaction. The same task can impose radically
929
+ different cognitive demands depending on whether the user is at a desktop
930
+ with a full keyboard, on a phone while walking, or on a tablet in a meeting.
931
+
932
+ ### 5.1 Mobile: Constrained Attention, Constrained Screen
933
+
934
+ **Environmental Context:**
935
+ - Mobile users are frequently in divided-attention contexts: walking, in
936
+ transit, in conversations, in noisy environments.
937
+ - Sessions are shorter and more frequently interrupted.
938
+ - The available screen area is approximately 15-20% of a desktop display.
939
+ - The input mechanism (thumb on touchscreen) is less precise than a mouse
940
+ and keyboard.
941
+
942
+ **Cognitive Load Implications:**
943
+ - Every element competes for a much smaller share of visual attention.
944
+ - Working memory is further constrained by environmental distractions.
945
+ - Complex interactions that are tolerable on desktop become overwhelming on
946
+ mobile.
947
+
948
+ **Design Rules for Mobile:**
949
+ 1. **Single-column layouts.** Do not force horizontal scanning or horizontal
950
+ scrolling.
951
+ 2. **One primary action per screen.** The primary CTA should be immediately
952
+ obvious and reachable by thumb.
953
+ 3. **Larger touch targets.** Minimum 44x44pt (Apple) or 48x48dp (Material
954
+ Design). Undersized targets increase cognitive load because users must
955
+ aim more carefully.
956
+ 4. **Bottom-of-screen navigation and actions.** The thumb's natural arc
957
+ favors the bottom half of the screen. Placing key actions at the top
958
+ forces an awkward reach that adds physical and cognitive friction.
959
+ 5. **Aggressive progressive disclosure.** Show less, link more. Content
960
+ that appears in full on desktop should be summarized with "Read more"
961
+ on mobile.
962
+ 6. **Minimize typing.** Use pickers, toggles, and selection controls instead
963
+ of free-text input whenever possible. When text input is necessary, use
964
+ appropriate keyboard types (numeric, email, URL).
965
+ 7. **Forgiving interactions.** Provide undo capabilities rather than
966
+ confirmation dialogs. A confirmation dialog on mobile adds a tap, a
967
+ reading task, and a decision -- significant cognitive load for a small
968
+ screen interaction.
969
+
970
+ **Research Finding:** Studies comparing online cognitive load on mobile versus
971
+ PC-based devices found that information-seeking tasks on mobile phones require
972
+ significantly higher cognitive load compared to desktop conditions. Design must
973
+ compensate for this inherent disadvantage.
974
+
975
+ ### 5.2 Desktop: More Space, More Complexity Risk
976
+
977
+ **Environmental Context:**
978
+ - Desktop users typically have sustained attention and a controlled
979
+ environment.
980
+ - The larger screen area allows for richer layouts, but also tempts designers
981
+ to fill the space with more content, controls, and information -- which
982
+ can paradoxically increase cognitive load.
983
+ - Mouse and keyboard input is precise, enabling dense interactions that would
984
+ be impractical on touch devices.
985
+
986
+ **Cognitive Load Implications:**
987
+ - The risk on desktop is not insufficient space but **information overload**.
988
+ More screen space often leads to more elements, more options, and more
989
+ visual noise.
990
+ - Users expect more powerful features and denser information on desktop,
991
+ which is appropriate -- but only if the visual hierarchy is strong enough
992
+ to guide attention.
993
+
994
+ **Design Rules for Desktop:**
995
+ 1. **Use the extra space for hierarchy, not density.** Whitespace is not
996
+ wasted space -- it is a cognitive load reduction tool.
997
+ 2. **Support power-user efficiency without overwhelming novices.** Keyboard
998
+ shortcuts, command palettes, and contextual menus add zero cognitive load
999
+ for users who do not use them, while dramatically reducing load for
1000
+ experts.
1001
+ 3. **Use multi-panel layouts judiciously.** A three-panel email layout
1002
+ (folders | message list | message content) distributes information
1003
+ spatially, reducing the need to navigate between views. But more than
1004
+ 3 simultaneous panels creates visual overload.
1005
+ 4. **Support customization.** Let users hide panels, columns, and widgets
1006
+ they do not use. An uncustomized dashboard with 12 widgets is
1007
+ overwhelming; a dashboard where the user has selected 4 relevant widgets
1008
+ is focused.
1009
+ 5. **Leverage hover states.** Desktop interfaces can use hover to reveal
1010
+ additional information and actions without committing screen space.
1011
+ This is a form of progressive disclosure that is unavailable on touch
1012
+ devices.
1013
+
1014
+ ### 5.3 Touch: Simpler Interactions Required
1015
+
1016
+ **Core Constraint:**
1017
+ Touch interactions lack the precision, hover states, and right-click context
1018
+ menus available on mouse-based interfaces. This means:
1019
+
1020
+ - **No hover previews.** Information that appears on hover must be revealed
1021
+ through tap or long-press on touch devices, adding an interaction step.
1022
+ - **No right-click context menus.** Long-press menus are less discoverable
1023
+ and less familiar to many users.
1024
+ - **Fat finger problem.** Touch targets that are too small or too close
1025
+ together cause misses, which force error recovery (an additional cognitive
1026
+ load).
1027
+
1028
+ **Design Rules for Touch:**
1029
+ 1. **Simplify gesture vocabulary.** Stick to tap, swipe, and pinch-to-zoom.
1030
+ Multi-finger gestures, 3D touch, and edge swipes are not discoverable
1031
+ and increase the learning burden.
1032
+ 2. **Make actions explicit.** Since hover tooltips are unavailable, labels,
1033
+ icons with text, and visible action buttons are necessary to communicate
1034
+ functionality.
1035
+ 3. **Provide generous spacing.** Adjacent touch targets should have at
1036
+ least 8pt of padding between them to prevent accidental taps.
1037
+ 4. **Support direct manipulation.** Touch users expect to interact with
1038
+ content directly -- dragging to reorder, pinching to zoom, swiping to
1039
+ dismiss. These direct manipulation patterns reduce cognitive load because
1040
+ the action maps intuitively to the physical gesture.
1041
+ 5. **Design for thumb zones.** On phones, the comfortable thumb zone covers
1042
+ approximately the bottom two-thirds of the screen. Critical actions and
1043
+ navigation should fall within this zone.
1044
+
1045
+ ### 5.4 Cross-Platform Consistency
1046
+
1047
+ When designing for multiple platforms, balance platform-specific conventions
1048
+ with product consistency:
1049
+
1050
+ - **Keep the mental model consistent.** The conceptual structure of the
1051
+ product (how entities relate, what actions are available, what terminology
1052
+ is used) should be identical across platforms.
1053
+ - **Adapt the interaction model.** How users access those actions may differ:
1054
+ hover on desktop, long-press on mobile, right-click on desktop, swipe on
1055
+ mobile.
1056
+ - **Maintain visual identity while respecting platform norms.** Use your
1057
+ brand's colors, typography, and visual language, but follow platform-
1058
+ specific patterns for navigation (tabs at bottom on iOS, top on Android),
1059
+ alerts, and system controls.
1060
+ - **Feature parity is not the goal.** Not every desktop feature needs to
1061
+ exist on mobile. Identify the core mobile use cases and optimize for those.
1062
+ A mobile-only user should never feel like they are using a degraded product,
1063
+ but they may access a focused subset of functionality.
1064
+
1065
+ ---
1066
+
1067
+ ## 6. Quick Reference Checklist
1068
+
1069
+ Use this checklist during design reviews and heuristic evaluations. Score
1070
+ each item as Pass (the design meets this criterion), Partial (room for
1071
+ improvement), or Fail (immediate attention needed).
1072
+
1073
+ ### Information Architecture
1074
+
1075
+ - [ ] Information is chunked into groups of 3-5 items
1076
+ - [ ] Primary navigation has 7 or fewer top-level items
1077
+ - [ ] Progressive disclosure is used for advanced or infrequent options
1078
+ - [ ] Content hierarchy is clear (one dominant heading per section)
1079
+ - [ ] Related information is co-located (no split-attention effect)
1080
+
1081
+ ### Decision Load
1082
+
1083
+ - [ ] Each screen presents one primary decision or action
1084
+ - [ ] Primary choices at any decision point number 5-7 or fewer
1085
+ - [ ] Intelligent defaults are provided for all optional inputs
1086
+ - [ ] Destructive actions require confirmation; routine actions do not
1087
+ - [ ] Options are labeled with clear, unambiguous language
1088
+
1089
+ ### Memory and Recall
1090
+
1091
+ - [ ] Users never need to remember information from a previous screen
1092
+ - [ ] Recent items, favorites, and suggestions reduce recall demands
1093
+ - [ ] Form fields provide input masks, auto-complete, and format hints
1094
+ - [ ] Error messages explain what went wrong AND how to fix it
1095
+ - [ ] Status is always visible (where am I, what did I just do, what is next)
1096
+
1097
+ ### Visual and Interaction Design
1098
+
1099
+ - [ ] Visual hierarchy is clear with consistent use of size, color, contrast
1100
+ - [ ] Layout is spatially consistent across similar screen types
1101
+ - [ ] Touch targets are at least 44x44pt (iOS) or 48x48dp (Android)
1102
+ - [ ] Feedback is immediate (< 100ms for direct manipulation, < 1s for system)
1103
+ - [ ] Animations serve a functional purpose (drawing attention to changes)
1104
+
1105
+ ### Consistency
1106
+
1107
+ - [ ] Terminology is consistent throughout the product
1108
+ - [ ] Interaction patterns are consistent (same gesture = same action)
1109
+ - [ ] Visual patterns are consistent (same color = same meaning)
1110
+ - [ ] Platform conventions are followed unless deviation is justified
1111
+ - [ ] Error handling follows a consistent pattern across all flows
1112
+
1113
+ ### Cognitive Load Red Flags
1114
+
1115
+ - [ ] No screen requires reading more than 3 paragraphs of instructions
1116
+ - [ ] No form has more than 7 visible fields at once
1117
+ - [ ] No modal or dialog has more than 3 action buttons
1118
+ - [ ] No drop-down menu has more than 15 unsorted items
1119
+ - [ ] No critical information is communicated solely through color
1120
+
1121
+ ### Ethics
1122
+
1123
+ - [ ] Opt-in and opt-out paths require equal cognitive effort
1124
+ - [ ] Cancellation is as easy as signup
1125
+ - [ ] Pricing and options are presented with equal visual weight
1126
+ - [ ] No double negatives or confusing language in consent dialogs
1127
+ - [ ] Dark patterns checklist reviewed and no violations found
1128
+
1129
+ ---
1130
+
1131
+ ## References and Further Reading
1132
+
1133
+ ### Foundational Works
1134
+
1135
+ - Miller, G.A. (1956). "The Magical Number Seven, Plus or Minus Two: Some Limits
1136
+ on Our Capacity for Processing Information." *Psychological Review*, 63(2), 81-97.
1137
+ - Sweller, J. (1988). "Cognitive Load During Problem Solving: Effects on Learning."
1138
+ *Cognitive Science*, 12(2), 257-285.
1139
+ - Cowan, N. (2001). "The Magical Number 4 in Short-Term Memory: A Reconsideration
1140
+ of Mental Storage Capacity." *Behavioral and Brain Sciences*, 24(1), 87-114.
1141
+ - Baddeley, A.D. (2000). "The Episodic Buffer: A New Component of Working Memory?"
1142
+ *Trends in Cognitive Sciences*, 4(11), 417-423.
1143
+ - Hick, W.E. (1952). "On the Rate of Gain of Information." *Quarterly Journal of
1144
+ Experimental Psychology*, 4(1), 11-26.
1145
+ - Norman, D.A. (1988). *The Design of Everyday Things*. Basic Books.
1146
+ (Revised and expanded edition, 2013.)
1147
+
1148
+ ### Design and Usability
1149
+
1150
+ - Nielsen, J. (1994). "10 Usability Heuristics for User Interface Design."
1151
+ Nielsen Norman Group. https://www.nngroup.com/articles/ten-usability-heuristics/
1152
+ - Nielsen Norman Group. "Minimize Cognitive Load to Maximize Usability."
1153
+ https://www.nngroup.com/articles/minimize-cognitive-load/
1154
+ - Nielsen Norman Group. "Change Blindness in UX: Definition."
1155
+ https://www.nngroup.com/articles/change-blindness-definition/
1156
+ - Nielsen Norman Group. "Beyond the NPS: Measuring Perceived Usability with the
1157
+ SUS, NASA-TLX, and the Single Ease Question."
1158
+ https://www.nngroup.com/articles/measuring-perceived-usability/
1159
+ - Brooke, J. (1996). "SUS: A Quick and Dirty Usability Scale."
1160
+ *Usability Evaluation in Industry*, 189(194), 4-7.
1161
+ - Sauro, J. & Dumas, J.S. (2009). "Comparison of Three One-Question, Post-Task
1162
+ Usability Questionnaires." *CHI 2009*.
1163
+ - Laws of UX. https://lawsofux.com/
1164
+
1165
+ ### Attention and Perception
1166
+
1167
+ - Simons, D.J. & Chabris, C.F. (1999). "Gorillas in Our Midst: Sustained
1168
+ Inattentional Blindness for Dynamic Events." *Perception*, 28(9), 1059-1074.
1169
+ - Monsell, S. (2003). "Task Switching." *Trends in Cognitive Sciences*, 7(3),
1170
+ 134-140.
1171
+
1172
+ ### Ethics and Dark Patterns
1173
+
1174
+ - Brignull, H. (2010). Dark Patterns -- Deceptive Design.
1175
+ https://www.deceptive.design/
1176
+ - Gray, C.M. et al. (2018). "The Dark (Patterns) Side of UX Design." *CHI 2018*.
1177
+
1178
+ ### Measurement Tools
1179
+
1180
+ - Hart, S.G. & Staveland, L.E. (1988). "Development of NASA-TLX: Results of
1181
+ Empirical and Theoretical Research." *Advances in Psychology*, 52, 139-183.
1182
+ - MeasuringU. "10 Things to Know about the NASA TLX."
1183
+ https://measuringu.com/nasa-tlx/
1184
+
1185
+ ---
1186
+
1187
+ *This document is a design expertise reference for cognitive load in UI/UX.
1188
+ It synthesizes cognitive psychology research and established design heuristics
1189
+ into actionable guidance for product designers, UX researchers, and front-end
1190
+ developers. Apply the principles proportionally -- small projects may need
1191
+ only the checklist; complex products warrant the full measurement framework.*