@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,761 @@
1
+ # Visual Hierarchy -- Design Expertise Module
2
+
3
+ > Visual hierarchy is the deliberate arrangement of design elements so that users
4
+ > instantly perceive their relative importance, navigate content effortlessly, and
5
+ > take the intended actions. It is the single most consequential skill in interface
6
+ > design because every layout decision either clarifies or confuses the user's path.
7
+
8
+ > **Category:** Foundation
9
+ > **Applies to:** All (Web, iOS, Android, Desktop, Responsive)
10
+ > **Key sources:** Material Design 3 (m3.material.io), Apple Human Interface Guidelines (developer.apple.com/design/human-interface-guidelines), Ant Design (ant.design/docs/spec), Nielsen Norman Group eye-tracking research (nngroup.com), WCAG 2.1 (w3.org/WAI/WCAG21)
11
+
12
+ ---
13
+
14
+ ## 1. Core Principles
15
+
16
+ ### 1.1 What Visual Hierarchy Is
17
+
18
+ Visual hierarchy is the principle of arranging elements so that people instantly
19
+ recognize their order of importance on a screen or page. It governs what the eye
20
+ sees first, second, and last. A strong hierarchy means users can scan a page in
21
+ under 3 seconds and understand both what it contains and what they should do next.
22
+
23
+ Every element on a screen competes for attention. Hierarchy is how you referee
24
+ that competition.
25
+
26
+ ### 1.2 The Science Behind Hierarchy
27
+
28
+ #### Gestalt Principles
29
+
30
+ The Gestalt laws of perception, established in early 20th-century psychology and
31
+ validated repeatedly in modern UX research, explain how humans group visual
32
+ information:
33
+
34
+ | Principle | Definition | Hierarchy Application |
35
+ |-----------|-----------|----------------------|
36
+ | **Proximity** | Elements near each other are perceived as a group | Group related controls; separate unrelated sections with whitespace |
37
+ | **Similarity** | Elements sharing visual traits (color, shape, size) are perceived as related | Use consistent styling for elements at the same hierarchy level |
38
+ | **Continuity** | The eye follows smooth lines and curves | Align elements along clear axes to guide scanning |
39
+ | **Closure** | The brain completes incomplete shapes | Cards and containers do not need full borders |
40
+ | **Figure/Ground** | The eye separates foreground from background | Elevated surfaces (shadows, overlays) create depth hierarchy |
41
+ | **Common Region** | Elements inside a boundary are perceived as grouped | Cards, sections, and panels create logical clusters |
42
+ | **Focal Point** | An element that stands out visually captures attention first | The primary CTA should be the strongest focal point |
43
+
44
+ #### Eye-Tracking Patterns
45
+
46
+ Nielsen Norman Group's landmark eye-tracking study (232 users, thousands of web
47
+ pages) identified consistent scanning behaviors:
48
+
49
+ **F-Pattern (text-heavy pages):**
50
+ Users read the first horizontal line across the top, drop down and read a shorter
51
+ second line, then scan vertically down the left edge. This is the dominant
52
+ pattern for content pages, articles, and search results. Implications: place the
53
+ most critical information in the first two lines; use clear headings as anchors
54
+ along the left edge; front-load key words in every line.
55
+
56
+ **Z-Pattern (sparse, visual pages):**
57
+ On pages with minimal text (landing pages, hero sections), the eye moves from
58
+ top-left to top-right, diagonally to bottom-left, then across to bottom-right.
59
+ Implications: place your logo/brand top-left, primary value proposition top-right
60
+ or center, and primary CTA at the terminal point (bottom-right of the Z).
61
+
62
+ **Layer-Cake Pattern (structured content):**
63
+ When headings are visually distinct, users scan only the headings, skipping body
64
+ text until a heading matches their intent. Implications: headings must be
65
+ self-sufficient summaries, not decorative labels.
66
+
67
+ **Spotted Pattern (scanning for a specific target):**
68
+ Users skip large blocks and fixate on distinctive elements -- links, bold text,
69
+ numbers, icons. Implications: make interactive elements visually distinct from
70
+ static content.
71
+
72
+ #### Visual Weight
73
+
74
+ Visual weight is the perceived "heaviness" of an element -- how much it pulls
75
+ the eye. Elements with high visual weight are seen first. The primary levers:
76
+
77
+ 1. **Size** -- Larger elements have more weight. A 32px headline pulls more than 14px body text.
78
+ 2. **Color saturation and warmth** -- Saturated, warm colors (red, orange) carry more weight than desaturated, cool colors (gray, light blue).
79
+ 3. **Contrast** -- High-contrast elements (dark on light, or vice versa) dominate low-contrast neighbors.
80
+ 4. **Density/complexity** -- A detailed illustration has more weight than a flat icon.
81
+ 5. **Position** -- Elements above the fold and toward the top-left (in LTR languages) are scanned first.
82
+ 6. **Isolation** -- An element surrounded by whitespace carries disproportionate weight (the "hero" effect).
83
+ 7. **Motion** -- Animated elements capture attention before static ones (use sparingly).
84
+
85
+ ### 1.3 The Six Tools of Hierarchy
86
+
87
+ #### Size
88
+
89
+ The most direct hierarchy signal. Larger elements are more important. Design
90
+ systems formalize this into type scales:
91
+
92
+ **Material Design 3 Type Scale (complete values):**
93
+
94
+ | Role | Size | Weight | Typical Use |
95
+ |------|------|--------|-------------|
96
+ | Display Large | 57px/sp | Regular (400) | Hero headlines, splash screens |
97
+ | Display Medium | 45px/sp | Regular (400) | Section heroes |
98
+ | Display Small | 36px/sp | Regular (400) | Feature callouts |
99
+ | Headline Large | 32px/sp | Regular (400) | Page titles |
100
+ | Headline Medium | 28px/sp | Regular (400) | Section titles |
101
+ | Headline Small | 24px/sp | Regular (400) | Card titles, dialogs |
102
+ | Title Large | 22px/sp | Regular (400) | App bar titles |
103
+ | Title Medium | 16px/sp | Medium (500) | Subheadings |
104
+ | Title Small | 14px/sp | Medium (500) | Tab labels |
105
+ | Body Large | 16px/sp | Regular (400) | Primary body text |
106
+ | Body Medium | 14px/sp | Regular (400) | Default body text |
107
+ | Body Small | 12px/sp | Regular (400) | Captions, metadata |
108
+ | Label Large | 14px/sp | Medium (500) | Button labels |
109
+ | Label Medium | 12px/sp | Medium (500) | Form labels, chips |
110
+ | Label Small | 11px/sp | Medium (500) | Timestamps, badges |
111
+
112
+ **Ratio guidance:** Adjacent hierarchy levels should differ by at least 20-30%
113
+ in size. The M3 scale uses roughly a 1.2x-1.25x ratio between adjacent levels
114
+ (e.g., 14 -> 16 -> 22 -> 24 -> 28 -> 32). If two text elements are within 2px
115
+ of each other, they read as the same level.
116
+
117
+ **Ant Design Type Scale:**
118
+ Ant Design uses a 14px base with a scale derived from natural logarithms and the
119
+ pentatonic musical scale: 12, 14, 16, 20, 24, 30, 38, 46, 56, 68px. The system
120
+ recommends limiting any single screen to 3-5 font sizes to maintain restraint.
121
+
122
+ #### Color
123
+
124
+ Color establishes hierarchy through three mechanisms:
125
+
126
+ 1. **Brand/primary color** signals the most important interactive element (primary CTA).
127
+ 2. **Semantic color** conveys meaning (red = destructive, green = success, yellow = warning).
128
+ 3. **Neutral scale** (grays) creates layers: darker text = more important, lighter text = secondary.
129
+
130
+ **Color hierarchy ladder (light theme):**
131
+ - Level 1 (primary text): #1A1A1A or equivalent, ~87% opacity black -- headings, primary labels
132
+ - Level 2 (secondary text): #616161 or ~60% opacity black -- body text, descriptions
133
+ - Level 3 (tertiary text): #9E9E9E or ~38% opacity black -- placeholders, timestamps, metadata
134
+ - Level 4 (disabled): #BDBDBD or ~26% opacity black -- disabled states
135
+
136
+ **Color hierarchy ladder (dark theme):**
137
+ - Level 1: #FFFFFF or ~87% opacity white
138
+ - Level 2: #B3B3B3 or ~60% opacity white
139
+ - Level 3: #808080 or ~38% opacity white
140
+ - Level 4: #666666 or ~26% opacity white
141
+
142
+ #### Contrast
143
+
144
+ WCAG 2.1 defines minimum contrast ratios:
145
+
146
+ | Standard | Normal Text (<18pt / <14pt bold) | Large Text (>=18pt / >=14pt bold) | UI Components |
147
+ |----------|----------------------------------|----------------------------------|---------------|
148
+ | AA (minimum) | 4.5:1 | 3:1 | 3:1 |
149
+ | AAA (enhanced) | 7:1 | 4.5:1 | N/A |
150
+
151
+ Contrast is a hierarchy amplifier: the highest-contrast element on the page is
152
+ seen first. A primary button with 8:1 contrast will dominate a secondary button
153
+ at 4.5:1 contrast. Use contrast differentials deliberately -- the primary action
154
+ should have the highest contrast on the page, secondary actions lower, and
155
+ tertiary actions lower still.
156
+
157
+ #### Spacing
158
+
159
+ Spacing controls grouping (proximity) and emphasis (isolation). The standard
160
+ approach is a spacing scale based on a 4px baseline grid:
161
+
162
+ **Recommended spacing scale (4px base):**
163
+
164
+ | Token | Value | Use |
165
+ |-------|-------|-----|
166
+ | space-xs | 4px | Inline icon gap, tight padding |
167
+ | space-sm | 8px | Related element gap, compact padding |
168
+ | space-md | 16px | Default padding, form field gap |
169
+ | space-lg | 24px | Section separation, card padding |
170
+ | space-xl | 32px | Major section gap |
171
+ | space-2xl | 48px | Page section separation |
172
+ | space-3xl | 64px | Hero section padding, page margins |
173
+ | space-4xl | 96px | Landing page section breaks |
174
+
175
+ **Key rule:** Internal spacing (padding within an element) should always be less
176
+ than or equal to external spacing (margin between elements). This ensures
177
+ elements read as cohesive units. If a card has 16px internal padding, the gap
178
+ between cards should be >= 16px.
179
+
180
+ **Material Design 3** uses a 4dp baseline grid for fine adjustments and common
181
+ increments of 8, 12, 16, 24, and 32dp for component spacing.
182
+
183
+ **Ant Design** uses three primary spacing values: 8px (small), 16px (medium),
184
+ 24px (large), all on an 8px grid baseline.
185
+
186
+ #### Alignment
187
+
188
+ Alignment creates invisible lines that the eye follows (Gestalt continuity).
189
+ Strong alignment reduces visual noise and creates orderly scanning paths.
190
+
191
+ - Left-align body text in LTR languages (ragged right is easier to read than justified)
192
+ - Align form labels and inputs on a consistent vertical axis
193
+ - Use a column grid (4-column mobile, 8-column tablet, 12-column desktop) to create alignment guides
194
+ - Center-align only hero text and short headings; never center-align body paragraphs
195
+
196
+ #### Repetition
197
+
198
+ Repetition establishes patterns. Once users learn that "blue underlined text =
199
+ link" or "bold 24px text = section heading," they can scan efficiently because
200
+ the pattern is predictable. Breaking repetition signals a hierarchy shift
201
+ (intentional or accidental).
202
+
203
+ - Consistent styling for same-level elements reduces cognitive load
204
+ - Every style variation implies a hierarchy difference; unintentional variation creates confusion
205
+ - Limit the total number of distinct text styles per page to 4-6
206
+
207
+ ### 1.4 How Hierarchy Differs Across Platforms
208
+
209
+ On mobile, vertical scrolling dominates and screen real estate is scarce, so
210
+ hierarchy is expressed primarily through vertical ordering and size contrast.
211
+ On desktop, wider viewports allow multi-column layouts where hierarchy uses both
212
+ horizontal position (left = primary in LTR) and vertical position (top = primary).
213
+
214
+ | Factor | Mobile | Web (Desktop) | Desktop App |
215
+ |--------|--------|--------------|-------------|
216
+ | Primary axis | Vertical scroll | Both axes | Both axes |
217
+ | Navigation | Tab bar (bottom) / hamburger | Top nav / sidebar | Menu bar + sidebar |
218
+ | Content density | Low-medium | Medium-high | High |
219
+ | Touch targets | 48dp / 44pt minimum | 24-32px clickable | 24-32px clickable |
220
+ | Type scale range | Narrower (12-28px typical) | Wider (11-57px) | Wider (11-48px) |
221
+ | Whitespace | Generous margins | Variable | Compact |
222
+ | Hierarchy layers | 2-3 levels | 3-5 levels | 3-5 levels |
223
+
224
+ ---
225
+
226
+ ## 2. Do's and Don'ts
227
+
228
+ ### Do's
229
+
230
+ **D1. Use a constrained type scale with minimum 20% size jumps between levels.**
231
+ Adjacent hierarchy levels should be immediately distinguishable. If your heading
232
+ is 18px and your body is 16px, they read as the same level. Use at least a 1.2x
233
+ ratio: 14px body -> 18px subhead -> 22px heading -> 28px page title. Material
234
+ Design 3 uses jumps like 14 -> 16 -> 22 -> 24 -> 28 -> 32px.
235
+
236
+ **D2. Make the primary CTA 20-30% larger than secondary actions and use a filled style.**
237
+ A primary button at 48px height with a solid brand-color fill will dominate a
238
+ secondary 40px outlined button. The size and fill difference makes the action
239
+ hierarchy immediately clear without reading labels. Material Design 3 recommends
240
+ filled buttons for primary, outlined for secondary, and text buttons for tertiary.
241
+
242
+ **D3. Use whitespace to create hierarchy through isolation.**
243
+ An element surrounded by 48-64px of whitespace commands more attention than the
244
+ same element in a dense cluster. Apple's HIG specifically recommends "generous,
245
+ consistent whitespace to visually group related elements and separate distinct
246
+ sections." The hero CTA in a landing page should have at least 32px of breathing
247
+ room on all sides.
248
+
249
+ **D4. Limit each screen to 3-5 distinct font sizes.**
250
+ Ant Design explicitly recommends this constraint. More than 5 sizes creates
251
+ visual noise and makes it impossible for users to distinguish hierarchy levels.
252
+ A typical screen needs: heading, subheading, body, caption -- four sizes.
253
+
254
+ **D5. Front-load critical information in the first 40-60 characters of any text element.**
255
+ Eye-tracking confirms that users read the beginning of lines more carefully than
256
+ the middle or end (F-pattern). Place keywords, numbers, and action verbs at the
257
+ start of headings, list items, and button labels.
258
+
259
+ **D6. Maintain a 60-80 character line length for body text.**
260
+ Lines shorter than 40 characters cause excessive line-breaking and choppy reading.
261
+ Lines longer than 90 characters cause the eye to lose its place when returning
262
+ to the next line. At 16px with a standard font, this translates to approximately
263
+ 480-640px content width.
264
+
265
+ **D7. Use the color hierarchy ladder consistently (87% / 60% / 38% opacity).**
266
+ Primary text at ~87% opacity (or #1A1A1A on white), secondary at ~60%
267
+ (or #616161), and tertiary at ~38% (or #9E9E9E). This creates three clear
268
+ typographic levels that users learn to interpret automatically.
269
+
270
+ **D8. Place the most important action at the terminal point of the scanning pattern.**
271
+ For Z-pattern layouts (landing pages), place the CTA at the bottom-right of the
272
+ Z. For F-pattern layouts (content pages), place the CTA below the first content
273
+ block or in a sticky element. The terminal point is where attention naturally
274
+ rests after scanning.
275
+
276
+ **D9. Use 44pt (iOS) or 48dp (Android) minimum touch targets, even if the visual element is smaller.**
277
+ The clickable/tappable area should meet platform minimums regardless of the
278
+ visual size of the icon or text. A 24x24px icon button should have 48x48dp of
279
+ tappable padding. This is both an accessibility requirement (WCAG 2.1 SC 2.5.5)
280
+ and a hierarchy signal -- interactive elements need sufficient presence.
281
+
282
+ **D10. Create depth hierarchy with consistent elevation levels.**
283
+ Material Design 3 uses elevation (0dp, 1dp, 3dp, 6dp, 8dp, 12dp) to layer
284
+ surfaces. Higher elements are "closer" to the user and more important. Use:
285
+ 0dp for background, 1dp for cards, 3dp for app bars, 6dp for FABs, 8dp for
286
+ bottom sheets, 12dp for dialogs. Shadows should be consistent in direction and
287
+ softness.
288
+
289
+ **D11. Use a maximum of 2 typefaces per project (1 for headings, 1 for body).**
290
+ Each additional typeface introduces a new visual pattern the user must learn.
291
+ Most design systems use a single family: Material Design uses Roboto, Apple uses
292
+ San Francisco, Ant Design uses system fonts. If using two families, ensure they
293
+ have contrasting characteristics (serif + sans-serif, or display + text).
294
+
295
+ **D12. Align interactive elements on a clear vertical axis in forms and settings.**
296
+ Labels, inputs, and buttons should share a left edge (or label edge + input edge
297
+ in side-by-side layouts). Misaligned form elements slow scanning by 20-40%
298
+ because the eye must search for each field independently rather than following
299
+ a straight line.
300
+
301
+ **D13. Use icons as hierarchy accelerators, not decorators.**
302
+ An icon next to a label should reinforce the label's meaning and provide a
303
+ faster recognition path (spotted scanning pattern). Icons should be a consistent
304
+ size within each hierarchy level: 24px for primary actions, 20px for secondary,
305
+ 16px for inline/metadata. Decorative icons that do not add meaning create noise.
306
+
307
+ ### Don'ts
308
+
309
+ **X1. Do not create more than 3 competing focal points on a single screen.**
310
+ If everything is bold, nothing is bold. A screen with 3+ elements all demanding
311
+ primary attention causes "visual shouting" -- the user cannot determine where to
312
+ look first and experiences decision paralysis. Identify one primary, one
313
+ secondary, and let everything else recede.
314
+
315
+ **X2. Do not use pure black (#000000) text on pure white (#FFFFFF) backgrounds.**
316
+ The extreme contrast (21:1) causes halation -- the text appears to vibrate and
317
+ causes eye strain on screens. Use #1A1A1A to #212121 on #FFFFFF (approximately
318
+ 17:1-18:1 contrast) or #FAFAFA backgrounds. Apple's HIG and Material Design
319
+ both avoid pure black on pure white in their default themes.
320
+
321
+ **X3. Do not center-align body text or any text block longer than 2 lines.**
322
+ Center-aligned text creates a ragged left edge, destroying the scanning anchor
323
+ that makes reading efficient. The eye must re-find the start of each line. Center
324
+ alignment is acceptable only for: single-line headings, short hero statements
325
+ (under 8-10 words), and modal titles.
326
+
327
+ **X4. Do not rely on color alone to communicate hierarchy.**
328
+ Approximately 8% of men and 0.5% of women have color vision deficiency.
329
+ Hierarchy that depends solely on color differences (e.g., red vs. green status
330
+ labels with no other visual distinction) fails for these users. Always pair
331
+ color with at least one other signal: size, weight, iconography, or position.
332
+
333
+ **X5. Do not use more than 3-4 font weights on a single page.**
334
+ Regular (400), Medium (500), and Bold (700) provide sufficient hierarchy range.
335
+ Adding Light (300) and Black (900) on the same page creates ambiguity -- users
336
+ cannot reliably distinguish 5 weight levels. Stick to 2-3 weights for clarity.
337
+
338
+ **X6. Do not place two same-size, same-style CTAs side by side without visual differentiation.**
339
+ Two identical buttons create a 50/50 split in attention and force the user to
340
+ read both labels to choose. Always differentiate: primary (filled) vs. secondary
341
+ (outlined), or primary (larger, colored) vs. secondary (smaller, neutral).
342
+
343
+ **X7. Do not use justified text in digital interfaces.**
344
+ Justified text creates uneven word spacing ("rivers of white") that disrupts
345
+ reading flow and is especially problematic on narrow mobile screens. Use
346
+ left-aligned (LTR) or right-aligned (RTL) body text exclusively.
347
+
348
+ **X8. Do not make interactive and non-interactive elements visually identical.**
349
+ If a clickable text link looks the same as surrounding body text (same color,
350
+ same weight, no underline), users will not discover it. Interactive elements
351
+ must differ from static text by at least two visual properties (e.g., color +
352
+ underline, or color + weight).
353
+
354
+ **X9. Do not use spacing smaller than 8px between distinct interactive elements.**
355
+ Elements closer than 8px risk accidental taps (especially on mobile) and read as
356
+ a single group (Gestalt proximity). Between distinct tap targets, maintain at
357
+ least 8px visual separation. Between distinct sections, use at least 24px.
358
+
359
+ **X10. Do not use more than 2 accent colors for interactive elements.**
360
+ One primary brand color for primary CTAs and one secondary color for secondary
361
+ actions. Adding a third interactive color creates ambiguity about which color
362
+ means "most important." Semantic colors (red, green, yellow) are exceptions
363
+ but should not compete with the primary CTA color.
364
+
365
+ **X11. Do not ignore the fold -- keep primary actions visible without scrolling.**
366
+ "Above the fold" still matters: Nielsen Norman Group research consistently shows
367
+ that content above the fold receives 57% more viewing time than content below.
368
+ The primary CTA and key value proposition must be visible in the initial
369
+ viewport.
370
+
371
+ **X12. Do not use low-contrast placeholder text as the only label for form fields.**
372
+ Placeholder text at 38-40% opacity disappears when the user starts typing,
373
+ removing the field's label. Always use a persistent label (above or beside the
374
+ field) with at least secondary-level contrast (60% opacity / 4.5:1 minimum).
375
+
376
+ **X13. Do not mix alignment systems within the same section.**
377
+ If a card uses left-aligned text, do not center-align the button within it. If a
378
+ form uses top-aligned labels, do not switch to side-aligned labels for one field.
379
+ Mixed alignment creates micro-friction that accumulates into a "messy" perception.
380
+
381
+ ---
382
+
383
+ ## 3. Platform Variations
384
+
385
+ ### 3.1 iOS (Apple Human Interface Guidelines)
386
+
387
+ **Typography:**
388
+ - System font: San Francisco (SF Pro Display >= 20pt, SF Pro Text < 20pt)
389
+ - SF Pro Text uses wider letter spacing and heavier strokes for small sizes
390
+ - Dynamic Type ranges: xSmall through xxxLarge, plus AX1-AX5 accessibility sizes
391
+ - Minimum readable size: 11pt (Caption 2 built-in minimum)
392
+ - Body default: 17pt
393
+ - Large Title: 34pt
394
+ - Title 1: 28pt, Title 2: 22pt, Title 3: 20pt
395
+ - Headline: 17pt semibold
396
+ - Subhead: 15pt
397
+ - Footnote: 13pt, Caption 1: 12pt, Caption 2: 11pt
398
+
399
+ **Touch targets:** 44 x 44pt minimum (approximately 7mm physical)
400
+
401
+ **Spacing and layout:**
402
+ - Standard horizontal margins: 16pt (compact), 20pt (regular)
403
+ - Navigation bar height: 44pt (standard), 96pt (large title)
404
+ - Tab bar height: 49pt
405
+ - Default content padding: 16pt
406
+ - Section spacing in grouped tables: 35pt header, 8pt between sections
407
+
408
+ **Hierarchy approach:**
409
+ - Relies heavily on typography weight and size rather than color fills
410
+ - Uses translucency and blur (vibrancy) for depth hierarchy
411
+ - Liquid Glass design language (2025+) uses backdrop blur and semi-transparency
412
+ - Left-aligned, bold typography for alerts and critical text
413
+ - Minimal use of borders; prefers whitespace and grouping for separation
414
+
415
+ ### 3.2 Android (Material Design 3)
416
+
417
+ **Typography:**
418
+ - System font: Roboto (default), customizable via Material Theme Builder
419
+ - Full 15-token type scale (see Section 1.3 table above)
420
+ - Base body size: 14sp (Body Medium)
421
+ - Minimum recommended: 11sp (Label Small)
422
+
423
+ **Touch targets:** 48 x 48dp minimum (approximately 9mm physical)
424
+
425
+ **Spacing and layout:**
426
+ - 4dp baseline grid
427
+ - Common spacing increments: 4, 8, 12, 16, 24, 32dp
428
+ - Standard horizontal margins: 16dp (compact), 24dp (medium), 24dp (expanded)
429
+ - App bar height: 64dp (standard), 152dp (large)
430
+ - Navigation bar (bottom): 80dp
431
+ - FAB: 56dp (standard), 96dp (large)
432
+ - Grid gutter: 8dp minimum
433
+
434
+ **Hierarchy approach:**
435
+ - Elevation (shadow) as primary depth hierarchy signal
436
+ - Color roles: primary, secondary, tertiary surfaces with tonal mapping
437
+ - Tonal elevation (surface tint color at varying opacities) in M3
438
+ - M3 Expressive (2025) introduces more expressive typography and bolder color
439
+ - Container shapes (rounded corners) differentiate hierarchy levels
440
+
441
+ ### 3.3 Web (Responsive)
442
+
443
+ **Typography:**
444
+ - Base body: 16px (browser default, do not go smaller for body text)
445
+ - Heading scale (common): 14, 16, 20, 24, 32, 40, 48, 64px
446
+ - Minimum readable: 12px (absolute minimum; 14px preferred)
447
+ - Line height: 1.4-1.6x font size for body text (e.g., 16px / 24px line height)
448
+ - Paragraph max-width: 65-75 characters (approximately 600-700px at 16px)
449
+
450
+ **Touch/click targets:**
451
+ - WCAG 2.1 SC 2.5.5: 44 x 44px minimum for touch
452
+ - Desktop click targets: 24px minimum height, 32px preferred
453
+ - Link text: minimum 16px font size, underlined or distinguishable
454
+
455
+ **Spacing and layout:**
456
+ - 12-column grid (desktop), 8-column (tablet), 4-column (mobile)
457
+ - Gutter width: 16-24px (mobile), 24-32px (desktop)
458
+ - Page max-width: 1200-1440px typical
459
+ - Horizontal page margin: 16px (mobile), 24-64px (tablet), 64-120px (desktop)
460
+ - Section vertical spacing: 48-96px (desktop), 32-48px (mobile)
461
+
462
+ **Hierarchy approach:**
463
+ - Z-pattern for landing/marketing pages
464
+ - F-pattern for content/text-heavy pages
465
+ - Sticky headers and floating CTAs for persistent hierarchy anchors
466
+ - Responsive breakpoints: 320, 768, 1024, 1440px (common)
467
+ - Progressive disclosure: show primary content first, details on interaction
468
+
469
+ ### 3.4 Desktop Applications
470
+
471
+ **Typography:**
472
+ - Denser than web; base body: 13-14px typical (macOS system: 13pt, Windows: 14px Segoe UI)
473
+ - Smaller minimum sizes acceptable due to closer viewing distance
474
+ - Menu text: 13px, toolbar labels: 11-12px
475
+
476
+ **Interaction targets:**
477
+ - Menu items: 20-24px height minimum
478
+ - Toolbar buttons: 24-32px
479
+ - Tree view items: 20-24px row height
480
+
481
+ **Hierarchy approach:**
482
+ - Menu bar provides top-level navigation hierarchy
483
+ - Sidebars/panels create spatial hierarchy (left = navigation, center = content, right = properties)
484
+ - Density is higher; users expect more information per screen
485
+ - Keyboard shortcuts provide alternative hierarchy navigation
486
+
487
+ ---
488
+
489
+ ## 4. Common Mistakes in AI-Generated Designs
490
+
491
+ AI design tools and AI-assisted layout generators have specific recurring
492
+ failure patterns related to visual hierarchy. These mistakes stem from the
493
+ models' tendency to optimize for visual balance and aesthetic appeal without
494
+ understanding the user's task flow.
495
+
496
+ ### 4.1 Flat Hierarchy (Equal Weight Everywhere)
497
+
498
+ **The problem:** AI-generated layouts frequently give all elements near-equal
499
+ visual weight. Every text block is the same size, every button looks the same,
500
+ every card is identically styled. The result is a layout with no entry point --
501
+ the user's eye bounces randomly across the page.
502
+
503
+ **How to detect:** Squint at the layout (or blur it to 5px Gaussian blur). If no
504
+ element clearly stands out, the hierarchy is flat. You should see 1 dominant
505
+ element, 2-3 supporting elements, and everything else receding.
506
+
507
+ **How to fix:** Identify the single most important element (primary CTA or key
508
+ headline). Increase its size by 40-60% relative to everything else. Add
509
+ whitespace around it. Then establish 2-3 supporting elements at 70-80% of the
510
+ primary's visual weight.
511
+
512
+ ### 4.2 Over-Decoration
513
+
514
+ **The problem:** AI tends to add visual embellishment -- gradients, shadows,
515
+ borders, background colors, icons -- to every element. This creates visual noise
516
+ that competes with actual content hierarchy. A card with a gradient background, a
517
+ drop shadow, a border, an icon, bold text, AND a colored badge has too many
518
+ signals fighting for attention.
519
+
520
+ **How to detect:** Count the number of distinct visual treatments on a single
521
+ component. More than 3 (e.g., color fill + shadow + icon) is usually excessive.
522
+
523
+ **How to fix:** Apply the "one signal per level" rule. Primary elements get the
524
+ strongest single signal (size OR color OR position). Remove redundant treatments.
525
+ A button does not need both a shadow AND a gradient AND a border.
526
+
527
+ ### 4.3 Inconsistent Spacing
528
+
529
+ **The problem:** AI-generated layouts often use arbitrary spacing values
530
+ (13px here, 17px there, 22px elsewhere) rather than adhering to a spacing scale.
531
+ This creates subtle visual disorder that users feel but cannot articulate.
532
+
533
+ **How to detect:** Measure the spacing between elements. If values are not
534
+ multiples of 4px (or your chosen base unit), the spacing is inconsistent.
535
+
536
+ **How to fix:** Snap all spacing to a 4px or 8px grid. Use the spacing scale
537
+ from Section 1.3. Every margin, padding, and gap should be a token value.
538
+
539
+ ### 4.4 Poor Button Hierarchy
540
+
541
+ **The problem:** AI frequently generates pages with multiple same-styled buttons
542
+ ("Learn More," "Get Started," "Sign Up," "Contact Us") all as filled/primary
543
+ buttons. When every button is primary, none is primary.
544
+
545
+ **How to detect:** Count the filled/primary buttons on the screen. If more than
546
+ 1-2 are visible simultaneously, the button hierarchy is broken.
547
+
548
+ **How to fix:** Designate exactly 1 primary (filled) button per viewport. Use
549
+ outlined style for secondary actions and text-only style for tertiary. In forms,
550
+ the submit action is primary; cancel is tertiary.
551
+
552
+ ### 4.5 Text Hierarchy Compression
553
+
554
+ **The problem:** AI-generated designs often compress the type scale -- using 14px,
555
+ 15px, 16px, and 17px all on the same page. These sizes are too close to create
556
+ perceptible hierarchy levels.
557
+
558
+ **How to detect:** List all font sizes used on the page. If any two adjacent
559
+ levels differ by less than 20% (e.g., 14px and 16px = 14% difference), the
560
+ hierarchy is compressed.
561
+
562
+ **How to fix:** Use a minimum 1.25x ratio between adjacent sizes. If body is
563
+ 14px, the next level up should be at least 18px, then 22px, then 28px.
564
+
565
+ ### 4.6 Ignoring Reading Patterns
566
+
567
+ **The problem:** AI layouts may place the most important element in a position
568
+ that contradicts natural scanning patterns -- e.g., the primary CTA in the
569
+ middle-left of a landing page (a dead zone in the Z-pattern), or critical
570
+ information at the bottom-right of a text-heavy page (ignored in F-pattern
571
+ scanning).
572
+
573
+ **How to detect:** Overlay the appropriate scanning pattern (Z or F) on the
574
+ layout. The primary CTA should land on the pattern's natural fixation points.
575
+
576
+ **How to fix:** Move the primary CTA to a scanning pattern hotspot. For Z-pattern
577
+ pages: top-right or bottom-right. For F-pattern pages: beginning of the first
578
+ or second horizontal bar, or inline with the left vertical scan line.
579
+
580
+ ### 4.7 Aesthetic Balance Over Functional Hierarchy
581
+
582
+ **The problem:** AI models are often trained on visually "beautiful" designs and
583
+ may prioritize symmetry and balance over functional hierarchy. A perfectly
584
+ symmetric layout where the CTA is visually balanced by a decorative image has
585
+ weak hierarchy -- the CTA does not dominate.
586
+
587
+ **How to detect:** Ask: "Can I identify the primary action in under 2 seconds
588
+ without reading any text?" If not, aesthetic balance is overriding functional
589
+ hierarchy.
590
+
591
+ **How to fix:** Intentionally break symmetry in favor of the primary element.
592
+ The primary CTA should be visually heavier than its surroundings. Asymmetry
593
+ creates hierarchy; perfect symmetry creates equivalence.
594
+
595
+ ### 4.8 Missing Content Grouping
596
+
597
+ **The problem:** AI-generated designs sometimes present all content as a flat list
598
+ without logical grouping. A settings page with 20 options all at the same level,
599
+ without sections or categories, is overwhelming.
600
+
601
+ **How to detect:** If a page has more than 7 items (Miller's law) at the same
602
+ visual level without grouping, it needs sections.
603
+
604
+ **How to fix:** Group related items using section headings, card containers, or
605
+ increased spacing between groups. Use the Gestalt principles of proximity and
606
+ common region.
607
+
608
+ ### 4.9 Self-Verification Checklist for AI-Generated Designs
609
+
610
+ Before finalizing any AI-generated layout, verify:
611
+
612
+ - [ ] Can you identify the single most important element within 2 seconds?
613
+ - [ ] Does the primary CTA have the highest visual weight on the page?
614
+ - [ ] Are there 3 or fewer competing focal points visible at once?
615
+ - [ ] Do all spacing values align to a 4px or 8px grid?
616
+ - [ ] Are font sizes limited to 3-5 distinct values?
617
+ - [ ] Is there at least a 1.2x ratio between adjacent type levels?
618
+ - [ ] Does button styling differentiate primary, secondary, and tertiary actions?
619
+ - [ ] Is body text left-aligned (not center-aligned)?
620
+ - [ ] Do touch targets meet platform minimums (44pt iOS, 48dp Android)?
621
+ - [ ] Does text contrast meet WCAG AA (4.5:1 normal, 3:1 large)?
622
+ - [ ] Are interactive elements visually distinct from static content?
623
+ - [ ] Does the layout follow a natural scanning pattern (F or Z)?
624
+ - [ ] Is whitespace used consistently and from a defined spacing scale?
625
+
626
+ ---
627
+
628
+ ## 5. Decision Framework
629
+
630
+ ### 5.1 When to Break Hierarchy Rules
631
+
632
+ Hierarchy rules are guidelines for common cases, not immutable laws. There are
633
+ legitimate reasons to break them:
634
+
635
+ **Break: Equal-weight CTAs (violating single-primary-action rule)**
636
+ When to break: A/B comparison screens, product comparison pages, or "Choose
637
+ your plan" layouts where the user genuinely needs to evaluate two equal options.
638
+ Dual-primary buttons are acceptable when the design intent is parity, not
639
+ priority.
640
+
641
+ **Break: Small touch targets (below 44pt / 48dp)**
642
+ When to break: Dense data tables, code editors, or professional tools where
643
+ users accept density trade-offs for efficiency. The target audience is desktop
644
+ users with a mouse. Always provide an accessible alternative (keyboard nav).
645
+
646
+ **Break: Center-aligned body text**
647
+ When to break: Poetry, quotes, or ceremonial/formal content where centered
648
+ alignment is a cultural convention. Keep it to 2-3 lines maximum.
649
+
650
+ **Break: More than 5 type sizes on a page**
651
+ When to break: Dashboard or analytics pages with multiple data visualization
652
+ levels (chart titles, axis labels, data values, annotations, legends). The
653
+ data complexity justifies additional levels, but each level must serve a clear
654
+ purpose.
655
+
656
+ **Break: Pure black text (#000000)**
657
+ When to break: High-contrast accessibility mode, where users have explicitly
658
+ opted in to maximum contrast. Respect user preferences over aesthetic guidelines.
659
+
660
+ **Break: Using motion for hierarchy**
661
+ When to break: Onboarding flows, empty states, or notification badges where a
662
+ subtle animation (pulse, fade-in) guides the user to an element they might
663
+ otherwise miss. Motion should be < 300ms and non-repeating after initial view.
664
+
665
+ ### 5.2 Trade-Off Matrices
666
+
667
+ #### Density vs. Clarity
668
+
669
+ | Scenario | Lean Toward Density | Lean Toward Clarity |
670
+ |----------|-------------------|-------------------|
671
+ | Professional/expert tool | Yes | -- |
672
+ | Consumer mobile app | -- | Yes |
673
+ | Data-entry form (daily use) | Yes | -- |
674
+ | Onboarding/first-time experience | -- | Yes |
675
+ | E-commerce product listing | Balanced | Balanced |
676
+ | Dashboard (monitoring) | Yes | -- |
677
+ | Marketing landing page | -- | Yes |
678
+ | Settings/preferences | Balanced | -- |
679
+
680
+ **Density indicators:** Smaller type (13-14px base), tighter spacing (4-8px gaps),
681
+ more items per viewport, smaller touch targets, multi-column layouts.
682
+
683
+ **Clarity indicators:** Larger type (16-18px base), generous spacing (16-24px gaps),
684
+ fewer items per viewport, large touch targets, single-column or wide-column layouts.
685
+
686
+ #### Aesthetics vs. Usability
687
+
688
+ | When they conflict... | Choose usability when... | Choose aesthetics when... |
689
+ |----------------------|--------------------------|--------------------------|
690
+ | CTA prominence | Users need to complete a task (checkout, signup) | Brand perception is the primary goal (portfolio, brand site) |
691
+ | Whitespace usage | Content comprehension is critical | Visual impact and emotional response matter more |
692
+ | Color palette | Accessibility requirements must be met (always) | Never -- accessibility is non-negotiable |
693
+ | Typography expressiveness | Readability of body text is at stake | Display/headline text where expressiveness enhances communication |
694
+ | Animation/motion | Performance or accessibility is impacted | Delight and engagement are primary metrics |
695
+
696
+ **Non-negotiable:** Accessibility (contrast ratios, touch targets, screen reader
697
+ support) should never be sacrificed for aesthetics. A beautiful design that
698
+ excludes 8-15% of users is a failed design.
699
+
700
+ #### Consistency vs. Emphasis
701
+
702
+ | Situation | Maintain Consistency | Break for Emphasis |
703
+ |-----------|--------------------|--------------------|
704
+ | Normal page content | Yes | -- |
705
+ | Error or critical alert | -- | Yes (color, size, position) |
706
+ | Primary CTA among many actions | -- | Yes (filled vs. outlined) |
707
+ | Navigation items | Yes (same weight, size) | -- |
708
+ | New feature callout | -- | Yes (badge, animation) |
709
+ | Status messages | Yes (consistent semantic colors) | -- |
710
+
711
+ ### 5.3 The Hierarchy Stress Test
712
+
713
+ Apply this three-step test to any layout:
714
+
715
+ **Step 1 -- The Blur Test:**
716
+ Apply a 5-8px Gaussian blur to the entire layout (or squint). The visual
717
+ hierarchy should still be readable: one dominant element, 2-3 supporting
718
+ elements, and a background of receding content. If the blurred layout looks
719
+ like uniform gray noise, the hierarchy has failed.
720
+
721
+ **Step 2 -- The 5-Second Test:**
722
+ Show the layout to someone for 5 seconds, then hide it. Ask: "What was this
723
+ page about? What were you supposed to do?" If they cannot answer both questions,
724
+ the hierarchy is not communicating intent.
725
+
726
+ **Step 3 -- The Grayscale Test:**
727
+ Convert the layout to grayscale. The hierarchy should still function through
728
+ size, weight, spacing, and position alone. If removing color destroys the
729
+ hierarchy, it was too dependent on color (violating accessibility principles).
730
+
731
+ ---
732
+
733
+ ## Quick Reference Checklist
734
+
735
+ Use this checklist to evaluate any interface layout for visual hierarchy quality.
736
+ Each item is pass/fail.
737
+
738
+ - [ ] **Single focal point:** One element clearly dominates the viewport (blur test passes)
739
+ - [ ] **Type scale discipline:** 3-5 font sizes maximum per screen, minimum 1.2x ratio between levels
740
+ - [ ] **Primary CTA prominence:** Primary action is filled/solid, 20-30% larger than secondary actions
741
+ - [ ] **Button hierarchy:** Max 1-2 filled buttons visible; secondary = outlined, tertiary = text-only
742
+ - [ ] **Contrast compliance:** All text meets WCAG AA (4.5:1 normal, 3:1 large text)
743
+ - [ ] **Color hierarchy:** Text uses 3 opacity levels (87%, 60%, 38%) or equivalent hex values
744
+ - [ ] **Spacing consistency:** All spacing values are multiples of 4px (or chosen base unit)
745
+ - [ ] **Internal <= external:** Padding within components is less than or equal to margins between them
746
+ - [ ] **Touch targets:** Interactive elements meet 44pt (iOS) or 48dp (Android) minimums
747
+ - [ ] **Alignment:** All elements align to a column grid; no orphaned alignments
748
+ - [ ] **Reading pattern:** Layout follows F-pattern (content) or Z-pattern (marketing) appropriately
749
+ - [ ] **Scanning anchors:** Headings are visually distinct and self-sufficient (layer-cake scannable)
750
+ - [ ] **Line length:** Body text is 60-80 characters per line (480-640px at 16px)
751
+ - [ ] **No visual shouting:** No more than 3 competing focal points per viewport
752
+ - [ ] **Text alignment:** Body text is left-aligned (LTR); center-alignment limited to short headings
753
+ - [ ] **Interactive distinction:** Links/buttons differ from static text by 2+ visual properties
754
+ - [ ] **Whitespace isolation:** Primary element has meaningful whitespace separation from neighbors
755
+ - [ ] **Grayscale test:** Hierarchy survives removal of color (size/weight/spacing carry it)
756
+ - [ ] **Platform compliance:** Typography and spacing follow platform-specific guidelines (M3 / HIG / Web)
757
+ - [ ] **Depth consistency:** Elevation/shadow levels are used consistently and in correct stacking order
758
+
759
+ ---
760
+
761
+ *Researched: 2026-03-07 | Sources: Material Design 3 (m3.material.io/styles/typography, m3.material.io/foundations/layout), Apple Human Interface Guidelines (developer.apple.com/design/human-interface-guidelines/typography), Ant Design (ant.design/docs/spec/font, ant.design/docs/spec/proximity), Nielsen Norman Group (nngroup.com/articles/f-shaped-pattern-reading-web-content-discovered, nngroup.com/articles/text-scanning-patterns-eyetracking, nngroup.com/articles/principles-visual-design), WCAG 2.1 (w3.org/WAI/WCAG21/Understanding/contrast-minimum, w3.org/WAI/WCAG21/Understanding/non-text-contrast), Interaction Design Foundation (ixdf.org/literature/topics/visual-hierarchy, ixdf.org/literature/topics/gestalt-principles), Smashing Magazine (smashingmagazine.com/2014/12/design-principles-visual-weight-direction)*