@caoscompanybr/merlin 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/.claude/CLAUDE.md +216 -0
  2. package/.claude/hooks/README-license-gate.md +45 -0
  3. package/.claude/hooks/auto-summarize.js +47 -0
  4. package/.claude/hooks/context-monitor.js +60 -0
  5. package/.claude/hooks/doc-sync.js +111 -0
  6. package/.claude/hooks/license-gate.cjs +59 -0
  7. package/.claude/hooks/session-reset.js +27 -0
  8. package/.claude/hooks/thoughts-indexer.js +80 -0
  9. package/.claude/rules/merlin-constitution.md +27 -0
  10. package/.merlin-core/commands/README.md +19 -0
  11. package/.merlin-core/commands/founder-mode.md +51 -0
  12. package/.merlin-core/commands/git/commit.md +35 -0
  13. package/.merlin-core/commands/git/describe-pr.md +43 -0
  14. package/.merlin-core/commands/git/safe-commit.md +182 -0
  15. package/.merlin-core/commands/implementation/implement-plan.md +129 -0
  16. package/.merlin-core/commands/implementation/oneshot.md +63 -0
  17. package/.merlin-core/commands/implementation/tdd.md +152 -0
  18. package/.merlin-core/commands/planning/create-plan.md +184 -0
  19. package/.merlin-core/commands/planning/iterate-plan.md +45 -0
  20. package/.merlin-core/commands/planning/validate-plan.md +48 -0
  21. package/.merlin-core/commands/research/analyze-issue.md +155 -0
  22. package/.merlin-core/commands/research/research-codebase.md +157 -0
  23. package/.merlin-core/commands/review/adversarial-review.md +112 -0
  24. package/.merlin-core/commands/review/check.md +91 -0
  25. package/.merlin-core/commands/review/debug.md +135 -0
  26. package/.merlin-core/commands/review/doubts.md +178 -0
  27. package/.merlin-core/commands/review/engineering-audit.md +87 -0
  28. package/.merlin-core/commands/review/local-review.md +48 -0
  29. package/.merlin-core/commands/review/verify-goals.md +83 -0
  30. package/.merlin-core/commands/session/capture-feedback.md +74 -0
  31. package/.merlin-core/commands/session/capture-learning.md +155 -0
  32. package/.merlin-core/commands/session/check-objectives.md +85 -0
  33. package/.merlin-core/commands/session/conclude.md +125 -0
  34. package/.merlin-core/commands/session/create-handoff.md +88 -0
  35. package/.merlin-core/commands/session/create-objective.md +111 -0
  36. package/.merlin-core/commands/session/create-process.md +105 -0
  37. package/.merlin-core/commands/session/create-reminder.md +86 -0
  38. package/.merlin-core/commands/session/fast-start.md +261 -0
  39. package/.merlin-core/commands/session/recall-learnings.md +79 -0
  40. package/.merlin-core/commands/session/recall-processes.md +74 -0
  41. package/.merlin-core/commands/session/resume-handoff.md +51 -0
  42. package/.merlin-core/commands/session/run-process.md +53 -0
  43. package/.merlin-core/commands/special/beauty.md +89 -0
  44. package/.merlin-core/commands/special/common-ground.md +114 -0
  45. package/.merlin-core/commands/special/elicit.md +98 -0
  46. package/.merlin-core/commands/special/party.md +66 -0
  47. package/.merlin-core/commands/special/scrape.md +78 -0
  48. package/.merlin-core/commands/special/skill-audit.md +128 -0
  49. package/.merlin-core/commands/special/start-here.md +132 -0
  50. package/.merlin-core/constitution.md +442 -0
  51. package/.merlin-core/core/README.md +19 -0
  52. package/.merlin-core/core/alkimia/README.md +20 -0
  53. package/.merlin-core/core/alkimia/context/context-tracker.js +209 -0
  54. package/.merlin-core/core/alkimia/domain/domain-loader.js +215 -0
  55. package/.merlin-core/core/alkimia/engine.js +284 -0
  56. package/.merlin-core/core/alkimia/layers/l0-constitution.js +47 -0
  57. package/.merlin-core/core/alkimia/layers/l1-global.js +58 -0
  58. package/.merlin-core/core/alkimia/layers/l2-agent.js +58 -0
  59. package/.merlin-core/core/alkimia/layers/l3-workflow.js +54 -0
  60. package/.merlin-core/core/alkimia/layers/l4-task.js +45 -0
  61. package/.merlin-core/core/alkimia/layers/l5-squad.js +161 -0
  62. package/.merlin-core/core/alkimia/layers/l6-skill.js +520 -0
  63. package/.merlin-core/core/alkimia/layers/l7-star-command.js +87 -0
  64. package/.merlin-core/core/alkimia/layers/layer-processor.js +78 -0
  65. package/.merlin-core/core/alkimia/mandate.js +46 -0
  66. package/.merlin-core/core/alkimia/memory/doc-sync.js +201 -0
  67. package/.merlin-core/core/alkimia/memory/document-sharder.js +272 -0
  68. package/.merlin-core/core/alkimia/memory/git-history-retriever.js +225 -0
  69. package/.merlin-core/core/alkimia/memory/memory-bridge.js +97 -0
  70. package/.merlin-core/core/alkimia/memory/session-analyzer.js +400 -0
  71. package/.merlin-core/core/alkimia/memory/thoughts-indexer.js +477 -0
  72. package/.merlin-core/core/alkimia/memory/thoughts-provider.js +603 -0
  73. package/.merlin-core/core/alkimia/output/formatter.js +464 -0
  74. package/.merlin-core/core/alkimia/security/content-sanitizer.js +140 -0
  75. package/.merlin-core/core/alkimia/skill-importer.js +440 -0
  76. package/.merlin-core/core/alkimia/squads/default/.synapse/manifest +17 -0
  77. package/.merlin-core/core/alkimia/utils/frontmatter.js +321 -0
  78. package/.merlin-core/core/alkimia/utils/tokens.js +24 -0
  79. package/.merlin-core/core/approval/README.md +16 -0
  80. package/.merlin-core/core/approval/approval-engine.js +380 -0
  81. package/.merlin-core/core/approval/channels/cli-channel.js +50 -0
  82. package/.merlin-core/core/config/README.md +17 -0
  83. package/.merlin-core/core/config/config-cache.js +182 -0
  84. package/.merlin-core/core/config/config-loader.js +279 -0
  85. package/.merlin-core/core/config/config-resolver.js +411 -0
  86. package/.merlin-core/core/config/env-interpolator.js +123 -0
  87. package/.merlin-core/core/config/merge-utils.js +102 -0
  88. package/.merlin-core/core/config/schemas/core-config.schema.json +41 -0
  89. package/.merlin-core/core/config/schemas/framework-config.schema.json +24 -0
  90. package/.merlin-core/core/config/schemas/local-config.schema.json +23 -0
  91. package/.merlin-core/core/config/schemas/project-config.schema.json +189 -0
  92. package/.merlin-core/core/docs-consistency.js +140 -0
  93. package/.merlin-core/core/events/event-bus.js +344 -0
  94. package/.merlin-core/core/events/hook-handler.js +419 -0
  95. package/.merlin-core/core/execution/README.md +17 -0
  96. package/.merlin-core/core/execution/attempt-journal.js +380 -0
  97. package/.merlin-core/core/execution/autonomous-build-loop.js +637 -0
  98. package/.merlin-core/core/execution/build-orchestrator.js +296 -0
  99. package/.merlin-core/core/execution/build-state-manager.js +196 -0
  100. package/.merlin-core/core/execution/context-injector.js +204 -0
  101. package/.merlin-core/core/execution/cron-engine.js +247 -0
  102. package/.merlin-core/core/execution/cron-expression.js +148 -0
  103. package/.merlin-core/core/execution/env-preflight.js +423 -0
  104. package/.merlin-core/core/execution/guardrail-engine.js +745 -0
  105. package/.merlin-core/core/execution/heartbeat-engine.js +198 -0
  106. package/.merlin-core/core/execution/model-router.js +282 -0
  107. package/.merlin-core/core/execution/parallel-executor.js +378 -0
  108. package/.merlin-core/core/execution/parallel-monitor.js +201 -0
  109. package/.merlin-core/core/execution/party-session.js +311 -0
  110. package/.merlin-core/core/execution/rate-limit-manager.js +152 -0
  111. package/.merlin-core/core/execution/result-aggregator.js +215 -0
  112. package/.merlin-core/core/execution/semantic-merge-engine.js +320 -0
  113. package/.merlin-core/core/execution/subagent-dispatcher.js +721 -0
  114. package/.merlin-core/core/execution/success-verifier.js +227 -0
  115. package/.merlin-core/core/execution/task-metadata.js +105 -0
  116. package/.merlin-core/core/execution/team-executor.js +195 -0
  117. package/.merlin-core/core/execution/two-tier-editor.js +290 -0
  118. package/.merlin-core/core/execution/version-snapshot.js +294 -0
  119. package/.merlin-core/core/execution/wave-executor.js +224 -0
  120. package/.merlin-core/core/health-check/health-engine.js +415 -0
  121. package/.merlin-core/core/licensing/activation.js +281 -0
  122. package/.merlin-core/core/licensing/crc.js +103 -0
  123. package/.merlin-core/core/licensing/entitlement.js +99 -0
  124. package/.merlin-core/core/licensing/fingerprint.js +104 -0
  125. package/.merlin-core/core/licensing/gate.js +133 -0
  126. package/.merlin-core/core/licensing/hmac.js +42 -0
  127. package/.merlin-core/core/licensing/key.js +144 -0
  128. package/.merlin-core/core/licensing/license.js +212 -0
  129. package/.merlin-core/core/mcp/README.md +16 -0
  130. package/.merlin-core/core/mcp/browser-capability.js +191 -0
  131. package/.merlin-core/core/mcp/capability-mapper.js +92 -0
  132. package/.merlin-core/core/mcp/mcp-connector.js +278 -0
  133. package/.merlin-core/core/mcp/mcp-registry.js +101 -0
  134. package/.merlin-core/core/orchestration/README.md +17 -0
  135. package/.merlin-core/core/orchestration/agent-invoker.js +456 -0
  136. package/.merlin-core/core/orchestration/condition-evaluator.js +250 -0
  137. package/.merlin-core/core/orchestration/decision-tree.js +192 -0
  138. package/.merlin-core/core/orchestration/executor-assignment.js +372 -0
  139. package/.merlin-core/core/orchestration/gate-evaluator.js +653 -0
  140. package/.merlin-core/core/orchestration/intent-classifier.js +579 -0
  141. package/.merlin-core/core/orchestration/lock-manager.js +308 -0
  142. package/.merlin-core/core/orchestration/master-orchestrator.js +363 -0
  143. package/.merlin-core/core/orchestration/phase-tool-masks.js +194 -0
  144. package/.merlin-core/core/orchestration/recovery-handler.js +402 -0
  145. package/.merlin-core/core/orchestration/reflect-checkpoint.js +431 -0
  146. package/.merlin-core/core/orchestration/session-state.js +430 -0
  147. package/.merlin-core/core/orchestration/skill-dispatcher.js +255 -0
  148. package/.merlin-core/core/orchestration/step-loader.js +226 -0
  149. package/.merlin-core/core/orchestration/workflow-executor.js +864 -0
  150. package/.merlin-core/core/process/executor.js +231 -0
  151. package/.merlin-core/core/process/process-file.js +50 -0
  152. package/.merlin-core/core/process/secret-scan.js +86 -0
  153. package/.merlin-core/core/process/signature.js +77 -0
  154. package/.merlin-core/core/quality-gates/README.md +17 -0
  155. package/.merlin-core/core/quality-gates/layer1-precommit.js +110 -0
  156. package/.merlin-core/core/quality-gates/layer2-pr-automation.js +116 -0
  157. package/.merlin-core/core/quality-gates/layer3-human-review.js +133 -0
  158. package/.merlin-core/core/registry/service-registry.js +140 -0
  159. package/.merlin-core/core-config.yaml +159 -0
  160. package/.merlin-core/development/README.md +17 -0
  161. package/.merlin-core/development/agents/README.md +16 -0
  162. package/.merlin-core/development/agents/analyst.md +214 -0
  163. package/.merlin-core/development/agents/architect.md +166 -0
  164. package/.merlin-core/development/agents/data-engineer.md +154 -0
  165. package/.merlin-core/development/agents/dev.md +203 -0
  166. package/.merlin-core/development/agents/devops.md +236 -0
  167. package/.merlin-core/development/agents/grimorio.md +125 -0
  168. package/.merlin-core/development/agents/merlin-master.md +173 -0
  169. package/.merlin-core/development/agents/meta.md +190 -0
  170. package/.merlin-core/development/agents/pm.md +145 -0
  171. package/.merlin-core/development/agents/po.md +172 -0
  172. package/.merlin-core/development/agents/qa.md +275 -0
  173. package/.merlin-core/development/agents/researcher.md +218 -0
  174. package/.merlin-core/development/agents/scout.md +179 -0
  175. package/.merlin-core/development/agents/sm.md +148 -0
  176. package/.merlin-core/development/agents/ux.md +169 -0
  177. package/.merlin-core/development/agents/web-researcher.md +203 -0
  178. package/.merlin-core/development/checklists/adversarial-review-checklist.md +70 -0
  179. package/.merlin-core/development/checklists/operations-ci-checklist.md +40 -0
  180. package/.merlin-core/development/checklists/operations-deploy-checklist.md +54 -0
  181. package/.merlin-core/development/checklists/operations-publish-checklist.md +47 -0
  182. package/.merlin-core/development/checklists/source-verification-checklist.md +38 -0
  183. package/.merlin-core/development/templates/HEARTBEAT-template.md +46 -0
  184. package/.merlin-core/development/templates/ears-requirements-template.md +93 -0
  185. package/.merlin-core/development/templates/handoff-template.md +50 -0
  186. package/.merlin-core/development/templates/prd-template.md +62 -0
  187. package/.merlin-core/development/templates/research-template.md +53 -0
  188. package/.merlin-core/development/templates/spec-template.md +84 -0
  189. package/.merlin-core/development/workflows/brownfield-discovery.yaml +166 -0
  190. package/.merlin-core/development/workflows/brownfield-service.yaml +52 -0
  191. package/.merlin-core/development/workflows/development-cycle.yaml +57 -0
  192. package/.merlin-core/development/workflows/epic-orchestration.yaml +47 -0
  193. package/.merlin-core/development/workflows/folloni-funnel.yaml +177 -0
  194. package/.merlin-core/development/workflows/greenfield-fullstack.yaml +167 -0
  195. package/.merlin-core/development/workflows/greenfield-service.yaml +56 -0
  196. package/.merlin-core/development/workflows/qa-loop.yaml +115 -0
  197. package/.merlin-core/development/workflows/spec-pipeline.yaml +185 -0
  198. package/.merlin-core/development/workflows/steps/folloni-01-research.yaml +35 -0
  199. package/.merlin-core/development/workflows/steps/folloni-02-architecture.yaml +41 -0
  200. package/.merlin-core/development/workflows/steps/folloni-03-implementation.yaml +52 -0
  201. package/.merlin-core/development/workflows/story-development-cycle.yaml +67 -0
  202. package/.merlin-core/docs/GUIDE.md +413 -0
  203. package/.merlin-core/docs/merlin-commands-guide-pt.md +183 -0
  204. package/.merlin-core/framework-config.yaml +148 -0
  205. package/.merlin-core/hooks/README.md +16 -0
  206. package/.merlin-core/hooks/precompact-memory-flush.js +69 -0
  207. package/.merlin-core/hooks/pretooluse-remote-approve.js +113 -0
  208. package/.merlin-core/hooks/spikes/spike-b-hook.js +70 -0
  209. package/.merlin-core/hooks/spikes/spike-b-stub.js +70 -0
  210. package/.merlin-core/index.js +91 -0
  211. package/.merlin-core/local-config.yaml.template +31 -0
  212. package/.merlin-core/mcp-servers/lsp-bridge/index.js +397 -0
  213. package/.merlin-core/modules/scraping/module.json +23 -0
  214. package/.merlin-core/project-config.yaml +89 -0
  215. package/.merlin-core/schemas/README.md +18 -0
  216. package/.merlin-core/schemas/agent-hook-schema.json +152 -0
  217. package/.merlin-core/schemas/agent-schema.json +31 -0
  218. package/.merlin-core/schemas/command-schema.json +18 -0
  219. package/.merlin-core/schemas/feedback-schema.json +36 -0
  220. package/.merlin-core/schemas/handoff-schema.json +19 -0
  221. package/.merlin-core/schemas/learning-schema.json +51 -0
  222. package/.merlin-core/schemas/module.schema.json +124 -0
  223. package/.merlin-core/schemas/must-haves-schema.json +95 -0
  224. package/.merlin-core/schemas/objective-schema.json +23 -0
  225. package/.merlin-core/schemas/plan-schema.json +20 -0
  226. package/.merlin-core/schemas/process-schema.json +82 -0
  227. package/.merlin-core/schemas/reminder-schema.json +20 -0
  228. package/.merlin-core/schemas/skill-eval-schema.json +92 -0
  229. package/.merlin-core/schemas/skill-schema.json +77 -0
  230. package/.merlin-core/schemas/workflow-schema.json +38 -0
  231. package/.merlin-core/skills/README.md +16 -0
  232. package/.merlin-core/skills/domain/azure-cloud/SKILL.md +211 -0
  233. package/.merlin-core/skills/domain/azure-cloud/references/appinsights-instrumentation.md +63 -0
  234. package/.merlin-core/skills/domain/azure-cloud/references/azure-compliance.md +99 -0
  235. package/.merlin-core/skills/domain/azure-cloud/references/azure-cost-optimization.md +419 -0
  236. package/.merlin-core/skills/domain/azure-cloud/references/azure-deploy.md +82 -0
  237. package/.merlin-core/skills/domain/azure-cloud/references/azure-diagnostics.md +130 -0
  238. package/.merlin-core/skills/domain/azure-cloud/references/azure-prepare.md +134 -0
  239. package/.merlin-core/skills/domain/azure-cloud/references/azure-quotas.md +290 -0
  240. package/.merlin-core/skills/domain/azure-cloud/references/azure-rbac.md +11 -0
  241. package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-lookup.md +97 -0
  242. package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-visualizer.md +178 -0
  243. package/.merlin-core/skills/domain/azure-cloud/references/azure-storage.md +91 -0
  244. package/.merlin-core/skills/domain/azure-cloud/references/azure-validate.md +58 -0
  245. package/.merlin-core/skills/domain/azure-cloud/references/entra-app-registration.md +192 -0
  246. package/.merlin-core/skills/domain/browser-automation/SKILL.md +311 -0
  247. package/.merlin-core/skills/domain/browser-automation/references/agent-browser-skill.md +632 -0
  248. package/.merlin-core/skills/domain/browser-automation/references/authentication.md +308 -0
  249. package/.merlin-core/skills/domain/browser-automation/references/commands.md +266 -0
  250. package/.merlin-core/skills/domain/browser-automation/references/profiling.md +120 -0
  251. package/.merlin-core/skills/domain/browser-automation/references/proxy-support.md +194 -0
  252. package/.merlin-core/skills/domain/browser-automation/references/session-management.md +194 -0
  253. package/.merlin-core/skills/domain/browser-automation/references/snapshot-refs.md +196 -0
  254. package/.merlin-core/skills/domain/browser-automation/references/video-recording.md +173 -0
  255. package/.merlin-core/skills/domain/browser-automation/templates/authenticated-session.sh +105 -0
  256. package/.merlin-core/skills/domain/browser-automation/templates/capture-workflow.sh +69 -0
  257. package/.merlin-core/skills/domain/browser-automation/templates/form-automation.sh +62 -0
  258. package/.merlin-core/skills/domain/digital-marketing/SKILL.md +292 -0
  259. package/.merlin-core/skills/domain/digital-marketing/references/content-strategy.md +320 -0
  260. package/.merlin-core/skills/domain/digital-marketing/references/copy-formats.md +298 -0
  261. package/.merlin-core/skills/domain/digital-marketing/references/copy-methodology.md +180 -0
  262. package/.merlin-core/skills/domain/digital-marketing/references/email-sequences.md +135 -0
  263. package/.merlin-core/skills/domain/digital-marketing/references/launch-strategy.md +213 -0
  264. package/.merlin-core/skills/domain/digital-marketing/references/pricing-strategy.md +160 -0
  265. package/.merlin-core/skills/domain/digital-marketing/references/programmatic-seo.md +237 -0
  266. package/.merlin-core/skills/domain/digital-marketing/references/revops-lifecycle.md +170 -0
  267. package/.merlin-core/skills/domain/digital-marketing/references/revops-operations.md +167 -0
  268. package/.merlin-core/skills/domain/digital-marketing/references/schema-markup.md +190 -0
  269. package/.merlin-core/skills/domain/digital-marketing/references/strategy-frameworks.md +324 -0
  270. package/.merlin-core/skills/domain/digital-marketing/references/traffic-management.md +350 -0
  271. package/.merlin-core/skills/domain/expo-native-ui/SKILL.md +348 -0
  272. package/.merlin-core/skills/domain/expo-native-ui/references/animations.md +220 -0
  273. package/.merlin-core/skills/domain/expo-native-ui/references/api-routes.md +361 -0
  274. package/.merlin-core/skills/domain/expo-native-ui/references/cicd-workflows.md +84 -0
  275. package/.merlin-core/skills/domain/expo-native-ui/references/controls.md +266 -0
  276. package/.merlin-core/skills/domain/expo-native-ui/references/data-fetching.md +553 -0
  277. package/.merlin-core/skills/domain/expo-native-ui/references/deployment-stores.md +1353 -0
  278. package/.merlin-core/skills/domain/expo-native-ui/references/deployment.md +183 -0
  279. package/.merlin-core/skills/domain/expo-native-ui/references/dev-client.md +166 -0
  280. package/.merlin-core/skills/domain/expo-native-ui/references/dom-components.md +410 -0
  281. package/.merlin-core/skills/domain/expo-native-ui/references/form-sheet.md +253 -0
  282. package/.merlin-core/skills/domain/expo-native-ui/references/gradients.md +117 -0
  283. package/.merlin-core/skills/domain/expo-native-ui/references/icons.md +218 -0
  284. package/.merlin-core/skills/domain/expo-native-ui/references/media.md +245 -0
  285. package/.merlin-core/skills/domain/expo-native-ui/references/platform-native.md +75 -0
  286. package/.merlin-core/skills/domain/expo-native-ui/references/route-structure.md +229 -0
  287. package/.merlin-core/skills/domain/expo-native-ui/references/search.md +249 -0
  288. package/.merlin-core/skills/domain/expo-native-ui/references/storage.md +121 -0
  289. package/.merlin-core/skills/domain/expo-native-ui/references/tabs.md +433 -0
  290. package/.merlin-core/skills/domain/expo-native-ui/references/tailwind-native.md +473 -0
  291. package/.merlin-core/skills/domain/expo-native-ui/references/toolbar-and-headers.md +284 -0
  292. package/.merlin-core/skills/domain/expo-native-ui/references/upgrading-guides.md +674 -0
  293. package/.merlin-core/skills/domain/expo-native-ui/references/upgrading.md +127 -0
  294. package/.merlin-core/skills/domain/expo-native-ui/references/visual-effects.md +199 -0
  295. package/.merlin-core/skills/domain/expo-native-ui/references/webgpu-three.md +605 -0
  296. package/.merlin-core/skills/domain/expo-native-ui/references/zoom-transitions.md +161 -0
  297. package/.merlin-core/skills/domain/marketing-ops/SKILL.md +117 -0
  298. package/.merlin-core/skills/domain/marketing-ops/references/_index.md +78 -0
  299. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/generative-tools.md +19 -0
  300. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/platform-specs.md +19 -0
  301. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative.md +251 -0
  302. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/ad-copy-templates.md +19 -0
  303. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/audience-targeting.md +19 -0
  304. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/conversion-tracking.md +19 -0
  305. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/platform-setup-checklists.md +19 -0
  306. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads.md +322 -0
  307. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-patterns.md +19 -0
  308. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-types.md +19 -0
  309. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/platform-ranking-factors.md +19 -0
  310. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo.md +388 -0
  311. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/apple-specs.md +19 -0
  312. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/benchmarks.md +19 -0
  313. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/google-play-specs.md +19 -0
  314. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/report-template.md +19 -0
  315. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/scoring-criteria.md +19 -0
  316. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso.md +316 -0
  317. package/.merlin-core/skills/domain/marketing-ops/references/acquire/co-marketing.md +305 -0
  318. package/.merlin-core/skills/domain/marketing-ops/references/acquire/community-marketing.md +169 -0
  319. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/templates.md +19 -0
  320. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/tool-reference.md +19 -0
  321. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling.md +442 -0
  322. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/content-architecture.md +19 -0
  323. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/templates.md +19 -0
  324. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors.md +281 -0
  325. package/.merlin-core/skills/domain/marketing-ops/references/acquire/content-strategy.md +16 -0
  326. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/directory-list.md +19 -0
  327. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/positioning-variations.md +19 -0
  328. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/submission-tracker-template.md +19 -0
  329. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions.md +396 -0
  330. package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools/references/tool-types.md +19 -0
  331. package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools.md +196 -0
  332. package/.merlin-core/skills/domain/marketing-ops/references/acquire/image/references/ai-image-prompting.md +19 -0
  333. package/.merlin-core/skills/domain/marketing-ops/references/acquire/image.md +352 -0
  334. package/.merlin-core/skills/domain/marketing-ops/references/acquire/launch.md +18 -0
  335. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/benchmarks.md +19 -0
  336. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/format-guide.md +19 -0
  337. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets.md +333 -0
  338. package/.merlin-core/skills/domain/marketing-ops/references/acquire/programmatic-seo.md +16 -0
  339. package/.merlin-core/skills/domain/marketing-ops/references/acquire/schema.md +16 -0
  340. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/ai-writing-detection.md +19 -0
  341. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/international-seo.md +19 -0
  342. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit.md +546 -0
  343. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/mermaid-templates.md +19 -0
  344. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/navigation-patterns.md +19 -0
  345. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/site-type-templates.md +19 -0
  346. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture.md +371 -0
  347. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platform-limits.md +19 -0
  348. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platforms.md +19 -0
  349. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/post-templates.md +19 -0
  350. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/reverse-engineering.md +19 -0
  351. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/short-form-video.md +19 -0
  352. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social.md +431 -0
  353. package/.merlin-core/skills/domain/marketing-ops/references/acquire/video/references/ai-video-prompting.md +19 -0
  354. package/.merlin-core/skills/domain/marketing-ops/references/acquire/video.md +353 -0
  355. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/sample-size-guide.md +19 -0
  356. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/test-templates.md +19 -0
  357. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing.md +379 -0
  358. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/event-library.md +19 -0
  359. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/ga4-implementation.md +19 -0
  360. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/gtm-implementation.md +19 -0
  361. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics.md +323 -0
  362. package/.merlin-core/skills/domain/marketing-ops/references/activate/copy-editing.md +18 -0
  363. package/.merlin-core/skills/domain/marketing-ops/references/activate/copywriting.md +18 -0
  364. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/experiments.md +19 -0
  365. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/form.md +19 -0
  366. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro.md +211 -0
  367. package/.merlin-core/skills/domain/marketing-ops/references/activate/emails.md +18 -0
  368. package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls/references/experiments.md +19 -0
  369. package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls.md +255 -0
  370. package/.merlin-core/skills/domain/marketing-ops/references/activate/popups.md +518 -0
  371. package/.merlin-core/skills/domain/marketing-ops/references/activate/pricing.md +18 -0
  372. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/deck-frameworks.md +19 -0
  373. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/demo-scripts.md +19 -0
  374. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/objection-library.md +19 -0
  375. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/one-pager-templates.md +19 -0
  376. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement.md +371 -0
  377. package/.merlin-core/skills/domain/marketing-ops/references/activate/signup.md +406 -0
  378. package/.merlin-core/skills/domain/marketing-ops/references/expand/co-marketing.md +18 -0
  379. package/.merlin-core/skills/domain/marketing-ops/references/expand/community-marketing.md +18 -0
  380. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/affiliate-programs.md +19 -0
  381. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/program-examples.md +19 -0
  382. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals.md +278 -0
  383. package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research/references/source-guides.md +425 -0
  384. package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research.md +284 -0
  385. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas/references/ideas-by-category.md +216 -0
  386. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas.md +188 -0
  387. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-psychology.md +532 -0
  388. package/.merlin-core/skills/domain/marketing-ops/references/foundation/product-marketing.md +276 -0
  389. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/cancel-flow-patterns.md +19 -0
  390. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/dunning-playbook.md +19 -0
  391. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention.md +442 -0
  392. package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding/references/experiments.md +19 -0
  393. package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding.md +243 -0
  394. package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-lifecycle.md +18 -0
  395. package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-operations.md +18 -0
  396. package/.merlin-core/skills/domain/n8n-automation/SKILL.md +149 -0
  397. package/.merlin-core/skills/domain/n8n-automation/references/code-javascript.md +3744 -0
  398. package/.merlin-core/skills/domain/n8n-automation/references/code-python.md +3293 -0
  399. package/.merlin-core/skills/domain/n8n-automation/references/expression-syntax.md +1662 -0
  400. package/.merlin-core/skills/domain/n8n-automation/references/mcp-tools-expert.md +2111 -0
  401. package/.merlin-core/skills/domain/n8n-automation/references/node-configuration.md +2523 -0
  402. package/.merlin-core/skills/domain/n8n-automation/references/validation-expert.md +2491 -0
  403. package/.merlin-core/skills/domain/n8n-automation/references/workflow-patterns.md +4624 -0
  404. package/.merlin-core/skills/domain/ops-manual/SKILL.md +225 -0
  405. package/.merlin-core/skills/domain/ops-manual/references/elicitation-questions.md +141 -0
  406. package/.merlin-core/skills/domain/ops-manual/references/external-skills-registry.md +63 -0
  407. package/.merlin-core/skills/domain/ops-manual/references/operations-template.yaml +132 -0
  408. package/.merlin-core/skills/domain/remotion-best-practices/SKILL.md +99 -0
  409. package/.merlin-core/skills/domain/remotion-best-practices/rules/3d.md +86 -0
  410. package/.merlin-core/skills/domain/remotion-best-practices/rules/animations.md +27 -0
  411. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  412. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  413. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  414. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets.md +78 -0
  415. package/.merlin-core/skills/domain/remotion-best-practices/rules/audio.md +172 -0
  416. package/.merlin-core/skills/domain/remotion-best-practices/rules/calculate-metadata.md +131 -0
  417. package/.merlin-core/skills/domain/remotion-best-practices/rules/can-decode.md +75 -0
  418. package/.merlin-core/skills/domain/remotion-best-practices/rules/charts.md +68 -0
  419. package/.merlin-core/skills/domain/remotion-best-practices/rules/compositions.md +154 -0
  420. package/.merlin-core/skills/domain/remotion-best-practices/rules/display-captions.md +126 -0
  421. package/.merlin-core/skills/domain/remotion-best-practices/rules/extract-frames.md +229 -0
  422. package/.merlin-core/skills/domain/remotion-best-practices/rules/fonts.md +152 -0
  423. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-audio-duration.md +58 -0
  424. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  425. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-duration.md +58 -0
  426. package/.merlin-core/skills/domain/remotion-best-practices/rules/gifs.md +144 -0
  427. package/.merlin-core/skills/domain/remotion-best-practices/rules/images.md +134 -0
  428. package/.merlin-core/skills/domain/remotion-best-practices/rules/import-srt-captions.md +67 -0
  429. package/.merlin-core/skills/domain/remotion-best-practices/rules/lottie.md +70 -0
  430. package/.merlin-core/skills/domain/remotion-best-practices/rules/maps.md +414 -0
  431. package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  432. package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-text.md +143 -0
  433. package/.merlin-core/skills/domain/remotion-best-practices/rules/parameters.md +109 -0
  434. package/.merlin-core/skills/domain/remotion-best-practices/rules/sequencing.md +118 -0
  435. package/.merlin-core/skills/domain/remotion-best-practices/rules/tailwind.md +11 -0
  436. package/.merlin-core/skills/domain/remotion-best-practices/rules/text-animations.md +20 -0
  437. package/.merlin-core/skills/domain/remotion-best-practices/rules/timing.md +179 -0
  438. package/.merlin-core/skills/domain/remotion-best-practices/rules/transcribe-captions.md +19 -0
  439. package/.merlin-core/skills/domain/remotion-best-practices/rules/transitions.md +137 -0
  440. package/.merlin-core/skills/domain/remotion-best-practices/rules/transparent-videos.md +106 -0
  441. package/.merlin-core/skills/domain/remotion-best-practices/rules/trimming.md +51 -0
  442. package/.merlin-core/skills/domain/remotion-best-practices/rules/videos.md +171 -0
  443. package/.merlin-core/skills/domain/resend-email/SKILL.md +377 -0
  444. package/.merlin-core/skills/general/adversarial-review/SKILL.md +144 -0
  445. package/.merlin-core/skills/general/api-design/SKILL.md +513 -0
  446. package/.merlin-core/skills/general/apify-scrape/SKILL.md +137 -0
  447. package/.merlin-core/skills/general/apify-scrape/scripts/apify-scrape.sh +68 -0
  448. package/.merlin-core/skills/general/backup/SKILL.md +87 -0
  449. package/.merlin-core/skills/general/blkskrn/SKILL.md +392 -0
  450. package/.merlin-core/skills/general/blkskrn/references/animation-patterns.md +521 -0
  451. package/.merlin-core/skills/general/blkskrn/references/design-system.md +637 -0
  452. package/.merlin-core/skills/general/blkskrn/references/html-templates.md +440 -0
  453. package/.merlin-core/skills/general/blkskrn/references/presenter-template.md +45 -0
  454. package/.merlin-core/skills/general/blkskrn/references/slide-types.md +424 -0
  455. package/.merlin-core/skills/general/blkskrn/scripts/canvas-manager.js +502 -0
  456. package/.merlin-core/skills/general/blkskrn/scripts/presenter.js +90 -0
  457. package/.merlin-core/skills/general/blkskrn/templates/presenter.html +273 -0
  458. package/.merlin-core/skills/general/blkskrn/templates/slide-base.html +277 -0
  459. package/.merlin-core/skills/general/blkskrn/templates/viewer.html +165 -0
  460. package/.merlin-core/skills/general/browser-takeover/SKILL.md +53 -0
  461. package/.merlin-core/skills/general/claude-api/SKILL.md +90 -0
  462. package/.merlin-core/skills/general/code-javascript/SKILL.md +268 -0
  463. package/.merlin-core/skills/general/code-python/SKILL.md +424 -0
  464. package/.merlin-core/skills/general/code-style/SKILL.md +97 -0
  465. package/.merlin-core/skills/general/code-typescript/SKILL.md +361 -0
  466. package/.merlin-core/skills/general/cold-email/SKILL.md +164 -0
  467. package/.merlin-core/skills/general/cold-email/references/benchmarks.md +18 -0
  468. package/.merlin-core/skills/general/cold-email/references/follow-up-sequences.md +18 -0
  469. package/.merlin-core/skills/general/cold-email/references/frameworks.md +18 -0
  470. package/.merlin-core/skills/general/cold-email/references/personalization.md +18 -0
  471. package/.merlin-core/skills/general/cold-email/references/subject-lines.md +18 -0
  472. package/.merlin-core/skills/general/container-security/SKILL.md +462 -0
  473. package/.merlin-core/skills/general/context-management/SKILL.md +79 -0
  474. package/.merlin-core/skills/general/copy-editing/SKILL.md +501 -0
  475. package/.merlin-core/skills/general/copy-editing/references/checklist.md +18 -0
  476. package/.merlin-core/skills/general/copy-editing/references/content-refresh.md +18 -0
  477. package/.merlin-core/skills/general/copy-editing/references/plain-english-alternatives.md +18 -0
  478. package/.merlin-core/skills/general/copywriting/SKILL.md +294 -0
  479. package/.merlin-core/skills/general/copywriting/references/copy-frameworks.md +392 -0
  480. package/.merlin-core/skills/general/copywriting/references/natural-transitions.md +276 -0
  481. package/.merlin-core/skills/general/database/SKILL.md +561 -0
  482. package/.merlin-core/skills/general/database/references/postgres-concurrency.md +182 -0
  483. package/.merlin-core/skills/general/database/references/postgres-connections.md +97 -0
  484. package/.merlin-core/skills/general/database/references/postgres-data-patterns.md +159 -0
  485. package/.merlin-core/skills/general/database/references/postgres-monitoring.md +136 -0
  486. package/.merlin-core/skills/general/database/references/postgres-rls.md +140 -0
  487. package/.merlin-core/skills/general/database-provision/SKILL.md +56 -0
  488. package/.merlin-core/skills/general/deploy/SKILL.md +65 -0
  489. package/.merlin-core/skills/general/design-inspiration/SKILL.md +146 -0
  490. package/.merlin-core/skills/general/design-palette/SKILL.md +99 -0
  491. package/.merlin-core/skills/general/design-palette/references/full-palettes.md +144 -0
  492. package/.merlin-core/skills/general/design-system/SKILL.md +94 -0
  493. package/.merlin-core/skills/general/design-typography/SKILL.md +115 -0
  494. package/.merlin-core/skills/general/design-typography/references/full-pairings.md +144 -0
  495. package/.merlin-core/skills/general/design-ux-patterns/SKILL.md +155 -0
  496. package/.merlin-core/skills/general/design-ux-patterns/references/charts-data-guidelines.md +197 -0
  497. package/.merlin-core/skills/general/design-ux-patterns/references/landing-patterns.md +199 -0
  498. package/.merlin-core/skills/general/design-ux-patterns/references/professional-ui-checklist.md +56 -0
  499. package/.merlin-core/skills/general/design-ux-patterns/references/style-catalog.md +89 -0
  500. package/.merlin-core/skills/general/design-ux-patterns/references/ux-guidelines.md +837 -0
  501. package/.merlin-core/skills/general/discover-cloud/SKILL.md +108 -0
  502. package/.merlin-core/skills/general/doc-sync/SKILL.md +52 -0
  503. package/.merlin-core/skills/general/document-sharding/SKILL.md +53 -0
  504. package/.merlin-core/skills/general/docx/SKILL.md +418 -0
  505. package/.merlin-core/skills/general/docx/references/windows-setup.md +27 -0
  506. package/.merlin-core/skills/general/docx/scripts/__init__.py +1 -0
  507. package/.merlin-core/skills/general/docx/scripts/accept_changes.py +135 -0
  508. package/.merlin-core/skills/general/docx/scripts/comment.py +318 -0
  509. package/.merlin-core/skills/general/docx/scripts/office/__init__.py +0 -0
  510. package/.merlin-core/skills/general/docx/scripts/office/helpers/__init__.py +0 -0
  511. package/.merlin-core/skills/general/docx/scripts/office/helpers/merge_runs.py +199 -0
  512. package/.merlin-core/skills/general/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  513. package/.merlin-core/skills/general/docx/scripts/office/pack.py +159 -0
  514. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  515. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  516. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  517. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  518. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  519. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  520. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  521. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  522. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  523. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  524. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  525. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  526. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  527. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  528. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  529. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  530. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  531. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  532. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  533. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  534. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  535. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  536. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  537. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  538. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  539. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  540. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  541. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  542. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  543. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  544. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  545. package/.merlin-core/skills/general/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  546. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  547. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  548. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  549. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  550. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  551. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  552. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  553. package/.merlin-core/skills/general/docx/scripts/office/soffice.py +183 -0
  554. package/.merlin-core/skills/general/docx/scripts/office/unpack.py +132 -0
  555. package/.merlin-core/skills/general/docx/scripts/office/validate.py +111 -0
  556. package/.merlin-core/skills/general/docx/scripts/office/validators/__init__.py +15 -0
  557. package/.merlin-core/skills/general/docx/scripts/office/validators/base.py +847 -0
  558. package/.merlin-core/skills/general/docx/scripts/office/validators/docx.py +446 -0
  559. package/.merlin-core/skills/general/docx/scripts/office/validators/pptx.py +275 -0
  560. package/.merlin-core/skills/general/docx/scripts/office/validators/redlining.py +247 -0
  561. package/.merlin-core/skills/general/docx/scripts/templates/comments.xml +3 -0
  562. package/.merlin-core/skills/general/docx/scripts/templates/commentsExtended.xml +3 -0
  563. package/.merlin-core/skills/general/docx/scripts/templates/commentsExtensible.xml +3 -0
  564. package/.merlin-core/skills/general/docx/scripts/templates/commentsIds.xml +3 -0
  565. package/.merlin-core/skills/general/docx/scripts/templates/people.xml +3 -0
  566. package/.merlin-core/skills/general/elicitation/SKILL.md +188 -0
  567. package/.merlin-core/skills/general/engineering-audit/SKILL.md +122 -0
  568. package/.merlin-core/skills/general/find-and-edit/SKILL.md +102 -0
  569. package/.merlin-core/skills/general/first-party-docs/SKILL.md +51 -0
  570. package/.merlin-core/skills/general/frontend-design/SKILL.md +204 -0
  571. package/.merlin-core/skills/general/guardrails/SKILL.md +144 -0
  572. package/.merlin-core/skills/general/image-gen/SKILL.md +49 -0
  573. package/.merlin-core/skills/general/learning-capture/SKILL.md +192 -0
  574. package/.merlin-core/skills/general/lgpd-compliance-audit/SKILL.md +448 -0
  575. package/.merlin-core/skills/general/load-testing/SKILL.md +114 -0
  576. package/.merlin-core/skills/general/load-testing/docker/Dockerfile.dashboard +21 -0
  577. package/.merlin-core/skills/general/load-testing/docker/docker-compose.locust.yml +39 -0
  578. package/.merlin-core/skills/general/load-testing/requirements.txt +1 -0
  579. package/.merlin-core/skills/general/load-testing/scripts/compare_baseline.py +172 -0
  580. package/.merlin-core/skills/general/load-testing/scripts/run_local.py +245 -0
  581. package/.merlin-core/skills/general/load-testing/templates/load_shape_stepped.py +35 -0
  582. package/.merlin-core/skills/general/load-testing/templates/locustfile_dashboard.py +47 -0
  583. package/.merlin-core/skills/general/load-testing/templates/threshold_hook.py +36 -0
  584. package/.merlin-core/skills/general/mage-beauty/SKILL.md +89 -0
  585. package/.merlin-core/skills/general/mage-beauty/references/anti-patterns.md +148 -0
  586. package/.merlin-core/skills/general/mage-beauty/references/color-and-contrast.md +87 -0
  587. package/.merlin-core/skills/general/mage-beauty/references/interaction-design.md +99 -0
  588. package/.merlin-core/skills/general/mage-beauty/references/motion-design.md +90 -0
  589. package/.merlin-core/skills/general/mage-beauty/references/remotion-bridge.md +187 -0
  590. package/.merlin-core/skills/general/mage-beauty/references/responsive-and-multi-format.md +98 -0
  591. package/.merlin-core/skills/general/mage-beauty/references/spatial-design.md +88 -0
  592. package/.merlin-core/skills/general/mage-beauty/references/typography.md +60 -0
  593. package/.merlin-core/skills/general/mage-beauty/references/verb-adapt.md +102 -0
  594. package/.merlin-core/skills/general/mage-beauty/references/verb-animate.md +97 -0
  595. package/.merlin-core/skills/general/mage-beauty/references/verb-audit.md +99 -0
  596. package/.merlin-core/skills/general/mage-beauty/references/verb-bolder.md +94 -0
  597. package/.merlin-core/skills/general/mage-beauty/references/verb-cinematic.md +128 -0
  598. package/.merlin-core/skills/general/mage-beauty/references/verb-clarify.md +107 -0
  599. package/.merlin-core/skills/general/mage-beauty/references/verb-colorize.md +106 -0
  600. package/.merlin-core/skills/general/mage-beauty/references/verb-critique.md +88 -0
  601. package/.merlin-core/skills/general/mage-beauty/references/verb-delight.md +98 -0
  602. package/.merlin-core/skills/general/mage-beauty/references/verb-distill.md +97 -0
  603. package/.merlin-core/skills/general/mage-beauty/references/verb-harden.md +79 -0
  604. package/.merlin-core/skills/general/mage-beauty/references/verb-layout.md +104 -0
  605. package/.merlin-core/skills/general/mage-beauty/references/verb-onboard.md +98 -0
  606. package/.merlin-core/skills/general/mage-beauty/references/verb-optimize.md +124 -0
  607. package/.merlin-core/skills/general/mage-beauty/references/verb-overdrive.md +105 -0
  608. package/.merlin-core/skills/general/mage-beauty/references/verb-polish.md +91 -0
  609. package/.merlin-core/skills/general/mage-beauty/references/verb-quieter.md +95 -0
  610. package/.merlin-core/skills/general/mage-beauty/references/verb-rebrand.md +127 -0
  611. package/.merlin-core/skills/general/mage-beauty/references/verb-shape.md +160 -0
  612. package/.merlin-core/skills/general/mage-beauty/references/verb-typeset.md +109 -0
  613. package/.merlin-core/skills/general/mage-beauty/references/voice-and-microcopy.md +137 -0
  614. package/.merlin-core/skills/general/mcp-builder/SKILL.md +92 -0
  615. package/.merlin-core/skills/general/network-debug/SKILL.md +51 -0
  616. package/.merlin-core/skills/general/next-best-practices/SKILL.md +177 -0
  617. package/.merlin-core/skills/general/next-best-practices/references/async-patterns.md +87 -0
  618. package/.merlin-core/skills/general/next-best-practices/references/bundling.md +182 -0
  619. package/.merlin-core/skills/general/next-best-practices/references/data-patterns.md +306 -0
  620. package/.merlin-core/skills/general/next-best-practices/references/debug-tricks.md +125 -0
  621. package/.merlin-core/skills/general/next-best-practices/references/directives.md +74 -0
  622. package/.merlin-core/skills/general/next-best-practices/references/error-handling.md +232 -0
  623. package/.merlin-core/skills/general/next-best-practices/references/file-conventions.md +141 -0
  624. package/.merlin-core/skills/general/next-best-practices/references/font.md +257 -0
  625. package/.merlin-core/skills/general/next-best-practices/references/functions.md +108 -0
  626. package/.merlin-core/skills/general/next-best-practices/references/hydration-error.md +88 -0
  627. package/.merlin-core/skills/general/next-best-practices/references/image.md +179 -0
  628. package/.merlin-core/skills/general/next-best-practices/references/metadata.md +296 -0
  629. package/.merlin-core/skills/general/next-best-practices/references/parallel-routes.md +298 -0
  630. package/.merlin-core/skills/general/next-best-practices/references/route-handlers.md +146 -0
  631. package/.merlin-core/skills/general/next-best-practices/references/rsc-boundaries.md +164 -0
  632. package/.merlin-core/skills/general/next-best-practices/references/runtime-selection.md +40 -0
  633. package/.merlin-core/skills/general/next-best-practices/references/scripts.md +141 -0
  634. package/.merlin-core/skills/general/next-best-practices/references/self-hosting.md +384 -0
  635. package/.merlin-core/skills/general/next-best-practices/references/suspense-boundaries.md +67 -0
  636. package/.merlin-core/skills/general/next-steps/SKILL.md +43 -0
  637. package/.merlin-core/skills/general/party-mode/SKILL.md +57 -0
  638. package/.merlin-core/skills/general/pdf/SKILL.md +298 -0
  639. package/.merlin-core/skills/general/pdf/references/forms.md +312 -0
  640. package/.merlin-core/skills/general/pdf/references/reference.md +640 -0
  641. package/.merlin-core/skills/general/pdf/references/windows-setup.md +40 -0
  642. package/.merlin-core/skills/general/pdf/scripts/check_bounding_boxes.py +65 -0
  643. package/.merlin-core/skills/general/pdf/scripts/check_fillable_fields.py +11 -0
  644. package/.merlin-core/skills/general/pdf/scripts/convert_pdf_to_images.py +33 -0
  645. package/.merlin-core/skills/general/pdf/scripts/create_validation_image.py +37 -0
  646. package/.merlin-core/skills/general/pdf/scripts/extract_form_field_info.py +122 -0
  647. package/.merlin-core/skills/general/pdf/scripts/extract_form_structure.py +115 -0
  648. package/.merlin-core/skills/general/pdf/scripts/fill_fillable_fields.py +98 -0
  649. package/.merlin-core/skills/general/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  650. package/.merlin-core/skills/general/pptx/SKILL.md +133 -0
  651. package/.merlin-core/skills/general/pptx/references/editing.md +213 -0
  652. package/.merlin-core/skills/general/pptx/references/pptxgenjs.md +581 -0
  653. package/.merlin-core/skills/general/pptx/references/windows-setup.md +27 -0
  654. package/.merlin-core/skills/general/pptx/scripts/__init__.py +0 -0
  655. package/.merlin-core/skills/general/pptx/scripts/add_slide.py +195 -0
  656. package/.merlin-core/skills/general/pptx/scripts/clean.py +286 -0
  657. package/.merlin-core/skills/general/pptx/scripts/thumbnail.py +289 -0
  658. package/.merlin-core/skills/general/property-testing/SKILL.md +214 -0
  659. package/.merlin-core/skills/general/purge-leaked-secret/SKILL.md +383 -0
  660. package/.merlin-core/skills/general/reflection/SKILL.md +100 -0
  661. package/.merlin-core/skills/general/secret-safe-commit/SKILL.md +246 -0
  662. package/.merlin-core/skills/general/secret-safe-commit/templates/.gitleaks.toml +91 -0
  663. package/.merlin-core/skills/general/secret-safe-commit/templates/.pre-commit-config.yaml +57 -0
  664. package/.merlin-core/skills/general/secret-safe-commit/templates/secret-scan.yml +48 -0
  665. package/.merlin-core/skills/general/semantic-search/SKILL.md +79 -0
  666. package/.merlin-core/skills/general/skill-creator/SKILL.md +342 -0
  667. package/.merlin-core/skills/general/skill-creator/agents/analyzer.md +283 -0
  668. package/.merlin-core/skills/general/skill-creator/agents/comparator.md +211 -0
  669. package/.merlin-core/skills/general/skill-creator/agents/grader.md +227 -0
  670. package/.merlin-core/skills/general/skill-creator/assets/eval_review.html +146 -0
  671. package/.merlin-core/skills/general/skill-creator/eval-viewer/generate_review.py +471 -0
  672. package/.merlin-core/skills/general/skill-creator/eval-viewer/viewer.html +1325 -0
  673. package/.merlin-core/skills/general/skill-creator/references/schemas.md +439 -0
  674. package/.merlin-core/skills/general/skill-creator/scripts/__init__.py +0 -0
  675. package/.merlin-core/skills/general/skill-creator/scripts/aggregate_benchmark.py +401 -0
  676. package/.merlin-core/skills/general/skill-creator/scripts/generate_report.py +326 -0
  677. package/.merlin-core/skills/general/skill-creator/scripts/improve_description.py +247 -0
  678. package/.merlin-core/skills/general/skill-creator/scripts/package_skill.py +136 -0
  679. package/.merlin-core/skills/general/skill-creator/scripts/quick_validate.py +103 -0
  680. package/.merlin-core/skills/general/skill-creator/scripts/run_eval.py +310 -0
  681. package/.merlin-core/skills/general/skill-creator/scripts/run_loop.py +328 -0
  682. package/.merlin-core/skills/general/skill-creator/scripts/utils.py +47 -0
  683. package/.merlin-core/skills/general/start-here/SKILL.md +63 -0
  684. package/.merlin-core/skills/general/start-here/recipes.json +758 -0
  685. package/.merlin-core/skills/general/start-here/recipes.schema.json +57 -0
  686. package/.merlin-core/skills/general/static-analysis/SKILL.md +151 -0
  687. package/.merlin-core/skills/general/tailwind-design-system/SKILL.md +201 -0
  688. package/.merlin-core/skills/general/tailwind-design-system/references/advanced-v4.md +152 -0
  689. package/.merlin-core/skills/general/tailwind-design-system/references/component-patterns.md +353 -0
  690. package/.merlin-core/skills/general/teach-method/SKILL.md +86 -0
  691. package/.merlin-core/skills/general/team-execution/SKILL.md +67 -0
  692. package/.merlin-core/skills/general/testing/SKILL.md +412 -0
  693. package/.merlin-core/skills/general/token-economy/SKILL.md +55 -0
  694. package/.merlin-core/skills/general/vps-security-hardening/SKILL.md +406 -0
  695. package/.merlin-core/skills/general/web-quality/SKILL.md +180 -0
  696. package/.merlin-core/skills/general/webapp-testing/SKILL.md +153 -0
  697. package/.merlin-core/skills/general/webapp-testing/scripts/screenshot_compare.py +72 -0
  698. package/.merlin-core/skills/general/webapp-testing/scripts/with_server.py +103 -0
  699. package/.merlin-core/skills/general/xlsx/SKILL.md +167 -0
  700. package/.merlin-core/skills/general/xlsx/references/nodejs-sheetjs-styled-reports.md +141 -0
  701. package/.merlin-core/skills/general/xlsx/references/windows-setup.md +17 -0
  702. package/.merlin-core/skills/general/xlsx/scripts/recalc.py +184 -0
  703. package/.merlin-core/skills/general/xlsx/scripts/styled-report.js +130 -0
  704. package/.merlin-core/skills/general/yolo-mode/SKILL.md +60 -0
  705. package/.merlin-core/skills/general/youtube-transcript/SKILL.md +177 -0
  706. package/.merlin-core/skills/general/youtube-transcript/scripts/fetch_transcript.py +188 -0
  707. package/.merlin-core/skills/general/youtube-transcript/scripts/gladia_transcribe.mjs +230 -0
  708. package/.merlin-core/tools/commands/activate.js +72 -0
  709. package/.merlin-core/tools/commands/archive-thoughts.js +181 -0
  710. package/.merlin-core/tools/commands/backup.js +156 -0
  711. package/.merlin-core/tools/commands/certify-process.js +196 -0
  712. package/.merlin-core/tools/commands/convert.js +87 -0
  713. package/.merlin-core/tools/commands/cron.js +147 -0
  714. package/.merlin-core/tools/commands/disable.js +73 -0
  715. package/.merlin-core/tools/commands/doc-sync.js +127 -0
  716. package/.merlin-core/tools/commands/eval-skill.js +193 -0
  717. package/.merlin-core/tools/commands/frontmatter.js +49 -0
  718. package/.merlin-core/tools/commands/heartbeat.js +43 -0
  719. package/.merlin-core/tools/commands/index-thoughts.js +35 -0
  720. package/.merlin-core/tools/commands/install-remote-approve.js +184 -0
  721. package/.merlin-core/tools/commands/install.js +81 -0
  722. package/.merlin-core/tools/commands/lib/__verify__/diff-reports.js +170 -0
  723. package/.merlin-core/tools/commands/lib/fs-safe.js +186 -0
  724. package/.merlin-core/tools/commands/lib/preflight.js +607 -0
  725. package/.merlin-core/tools/commands/lib/preserve.js +232 -0
  726. package/.merlin-core/tools/commands/lib/project-config.template.yaml +69 -0
  727. package/.merlin-core/tools/commands/lib/report.js +231 -0
  728. package/.merlin-core/tools/commands/lib/settings-merge.js +134 -0
  729. package/.merlin-core/tools/commands/license.js +52 -0
  730. package/.merlin-core/tools/commands/list.js +125 -0
  731. package/.merlin-core/tools/commands/migrate-alkimia.js +271 -0
  732. package/.merlin-core/tools/commands/modules.js +68 -0
  733. package/.merlin-core/tools/commands/provision.js +83 -0
  734. package/.merlin-core/tools/commands/prune-feedback.js +114 -0
  735. package/.merlin-core/tools/commands/run-process.js +28 -0
  736. package/.merlin-core/tools/commands/state.js +79 -0
  737. package/.merlin-core/tools/commands/sync-bridges.js +197 -0
  738. package/.merlin-core/tools/commands/upgrade.js +1135 -0
  739. package/.merlin-core/tools/commands/validate-recipes.js +218 -0
  740. package/.merlin-core/tools/commands/validate.js +159 -0
  741. package/.merlin-core/tools/commands/yolo.js +82 -0
  742. package/.merlin-core/tools/compose-rules.mjs +179 -0
  743. package/.merlin-core/tools/disable-module.mjs +150 -0
  744. package/.merlin-core/tools/lib/deployer.mjs +131 -0
  745. package/.merlin-core/tools/lib/modules-activation.mjs +225 -0
  746. package/.merlin-core/tools/merlin-tools.js +153 -0
  747. package/.merlin-core/tools/migrate-frontmatter-v3.js +192 -0
  748. package/.merlin-core/tools/modules-catalog.mjs +174 -0
  749. package/.merlin-core/tools/provision-module.mjs +191 -0
  750. package/.merlin-core/tools/verify-module.mjs +99 -0
  751. package/.merlin-core/tools/vps-security-audit.sh +234 -0
  752. package/INSTALL.md +312 -0
  753. package/LICENSE +118 -0
  754. package/PRIVACY-LICENSING.md +65 -0
  755. package/README.md +391 -0
  756. package/bin/README.md +15 -0
  757. package/bin/convert-to-merlin.sh +109 -0
  758. package/bin/fleet-patch-hooks.sh +144 -0
  759. package/bin/fleet-patch-v3-fixes.sh +127 -0
  760. package/bin/merlin-init.js +232 -0
  761. package/bin/merlin.js +321 -0
  762. package/package.json +127 -0
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: design-typography
3
+ description: Font pairing intelligence — curated pairings by mood and industry, with ready-to-use CSS imports and Tailwind configs.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: merlin-framework
7
+ version: "3.0.0"
8
+ auto_activate: [typography, typeface, font-pairing, type-scale, google-fonts]
9
+ file_triggers: [*.css, *.scss, tailwind.config.*]
10
+ tool_reminders: [Maximum 2 font families per project — one for headings, one for body (or single family for both), Minimum 16px body font size — never smaller for readability, Always provide Google Fonts import or next/font config for chosen pairing]
11
+ ---
12
+
13
+ ## Font Selection Workflow
14
+
15
+ 1. **Identify mood** — What feeling should the typography convey? (professional, playful, elegant, technical, friendly)
16
+ 2. **Match industry** — Use the product type to narrow category (Serif+Sans for luxury, Mono+Sans for dev tools, etc.)
17
+ 3. **Select pairing** — Pick from the quick reference table below or the full catalog in `references/full-pairings.md`
18
+ 4. **Implement** — Use the provided CSS import / Tailwind config from the catalog
19
+ 5. **Verify** — Check line height (1.5 body, 1.2 headings), line length (65-75ch), and minimum 16px body
20
+
21
+ ## Quick Reference: Top 20 Font Pairings
22
+
23
+ | # | Pairing Name | Heading | Body | Category | Best For |
24
+ | --- | ------------------- | --------------------- | --------------------- | ------------ | ----------------------------- |
25
+ | 1 | Classic Elegant | Playfair Display | Inter | Serif + Sans | Luxury, fashion, editorial |
26
+ | 2 | Modern Professional | Poppins | Inter | Sans + Sans | SaaS, corporate, clean |
27
+ | 3 | Tech Startup | Space Grotesk | DM Sans | Sans + Sans | Startups, tech, modern |
28
+ | 4 | Editorial Premium | Lora | Source Sans 3 | Serif + Sans | Blogs, magazines, content |
29
+ | 5 | Minimal Swiss | Inter | Inter | Sans + Sans | Minimal, dashboard, utility |
30
+ | 6 | Creative Bold | Sora | Nunito | Sans + Sans | Creative, portfolio, agency |
31
+ | 7 | Corporate Trust | Merriweather | Open Sans | Serif + Sans | Finance, legal, consulting |
32
+ | 8 | Friendly Warm | Quicksand | Nunito | Sans + Sans | Education, kids, casual |
33
+ | 9 | Developer Mono | JetBrains Mono | IBM Plex Sans | Mono + Sans | Dev tools, code, technical |
34
+ | 10 | Luxury Display | Cormorant Garamond | Montserrat | Serif + Sans | Luxury, spa, high-end |
35
+ | 11 | News Editorial | Source Serif 4 | Source Sans 3 | Serif + Sans | News, publishing, long-form |
36
+ | 12 | Geometric Clean | Outfit | Work Sans | Sans + Sans | Modern SaaS, fintech |
37
+ | 13 | Playful Rounded | Nunito | Quicksand | Sans + Sans | Kids, games, casual apps |
38
+ | 14 | Brutalist Raw | Space Mono | Space Mono | Mono + Mono | Portfolio, creative, bold |
39
+ | 15 | Healthcare Calm | Libre Franklin | Lato | Sans + Sans | Healthcare, wellness, calm |
40
+ | 16 | E-commerce Trust | Rubik | Open Sans | Sans + Sans | E-commerce, marketplace |
41
+ | 17 | Dashboard Data | IBM Plex Sans | IBM Plex Mono | Sans + Mono | Dashboards, analytics, data |
42
+ | 18 | Crypto Web3 | Orbitron | Exo 2 | Sans + Sans | Crypto, Web3, futuristic |
43
+ | 19 | Accessibility First | Atkinson Hyperlegible | Atkinson Hyperlegible | Sans + Sans | Accessibility-critical, gov |
44
+ | 20 | Restaurant Charm | Playfair Display | Lato | Serif + Sans | Restaurant, food, hospitality |
45
+
46
+ For the complete 57-pairing catalog with CSS imports and Tailwind configs, read `references/full-pairings.md`.
47
+
48
+ ## Implementation Patterns
49
+
50
+ **Vanilla CSS (Google Fonts):**
51
+
52
+ ```css
53
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@600;700&display=swap");
54
+
55
+ :root {
56
+ --font-heading: "Poppins", sans-serif;
57
+ --font-body: "Inter", sans-serif;
58
+ }
59
+ ```
60
+
61
+ **Tailwind CSS:**
62
+
63
+ ```js
64
+ // tailwind.config.js
65
+ module.exports = {
66
+ theme: {
67
+ fontFamily: {
68
+ heading: ["Poppins", "sans-serif"],
69
+ body: ["Inter", "sans-serif"],
70
+ },
71
+ },
72
+ };
73
+ ```
74
+
75
+ **Next.js (next/font — best performance):**
76
+
77
+ ```tsx
78
+ import { Inter, Poppins } from "next/font/google";
79
+
80
+ const inter = Inter({ subsets: ["latin"], variable: "--font-body" });
81
+ const poppins = Poppins({
82
+ weight: ["600", "700"],
83
+ subsets: ["latin"],
84
+ variable: "--font-heading",
85
+ });
86
+
87
+ export default function RootLayout({ children }) {
88
+ return (
89
+ <html className={`${inter.variable} ${poppins.variable}`}>{children}</html>
90
+ );
91
+ }
92
+ ```
93
+
94
+ ## Typography Rules
95
+
96
+ **Type Scale (1.25 ratio — major third):**
97
+
98
+ | Token | Size | Use |
99
+ | --------- | --------------- | ---------------------- |
100
+ | text-xs | 12px / 0.75rem | Captions, fine print |
101
+ | text-sm | 14px / 0.875rem | Labels, secondary text |
102
+ | text-base | 16px / 1rem | Body text (minimum) |
103
+ | text-lg | 20px / 1.25rem | Lead paragraphs |
104
+ | text-xl | 25px / 1.563rem | H4, card titles |
105
+ | text-2xl | 31px / 1.953rem | H3, section titles |
106
+ | text-3xl | 39px / 2.441rem | H2, page titles |
107
+ | text-4xl | 49px / 3.052rem | H1, hero titles |
108
+
109
+ **Line Height:** 1.5 for body text, 1.2 for headings, 1.7 for long-form reading
110
+
111
+ **Line Length:** 65-75 characters per line for optimal readability (use `max-w-prose` in Tailwind)
112
+
113
+ **Font Weights:** Limit to 3 weights per family (e.g., 400 regular, 500 medium, 700 bold) to minimize load
114
+
115
+ **Font Loading:** Always use `display=swap` for Google Fonts to prevent FOIT (Flash of Invisible Text)
@@ -0,0 +1,144 @@
1
+ # Complete Font Pairing Catalog (57 Pairings)
2
+
3
+ > Reference data for the design-typography skill. Agents should Read this file when they need the full pairing catalog with implementation code.
4
+
5
+ ## Serif + Sans Serif Pairings (1-15)
6
+
7
+ | # | Pairing Name | Heading | Body | Mood | Best For | Google Fonts URL |
8
+ | --- | ----------------- | ------------------ | ------------- | ------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------- |
9
+ | 1 | Classic Elegant | Playfair Display | Inter | Elegant, sophisticated | Luxury, fashion, editorial | fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Inter:wght@400;500;600 |
10
+ | 2 | Editorial Premium | Lora | Source Sans 3 | Warm, authoritative | Blogs, magazines, content | fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Source+Sans+3:wght@400;500;600 |
11
+ | 3 | Corporate Trust | Merriweather | Open Sans | Trustworthy, professional | Finance, legal, consulting | fonts.googleapis.com/css2?family=Merriweather:wght@700&family=Open+Sans:wght@400;500;600 |
12
+ | 4 | Luxury Display | Cormorant Garamond | Montserrat | Refined, premium | Luxury, spa, high-end | fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Montserrat:wght@400;500 |
13
+ | 5 | News Editorial | Source Serif 4 | Source Sans 3 | Authoritative, readable | News, publishing | fonts.googleapis.com/css2?family=Source+Serif+4:wght@600;700&family=Source+Sans+3:wght@400;500 |
14
+ | 6 | Restaurant Charm | Playfair Display | Lato | Warm, inviting | Restaurant, food | fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Lato:wght@400;700 |
15
+ | 7 | Storytelling | Vollkorn | Karla | Narrative, warm | Storytelling, blogs | fonts.googleapis.com/css2?family=Vollkorn:wght@600;700&family=Karla:wght@400;500 |
16
+ | 8 | Academic Classic | Crimson Pro | Work Sans | Scholarly, clear | University, academic | fonts.googleapis.com/css2?family=Crimson+Pro:wght@600;700&family=Work+Sans:wght@400;500 |
17
+ | 9 | Boutique Refined | DM Serif Display | DM Sans | Elegant, modern | Boutique, artisan | fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@400;500;700 |
18
+ | 10 | Heritage | Bitter | Cabin | Grounded, reliable | Heritage brands, artisan | fonts.googleapis.com/css2?family=Bitter:wght@600;700&family=Cabin:wght@400;500;600 |
19
+ | 11 | Legal Formal | Noto Serif | Noto Sans | Formal, universal | Legal, government | fonts.googleapis.com/css2?family=Noto+Serif:wght@600;700&family=Noto+Sans:wght@400;500;600 |
20
+ | 12 | Magazine Style | Fraunces | Commissioner | Expressive, editorial | Magazine, lifestyle | fonts.googleapis.com/css2?family=Fraunces:wght@600;700&family=Commissioner:wght@400;500 |
21
+ | 13 | Wedding Romantic | Cormorant Garamond | Quicksand | Romantic, gentle | Wedding, events | fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Quicksand:wght@400;500 |
22
+ | 14 | Book Layout | Libre Baskerville | Source Sans 3 | Classic, readable | Long-form reading | fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Source+Sans+3:wght@400;500 |
23
+ | 15 | Museum / Gallery | Spectral | Inter | Curated, refined | Art, gallery, museum | fonts.googleapis.com/css2?family=Spectral:wght@500;600;700&family=Inter:wght@400;500 |
24
+
25
+ ## Sans + Sans Pairings (16-38)
26
+
27
+ | # | Pairing Name | Heading | Body | Mood | Best For | Google Fonts URL |
28
+ | --- | ------------------- | --------------------- | --------------------- | ---------------------- | --------------------------- | --------------------------------------------------------------------------------------------- |
29
+ | 16 | Modern Professional | Poppins | Inter | Clean, professional | SaaS, corporate | fonts.googleapis.com/css2?family=Poppins:wght@600;700&family=Inter:wght@400;500;600 |
30
+ | 17 | Tech Startup | Space Grotesk | DM Sans | Modern, technical | Startups, tech | fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=DM+Sans:wght@400;500 |
31
+ | 18 | Minimal Swiss | Inter | Inter | Minimal, utility | Dashboards, utility | fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700 |
32
+ | 19 | Creative Bold | Sora | Nunito | Creative, energetic | Portfolio, agency | fonts.googleapis.com/css2?family=Sora:wght@600;700&family=Nunito:wght@400;500;600 |
33
+ | 20 | Friendly Warm | Quicksand | Nunito | Friendly, approachable | Education, kids | fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Nunito:wght@400;500 |
34
+ | 21 | Geometric Clean | Outfit | Work Sans | Geometric, clean | Fintech, modern SaaS | fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Work+Sans:wght@400;500 |
35
+ | 22 | Playful Rounded | Nunito | Quicksand | Playful, soft | Kids, games, casual | fonts.googleapis.com/css2?family=Nunito:wght@600;700&family=Quicksand:wght@400;500 |
36
+ | 23 | Healthcare Calm | Libre Franklin | Lato | Calm, trustworthy | Healthcare, wellness | fonts.googleapis.com/css2?family=Libre+Franklin:wght@500;600;700&family=Lato:wght@400;700 |
37
+ | 24 | E-commerce Trust | Rubik | Open Sans | Trustworthy, practical | E-commerce, marketplace | fonts.googleapis.com/css2?family=Rubik:wght@500;600;700&family=Open+Sans:wght@400;500;600 |
38
+ | 25 | Crypto Web3 | Orbitron | Exo 2 | Futuristic, technical | Crypto, Web3 | fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Exo+2:wght@400;500 |
39
+ | 26 | Sports Energy | Barlow Condensed | Barlow | Dynamic, athletic | Sports, fitness | fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Barlow:wght@400;500 |
40
+ | 27 | Fintech Precision | Plus Jakarta Sans | Inter | Sharp, precise | Fintech, trading | fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700&family=Inter:wght@400;500 |
41
+ | 28 | Social Friendly | Manrope | Nunito Sans | Friendly, social | Social media, community | fonts.googleapis.com/css2?family=Manrope:wght@500;600;700&family=Nunito+Sans:wght@400;500 |
42
+ | 29 | Government Neutral | Public Sans | Public Sans | Neutral, accessible | Government, civic | fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700 |
43
+ | 30 | Startup Fresh | Albert Sans | DM Sans | Fresh, modern | Startup, product | fonts.googleapis.com/css2?family=Albert+Sans:wght@500;600;700&family=DM+Sans:wght@400;500 |
44
+ | 31 | Data Dashboard | Geist | Geist | Technical, clean | Dashboards, analytics | Self-hosted (Vercel Geist) — use next/font/local |
45
+ | 32 | Accessibility | Atkinson Hyperlegible | Atkinson Hyperlegible | Clear, accessible | Accessibility-critical, gov | fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700 |
46
+ | 33 | Travel Adventure | Josefin Sans | Raleway | Adventurous, open | Travel, outdoor | fonts.googleapis.com/css2?family=Josefin+Sans:wght@600;700&family=Raleway:wght@400;500 |
47
+ | 34 | Music Bold | Urbanist | Outfit | Bold, rhythmic | Music, entertainment | fonts.googleapis.com/css2?family=Urbanist:wght@600;700;800&family=Outfit:wght@400;500 |
48
+ | 35 | Real Estate | Lexend | Inter | Clear, trustworthy | Real estate, property | fonts.googleapis.com/css2?family=Lexend:wght@500;600;700&family=Inter:wght@400;500 |
49
+ | 36 | Science Research | IBM Plex Sans | IBM Plex Sans | Technical, precise | Science, research | fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700 |
50
+ | 37 | Non-Profit Warm | Cabin | Hind | Warm, inclusive | Non-profit, NGO | fonts.googleapis.com/css2?family=Cabin:wght@500;600;700&family=Hind:wght@400;500 |
51
+ | 38 | Kids Bubble | Baloo 2 | Nunito | Fun, bubbly | Kids apps, children | fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Nunito:wght@400;500 |
52
+
53
+ ## Monospace & Display Pairings (39-50)
54
+
55
+ | # | Pairing Name | Heading | Body | Mood | Best For | Google Fonts URL |
56
+ | --- | ----------------- | ---------------- | -------------- | -------------------- | ----------------------- | ------------------------------------------------------------------------------------------------- |
57
+ | 39 | Developer Mono | JetBrains Mono | IBM Plex Sans | Technical, precise | Dev tools, code docs | fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;700&family=IBM+Plex+Sans:wght@400;500 |
58
+ | 40 | Dashboard Data | IBM Plex Sans | IBM Plex Mono | Data-focused | Dashboards, analytics | fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500 |
59
+ | 41 | Brutalist Raw | Space Mono | Space Mono | Raw, bold | Portfolio, creative | fonts.googleapis.com/css2?family=Space+Mono:wght@400;700 |
60
+ | 42 | Terminal | Fira Code | Fira Sans | Hacker, terminal | Developer tools, CLI | fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;700&family=Fira+Sans:wght@400;500 |
61
+ | 43 | Retro Code | VT323 | Press Start 2P | Retro, pixel | Gaming retro, nostalgic | fonts.googleapis.com/css2?family=VT323&family=Press+Start+2P |
62
+ | 44 | Typewriter | Courier Prime | Lato | Typewriter, literary | Writing, publishing | fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&family=Lato:wght@400;700 |
63
+ | 45 | Science Fiction | Orbitron | Rajdhani | Sci-fi, futuristic | Gaming, sci-fi | fonts.googleapis.com/css2?family=Orbitron:wght@500;700&family=Rajdhani:wght@400;500;600 |
64
+ | 46 | Pixel Retro | Press Start 2P | VT323 | Pixelated, arcade | Retro gaming | fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323 |
65
+ | 47 | Handwritten Touch | Caveat | Inter | Personal, hand-drawn | Personal brand, casual | fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=Inter:wght@400;500 |
66
+ | 48 | Neon Display | Bungee | DM Sans | Bold, attention | Posters, landing hero | fonts.googleapis.com/css2?family=Bungee&family=DM+Sans:wght@400;500 |
67
+ | 49 | Graffiti | Permanent Marker | Roboto | Street, urban | Street culture, youth | fonts.googleapis.com/css2?family=Permanent+Marker&family=Roboto:wght@400;500 |
68
+ | 50 | Calligraphy | Great Vibes | Montserrat | Calligraphic, formal | Wedding, invitations | fonts.googleapis.com/css2?family=Great+Vibes&family=Montserrat:wght@400;500 |
69
+
70
+ ## Specialized Pairings (51-57)
71
+
72
+ | # | Pairing Name | Heading | Body | Mood | Best For | Google Fonts URL |
73
+ | --- | --------------- | -------------------- | ---------------- | ----------------- | -------------------- | ---------------------------------------------------------------------------------------------------- |
74
+ | 51 | Japanese Modern | Zen Kaku Gothic New | Noto Sans JP | Modern Japanese | Japanese market | fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@500;700&family=Noto+Sans+JP:wght@400;500 |
75
+ | 52 | Arabic Elegant | Noto Naskh Arabic | Noto Sans Arabic | Elegant Arabic | Arabic market | fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@500;700&family=Noto+Sans+Arabic:wght@400;500 |
76
+ | 53 | Korean Clean | Noto Sans KR | Noto Sans KR | Clean Korean | Korean market | fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700 |
77
+ | 54 | Chinese Modern | Noto Sans SC | Noto Sans SC | Modern Chinese | Chinese (Simplified) | fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700 |
78
+ | 55 | Hindi Universal | Noto Sans Devanagari | Noto Sans | Clear Hindi | Hindi/Devanagari | fonts.googleapis.com/css2?family=Noto+Sans+Devanagari:wght@400;500;700&family=Noto+Sans:wght@400;500 |
79
+ | 56 | Variable Weight | Inter Variable | Inter Variable | Flexible, modern | Performance-critical | fonts.googleapis.com/css2?family=Inter:wght@100..900 |
80
+ | 57 | System Stack | system-ui | system-ui | Native, zero-load | Performance-extreme | No import needed — use system-ui, -apple-system, BlinkMacSystemFont |
81
+
82
+ ## Tailwind Config Templates
83
+
84
+ ### Serif + Sans Pattern
85
+
86
+ ```js
87
+ module.exports = {
88
+ theme: {
89
+ fontFamily: {
90
+ heading: ["Playfair Display", "Georgia", "serif"],
91
+ body: ["Inter", "system-ui", "sans-serif"],
92
+ },
93
+ },
94
+ };
95
+ ```
96
+
97
+ ### Sans + Sans Pattern
98
+
99
+ ```js
100
+ module.exports = {
101
+ theme: {
102
+ fontFamily: {
103
+ heading: ["Poppins", "sans-serif"],
104
+ body: ["Inter", "system-ui", "sans-serif"],
105
+ },
106
+ },
107
+ };
108
+ ```
109
+
110
+ ### Mono + Sans Pattern (Dev Tools)
111
+
112
+ ```js
113
+ module.exports = {
114
+ theme: {
115
+ fontFamily: {
116
+ heading: ["JetBrains Mono", "monospace"],
117
+ body: ["IBM Plex Sans", "sans-serif"],
118
+ mono: ["JetBrains Mono", "Fira Code", "monospace"],
119
+ },
120
+ },
121
+ };
122
+ ```
123
+
124
+ ### Next.js Font Optimization Pattern
125
+
126
+ ```tsx
127
+ import { Inter, Playfair_Display } from 'next/font/google'
128
+
129
+ const inter = Inter({
130
+ subsets: ['latin'],
131
+ variable: '--font-body',
132
+ display: 'swap',
133
+ })
134
+
135
+ const playfair = Playfair_Display({
136
+ subsets: ['latin'],
137
+ variable: '--font-heading',
138
+ display: 'swap',
139
+ weight: ['600', '700'],
140
+ })
141
+
142
+ // In layout.tsx:
143
+ <html className={`${inter.variable} ${playfair.variable}`}>
144
+ ```
@@ -0,0 +1,155 @@
1
+ ---
2
+ name: design-ux-patterns
3
+ description: UX pattern intelligence — landing page architectures, chart type selection, forms & feedback, navigation patterns, data visualization, and 133 critical UX guidelines for building production-grade interfaces.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: merlin-framework
7
+ version: "3.0.0"
8
+ auto_activate: [ux-pattern, landing-page, dashboard-design, conversion-funnel, usability]
9
+ file_triggers: [*.html, *.tsx, *.jsx, *.vue]
10
+ tool_reminders: [Select a landing page pattern BEFORE building — match it to the product type, Touch targets must be 44x44px minimum on all interactive elements, Always implement loading states for async operations — never leave the user without feedback]
11
+ ---
12
+
13
+ ## Landing Page Pattern Selection
14
+
15
+ Choose the pattern that matches the product type and conversion goal:
16
+
17
+ | # | Pattern | Best For | Key Sections | Conversion Strategy |
18
+ | --- | ------------------------ | ----------------------------- | ---------------------------------------------------- | -------------------------- |
19
+ | 1 | Hero + Features + CTA | SaaS, general products | Hero, feature grid, pricing, CTA | Feature-driven persuasion |
20
+ | 2 | Hero + Social Proof | E-commerce, marketplaces | Hero, testimonials, logos, CTA | Trust-driven conversion |
21
+ | 3 | Feature-Rich Showcase | Complex products, B2B | Hero, feature details, comparison, demo CTA | Detail-driven evaluation |
22
+ | 4 | Minimal Single Column | Micro SaaS, simple tools | Hero, brief description, single CTA | Friction-free signup |
23
+ | 5 | Interactive Product Demo | AI tools, dev tools | Hero, live demo embed, features, CTA | Try-before-buy |
24
+ | 6 | Trust & Authority | Finance, healthcare, legal | Hero, credentials, case studies, compliance badges | Authority-driven trust |
25
+ | 7 | Storytelling-Driven | Brand, travel, lifestyle | Full-width sections, narrative flow, emotional CTA | Emotion-driven narrative |
26
+ | 8 | Video-First | Media, entertainment, courses | Hero video, benefits, testimonials | Visual-first engagement |
27
+ | 9 | Comparison Table | B2B, SaaS with tiers | Hero, competitor/plan comparison, CTA | Comparison-driven decision |
28
+ | 10 | Lead Magnet | Newsletters, content, courses | Hero, value prop, email capture, sample content | Content-gated capture |
29
+ | 11 | Pricing Page | SaaS, subscription services | Plan cards, feature matrix, FAQ, CTA | Price-anchored decision |
30
+ | 12 | Waitlist / Coming Soon | Pre-launch, beta products | Hero, teaser, email capture, countdown | Scarcity-driven signup |
31
+ | 13 | App Store Style | Mobile apps | Hero with device mockup, features, reviews, download | App-store conversion |
32
+ | 14 | Bento Grid Showcase | Design-forward, Apple-style | Bento grid cards, visual features, minimal text | Visual-first discovery |
33
+ | 15 | Funnel 3-Step | High-intent conversion | Step 1 hook, Step 2 qualify, Step 3 convert | Progressive commitment |
34
+
35
+ For the complete 30-pattern catalog with section breakdowns, read `references/landing-patterns.md`.
36
+
37
+ ## Chart Type Selection
38
+
39
+ Match the data goal to the right visualization:
40
+
41
+ | Data Goal | Chart Type | Library Recommendation | Accessibility |
42
+ | ------------------ | ---------------------- | ---------------------- | ------------------------------- |
43
+ | Trend over time | Line chart | Recharts, Chart.js | Add data table alt |
44
+ | Compare categories | Bar chart (vertical) | Recharts, Nivo | Color-blind safe palette |
45
+ | Part-to-whole | Donut / Pie chart | Recharts, D3 | Label each segment |
46
+ | Ranking / sorted | Horizontal bar | Recharts, Nivo | Order by value |
47
+ | Correlation | Scatter plot | Nivo, D3 | Tooltip on each point |
48
+ | Distribution | Histogram / Box plot | D3, Plotly | Label axes clearly |
49
+ | Geographic | Choropleth map | D3, Mapbox | Pattern fills + color |
50
+ | Flow / funnel | Sankey / Funnel | D3, Nivo | Label each stage |
51
+ | Progress | Gauge / Progress bar | Custom, Recharts | Numeric + visual |
52
+ | Hierarchy | Treemap / Sunburst | D3, Nivo | Breadcrumb navigation |
53
+ | Real-time | Streaming line | D3, custom WebSocket | Update rate indicator |
54
+ | Comparison matrix | Heatmap | Nivo, D3 | Numeric labels in cells |
55
+ | Financial | Candlestick | Lightweight Charts | OHLC tooltip |
56
+ | Network | Node graph | D3, Cytoscape | Focus + zoom controls |
57
+ | Forecast | Line + confidence band | D3, Recharts custom | Distinguish actual vs predicted |
58
+
59
+ ## Critical UX Rules (HIGH Severity)
60
+
61
+ These rules are non-negotiable for production interfaces:
62
+
63
+ **Accessibility:**
64
+
65
+ - Color contrast: 4.5:1 minimum for normal text, 3:1 for large text and UI components
66
+ - Never rely on color alone — use icons, patterns, or text labels alongside color
67
+ - All images need alt text (decorative images: `alt=""`)
68
+ - Heading hierarchy: never skip levels (h1 -> h2 -> h3, not h1 -> h3)
69
+ - Keyboard navigation: all interactive elements reachable via Tab, activatable via Enter/Space
70
+ - Skip link: provide "Skip to content" link as first focusable element
71
+
72
+ **Touch & Interaction:**
73
+
74
+ - Touch targets: 44x44px minimum (48x48px recommended) with 8px spacing between targets
75
+ - Focus states: visible focus ring on ALL interactive elements (never `outline: none` without replacement)
76
+ - Hover states: must not cause layout shifts — use transform/opacity, not size changes
77
+ - Loading states: show skeleton/spinner for ANY async operation — never leave blank screen
78
+ - Disabled states: use `aria-disabled` + visual dimming, explain WHY it's disabled
79
+
80
+ **Forms:**
81
+
82
+ - Labels: every input MUST have a visible label (not just placeholder)
83
+ - Error messages: display inline near the input, not just as toast notifications
84
+ - Input types: use correct HTML5 types (`type="email"`, `type="tel"`, `type="url"`)
85
+ - Submit feedback: disable button + show spinner during submission, show success/error after
86
+
87
+ **Responsive:**
88
+
89
+ - Mobile-first: design for 375px first, then scale up
90
+ - Font size: minimum 16px body text (prevents iOS zoom on input focus)
91
+ - No horizontal scroll: test at all breakpoints, use `overflow-x: hidden` only as last resort
92
+ - Viewport meta: always include `<meta name="viewport" content="width=device-width, initial-scale=1">`
93
+
94
+ **Performance:**
95
+
96
+ - Image optimization: use WebP/AVIF with `<picture>` fallbacks, set explicit width/height to prevent CLS
97
+ - Lazy loading: `loading="lazy"` on below-fold images
98
+ - prefers-reduced-motion: wrap all animations in `@media (prefers-reduced-motion: no-preference)`
99
+ - Transition duration: 150-300ms for micro-interactions, never exceed 500ms
100
+
101
+ ## UI Style Quick Reference
102
+
103
+ Top 15 styles for rapid style selection:
104
+
105
+ | Style | Best For | Complexity | Accessibility |
106
+ | -------------------- | ------------------------ | ---------- | ------------- |
107
+ | Minimalism | Corporate, SaaS, content | Low | WCAG AAA |
108
+ | Glassmorphism | SaaS, fintech, modern | Medium | Ensure 4.5:1 |
109
+ | Flat Design | E-commerce, mobile | Low | WCAG AAA |
110
+ | Dark Mode | Dev tools, dashboards | Low | WCAG AAA |
111
+ | Brutalism | Portfolio, creative | Low | WCAG AAA |
112
+ | Neumorphism | Mobile, wellness | Medium | Contrast risk |
113
+ | AI-Native UI | AI products, chatbots | Low | WCAG AA |
114
+ | Bento Grid | Feature showcase | Low | WCAG AA |
115
+ | Cyberpunk UI | Gaming, crypto | Medium | Custom |
116
+ | Neubrutalism | Startups, bold | Low | WCAG AAA |
117
+ | Swiss Modernism | Corporate, legal | Low | WCAG AAA |
118
+ | Organic Biophilic | Sustainability, food | Low | WCAG AA |
119
+ | Conversion-Optimized | Landing pages | Medium | WCAG AA |
120
+ | Data-Dense Dashboard | Analytics, BI | Medium | Custom |
121
+ | Editorial Grid | Magazine, publishing | Low | WCAG AA |
122
+
123
+ For the full 67-style catalog with all properties, read `references/style-catalog.md`.
124
+
125
+ ## Forms & Feedback (Quick Rules)
126
+
127
+ The most overlooked form UX issues that make interfaces feel broken:
128
+
129
+ - **Progressive disclosure** — Show basic fields first; reveal advanced options behind a toggle. Never overwhelm upfront.
130
+ - **Focus management** — After submit error, auto-focus the first invalid field and scroll it into view
131
+ - **Error summary** — For multiple errors, show a summary at the top with anchor links to each field
132
+ - **Form autosave** — Long forms (5+ fields) should auto-save drafts to prevent data loss on navigation
133
+ - **Undo support** — Destructive/bulk actions need a time-limited undo toast, not just a confirmation dialog
134
+
135
+ For the complete 119-rule guidelines (including 12 advanced form rules), read `references/ux-guidelines.md`.
136
+
137
+ ## Navigation Patterns (Quick Rules)
138
+
139
+ Navigation mistakes that make apps feel confusing:
140
+
141
+ - **Bottom nav limit** — Maximum 5 items, always with both icon and text label
142
+ - **Adaptive navigation** — Large screens (≥1024px) use sidebar; small screens use bottom nav or top bar
143
+ - **State preservation** — Back navigation must restore scroll position, filters, and input values
144
+ - **Modal vs navigation** — Modals are for confirmations and self-contained tasks, never for primary user flows
145
+ - **Persistent nav** — Core navigation must remain reachable from deep pages; never hide it entirely
146
+
147
+ For the complete 20 navigation rules, read `references/ux-guidelines.md`.
148
+
149
+ ## Charts & Data Visualization
150
+
151
+ For chart type selection, see the table above. For comprehensive data visualization UX rules (30 rules covering accessibility, responsive behavior, interaction patterns, and anti-patterns), read `references/charts-data-guidelines.md`.
152
+
153
+ ## Pre-Delivery Checklist
154
+
155
+ For an expanded professional UI checklist (37 items across visual quality, interaction, light/dark mode, layout, and accessibility), read `references/professional-ui-checklist.md`.
@@ -0,0 +1,197 @@
1
+ # Charts & Data Visualization Guidelines (30 Rules)
2
+
3
+ > Reference data for the design-ux-patterns skill. Rules for accessible, performant, and user-friendly data visualization.
4
+ > Source: Cherry-picked from ui-ux-pro-max (nextlevelbuilder, v2.2.1) — adapted for Merlin ecosystem.
5
+
6
+ ## Chart Type Selection (1-3)
7
+
8
+ ### 1. Match Chart to Data Type
9
+
10
+ - **Do:** Use line charts for trends over time, bar charts for category comparison, donut/pie for part-to-whole, scatter for correlation
11
+ - **Don't:** Use pie charts for comparing values or line charts for categorical data — match the chart to what the data communicates
12
+ - **Severity:** High
13
+
14
+ ### 2. Accessible Color Palettes
15
+
16
+ - **Do:** Use accessible color palettes that work for colorblind users. Supplement color with patterns, textures, or shapes.
17
+ - **Don't:** Rely on red/green distinction or use color alone to differentiate data series
18
+ - **Severity:** Critical
19
+
20
+ ### 3. Data Table Alternative
21
+
22
+ - **Do:** Provide a table alternative for every chart — charts alone are not screen-reader friendly
23
+ - **Don't:** Ship charts without any text/table fallback for users who can't see the visualization
24
+ - **Severity:** High
25
+ - **Code:** `<details><summary>View data table</summary><table>...</table></details>`
26
+
27
+ ## Labels & Readability (4-10)
28
+
29
+ ### 4. Legend Visibility
30
+
31
+ - **Do:** Always show the legend. Position it near the chart, not detached below a scroll fold.
32
+ - **Don't:** Hide the legend or place it where users must scroll to find it
33
+ - **Severity:** High
34
+
35
+ ### 5. Axis Labels
36
+
37
+ - **Do:** Label both axes with units and readable scale. Use abbreviations for large numbers (1K, 1M).
38
+ - **Don't:** Truncate, rotate, or cram axis labels on small screens — simplify the scale instead
39
+ - **Severity:** High
40
+
41
+ ### 6. Axis Readability
42
+
43
+ - **Do:** Maintain readable tick spacing. Auto-skip ticks on small screens to prevent overlap.
44
+ - **Don't:** Render all ticks regardless of space — cramped labels are unreadable
45
+ - **Severity:** Medium
46
+
47
+ ### 7. Number Formatting
48
+
49
+ - **Do:** Use locale-aware formatting for numbers, dates, and currencies on axes and labels
50
+ - **Don't:** Display raw numbers (1000000) or ambiguous date formats (01/02/03)
51
+ - **Severity:** Medium
52
+
53
+ ### 8. Direct Labeling
54
+
55
+ - **Do:** For small datasets (≤5 series), label values directly on the chart to reduce eye travel to legend
56
+ - **Don't:** Force users to match colors between distant legend and chart for simple datasets
57
+ - **Severity:** Low
58
+
59
+ ### 9. Time Scale Clarity
60
+
61
+ - **Do:** Time series charts must clearly label time granularity (day/week/month) and offer switching between scales
62
+ - **Don't:** Show time axis without indicating granularity — users can't interpret the data correctly
63
+ - **Severity:** Medium
64
+
65
+ ### 10. Legend Interactive
66
+
67
+ - **Do:** Make legends clickable to toggle series visibility — helps users focus on specific data
68
+ - **Don't:** Use static legends when multiple series overlap and obscure each other
69
+ - **Severity:** Low
70
+
71
+ ## Accessibility (11-17)
72
+
73
+ ### 11. Pattern & Texture
74
+
75
+ - **Do:** Supplement color with patterns (hatching, dots, dashes) so data is distinguishable without color
76
+ - **Don't:** Differentiate data series by color alone — fails WCAG and excludes colorblind users
77
+ - **Severity:** Critical
78
+
79
+ ### 12. Contrast for Data Elements
80
+
81
+ - **Do:** Data lines/bars vs background must meet ≥3:1 contrast. Data text labels must meet ≥4.5:1.
82
+ - **Don't:** Use light-colored data elements on light backgrounds or dark on dark
83
+ - **Severity:** High
84
+
85
+ ### 13. Focusable Elements
86
+
87
+ - **Do:** Interactive chart elements (points, bars, slices) must be keyboard-navigable with Tab/Arrow keys
88
+ - **Don't:** Make chart elements mouse-only — keyboard users are locked out of the data
89
+ - **Severity:** High
90
+
91
+ ### 14. Screen Reader Summary
92
+
93
+ - **Do:** Provide a text summary or `aria-label` describing the chart's key insight (e.g., "Revenue grew 23% in Q4")
94
+ - **Don't:** Leave charts without any accessible description — screen readers see nothing
95
+ - **Severity:** High
96
+ - **Code:** `<figure role="img" aria-label="Revenue trend: 23% growth in Q4 2025"><canvas id="chart"></canvas></figure>`
97
+
98
+ ### 15. Tooltip Keyboard Access
99
+
100
+ - **Do:** Tooltip content must be keyboard-reachable — not hover-only. Use focus events to trigger tooltips.
101
+ - **Don't:** Rely on mouse hover alone for showing data values in charts
102
+ - **Severity:** High
103
+
104
+ ### 16. Sortable Table State
105
+
106
+ - **Do:** Data tables must support sorting with `aria-sort` indicating current sort state and direction
107
+ - **Don't:** Implement visual sort indicators without accessible state announcement
108
+ - **Severity:** Medium
109
+ - **Code:** `<th aria-sort="ascending">Revenue</th>`
110
+
111
+ ### 17. Animation Respects Motion
112
+
113
+ - **Do:** Chart entrance animations must respect `prefers-reduced-motion`. Data should be readable immediately.
114
+ - **Don't:** Gate data comprehension behind mandatory animation that can't be skipped
115
+ - **Severity:** Medium
116
+
117
+ ## Responsive & Performance (18-23)
118
+
119
+ ### 18. Responsive Charts
120
+
121
+ - **Do:** Charts must reflow or simplify on small screens — use horizontal bar instead of vertical, fewer ticks, smaller legends
122
+ - **Don't:** Render desktop-sized charts on mobile that require horizontal scrolling
123
+ - **Severity:** High
124
+
125
+ ### 19. Large Dataset Handling
126
+
127
+ - **Do:** For 1000+ data points, aggregate or sample the data. Provide drill-down for detail.
128
+ - **Don't:** Render all data points at once — it's slow, cluttered, and incomprehensible
129
+ - **Severity:** Medium
130
+
131
+ ### 20. Loading State
132
+
133
+ - **Do:** Show skeleton or shimmer placeholder while chart data loads. Include axis frame to indicate what's coming.
134
+ - **Don't:** Show an empty blank area or only a spinner with no context while chart loads
135
+ - **Severity:** Medium
136
+
137
+ ### 21. Empty Data State
138
+
139
+ - **Do:** Show meaningful empty state when no data exists — "No data yet" with guidance or action to generate data
140
+ - **Don't:** Render empty axes, a blank chart area, or a broken visualization when there's no data
141
+ - **Severity:** Medium
142
+
143
+ ### 22. Tooltip on Interact
144
+
145
+ - **Do:** Provide tooltips with exact values on hover (web) or tap (mobile). Include data point context.
146
+ - **Don't:** Force users to estimate values from axis position alone — exact numbers matter
147
+ - **Severity:** High
148
+
149
+ ### 23. Touch Target for Charts
150
+
151
+ - **Do:** Interactive chart elements (data points, pie slices) must have ≥44px tap area. Expand on touch if needed.
152
+ - **Don't:** Render tiny data points on mobile that require pixel-perfect taps
153
+ - **Severity:** High
154
+
155
+ ## Anti-Patterns (24-30)
156
+
157
+ ### 24. No Pie Overuse
158
+
159
+ - **Do:** Limit pie/donut charts to ≤5 categories. For more categories, switch to horizontal bar chart.
160
+ - **Don't:** Use pie charts with 8+ tiny slices — they become unreadable and impossible to compare
161
+ - **Severity:** Medium
162
+
163
+ ### 25. Data Density
164
+
165
+ - **Do:** Limit information density per chart — one chart, one message. Split complex data into multiple charts.
166
+ - **Don't:** Pack 5 different metrics into one chart hoping the user will figure it out
167
+ - **Severity:** Medium
168
+
169
+ ### 26. Trend Emphasis
170
+
171
+ - **Do:** Emphasize data trends over decoration. Clean lines, minimal shadows, focused visual hierarchy.
172
+ - **Don't:** Add heavy gradients, 3D effects, or shadows that obscure the actual data
173
+ - **Severity:** Medium
174
+
175
+ ### 27. Gridline Subtlety
176
+
177
+ - **Do:** Grid lines should be low-contrast (e.g., gray-200) so they guide the eye without competing with data
178
+ - **Don't:** Use dark or heavy grid lines that visually dominate the data series
179
+ - **Severity:** Low
180
+
181
+ ### 28. Error State
182
+
183
+ - **Do:** Data load failure must show a clear error message with retry action, not a broken or empty chart
184
+ - **Don't:** Silently fail or show broken axes when the API call fails
185
+ - **Severity:** High
186
+
187
+ ### 29. Export Option
188
+
189
+ - **Do:** For data-heavy products, offer CSV or image export of chart data for offline analysis
190
+ - **Don't:** Lock users into on-screen-only data viewing when they need to share or analyze further
191
+ - **Severity:** Low
192
+
193
+ ### 30. Drill-Down Consistency
194
+
195
+ - **Do:** Drill-down interactions must maintain a clear back-path and hierarchy breadcrumb
196
+ - **Don't:** Let users drill into chart details with no way to navigate back to the overview
197
+ - **Severity:** Medium