zugzbot 1.0.21 → 1.0.22

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 (1271) hide show
  1. package/.opencode/agents/sdd-coder.md +1 -0
  2. package/.opencode/agents/sdd-orchestrator.md +1 -0
  3. package/.opencode/skills/sdd-methodology/SKILL.md +8 -0
  4. package/.opencode/skills/sdd-tester-quickstart/SKILL.md +6 -0
  5. package/.opencode/tools/sdd_testing.ts +93 -0
  6. package/opencode.json +8 -0
  7. package/package.json +14 -4
  8. package/.opencode/active-brief.md +0 -38
  9. package/.opencode/docs/shadcn/agents/openai.yml +0 -5
  10. package/.opencode/docs/shadcn/assets/shadcn-small.png +0 -0
  11. package/.opencode/docs/shadcn/assets/shadcn.png +0 -0
  12. package/.opencode/docs/shadcn/cli.md +0 -290
  13. package/.opencode/docs/shadcn/customization.md +0 -209
  14. package/.opencode/docs/shadcn/evals/evals.json +0 -47
  15. package/.opencode/docs/shadcn/mcp.md +0 -105
  16. package/.opencode/docs/shadcn/registry.md +0 -277
  17. package/.opencode/docs/shadcn/rules/base-vs-radix.md +0 -306
  18. package/.opencode/docs/shadcn/rules/composition.md +0 -195
  19. package/.opencode/docs/shadcn/rules/forms.md +0 -192
  20. package/.opencode/docs/shadcn/rules/icons.md +0 -101
  21. package/.opencode/docs/shadcn/rules/styling.md +0 -162
  22. package/.opencode/oh-my-design/.agents/skills/google-analytics/EXAMPLES.md +0 -441
  23. package/.opencode/oh-my-design/.agents/skills/google-analytics/REFERENCE.md +0 -342
  24. package/.opencode/oh-my-design/.agents/skills/google-analytics/SKILL.md +0 -153
  25. package/.opencode/oh-my-design/.agents/skills/google-analytics/requirements.txt +0 -6
  26. package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/analyze.py +0 -459
  27. package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/ga_client.py +0 -345
  28. package/.opencode/oh-my-design/.claude/agents/omd-a11y-auditor.md +0 -98
  29. package/.opencode/oh-my-design/.claude/agents/omd-asset-curator.md +0 -99
  30. package/.opencode/oh-my-design/.claude/agents/omd-codex-image.md +0 -49
  31. package/.opencode/oh-my-design/.claude/agents/omd-critic.md +0 -142
  32. package/.opencode/oh-my-design/.claude/agents/omd-designer-review.md +0 -38
  33. package/.opencode/oh-my-design/.claude/agents/omd-final-qa.md +0 -40
  34. package/.opencode/oh-my-design/.claude/agents/omd-kr-writer.md +0 -35
  35. package/.opencode/oh-my-design/.claude/agents/omd-locale-adapter.md +0 -32
  36. package/.opencode/oh-my-design/.claude/agents/omd-master.md +0 -317
  37. package/.opencode/oh-my-design/.claude/agents/omd-microcopy.md +0 -64
  38. package/.opencode/oh-my-design/.claude/agents/omd-orchestrator.md +0 -34
  39. package/.opencode/oh-my-design/.claude/agents/omd-persona-tester.md +0 -119
  40. package/.opencode/oh-my-design/.claude/agents/omd-ui-junior.md +0 -130
  41. package/.opencode/oh-my-design/.claude/agents/omd-ux-researcher.md +0 -63
  42. package/.opencode/oh-my-design/.claude/data/opt-out-corpus.json +0 -141
  43. package/.opencode/oh-my-design/.claude/data/reference-fingerprints.json +0 -6142
  44. package/.opencode/oh-my-design/.claude/data/reference-tags.md +0 -104
  45. package/.opencode/oh-my-design/.claude/data/synonyms.json +0 -79
  46. package/.opencode/oh-my-design/.claude/data/vocabulary.json +0 -516
  47. package/.opencode/oh-my-design/.claude/hooks/lib/preferences-parser.cjs +0 -91
  48. package/.opencode/oh-my-design/.claude/hooks/lib/preferences-writer.cjs +0 -118
  49. package/.opencode/oh-my-design/.claude/hooks/post-edit-watch.cjs +0 -295
  50. package/.opencode/oh-my-design/.claude/hooks/session-end-foldin.cjs +0 -149
  51. package/.opencode/oh-my-design/.claude/hooks/session-state-loader.cjs +0 -113
  52. package/.opencode/oh-my-design/.claude/hooks/skill-activation.cjs +0 -108
  53. package/.opencode/oh-my-design/.claude/settings.json +0 -55
  54. package/.opencode/oh-my-design/.claude/skills/omd/SKILL.md +0 -133
  55. package/.opencode/oh-my-design/.claude/skills/omd-add-reference/SKILL.md +0 -381
  56. package/.opencode/oh-my-design/.claude/skills/omd-add-reference/batch-instructions.md +0 -111
  57. package/.opencode/oh-my-design/.claude/skills/omd-apply/SKILL.md +0 -87
  58. package/.opencode/oh-my-design/.claude/skills/omd-batch-launch/SKILL.md +0 -270
  59. package/.opencode/oh-my-design/.claude/skills/omd-codex-image/SKILL.md +0 -162
  60. package/.opencode/oh-my-design/.claude/skills/omd-component-harvest/SKILL.md +0 -59
  61. package/.opencode/oh-my-design/.claude/skills/omd-designer-review/SKILL.md +0 -146
  62. package/.opencode/oh-my-design/.claude/skills/omd-final-qa/SKILL.md +0 -153
  63. package/.opencode/oh-my-design/.claude/skills/omd-harness/SKILL.md +0 -234
  64. package/.opencode/oh-my-design/.claude/skills/omd-init/SKILL.md +0 -169
  65. package/.opencode/oh-my-design/.claude/skills/omd-kr-writer/SKILL.md +0 -229
  66. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/SKILL.md +0 -53
  67. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/compare.md +0 -30
  68. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v1.md +0 -42
  69. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v2.md +0 -34
  70. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v3.md +0 -33
  71. package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v4.md +0 -37
  72. package/.opencode/oh-my-design/.claude/skills/omd-lab-02-design-harness/SKILL.md +0 -131
  73. package/.opencode/oh-my-design/.claude/skills/omd-learn/SKILL.md +0 -83
  74. package/.opencode/oh-my-design/.claude/skills/omd-locale-adapter/SKILL.md +0 -124
  75. package/.opencode/oh-my-design/.claude/skills/omd-migrate/SKILL.md +0 -307
  76. package/.opencode/oh-my-design/.claude/skills/omd-orchestrator/SKILL.md +0 -124
  77. package/.opencode/oh-my-design/.claude/skills/omd-release-hygiene/SKILL.md +0 -113
  78. package/.opencode/oh-my-design/.claude/skills/omd-remember/SKILL.md +0 -46
  79. package/.opencode/oh-my-design/.claude/skills/omd-sync/SKILL.md +0 -40
  80. package/.opencode/oh-my-design/.claude/skills/omd-token-backfill/SKILL.md +0 -57
  81. package/.opencode/oh-my-design/.claude/skills/skill-rules.json +0 -84
  82. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/agent-fidelity.md +0 -59
  83. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/bug-report.md +0 -36
  84. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/config.yml +0 -8
  85. package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/feature-request.md +0 -26
  86. package/.opencode/oh-my-design/.github/PULL_REQUEST_TEMPLATE.md +0 -134
  87. package/.opencode/oh-my-design/.github/assets/logo-bg.png +0 -0
  88. package/.opencode/oh-my-design/.github/workflows/release.yml +0 -55
  89. package/.opencode/oh-my-design/.husky/pre-commit +0 -23
  90. package/.opencode/oh-my-design/.mcp.json +0 -12
  91. package/.opencode/oh-my-design/AGENTS.md +0 -112
  92. package/.opencode/oh-my-design/CHANGELOG.md +0 -385
  93. package/.opencode/oh-my-design/LICENSE +0 -21
  94. package/.opencode/oh-my-design/README.ja.md +0 -74
  95. package/.opencode/oh-my-design/README.ko.md +0 -112
  96. package/.opencode/oh-my-design/README.md +0 -112
  97. package/.opencode/oh-my-design/README.zh-TW.md +0 -74
  98. package/.opencode/oh-my-design/agents/AGENT.md +0 -53
  99. package/.opencode/oh-my-design/agents/omd-a11y-auditor.md +0 -97
  100. package/.opencode/oh-my-design/agents/omd-asset-curator.md +0 -255
  101. package/.opencode/oh-my-design/agents/omd-codex-image.md +0 -49
  102. package/.opencode/oh-my-design/agents/omd-critic.md +0 -181
  103. package/.opencode/oh-my-design/agents/omd-designer-review.md +0 -38
  104. package/.opencode/oh-my-design/agents/omd-final-qa.md +0 -40
  105. package/.opencode/oh-my-design/agents/omd-kr-writer.md +0 -35
  106. package/.opencode/oh-my-design/agents/omd-locale-adapter.md +0 -32
  107. package/.opencode/oh-my-design/agents/omd-master.md +0 -559
  108. package/.opencode/oh-my-design/agents/omd-microcopy.md +0 -63
  109. package/.opencode/oh-my-design/agents/omd-orchestrator.md +0 -34
  110. package/.opencode/oh-my-design/agents/omd-persona-tester.md +0 -118
  111. package/.opencode/oh-my-design/agents/omd-ui-junior.md +0 -129
  112. package/.opencode/oh-my-design/agents/omd-ux-engineer.md +0 -267
  113. package/.opencode/oh-my-design/agents/omd-ux-researcher.md +0 -62
  114. package/.opencode/oh-my-design/agents/omd-ux-writer.md +0 -181
  115. package/.opencode/oh-my-design/bin/oh-my-design.ts +0 -77
  116. package/.opencode/oh-my-design/data/architecture-proposals/1.7.2-recommend-install-feedback.md +0 -614
  117. package/.opencode/oh-my-design/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
  118. package/.opencode/oh-my-design/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
  119. package/.opencode/oh-my-design/data/opt-out-corpus.json +0 -141
  120. package/.opencode/oh-my-design/data/reference-audits/2026-05-13-kr10.md +0 -132
  121. package/.opencode/oh-my-design/data/reference-audits/2026-05-14-kr10.md +0 -72
  122. package/.opencode/oh-my-design/data/reference-audits/2026-05-15-kr10.md +0 -124
  123. package/.opencode/oh-my-design/data/reference-fingerprints.json +0 -6142
  124. package/.opencode/oh-my-design/data/reference-tags.md +0 -118
  125. package/.opencode/oh-my-design/data/synonyms.json +0 -79
  126. package/.opencode/oh-my-design/data/vocabulary.json +0 -516
  127. package/.opencode/oh-my-design/packages/mcp/README.md +0 -172
  128. package/.opencode/oh-my-design/packages/mcp/__tests__/smoke.test.ts +0 -64
  129. package/.opencode/oh-my-design/packages/mcp/data/.gitkeep +0 -0
  130. package/.opencode/oh-my-design/packages/mcp/scripts/sync-data.mjs +0 -38
  131. package/.opencode/oh-my-design/packages/mcp/src/data.ts +0 -178
  132. package/.opencode/oh-my-design/packages/mcp/src/index.ts +0 -58
  133. package/.opencode/oh-my-design/packages/mcp/src/prompts/design-from-ref.ts +0 -87
  134. package/.opencode/oh-my-design/packages/mcp/src/server.ts +0 -223
  135. package/.opencode/oh-my-design/packages/mcp/src/tools/get-design-md.ts +0 -44
  136. package/.opencode/oh-my-design/packages/mcp/src/tools/list-references.ts +0 -58
  137. package/.opencode/oh-my-design/packages/mcp/src/tools/search-by-vibe.ts +0 -114
  138. package/.opencode/oh-my-design/packages/mcp/tsconfig.json +0 -21
  139. package/.opencode/oh-my-design/packages/mcp/tsup.config.ts +0 -17
  140. package/.opencode/oh-my-design/packages/mcp/vitest.config.ts +0 -8
  141. package/.opencode/oh-my-design/scripts/bench/README.md +0 -72
  142. package/.opencode/oh-my-design/scripts/bench/score-init.mjs +0 -97
  143. package/.opencode/oh-my-design/scripts/bench/score-taste.mjs +0 -189
  144. package/.opencode/oh-my-design/scripts/check-release-hygiene.sh +0 -83
  145. package/.opencode/oh-my-design/scripts/context.cjs +0 -91
  146. package/.opencode/oh-my-design/scripts/ctx-prime.cjs +0 -266
  147. package/.opencode/oh-my-design/scripts/gen-llms-full.cjs +0 -143
  148. package/.opencode/oh-my-design/scripts/growth-snapshot.mjs +0 -59
  149. package/.opencode/oh-my-design/scripts/postinstall.cjs +0 -54
  150. package/.opencode/oh-my-design/scripts/smoke-md-twins.mjs +0 -98
  151. package/.opencode/oh-my-design/skills/claude-design/SKILL.md +0 -390
  152. package/.opencode/oh-my-design/skills/claude-design/references/claude-design-flow.md +0 -425
  153. package/.opencode/oh-my-design/skills/claude-design/references/codebase-analysis.md +0 -373
  154. package/.opencode/oh-my-design/skills/claude-design/scripts/analyze_codebase.py +0 -1369
  155. package/.opencode/oh-my-design/skills/claude-design/scripts/clickable_link.sh +0 -48
  156. package/.opencode/oh-my-design/skills/claude-design/scripts/collect_source.py +0 -178
  157. package/.opencode/oh-my-design/skills/claude-design/scripts/drive_claude_design.cjs +0 -378
  158. package/.opencode/oh-my-design/skills/claude-design/scripts/gather_references.py +0 -437
  159. package/.opencode/oh-my-design/skills/omd-apply/SKILL.md +0 -107
  160. package/.opencode/oh-my-design/skills/omd-asset-fetch/SKILL.md +0 -213
  161. package/.opencode/oh-my-design/skills/omd-codex-image/SKILL.md +0 -162
  162. package/.opencode/oh-my-design/skills/omd-designer-review/SKILL.md +0 -180
  163. package/.opencode/oh-my-design/skills/omd-experiment-gallery/SKILL.md +0 -164
  164. package/.opencode/oh-my-design/skills/omd-final-qa/SKILL.md +0 -182
  165. package/.opencode/oh-my-design/skills/omd-harness/SKILL.md +0 -726
  166. package/.opencode/oh-my-design/skills/omd-init/SKILL.md +0 -314
  167. package/.opencode/oh-my-design/skills/omd-kr-writer/SKILL.md +0 -299
  168. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/SKILL.md +0 -129
  169. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/playbooks/v1.md +0 -105
  170. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/live-2026-04-27-water-app/feedback-log.md +0 -230
  171. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/README.md +0 -46
  172. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/founder/README.md +0 -7
  173. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Hero.tsx +0 -1
  174. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Project.tsx +0 -1
  175. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Accordion.tsx +0 -4
  176. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Alert.tsx +0 -4
  177. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Avatar.tsx +0 -4
  178. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Badge.tsx +0 -4
  179. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Breadcrumb.tsx +0 -4
  180. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Button.tsx +0 -4
  181. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Card.tsx +0 -4
  182. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Combobox.tsx +0 -4
  183. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/DataTable.tsx +0 -4
  184. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Dialog.tsx +0 -4
  185. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Drawer.tsx +0 -4
  186. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Field.tsx +0 -4
  187. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Form.tsx +0 -4
  188. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Input.tsx +0 -4
  189. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Menu.tsx +0 -4
  190. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Modal.tsx +0 -4
  191. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Pagination.tsx +0 -4
  192. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Popover.tsx +0 -4
  193. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Select.tsx +0 -4
  194. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Sheet.tsx +0 -4
  195. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Spinner.tsx +0 -4
  196. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tabs.tsx +0 -4
  197. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Toast.tsx +0 -4
  198. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tooltip.tsx +0 -4
  199. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/VirtualList.tsx +0 -4
  200. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Alert.tsx +0 -3
  201. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Avatar.tsx +0 -3
  202. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Badge.tsx +0 -3
  203. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Button.tsx +0 -3
  204. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Card.tsx +0 -3
  205. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Input.tsx +0 -3
  206. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Modal.tsx +0 -3
  207. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Spinner.tsx +0 -3
  208. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Tabs.tsx +0 -3
  209. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Toast.tsx +0 -3
  210. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/styles/globals.css +0 -25
  211. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/tailwind.config.ts +0 -28
  212. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i1-findings.md +0 -51
  213. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-F.md +0 -133
  214. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-J.md +0 -171
  215. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-S.md +0 -232
  216. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-V.md +0 -73
  217. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-consolidated.md +0 -69
  218. package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/postmortem.md +0 -128
  219. package/.opencode/oh-my-design/skills/omd-learn/SKILL.md +0 -121
  220. package/.opencode/oh-my-design/skills/omd-locale-adapter/SKILL.md +0 -124
  221. package/.opencode/oh-my-design/skills/omd-orchestrator/SKILL.md +0 -124
  222. package/.opencode/oh-my-design/skills/omd-reference-capture/SKILL.md +0 -722
  223. package/.opencode/oh-my-design/skills/omd-remember/SKILL.md +0 -122
  224. package/.opencode/oh-my-design/skills/omd-sync/SKILL.md +0 -162
  225. package/.opencode/oh-my-design/skills/omd-taste/SKILL.md +0 -79
  226. package/.opencode/oh-my-design/skills-lock.json +0 -10
  227. package/.opencode/oh-my-design/spec/components-schema.md +0 -179
  228. package/.opencode/oh-my-design/spec/migration-checklist.md +0 -148
  229. package/.opencode/oh-my-design/spec/migration-plan.md +0 -124
  230. package/.opencode/oh-my-design/spec/omd-v0.1.md +0 -382
  231. package/.opencode/oh-my-design/spec/regional-sources.yaml +0 -77
  232. package/.opencode/oh-my-design/spec/verification-pipeline.md +0 -154
  233. package/.opencode/oh-my-design/src/cli/install-skills.ts +0 -1116
  234. package/.opencode/oh-my-design/src/core/agent-detect.ts +0 -49
  235. package/.opencode/oh-my-design/test/README.md +0 -89
  236. package/.opencode/oh-my-design/test/scripts/check-backgrounds.ts +0 -10
  237. package/.opencode/oh-my-design/test/scripts/generate-preview.ts +0 -42
  238. package/.opencode/oh-my-design/test/unit/cli/install-skills.test.ts +0 -227
  239. package/.opencode/oh-my-design/test/unit/core/agent-detect.test.ts +0 -97
  240. package/.opencode/oh-my-design/test/unit/core/catalog-resolution-order.test.ts +0 -73
  241. package/.opencode/oh-my-design/test/unit/hooks/hooks.test.ts +0 -499
  242. package/.opencode/oh-my-design/tsconfig.json +0 -20
  243. package/.opencode/oh-my-design/tsup.config.ts +0 -12
  244. package/.opencode/oh-my-design/vitest.config.ts +0 -13
  245. package/.opencode/oh-my-design/web/.env.example +0 -21
  246. package/.opencode/oh-my-design/web/AGENTS.md +0 -5
  247. package/.opencode/oh-my-design/web/CLAUDE.md +0 -1
  248. package/.opencode/oh-my-design/web/README.md +0 -45
  249. package/.opencode/oh-my-design/web/__tests__/catalog-integrity.test.ts +0 -333
  250. package/.opencode/oh-my-design/web/components.json +0 -25
  251. package/.opencode/oh-my-design/web/docs/font-playground-analytics.md +0 -110
  252. package/.opencode/oh-my-design/web/eslint.config.mjs +0 -18
  253. package/.opencode/oh-my-design/web/next.config.ts +0 -31
  254. package/.opencode/oh-my-design/web/postcss.config.mjs +0 -7
  255. package/.opencode/oh-my-design/web/public/file.svg +0 -1
  256. package/.opencode/oh-my-design/web/public/globe.svg +0 -1
  257. package/.opencode/oh-my-design/web/public/llms-full.txt +0 -3149
  258. package/.opencode/oh-my-design/web/public/llms.ko.txt +0 -130
  259. package/.opencode/oh-my-design/web/public/llms.txt +0 -377
  260. package/.opencode/oh-my-design/web/public/logo-white.png +0 -0
  261. package/.opencode/oh-my-design/web/public/logo.png +0 -0
  262. package/.opencode/oh-my-design/web/public/next.svg +0 -1
  263. package/.opencode/oh-my-design/web/public/og-image.png +0 -0
  264. package/.opencode/oh-my-design/web/public/twitter-image.png +0 -0
  265. package/.opencode/oh-my-design/web/public/vercel.svg +0 -1
  266. package/.opencode/oh-my-design/web/public/window.svg +0 -1
  267. package/.opencode/oh-my-design/web/references/11st/.verification.md +0 -37
  268. package/.opencode/oh-my-design/web/references/11st/DESIGN.md +0 -400
  269. package/.opencode/oh-my-design/web/references/17live/DESIGN.md +0 -467
  270. package/.opencode/oh-my-design/web/references/29cm/DESIGN.md +0 -495
  271. package/.opencode/oh-my-design/web/references/29cm/_promo.json +0 -23
  272. package/.opencode/oh-my-design/web/references/29cm/_research.md +0 -103
  273. package/.opencode/oh-my-design/web/references/3o3/.verification.md +0 -73
  274. package/.opencode/oh-my-design/web/references/3o3/DESIGN.md +0 -454
  275. package/.opencode/oh-my-design/web/references/91app/.verification.md +0 -25
  276. package/.opencode/oh-my-design/web/references/91app/DESIGN.md +0 -182
  277. package/.opencode/oh-my-design/web/references/abema/.verification.md +0 -64
  278. package/.opencode/oh-my-design/web/references/abema/DESIGN.md +0 -535
  279. package/.opencode/oh-my-design/web/references/ably/DESIGN.md +0 -646
  280. package/.opencode/oh-my-design/web/references/ably/_promo.json +0 -18
  281. package/.opencode/oh-my-design/web/references/ably/_research.md +0 -120
  282. package/.opencode/oh-my-design/web/references/accupass/.verification.md +0 -66
  283. package/.opencode/oh-my-design/web/references/accupass/DESIGN.md +0 -494
  284. package/.opencode/oh-my-design/web/references/adobe/.verification.md +0 -63
  285. package/.opencode/oh-my-design/web/references/adobe/DESIGN.md +0 -458
  286. package/.opencode/oh-my-design/web/references/airbnb/.verification.md +0 -143
  287. package/.opencode/oh-my-design/web/references/airbnb/DESIGN.md +0 -639
  288. package/.opencode/oh-my-design/web/references/airbnb/README.md +0 -23
  289. package/.opencode/oh-my-design/web/references/airbnb/preview-dark.html +0 -234
  290. package/.opencode/oh-my-design/web/references/airbnb/preview.html +0 -233
  291. package/.opencode/oh-my-design/web/references/airtable/.verification.md +0 -136
  292. package/.opencode/oh-my-design/web/references/airtable/DESIGN.md +0 -314
  293. package/.opencode/oh-my-design/web/references/airtable/README.md +0 -23
  294. package/.opencode/oh-my-design/web/references/airtable/preview-dark.html +0 -165
  295. package/.opencode/oh-my-design/web/references/airtable/preview.html +0 -164
  296. package/.opencode/oh-my-design/web/references/alipay/DESIGN.md +0 -506
  297. package/.opencode/oh-my-design/web/references/amazingtalker/.verification.md +0 -38
  298. package/.opencode/oh-my-design/web/references/amazingtalker/DESIGN.md +0 -434
  299. package/.opencode/oh-my-design/web/references/appier/DESIGN.md +0 -465
  300. package/.opencode/oh-my-design/web/references/apple/.verification.md +0 -162
  301. package/.opencode/oh-my-design/web/references/apple/DESIGN.md +0 -613
  302. package/.opencode/oh-my-design/web/references/apple/README.md +0 -24
  303. package/.opencode/oh-my-design/web/references/apple/preview-dark.html +0 -420
  304. package/.opencode/oh-my-design/web/references/apple/preview.html +0 -414
  305. package/.opencode/oh-my-design/web/references/baemin/.verification.md +0 -132
  306. package/.opencode/oh-my-design/web/references/baemin/DESIGN.md +0 -578
  307. package/.opencode/oh-my-design/web/references/baemin/README.md +0 -19
  308. package/.opencode/oh-my-design/web/references/baemin/_research.md +0 -84
  309. package/.opencode/oh-my-design/web/references/banksalad/DESIGN.md +0 -688
  310. package/.opencode/oh-my-design/web/references/banksalad/_promo.json +0 -29
  311. package/.opencode/oh-my-design/web/references/banksalad/_research.md +0 -190
  312. package/.opencode/oh-my-design/web/references/bilibili/DESIGN.md +0 -471
  313. package/.opencode/oh-my-design/web/references/bithumb/.verification.md +0 -31
  314. package/.opencode/oh-my-design/web/references/bithumb/DESIGN.md +0 -208
  315. package/.opencode/oh-my-design/web/references/bmw/.verification.md +0 -114
  316. package/.opencode/oh-my-design/web/references/bmw/DESIGN.md +0 -360
  317. package/.opencode/oh-my-design/web/references/bmw/README.md +0 -23
  318. package/.opencode/oh-my-design/web/references/bmw/preview-dark.html +0 -211
  319. package/.opencode/oh-my-design/web/references/bmw/preview.html +0 -210
  320. package/.opencode/oh-my-design/web/references/brandi/.verification.md +0 -29
  321. package/.opencode/oh-my-design/web/references/brandi/DESIGN.md +0 -414
  322. package/.opencode/oh-my-design/web/references/bunjang/DESIGN.md +0 -374
  323. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  324. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/fonts.json +0 -33
  325. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/logo-icon.svg +0 -10
  326. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/structure.json +0 -131
  327. package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/tokens.json +0 -147
  328. package/.opencode/oh-my-design/web/references/cakeresume/.verification.md +0 -25
  329. package/.opencode/oh-my-design/web/references/cakeresume/DESIGN.md +0 -191
  330. package/.opencode/oh-my-design/web/references/cal/.verification.md +0 -145
  331. package/.opencode/oh-my-design/web/references/cal/DESIGN.md +0 -481
  332. package/.opencode/oh-my-design/web/references/cal/README.md +0 -23
  333. package/.opencode/oh-my-design/web/references/cal/preview-dark.html +0 -449
  334. package/.opencode/oh-my-design/web/references/cal/preview.html +0 -575
  335. package/.opencode/oh-my-design/web/references/catchtable/DESIGN.md +0 -341
  336. package/.opencode/oh-my-design/web/references/catchtable/_research.md +0 -54
  337. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  338. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  339. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/fonts.json +0 -21
  340. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/structure.json +0 -42
  341. package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/tokens.json +0 -95
  342. package/.opencode/oh-my-design/web/references/cathay/.verification.md +0 -44
  343. package/.opencode/oh-my-design/web/references/cathay/DESIGN.md +0 -432
  344. package/.opencode/oh-my-design/web/references/channeltalk/DESIGN.md +0 -422
  345. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  346. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/fonts.json +0 -53
  347. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/structure.json +0 -47
  348. package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/tokens.json +0 -78
  349. package/.opencode/oh-my-design/web/references/class101/DESIGN.md +0 -484
  350. package/.opencode/oh-my-design/web/references/classting/.verification.md +0 -32
  351. package/.opencode/oh-my-design/web/references/classting/DESIGN.md +0 -292
  352. package/.opencode/oh-my-design/web/references/classum/DESIGN.md +0 -279
  353. package/.opencode/oh-my-design/web/references/classum/assets/_reference/.live-inspect-proof.json +0 -72
  354. package/.opencode/oh-my-design/web/references/classum/assets/_reference/fonts.json +0 -20
  355. package/.opencode/oh-my-design/web/references/classum/assets/_reference/structure.json +0 -21
  356. package/.opencode/oh-my-design/web/references/classum/assets/_reference/tokens.json +0 -56
  357. package/.opencode/oh-my-design/web/references/claude/.verification.md +0 -106
  358. package/.opencode/oh-my-design/web/references/claude/DESIGN.md +0 -561
  359. package/.opencode/oh-my-design/web/references/claude/README.md +0 -24
  360. package/.opencode/oh-my-design/web/references/claude/preview-dark.html +0 -803
  361. package/.opencode/oh-my-design/web/references/claude/preview.html +0 -826
  362. package/.opencode/oh-my-design/web/references/clay/.verification.md +0 -129
  363. package/.opencode/oh-my-design/web/references/clay/DESIGN.md +0 -454
  364. package/.opencode/oh-my-design/web/references/clay/README.md +0 -23
  365. package/.opencode/oh-my-design/web/references/clay/preview-dark.html +0 -316
  366. package/.opencode/oh-my-design/web/references/clay/preview.html +0 -315
  367. package/.opencode/oh-my-design/web/references/clickhouse/.verification.md +0 -132
  368. package/.opencode/oh-my-design/web/references/clickhouse/DESIGN.md +0 -424
  369. package/.opencode/oh-my-design/web/references/clickhouse/README.md +0 -24
  370. package/.opencode/oh-my-design/web/references/clickhouse/preview-dark.html +0 -834
  371. package/.opencode/oh-my-design/web/references/clickhouse/preview.html +0 -786
  372. package/.opencode/oh-my-design/web/references/cloudflare/.verification.md +0 -21
  373. package/.opencode/oh-my-design/web/references/cloudflare/DESIGN.md +0 -637
  374. package/.opencode/oh-my-design/web/references/cohere/.verification.md +0 -136
  375. package/.opencode/oh-my-design/web/references/cohere/DESIGN.md +0 -409
  376. package/.opencode/oh-my-design/web/references/cohere/README.md +0 -24
  377. package/.opencode/oh-my-design/web/references/cohere/preview-dark.html +0 -803
  378. package/.opencode/oh-my-design/web/references/cohere/preview.html +0 -807
  379. package/.opencode/oh-my-design/web/references/coinbase/.verification.md +0 -116
  380. package/.opencode/oh-my-design/web/references/coinbase/DESIGN.md +0 -353
  381. package/.opencode/oh-my-design/web/references/coinbase/README.md +0 -23
  382. package/.opencode/oh-my-design/web/references/coinbase/preview-dark.html +0 -164
  383. package/.opencode/oh-my-design/web/references/coinbase/preview.html +0 -163
  384. package/.opencode/oh-my-design/web/references/coinone/.verification.md +0 -38
  385. package/.opencode/oh-my-design/web/references/coinone/DESIGN.md +0 -257
  386. package/.opencode/oh-my-design/web/references/composio/.verification.md +0 -143
  387. package/.opencode/oh-my-design/web/references/composio/DESIGN.md +0 -441
  388. package/.opencode/oh-my-design/web/references/composio/README.md +0 -24
  389. package/.opencode/oh-my-design/web/references/composio/preview-dark.html +0 -958
  390. package/.opencode/oh-my-design/web/references/composio/preview.html +0 -933
  391. package/.opencode/oh-my-design/web/references/cookpad/DESIGN.md +0 -394
  392. package/.opencode/oh-my-design/web/references/coupang/.verification.md +0 -141
  393. package/.opencode/oh-my-design/web/references/coupang/DESIGN.md +0 -557
  394. package/.opencode/oh-my-design/web/references/cursor/.verification.md +0 -141
  395. package/.opencode/oh-my-design/web/references/cursor/DESIGN.md +0 -460
  396. package/.opencode/oh-my-design/web/references/cursor/README.md +0 -24
  397. package/.opencode/oh-my-design/web/references/cursor/preview-dark.html +0 -393
  398. package/.opencode/oh-my-design/web/references/cursor/preview.html +0 -383
  399. package/.opencode/oh-my-design/web/references/dabang/DESIGN.md +0 -267
  400. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  401. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/fonts.json +0 -22
  402. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture-map.json +0 -718
  403. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture.json +0 -1125
  404. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/structure.json +0 -53
  405. package/.opencode/oh-my-design/web/references/dabang/assets/_reference/tokens.json +0 -130
  406. package/.opencode/oh-my-design/web/references/danawa/.verification.md +0 -60
  407. package/.opencode/oh-my-design/web/references/danawa/DESIGN.md +0 -477
  408. package/.opencode/oh-my-design/web/references/dcard/.verification.md +0 -118
  409. package/.opencode/oh-my-design/web/references/dcard/DESIGN.md +0 -633
  410. package/.opencode/oh-my-design/web/references/dcard/README.md +0 -12
  411. package/.opencode/oh-my-design/web/references/dcard/_research/forum-1440px.png +0 -0
  412. package/.opencode/oh-my-design/web/references/dcard/_research.md +0 -133
  413. package/.opencode/oh-my-design/web/references/dell/.verification.md +0 -21
  414. package/.opencode/oh-my-design/web/references/dell/DESIGN.md +0 -636
  415. package/.opencode/oh-my-design/web/references/devsisters/.verification.md +0 -32
  416. package/.opencode/oh-my-design/web/references/devsisters/DESIGN.md +0 -282
  417. package/.opencode/oh-my-design/web/references/discord/.verification.md +0 -21
  418. package/.opencode/oh-my-design/web/references/discord/DESIGN.md +0 -604
  419. package/.opencode/oh-my-design/web/references/dji/DESIGN.md +0 -454
  420. package/.opencode/oh-my-design/web/references/drnow/.verification.md +0 -41
  421. package/.opencode/oh-my-design/web/references/drnow/DESIGN.md +0 -383
  422. package/.opencode/oh-my-design/web/references/dropbox/.verification.md +0 -61
  423. package/.opencode/oh-my-design/web/references/dropbox/DESIGN.md +0 -445
  424. package/.opencode/oh-my-design/web/references/duolingo/.verification.md +0 -20
  425. package/.opencode/oh-my-design/web/references/duolingo/DESIGN.md +0 -563
  426. package/.opencode/oh-my-design/web/references/elevenlabs/.verification.md +0 -128
  427. package/.opencode/oh-my-design/web/references/elevenlabs/DESIGN.md +0 -415
  428. package/.opencode/oh-my-design/web/references/elevenlabs/README.md +0 -23
  429. package/.opencode/oh-my-design/web/references/elevenlabs/preview-dark.html +0 -252
  430. package/.opencode/oh-my-design/web/references/elevenlabs/preview.html +0 -251
  431. package/.opencode/oh-my-design/web/references/expo/.verification.md +0 -141
  432. package/.opencode/oh-my-design/web/references/expo/DESIGN.md +0 -412
  433. package/.opencode/oh-my-design/web/references/expo/README.md +0 -24
  434. package/.opencode/oh-my-design/web/references/expo/preview-dark.html +0 -533
  435. package/.opencode/oh-my-design/web/references/expo/preview.html +0 -533
  436. package/.opencode/oh-my-design/web/references/fastcampus/DESIGN.md +0 -529
  437. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  438. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/fonts.json +0 -14
  439. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/structure.json +0 -30
  440. package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/tokens.json +0 -109
  441. package/.opencode/oh-my-design/web/references/ferrari/.verification.md +0 -119
  442. package/.opencode/oh-my-design/web/references/ferrari/DESIGN.md +0 -447
  443. package/.opencode/oh-my-design/web/references/ferrari/README.md +0 -23
  444. package/.opencode/oh-my-design/web/references/ferrari/preview-dark.html +0 -1162
  445. package/.opencode/oh-my-design/web/references/ferrari/preview.html +0 -1122
  446. package/.opencode/oh-my-design/web/references/figma/.verification.md +0 -206
  447. package/.opencode/oh-my-design/web/references/figma/DESIGN.md +0 -534
  448. package/.opencode/oh-my-design/web/references/figma/README.md +0 -24
  449. package/.opencode/oh-my-design/web/references/figma/preview-dark.html +0 -822
  450. package/.opencode/oh-my-design/web/references/figma/preview.html +0 -832
  451. package/.opencode/oh-my-design/web/references/finda/.verification.md +0 -33
  452. package/.opencode/oh-my-design/web/references/finda/DESIGN.md +0 -413
  453. package/.opencode/oh-my-design/web/references/firstory/.verification.md +0 -70
  454. package/.opencode/oh-my-design/web/references/firstory/DESIGN.md +0 -487
  455. package/.opencode/oh-my-design/web/references/flex/DESIGN.md +0 -356
  456. package/.opencode/oh-my-design/web/references/flex/_research.md +0 -49
  457. package/.opencode/oh-my-design/web/references/flex/assets/_reference/.live-inspect-proof.json +0 -192
  458. package/.opencode/oh-my-design/web/references/flex/assets/_reference/.raw-inspect.json +0 -873
  459. package/.opencode/oh-my-design/web/references/flex/assets/_reference/fonts.json +0 -17
  460. package/.opencode/oh-my-design/web/references/flex/assets/_reference/structure.json +0 -58
  461. package/.opencode/oh-my-design/web/references/flex/assets/_reference/tokens.json +0 -75
  462. package/.opencode/oh-my-design/web/references/flo/.verification.md +0 -33
  463. package/.opencode/oh-my-design/web/references/flo/DESIGN.md +0 -349
  464. package/.opencode/oh-my-design/web/references/framer/.verification.md +0 -147
  465. package/.opencode/oh-my-design/web/references/framer/DESIGN.md +0 -431
  466. package/.opencode/oh-my-design/web/references/framer/README.md +0 -23
  467. package/.opencode/oh-my-design/web/references/framer/preview-dark.html +0 -902
  468. package/.opencode/oh-my-design/web/references/framer/preview.html +0 -883
  469. package/.opencode/oh-my-design/web/references/freee/.verification.md +0 -145
  470. package/.opencode/oh-my-design/web/references/freee/DESIGN.md +0 -620
  471. package/.opencode/oh-my-design/web/references/freee/README.md +0 -12
  472. package/.opencode/oh-my-design/web/references/freee/_research/vibes-storybook-1440px.png +0 -0
  473. package/.opencode/oh-my-design/web/references/freee/_research.md +0 -116
  474. package/.opencode/oh-my-design/web/references/fugle/.verification.md +0 -40
  475. package/.opencode/oh-my-design/web/references/fugle/DESIGN.md +0 -290
  476. package/.opencode/oh-my-design/web/references/funnow/.verification.md +0 -62
  477. package/.opencode/oh-my-design/web/references/funnow/DESIGN.md +0 -431
  478. package/.opencode/oh-my-design/web/references/gangnamunni/DESIGN.md +0 -677
  479. package/.opencode/oh-my-design/web/references/gangnamunni/_promo.json +0 -26
  480. package/.opencode/oh-my-design/web/references/gangnamunni/_research.md +0 -113
  481. package/.opencode/oh-my-design/web/references/genie/.verification.md +0 -29
  482. package/.opencode/oh-my-design/web/references/genie/DESIGN.md +0 -415
  483. package/.opencode/oh-my-design/web/references/github/.verification.md +0 -21
  484. package/.opencode/oh-my-design/web/references/github/DESIGN.md +0 -727
  485. package/.opencode/oh-my-design/web/references/gmarket/DESIGN.md +0 -534
  486. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  487. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/fonts.json +0 -41
  488. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  489. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  490. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/structure.json +0 -65
  491. package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/tokens.json +0 -210
  492. package/.opencode/oh-my-design/web/references/gogolook/.verification.md +0 -31
  493. package/.opencode/oh-my-design/web/references/gogolook/DESIGN.md +0 -155
  494. package/.opencode/oh-my-design/web/references/gogoro/DESIGN.md +0 -441
  495. package/.opencode/oh-my-design/web/references/google/.verification.md +0 -61
  496. package/.opencode/oh-my-design/web/references/google/DESIGN.md +0 -499
  497. package/.opencode/oh-my-design/web/references/greenvines/.verification.md +0 -72
  498. package/.opencode/oh-my-design/web/references/greenvines/DESIGN.md +0 -454
  499. package/.opencode/oh-my-design/web/references/greeting/.verification.md +0 -64
  500. package/.opencode/oh-my-design/web/references/greeting/DESIGN.md +0 -462
  501. package/.opencode/oh-my-design/web/references/grip/.verification.md +0 -36
  502. package/.opencode/oh-my-design/web/references/grip/DESIGN.md +0 -289
  503. package/.opencode/oh-my-design/web/references/hahow/.verification.md +0 -31
  504. package/.opencode/oh-my-design/web/references/hahow/DESIGN.md +0 -184
  505. package/.opencode/oh-my-design/web/references/hashicorp/.verification.md +0 -142
  506. package/.opencode/oh-my-design/web/references/hashicorp/DESIGN.md +0 -411
  507. package/.opencode/oh-my-design/web/references/hashicorp/README.md +0 -24
  508. package/.opencode/oh-my-design/web/references/hashicorp/preview-dark.html +0 -1202
  509. package/.opencode/oh-my-design/web/references/hashicorp/preview.html +0 -1193
  510. package/.opencode/oh-my-design/web/references/hogangnono/.verification.md +0 -33
  511. package/.opencode/oh-my-design/web/references/hogangnono/DESIGN.md +0 -349
  512. package/.opencode/oh-my-design/web/references/hp/.verification.md +0 -21
  513. package/.opencode/oh-my-design/web/references/hp/DESIGN.md +0 -563
  514. package/.opencode/oh-my-design/web/references/hyperconnect/.verification.md +0 -40
  515. package/.opencode/oh-my-design/web/references/hyperconnect/DESIGN.md +0 -393
  516. package/.opencode/oh-my-design/web/references/hyundaicard/.verification.md +0 -25
  517. package/.opencode/oh-my-design/web/references/hyundaicard/DESIGN.md +0 -201
  518. package/.opencode/oh-my-design/web/references/ibm/.verification.md +0 -102
  519. package/.opencode/oh-my-design/web/references/ibm/DESIGN.md +0 -464
  520. package/.opencode/oh-my-design/web/references/ibm/README.md +0 -24
  521. package/.opencode/oh-my-design/web/references/ibm/preview-dark.html +0 -443
  522. package/.opencode/oh-my-design/web/references/ibm/preview.html +0 -428
  523. package/.opencode/oh-my-design/web/references/ichef/DESIGN.md +0 -455
  524. package/.opencode/oh-my-design/web/references/ikala/.verification.md +0 -35
  525. package/.opencode/oh-my-design/web/references/ikala/DESIGN.md +0 -400
  526. package/.opencode/oh-my-design/web/references/imweb/.verification.md +0 -61
  527. package/.opencode/oh-my-design/web/references/imweb/DESIGN.md +0 -460
  528. package/.opencode/oh-my-design/web/references/inflearn/DESIGN.md +0 -453
  529. package/.opencode/oh-my-design/web/references/inflearn/_promo.json +0 -29
  530. package/.opencode/oh-my-design/web/references/inflearn/_research.md +0 -85
  531. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  532. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  533. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/fonts.json +0 -41
  534. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/structure.json +0 -110
  535. package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/tokens.json +0 -54
  536. package/.opencode/oh-my-design/web/references/intercom/.verification.md +0 -144
  537. package/.opencode/oh-my-design/web/references/intercom/DESIGN.md +0 -271
  538. package/.opencode/oh-my-design/web/references/intercom/README.md +0 -23
  539. package/.opencode/oh-my-design/web/references/intercom/preview-dark.html +0 -185
  540. package/.opencode/oh-my-design/web/references/intercom/preview.html +0 -184
  541. package/.opencode/oh-my-design/web/references/jandi/.verification.md +0 -26
  542. package/.opencode/oh-my-design/web/references/jandi/DESIGN.md +0 -382
  543. package/.opencode/oh-my-design/web/references/jkopay/.verification.md +0 -32
  544. package/.opencode/oh-my-design/web/references/jkopay/DESIGN.md +0 -283
  545. package/.opencode/oh-my-design/web/references/jobkorea/.verification.md +0 -30
  546. package/.opencode/oh-my-design/web/references/jobkorea/DESIGN.md +0 -349
  547. package/.opencode/oh-my-design/web/references/jumpit/DESIGN.md +0 -403
  548. package/.opencode/oh-my-design/web/references/jumpit/_research.md +0 -119
  549. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  550. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/fonts.json +0 -20
  551. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/structure.json +0 -66
  552. package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/tokens.json +0 -108
  553. package/.opencode/oh-my-design/web/references/kakao/.verification.md +0 -137
  554. package/.opencode/oh-my-design/web/references/kakao/DESIGN.md +0 -568
  555. package/.opencode/oh-my-design/web/references/kakao/README.md +0 -18
  556. package/.opencode/oh-my-design/web/references/kakao/_research.md +0 -98
  557. package/.opencode/oh-my-design/web/references/kakaobank/.verification.md +0 -133
  558. package/.opencode/oh-my-design/web/references/kakaobank/DESIGN.md +0 -602
  559. package/.opencode/oh-my-design/web/references/kakaopay/DESIGN.md +0 -603
  560. package/.opencode/oh-my-design/web/references/kakaopay/_promo.json +0 -22
  561. package/.opencode/oh-my-design/web/references/kakaopay/_research.md +0 -84
  562. package/.opencode/oh-my-design/web/references/kakaot/DESIGN.md +0 -507
  563. package/.opencode/oh-my-design/web/references/karrot/.verification.md +0 -143
  564. package/.opencode/oh-my-design/web/references/karrot/DESIGN.md +0 -494
  565. package/.opencode/oh-my-design/web/references/karrot/README.md +0 -18
  566. package/.opencode/oh-my-design/web/references/karrot/_research.md +0 -57
  567. package/.opencode/oh-my-design/web/references/kbank/DESIGN.md +0 -252
  568. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  569. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  570. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/fonts.json +0 -20
  571. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/structure.json +0 -151
  572. package/.opencode/oh-my-design/web/references/kbank/assets/_reference/tokens.json +0 -101
  573. package/.opencode/oh-my-design/web/references/kdan/.verification.md +0 -30
  574. package/.opencode/oh-my-design/web/references/kdan/DESIGN.md +0 -193
  575. package/.opencode/oh-my-design/web/references/kintone/.verification.md +0 -21
  576. package/.opencode/oh-my-design/web/references/kintone/DESIGN.md +0 -586
  577. package/.opencode/oh-my-design/web/references/kkbox/.verification.md +0 -27
  578. package/.opencode/oh-my-design/web/references/kkbox/DESIGN.md +0 -136
  579. package/.opencode/oh-my-design/web/references/kkday/DESIGN.md +0 -470
  580. package/.opencode/oh-my-design/web/references/kmong/.verification.md +0 -30
  581. package/.opencode/oh-my-design/web/references/kmong/DESIGN.md +0 -427
  582. package/.opencode/oh-my-design/web/references/krafton/.verification.md +0 -38
  583. package/.opencode/oh-my-design/web/references/krafton/DESIGN.md +0 -267
  584. package/.opencode/oh-my-design/web/references/kraken/.verification.md +0 -143
  585. package/.opencode/oh-my-design/web/references/kraken/DESIGN.md +0 -277
  586. package/.opencode/oh-my-design/web/references/kraken/README.md +0 -23
  587. package/.opencode/oh-my-design/web/references/kraken/preview-dark.html +0 -169
  588. package/.opencode/oh-my-design/web/references/kraken/preview.html +0 -168
  589. package/.opencode/oh-my-design/web/references/krds/.verification.md +0 -373
  590. package/.opencode/oh-my-design/web/references/krds/DESIGN.md +0 -1060
  591. package/.opencode/oh-my-design/web/references/kream/DESIGN.md +0 -432
  592. package/.opencode/oh-my-design/web/references/kream/assets/_reference/.live-inspect-proof.json +0 -289
  593. package/.opencode/oh-my-design/web/references/kream/assets/_reference/fonts.json +0 -26
  594. package/.opencode/oh-my-design/web/references/kream/assets/_reference/structure.json +0 -56
  595. package/.opencode/oh-my-design/web/references/kream/assets/_reference/tokens.json +0 -154
  596. package/.opencode/oh-my-design/web/references/kurly/.verification.md +0 -126
  597. package/.opencode/oh-my-design/web/references/kurly/DESIGN.md +0 -620
  598. package/.opencode/oh-my-design/web/references/laftel/.verification.md +0 -39
  599. package/.opencode/oh-my-design/web/references/laftel/DESIGN.md +0 -293
  600. package/.opencode/oh-my-design/web/references/lamborghini/.verification.md +0 -127
  601. package/.opencode/oh-my-design/web/references/lamborghini/DESIGN.md +0 -430
  602. package/.opencode/oh-my-design/web/references/lamborghini/README.md +0 -23
  603. package/.opencode/oh-my-design/web/references/lamborghini/preview-dark.html +0 -303
  604. package/.opencode/oh-my-design/web/references/lamborghini/preview.html +0 -381
  605. package/.opencode/oh-my-design/web/references/laundrygo/.verification.md +0 -60
  606. package/.opencode/oh-my-design/web/references/laundrygo/DESIGN.md +0 -434
  607. package/.opencode/oh-my-design/web/references/layerx/.verification.md +0 -21
  608. package/.opencode/oh-my-design/web/references/layerx/DESIGN.md +0 -615
  609. package/.opencode/oh-my-design/web/references/lezhin/.verification.md +0 -47
  610. package/.opencode/oh-my-design/web/references/lezhin/DESIGN.md +0 -348
  611. package/.opencode/oh-my-design/web/references/line/.verification.md +0 -137
  612. package/.opencode/oh-my-design/web/references/line/DESIGN.md +0 -467
  613. package/.opencode/oh-my-design/web/references/line/README.md +0 -12
  614. package/.opencode/oh-my-design/web/references/line/_research/home-1440px.png +0 -0
  615. package/.opencode/oh-my-design/web/references/line/_research.md +0 -65
  616. package/.opencode/oh-my-design/web/references/linear.app/.verification.md +0 -143
  617. package/.opencode/oh-my-design/web/references/linear.app/DESIGN.md +0 -642
  618. package/.opencode/oh-my-design/web/references/linear.app/README.md +0 -24
  619. package/.opencode/oh-my-design/web/references/linear.app/preview-dark.html +0 -383
  620. package/.opencode/oh-my-design/web/references/linear.app/preview.html +0 -373
  621. package/.opencode/oh-my-design/web/references/loom/.verification.md +0 -31
  622. package/.opencode/oh-my-design/web/references/loom/DESIGN.md +0 -396
  623. package/.opencode/oh-my-design/web/references/lovable/.verification.md +0 -154
  624. package/.opencode/oh-my-design/web/references/lovable/DESIGN.md +0 -423
  625. package/.opencode/oh-my-design/web/references/lovable/README.md +0 -24
  626. package/.opencode/oh-my-design/web/references/lovable/preview-dark.html +0 -349
  627. package/.opencode/oh-my-design/web/references/lovable/preview.html +0 -348
  628. package/.opencode/oh-my-design/web/references/lunit/DESIGN.md +0 -296
  629. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  630. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/fonts.json +0 -24
  631. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/structure.json +0 -162
  632. package/.opencode/oh-my-design/web/references/lunit/assets/_reference/tokens.json +0 -115
  633. package/.opencode/oh-my-design/web/references/mastercard/.verification.md +0 -19
  634. package/.opencode/oh-my-design/web/references/mastercard/DESIGN.md +0 -587
  635. package/.opencode/oh-my-design/web/references/meituan/DESIGN.md +0 -466
  636. package/.opencode/oh-my-design/web/references/melon/.verification.md +0 -27
  637. package/.opencode/oh-my-design/web/references/melon/DESIGN.md +0 -179
  638. package/.opencode/oh-my-design/web/references/mercari/.verification.md +0 -155
  639. package/.opencode/oh-my-design/web/references/mercari/DESIGN.md +0 -514
  640. package/.opencode/oh-my-design/web/references/mercari/README.md +0 -12
  641. package/.opencode/oh-my-design/web/references/mercari/_research/home-1440px.png +0 -0
  642. package/.opencode/oh-my-design/web/references/mercari/_research.md +0 -137
  643. package/.opencode/oh-my-design/web/references/mercury/.verification.md +0 -21
  644. package/.opencode/oh-my-design/web/references/mercury/DESIGN.md +0 -589
  645. package/.opencode/oh-my-design/web/references/meta/.verification.md +0 -21
  646. package/.opencode/oh-my-design/web/references/meta/DESIGN.md +0 -615
  647. package/.opencode/oh-my-design/web/references/microsoft/.verification.md +0 -62
  648. package/.opencode/oh-my-design/web/references/microsoft/DESIGN.md +0 -508
  649. package/.opencode/oh-my-design/web/references/millie/DESIGN.md +0 -584
  650. package/.opencode/oh-my-design/web/references/minimax/.verification.md +0 -135
  651. package/.opencode/oh-my-design/web/references/minimax/DESIGN.md +0 -396
  652. package/.opencode/oh-my-design/web/references/minimax/README.md +0 -24
  653. package/.opencode/oh-my-design/web/references/minimax/preview-dark.html +0 -1262
  654. package/.opencode/oh-my-design/web/references/minimax/preview.html +0 -1248
  655. package/.opencode/oh-my-design/web/references/mintlify/.verification.md +0 -160
  656. package/.opencode/oh-my-design/web/references/mintlify/DESIGN.md +0 -472
  657. package/.opencode/oh-my-design/web/references/mintlify/README.md +0 -24
  658. package/.opencode/oh-my-design/web/references/mintlify/preview-dark.html +0 -409
  659. package/.opencode/oh-my-design/web/references/mintlify/preview.html +0 -398
  660. package/.opencode/oh-my-design/web/references/miricanvas/.verification.md +0 -61
  661. package/.opencode/oh-my-design/web/references/miricanvas/DESIGN.md +0 -464
  662. package/.opencode/oh-my-design/web/references/miro/.verification.md +0 -138
  663. package/.opencode/oh-my-design/web/references/miro/DESIGN.md +0 -319
  664. package/.opencode/oh-my-design/web/references/miro/README.md +0 -23
  665. package/.opencode/oh-my-design/web/references/miro/preview-dark.html +0 -174
  666. package/.opencode/oh-my-design/web/references/miro/preview.html +0 -173
  667. package/.opencode/oh-my-design/web/references/mistral.ai/.verification.md +0 -146
  668. package/.opencode/oh-my-design/web/references/mistral.ai/DESIGN.md +0 -390
  669. package/.opencode/oh-my-design/web/references/mistral.ai/README.md +0 -24
  670. package/.opencode/oh-my-design/web/references/mistral.ai/preview-dark.html +0 -806
  671. package/.opencode/oh-my-design/web/references/mistral.ai/preview.html +0 -805
  672. package/.opencode/oh-my-design/web/references/modusign/.verification.md +0 -58
  673. package/.opencode/oh-my-design/web/references/modusign/DESIGN.md +0 -524
  674. package/.opencode/oh-my-design/web/references/momoshop/.verification.md +0 -36
  675. package/.opencode/oh-my-design/web/references/momoshop/DESIGN.md +0 -322
  676. package/.opencode/oh-my-design/web/references/money-forward/DESIGN.md +0 -443
  677. package/.opencode/oh-my-design/web/references/mongodb/.verification.md +0 -145
  678. package/.opencode/oh-my-design/web/references/mongodb/DESIGN.md +0 -401
  679. package/.opencode/oh-my-design/web/references/mongodb/README.md +0 -23
  680. package/.opencode/oh-my-design/web/references/mongodb/preview-dark.html +0 -260
  681. package/.opencode/oh-my-design/web/references/mongodb/preview.html +0 -259
  682. package/.opencode/oh-my-design/web/references/muji/.verification.md +0 -20
  683. package/.opencode/oh-my-design/web/references/muji/DESIGN.md +0 -605
  684. package/.opencode/oh-my-design/web/references/musinsa/.verification.md +0 -59
  685. package/.opencode/oh-my-design/web/references/musinsa/DESIGN.md +0 -593
  686. package/.opencode/oh-my-design/web/references/mustit/.verification.md +0 -37
  687. package/.opencode/oh-my-design/web/references/mustit/DESIGN.md +0 -328
  688. package/.opencode/oh-my-design/web/references/myrealtrip/DESIGN.md +0 -494
  689. package/.opencode/oh-my-design/web/references/naver/.verification.md +0 -134
  690. package/.opencode/oh-my-design/web/references/naver/DESIGN.md +0 -582
  691. package/.opencode/oh-my-design/web/references/naverwebtoon/DESIGN.md +0 -477
  692. package/.opencode/oh-my-design/web/references/netflix/.verification.md +0 -21
  693. package/.opencode/oh-my-design/web/references/netflix/DESIGN.md +0 -572
  694. package/.opencode/oh-my-design/web/references/nexon/.verification.md +0 -27
  695. package/.opencode/oh-my-design/web/references/nexon/DESIGN.md +0 -389
  696. package/.opencode/oh-my-design/web/references/nhncloud/.verification.md +0 -23
  697. package/.opencode/oh-my-design/web/references/nhncloud/DESIGN.md +0 -207
  698. package/.opencode/oh-my-design/web/references/nike/.verification.md +0 -21
  699. package/.opencode/oh-my-design/web/references/nike/DESIGN.md +0 -588
  700. package/.opencode/oh-my-design/web/references/note/DESIGN.md +0 -346
  701. package/.opencode/oh-my-design/web/references/notion/.verification.md +0 -141
  702. package/.opencode/oh-my-design/web/references/notion/DESIGN.md +0 -557
  703. package/.opencode/oh-my-design/web/references/notion/README.md +0 -24
  704. package/.opencode/oh-my-design/web/references/notion/preview-dark.html +0 -372
  705. package/.opencode/oh-my-design/web/references/notion/preview.html +0 -364
  706. package/.opencode/oh-my-design/web/references/nvidia/.verification.md +0 -127
  707. package/.opencode/oh-my-design/web/references/nvidia/DESIGN.md +0 -550
  708. package/.opencode/oh-my-design/web/references/nvidia/README.md +0 -24
  709. package/.opencode/oh-my-design/web/references/nvidia/_research.md +0 -68
  710. package/.opencode/oh-my-design/web/references/nvidia/preview-dark.html +0 -374
  711. package/.opencode/oh-my-design/web/references/nvidia/preview.html +0 -366
  712. package/.opencode/oh-my-design/web/references/ohouse/.verification.md +0 -87
  713. package/.opencode/oh-my-design/web/references/ohouse/DESIGN.md +0 -635
  714. package/.opencode/oh-my-design/web/references/oliveyoung/DESIGN.md +0 -407
  715. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  716. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_best_capture.json +0 -644
  717. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  718. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main.html +0 -419
  719. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  720. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_search_capture.json +0 -912
  721. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/fonts.json +0 -20
  722. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/structure.json +0 -91
  723. package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/tokens.json +0 -79
  724. package/.opencode/oh-my-design/web/references/ollama/.verification.md +0 -138
  725. package/.opencode/oh-my-design/web/references/ollama/DESIGN.md +0 -393
  726. package/.opencode/oh-my-design/web/references/ollama/README.md +0 -24
  727. package/.opencode/oh-my-design/web/references/ollama/preview-dark.html +0 -678
  728. package/.opencode/oh-my-design/web/references/ollama/preview.html +0 -678
  729. package/.opencode/oh-my-design/web/references/omnichat/.verification.md +0 -74
  730. package/.opencode/oh-my-design/web/references/omnichat/DESIGN.md +0 -499
  731. package/.opencode/oh-my-design/web/references/openai/.verification.md +0 -21
  732. package/.opencode/oh-my-design/web/references/openai/DESIGN.md +0 -641
  733. package/.opencode/oh-my-design/web/references/opencode.ai/.verification.md +0 -136
  734. package/.opencode/oh-my-design/web/references/opencode.ai/DESIGN.md +0 -425
  735. package/.opencode/oh-my-design/web/references/opencode.ai/README.md +0 -24
  736. package/.opencode/oh-my-design/web/references/opencode.ai/preview-dark.html +0 -366
  737. package/.opencode/oh-my-design/web/references/opencode.ai/preview.html +0 -357
  738. package/.opencode/oh-my-design/web/references/payco/.verification.md +0 -28
  739. package/.opencode/oh-my-design/web/references/payco/DESIGN.md +0 -267
  740. package/.opencode/oh-my-design/web/references/paypay/.verification.md +0 -21
  741. package/.opencode/oh-my-design/web/references/paypay/DESIGN.md +0 -656
  742. package/.opencode/oh-my-design/web/references/pchome/.verification.md +0 -38
  743. package/.opencode/oh-my-design/web/references/pchome/DESIGN.md +0 -439
  744. package/.opencode/oh-my-design/web/references/perplexity/.verification.md +0 -21
  745. package/.opencode/oh-my-design/web/references/perplexity/DESIGN.md +0 -546
  746. package/.opencode/oh-my-design/web/references/piccollage/.verification.md +0 -34
  747. package/.opencode/oh-my-design/web/references/piccollage/DESIGN.md +0 -320
  748. package/.opencode/oh-my-design/web/references/pinkoi/.verification.md +0 -147
  749. package/.opencode/oh-my-design/web/references/pinkoi/DESIGN.md +0 -639
  750. package/.opencode/oh-my-design/web/references/pinkoi/README.md +0 -12
  751. package/.opencode/oh-my-design/web/references/pinkoi/_research/browse-1440px.png +0 -0
  752. package/.opencode/oh-my-design/web/references/pinkoi/_research.md +0 -167
  753. package/.opencode/oh-my-design/web/references/pinterest/.verification.md +0 -141
  754. package/.opencode/oh-my-design/web/references/pinterest/DESIGN.md +0 -366
  755. package/.opencode/oh-my-design/web/references/pinterest/README.md +0 -23
  756. package/.opencode/oh-my-design/web/references/pinterest/preview-dark.html +0 -233
  757. package/.opencode/oh-my-design/web/references/pinterest/preview.html +0 -232
  758. package/.opencode/oh-my-design/web/references/pixiv/.verification.md +0 -20
  759. package/.opencode/oh-my-design/web/references/pixiv/DESIGN.md +0 -613
  760. package/.opencode/oh-my-design/web/references/pixnet/.verification.md +0 -31
  761. package/.opencode/oh-my-design/web/references/pixnet/DESIGN.md +0 -430
  762. package/.opencode/oh-my-design/web/references/posthog/.verification.md +0 -159
  763. package/.opencode/oh-my-design/web/references/posthog/DESIGN.md +0 -480
  764. package/.opencode/oh-my-design/web/references/posthog/README.md +0 -23
  765. package/.opencode/oh-my-design/web/references/posthog/preview-dark.html +0 -699
  766. package/.opencode/oh-my-design/web/references/posthog/preview.html +0 -749
  767. package/.opencode/oh-my-design/web/references/postype/.verification.md +0 -61
  768. package/.opencode/oh-my-design/web/references/postype/DESIGN.md +0 -431
  769. package/.opencode/oh-my-design/web/references/publy/DESIGN.md +0 -563
  770. package/.opencode/oh-my-design/web/references/qanda/.verification.md +0 -121
  771. package/.opencode/oh-my-design/web/references/qanda/DESIGN.md +0 -516
  772. package/.opencode/oh-my-design/web/references/ragic/.verification.md +0 -37
  773. package/.opencode/oh-my-design/web/references/ragic/DESIGN.md +0 -444
  774. package/.opencode/oh-my-design/web/references/rakuten/.verification.md +0 -60
  775. package/.opencode/oh-my-design/web/references/rakuten/DESIGN.md +0 -440
  776. package/.opencode/oh-my-design/web/references/ramp/.verification.md +0 -21
  777. package/.opencode/oh-my-design/web/references/ramp/DESIGN.md +0 -634
  778. package/.opencode/oh-my-design/web/references/rayark/.verification.md +0 -22
  779. package/.opencode/oh-my-design/web/references/rayark/DESIGN.md +0 -154
  780. package/.opencode/oh-my-design/web/references/raycast/.verification.md +0 -138
  781. package/.opencode/oh-my-design/web/references/raycast/DESIGN.md +0 -467
  782. package/.opencode/oh-my-design/web/references/raycast/README.md +0 -23
  783. package/.opencode/oh-my-design/web/references/raycast/preview-dark.html +0 -606
  784. package/.opencode/oh-my-design/web/references/raycast/preview.html +0 -688
  785. package/.opencode/oh-my-design/web/references/remember/.verification.md +0 -135
  786. package/.opencode/oh-my-design/web/references/remember/DESIGN.md +0 -504
  787. package/.opencode/oh-my-design/web/references/remember/_promo.json +0 -27
  788. package/.opencode/oh-my-design/web/references/remember/_research.md +0 -90
  789. package/.opencode/oh-my-design/web/references/renault/.verification.md +0 -139
  790. package/.opencode/oh-my-design/web/references/renault/DESIGN.md +0 -439
  791. package/.opencode/oh-my-design/web/references/renault/README.md +0 -23
  792. package/.opencode/oh-my-design/web/references/renault/preview-dark.html +0 -406
  793. package/.opencode/oh-my-design/web/references/renault/preview.html +0 -606
  794. package/.opencode/oh-my-design/web/references/replicate/.verification.md +0 -154
  795. package/.opencode/oh-my-design/web/references/replicate/DESIGN.md +0 -387
  796. package/.opencode/oh-my-design/web/references/replicate/README.md +0 -24
  797. package/.opencode/oh-my-design/web/references/replicate/preview-dark.html +0 -828
  798. package/.opencode/oh-my-design/web/references/replicate/preview.html +0 -831
  799. package/.opencode/oh-my-design/web/references/resend/.verification.md +0 -143
  800. package/.opencode/oh-my-design/web/references/resend/DESIGN.md +0 -440
  801. package/.opencode/oh-my-design/web/references/resend/README.md +0 -23
  802. package/.opencode/oh-my-design/web/references/resend/preview-dark.html +0 -355
  803. package/.opencode/oh-my-design/web/references/resend/preview.html +0 -354
  804. package/.opencode/oh-my-design/web/references/retool/.verification.md +0 -21
  805. package/.opencode/oh-my-design/web/references/retool/DESIGN.md +0 -645
  806. package/.opencode/oh-my-design/web/references/revolut/.verification.md +0 -140
  807. package/.opencode/oh-my-design/web/references/revolut/DESIGN.md +0 -319
  808. package/.opencode/oh-my-design/web/references/revolut/README.md +0 -23
  809. package/.opencode/oh-my-design/web/references/revolut/preview-dark.html +0 -234
  810. package/.opencode/oh-my-design/web/references/revolut/preview.html +0 -233
  811. package/.opencode/oh-my-design/web/references/richart/.verification.md +0 -41
  812. package/.opencode/oh-my-design/web/references/richart/DESIGN.md +0 -465
  813. package/.opencode/oh-my-design/web/references/ridi/.verification.md +0 -108
  814. package/.opencode/oh-my-design/web/references/ridi/DESIGN.md +0 -573
  815. package/.opencode/oh-my-design/web/references/riiid/.verification.md +0 -33
  816. package/.opencode/oh-my-design/web/references/riiid/DESIGN.md +0 -260
  817. package/.opencode/oh-my-design/web/references/ringle/.verification.md +0 -53
  818. package/.opencode/oh-my-design/web/references/ringle/DESIGN.md +0 -444
  819. package/.opencode/oh-my-design/web/references/robinhood/.verification.md +0 -21
  820. package/.opencode/oh-my-design/web/references/robinhood/DESIGN.md +0 -604
  821. package/.opencode/oh-my-design/web/references/runwayml/.verification.md +0 -141
  822. package/.opencode/oh-my-design/web/references/runwayml/DESIGN.md +0 -431
  823. package/.opencode/oh-my-design/web/references/runwayml/README.md +0 -24
  824. package/.opencode/oh-my-design/web/references/runwayml/preview-dark.html +0 -664
  825. package/.opencode/oh-my-design/web/references/runwayml/preview.html +0 -665
  826. package/.opencode/oh-my-design/web/references/salesforce/.verification.md +0 -66
  827. package/.opencode/oh-my-design/web/references/salesforce/DESIGN.md +0 -473
  828. package/.opencode/oh-my-design/web/references/sanity/.verification.md +0 -174
  829. package/.opencode/oh-my-design/web/references/sanity/DESIGN.md +0 -499
  830. package/.opencode/oh-my-design/web/references/sanity/README.md +0 -24
  831. package/.opencode/oh-my-design/web/references/sanity/preview-dark.html +0 -990
  832. package/.opencode/oh-my-design/web/references/sanity/preview.html +0 -1135
  833. package/.opencode/oh-my-design/web/references/sansan/.verification.md +0 -21
  834. package/.opencode/oh-my-design/web/references/sansan/DESIGN.md +0 -631
  835. package/.opencode/oh-my-design/web/references/sendbird/.verification.md +0 -67
  836. package/.opencode/oh-my-design/web/references/sendbird/DESIGN.md +0 -331
  837. package/.opencode/oh-my-design/web/references/sentry/.verification.md +0 -157
  838. package/.opencode/oh-my-design/web/references/sentry/DESIGN.md +0 -397
  839. package/.opencode/oh-my-design/web/references/sentry/README.md +0 -24
  840. package/.opencode/oh-my-design/web/references/sentry/preview-dark.html +0 -626
  841. package/.opencode/oh-my-design/web/references/sentry/preview.html +0 -951
  842. package/.opencode/oh-my-design/web/references/shinhancard/.verification.md +0 -31
  843. package/.opencode/oh-my-design/web/references/shinhancard/DESIGN.md +0 -421
  844. package/.opencode/oh-my-design/web/references/shopline/.verification.md +0 -34
  845. package/.opencode/oh-my-design/web/references/shopline/DESIGN.md +0 -431
  846. package/.opencode/oh-my-design/web/references/slack/.verification.md +0 -21
  847. package/.opencode/oh-my-design/web/references/slack/DESIGN.md +0 -635
  848. package/.opencode/oh-my-design/web/references/smarthr/DESIGN.md +0 -452
  849. package/.opencode/oh-my-design/web/references/smartnews/DESIGN.md +0 -360
  850. package/.opencode/oh-my-design/web/references/socar/DESIGN.md +0 -438
  851. package/.opencode/oh-my-design/web/references/socar/_promo.json +0 -28
  852. package/.opencode/oh-my-design/web/references/socar/_research.md +0 -55
  853. package/.opencode/oh-my-design/web/references/soomgo/.verification.md +0 -27
  854. package/.opencode/oh-my-design/web/references/soomgo/DESIGN.md +0 -326
  855. package/.opencode/oh-my-design/web/references/spacex/.verification.md +0 -132
  856. package/.opencode/oh-my-design/web/references/spacex/DESIGN.md +0 -415
  857. package/.opencode/oh-my-design/web/references/spacex/README.md +0 -23
  858. package/.opencode/oh-my-design/web/references/spacex/_research.md +0 -69
  859. package/.opencode/oh-my-design/web/references/spacex/preview-dark.html +0 -221
  860. package/.opencode/oh-my-design/web/references/spacex/preview.html +0 -220
  861. package/.opencode/oh-my-design/web/references/spoon/DESIGN.md +0 -492
  862. package/.opencode/oh-my-design/web/references/spotify/.verification.md +0 -128
  863. package/.opencode/oh-my-design/web/references/spotify/DESIGN.md +0 -489
  864. package/.opencode/oh-my-design/web/references/spotify/README.md +0 -23
  865. package/.opencode/oh-my-design/web/references/spotify/preview-dark.html +0 -231
  866. package/.opencode/oh-my-design/web/references/spotify/preview.html +0 -230
  867. package/.opencode/oh-my-design/web/references/starbucks/.verification.md +0 -21
  868. package/.opencode/oh-my-design/web/references/starbucks/DESIGN.md +0 -597
  869. package/.opencode/oh-my-design/web/references/stores/.verification.md +0 -61
  870. package/.opencode/oh-my-design/web/references/stores/DESIGN.md +0 -447
  871. package/.opencode/oh-my-design/web/references/stripe/.verification.md +0 -140
  872. package/.opencode/oh-my-design/web/references/stripe/DESIGN.md +0 -571
  873. package/.opencode/oh-my-design/web/references/stripe/README.md +0 -24
  874. package/.opencode/oh-my-design/web/references/stripe/preview-dark.html +0 -428
  875. package/.opencode/oh-my-design/web/references/stripe/preview.html +0 -419
  876. package/.opencode/oh-my-design/web/references/studio/.verification.md +0 -21
  877. package/.opencode/oh-my-design/web/references/studio/DESIGN.md +0 -602
  878. package/.opencode/oh-my-design/web/references/supabase/.verification.md +0 -145
  879. package/.opencode/oh-my-design/web/references/supabase/DESIGN.md +0 -389
  880. package/.opencode/oh-my-design/web/references/supabase/README.md +0 -24
  881. package/.opencode/oh-my-design/web/references/supabase/preview-dark.html +0 -977
  882. package/.opencode/oh-my-design/web/references/supabase/preview.html +0 -955
  883. package/.opencode/oh-my-design/web/references/superhuman/.verification.md +0 -184
  884. package/.opencode/oh-my-design/web/references/superhuman/DESIGN.md +0 -453
  885. package/.opencode/oh-my-design/web/references/superhuman/README.md +0 -23
  886. package/.opencode/oh-my-design/web/references/superhuman/preview-dark.html +0 -973
  887. package/.opencode/oh-my-design/web/references/superhuman/preview.html +0 -951
  888. package/.opencode/oh-my-design/web/references/surveycake/.verification.md +0 -31
  889. package/.opencode/oh-my-design/web/references/surveycake/DESIGN.md +0 -442
  890. package/.opencode/oh-my-design/web/references/tada/DESIGN.md +0 -579
  891. package/.opencode/oh-my-design/web/references/teamblind/.verification.md +0 -76
  892. package/.opencode/oh-my-design/web/references/teamblind/DESIGN.md +0 -497
  893. package/.opencode/oh-my-design/web/references/tesla/.verification.md +0 -149
  894. package/.opencode/oh-my-design/web/references/tesla/DESIGN.md +0 -501
  895. package/.opencode/oh-my-design/web/references/tesla/README.md +0 -23
  896. package/.opencode/oh-my-design/web/references/tesla/_research.md +0 -70
  897. package/.opencode/oh-my-design/web/references/tesla/preview-dark.html +0 -947
  898. package/.opencode/oh-my-design/web/references/tesla/preview.html +0 -925
  899. package/.opencode/oh-my-design/web/references/theverge/.verification.md +0 -21
  900. package/.opencode/oh-my-design/web/references/theverge/DESIGN.md +0 -500
  901. package/.opencode/oh-my-design/web/references/timee/.verification.md +0 -67
  902. package/.opencode/oh-my-design/web/references/timee/DESIGN.md +0 -444
  903. package/.opencode/oh-my-design/web/references/together.ai/.verification.md +0 -145
  904. package/.opencode/oh-my-design/web/references/together.ai/DESIGN.md +0 -389
  905. package/.opencode/oh-my-design/web/references/together.ai/README.md +0 -24
  906. package/.opencode/oh-my-design/web/references/together.ai/preview-dark.html +0 -892
  907. package/.opencode/oh-my-design/web/references/together.ai/preview.html +0 -897
  908. package/.opencode/oh-my-design/web/references/toss/.verification.md +0 -120
  909. package/.opencode/oh-my-design/web/references/toss/DESIGN.md +0 -698
  910. package/.opencode/oh-my-design/web/references/toss/README.md +0 -19
  911. package/.opencode/oh-my-design/web/references/toss-securities/DESIGN.md +0 -247
  912. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  913. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  914. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  915. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/fonts.json +0 -24
  916. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/structure.json +0 -35
  917. package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/tokens.json +0 -87
  918. package/.opencode/oh-my-design/web/references/tossbank/DESIGN.md +0 -576
  919. package/.opencode/oh-my-design/web/references/trenbe/.verification.md +0 -32
  920. package/.opencode/oh-my-design/web/references/trenbe/DESIGN.md +0 -293
  921. package/.opencode/oh-my-design/web/references/triple/DESIGN.md +0 -481
  922. package/.opencode/oh-my-design/web/references/tumblbug/DESIGN.md +0 -578
  923. package/.opencode/oh-my-design/web/references/tving/DESIGN.md +0 -317
  924. package/.opencode/oh-my-design/web/references/tving/assets/_reference/.live-inspect-proof.json +0 -131
  925. package/.opencode/oh-my-design/web/references/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  926. package/.opencode/oh-my-design/web/references/tving/assets/_reference/attribution.md +0 -52
  927. package/.opencode/oh-my-design/web/references/tving/assets/_reference/fonts.json +0 -31
  928. package/.opencode/oh-my-design/web/references/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  929. package/.opencode/oh-my-design/web/references/tving/assets/_reference/structure.json +0 -55
  930. package/.opencode/oh-my-design/web/references/tving/assets/_reference/tokens.json +0 -115
  931. package/.opencode/oh-my-design/web/references/uber/.verification.md +0 -128
  932. package/.opencode/oh-my-design/web/references/uber/DESIGN.md +0 -423
  933. package/.opencode/oh-my-design/web/references/uber/README.md +0 -24
  934. package/.opencode/oh-my-design/web/references/uber/preview-dark.html +0 -1120
  935. package/.opencode/oh-my-design/web/references/uber/preview.html +0 -1119
  936. package/.opencode/oh-my-design/web/references/ubie/.verification.md +0 -21
  937. package/.opencode/oh-my-design/web/references/ubie/DESIGN.md +0 -615
  938. package/.opencode/oh-my-design/web/references/uniqlo/.verification.md +0 -21
  939. package/.opencode/oh-my-design/web/references/uniqlo/DESIGN.md +0 -575
  940. package/.opencode/oh-my-design/web/references/upbit/DESIGN.md +0 -337
  941. package/.opencode/oh-my-design/web/references/upbit/_research.md +0 -83
  942. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  943. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/fonts.json +0 -18
  944. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  945. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture.json +0 -1121
  946. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/structure.json +0 -52
  947. package/.opencode/oh-my-design/web/references/upbit/assets/_reference/tokens.json +0 -169
  948. package/.opencode/oh-my-design/web/references/upstage/DESIGN.md +0 -270
  949. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  950. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_brand-resource-center.json +0 -44
  951. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_curated-samples.json +0 -310
  952. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_raw-capture.json +0 -1560
  953. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_root-vars.json +0 -76
  954. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_structure-raw.json +0 -298
  955. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/fonts.json +0 -35
  956. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/structure.json +0 -72
  957. package/.opencode/oh-my-design/web/references/upstage/assets/_reference/tokens.json +0 -183
  958. package/.opencode/oh-my-design/web/references/velog/.verification.md +0 -26
  959. package/.opencode/oh-my-design/web/references/velog/DESIGN.md +0 -196
  960. package/.opencode/oh-my-design/web/references/vercel/.verification.md +0 -134
  961. package/.opencode/oh-my-design/web/references/vercel/DESIGN.md +0 -523
  962. package/.opencode/oh-my-design/web/references/vercel/README.md +0 -24
  963. package/.opencode/oh-my-design/web/references/vercel/preview-dark.html +0 -368
  964. package/.opencode/oh-my-design/web/references/vercel/preview.html +0 -367
  965. package/.opencode/oh-my-design/web/references/voicetube/.verification.md +0 -34
  966. package/.opencode/oh-my-design/web/references/voicetube/DESIGN.md +0 -266
  967. package/.opencode/oh-my-design/web/references/voltagent/.verification.md +0 -159
  968. package/.opencode/oh-my-design/web/references/voltagent/DESIGN.md +0 -454
  969. package/.opencode/oh-my-design/web/references/voltagent/README.md +0 -24
  970. package/.opencode/oh-my-design/web/references/voltagent/preview-dark.html +0 -487
  971. package/.opencode/oh-my-design/web/references/voltagent/preview.html +0 -766
  972. package/.opencode/oh-my-design/web/references/wadiz/DESIGN.md +0 -415
  973. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  974. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/fonts.json +0 -17
  975. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/structure.json +0 -35
  976. package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/tokens.json +0 -80
  977. package/.opencode/oh-my-design/web/references/wanted/DESIGN.md +0 -575
  978. package/.opencode/oh-my-design/web/references/wanted/_promo.json +0 -31
  979. package/.opencode/oh-my-design/web/references/wanted/_research.md +0 -119
  980. package/.opencode/oh-my-design/web/references/wantedly/.verification.md +0 -53
  981. package/.opencode/oh-my-design/web/references/wantedly/DESIGN.md +0 -437
  982. package/.opencode/oh-my-design/web/references/warp/.verification.md +0 -156
  983. package/.opencode/oh-my-design/web/references/warp/DESIGN.md +0 -431
  984. package/.opencode/oh-my-design/web/references/warp/README.md +0 -23
  985. package/.opencode/oh-my-design/web/references/warp/preview-dark.html +0 -500
  986. package/.opencode/oh-my-design/web/references/warp/preview.html +0 -533
  987. package/.opencode/oh-my-design/web/references/watcha/DESIGN.md +0 -465
  988. package/.opencode/oh-my-design/web/references/wavve/DESIGN.md +0 -480
  989. package/.opencode/oh-my-design/web/references/wconcept/DESIGN.md +0 -556
  990. package/.opencode/oh-my-design/web/references/webflow/.verification.md +0 -151
  991. package/.opencode/oh-my-design/web/references/webflow/DESIGN.md +0 -330
  992. package/.opencode/oh-my-design/web/references/webflow/README.md +0 -23
  993. package/.opencode/oh-my-design/web/references/webflow/preview-dark.html +0 -147
  994. package/.opencode/oh-my-design/web/references/webflow/preview.html +0 -146
  995. package/.opencode/oh-my-design/web/references/wired/.verification.md +0 -21
  996. package/.opencode/oh-my-design/web/references/wired/DESIGN.md +0 -572
  997. package/.opencode/oh-my-design/web/references/wise/.verification.md +0 -141
  998. package/.opencode/oh-my-design/web/references/wise/DESIGN.md +0 -317
  999. package/.opencode/oh-my-design/web/references/wise/README.md +0 -23
  1000. package/.opencode/oh-my-design/web/references/wise/preview-dark.html +0 -230
  1001. package/.opencode/oh-my-design/web/references/wise/preview.html +0 -229
  1002. package/.opencode/oh-my-design/web/references/x.ai/.verification.md +0 -140
  1003. package/.opencode/oh-my-design/web/references/x.ai/DESIGN.md +0 -397
  1004. package/.opencode/oh-my-design/web/references/x.ai/README.md +0 -24
  1005. package/.opencode/oh-my-design/web/references/x.ai/preview-dark.html +0 -356
  1006. package/.opencode/oh-my-design/web/references/x.ai/preview.html +0 -407
  1007. package/.opencode/oh-my-design/web/references/xiaohongshu/DESIGN.md +0 -462
  1008. package/.opencode/oh-my-design/web/references/yanolja/.verification.md +0 -83
  1009. package/.opencode/oh-my-design/web/references/yanolja/DESIGN.md +0 -508
  1010. package/.opencode/oh-my-design/web/references/yeogiotte/.verification.md +0 -210
  1011. package/.opencode/oh-my-design/web/references/yeogiotte/DESIGN.md +0 -500
  1012. package/.opencode/oh-my-design/web/references/yogiyo/DESIGN.md +0 -515
  1013. package/.opencode/oh-my-design/web/references/yourator/.verification.md +0 -39
  1014. package/.opencode/oh-my-design/web/references/yourator/DESIGN.md +0 -453
  1015. package/.opencode/oh-my-design/web/references/zapier/.verification.md +0 -156
  1016. package/.opencode/oh-my-design/web/references/zapier/DESIGN.md +0 -474
  1017. package/.opencode/oh-my-design/web/references/zapier/README.md +0 -24
  1018. package/.opencode/oh-my-design/web/references/zapier/preview-dark.html +0 -380
  1019. package/.opencode/oh-my-design/web/references/zapier/preview.html +0 -372
  1020. package/.opencode/oh-my-design/web/references/zigbang/DESIGN.md +0 -500
  1021. package/.opencode/oh-my-design/web/references/zigbang/_promo.json +0 -16
  1022. package/.opencode/oh-my-design/web/references/zigbang/_research.md +0 -101
  1023. package/.opencode/oh-my-design/web/references/zigzag/DESIGN.md +0 -695
  1024. package/.opencode/oh-my-design/web/references/zigzag/_promo.json +0 -23
  1025. package/.opencode/oh-my-design/web/references/zigzag/_research.md +0 -64
  1026. package/.opencode/oh-my-design/web/references/zozotown/.verification.md +0 -20
  1027. package/.opencode/oh-my-design/web/references/zozotown/DESIGN.md +0 -578
  1028. package/.opencode/oh-my-design/web/scripts/build-registry.mjs +0 -257
  1029. package/.opencode/oh-my-design/web/scripts/extract-tokens.mjs +0 -117
  1030. package/.opencode/oh-my-design/web/scripts/fetch-og-images.mjs +0 -112
  1031. package/.opencode/oh-my-design/web/scripts/gen-favicon.mjs +0 -58
  1032. package/.opencode/oh-my-design/web/scripts/gen-og.mjs +0 -67
  1033. package/.opencode/oh-my-design/web/scripts/migrate-frontmatters.mjs +0 -637
  1034. package/.opencode/oh-my-design/web/scripts/sync-catalog.mjs +0 -140
  1035. package/.opencode/oh-my-design/web/scripts/token-sheet.mjs +0 -72
  1036. package/.opencode/oh-my-design/web/scripts/token-status.mjs +0 -94
  1037. package/.opencode/oh-my-design/web/scripts/verify-reference.mjs +0 -185
  1038. package/.opencode/oh-my-design/web/src/app/alternatives/[slug]/page.tsx +0 -399
  1039. package/.opencode/oh-my-design/web/src/app/api/font-playground/match/route.ts +0 -205
  1040. package/.opencode/oh-my-design/web/src/app/api/leaderboard/route.ts +0 -32
  1041. package/.opencode/oh-my-design/web/src/app/api/og/playground/route.tsx +0 -179
  1042. package/.opencode/oh-my-design/web/src/app/api/references/[id]/route.ts +0 -162
  1043. package/.opencode/oh-my-design/web/src/app/api/references/route.ts +0 -142
  1044. package/.opencode/oh-my-design/web/src/app/api/track/route.ts +0 -30
  1045. package/.opencode/oh-my-design/web/src/app/apple-icon.png +0 -0
  1046. package/.opencode/oh-my-design/web/src/app/builder/layout.tsx +0 -43
  1047. package/.opencode/oh-my-design/web/src/app/builder/page.tsx +0 -434
  1048. package/.opencode/oh-my-design/web/src/app/changelog/[version]/page.tsx +0 -160
  1049. package/.opencode/oh-my-design/web/src/app/changelog/page.tsx +0 -142
  1050. package/.opencode/oh-my-design/web/src/app/collections/[slug]/collection-grid.tsx +0 -27
  1051. package/.opencode/oh-my-design/web/src/app/collections/[slug]/page.tsx +0 -171
  1052. package/.opencode/oh-my-design/web/src/app/curation/layout.tsx +0 -43
  1053. package/.opencode/oh-my-design/web/src/app/curation/page.tsx +0 -78
  1054. package/.opencode/oh-my-design/web/src/app/design-systems/[id]/detail-view.tsx +0 -307
  1055. package/.opencode/oh-my-design/web/src/app/design-systems/[id]/page.tsx +0 -184
  1056. package/.opencode/oh-my-design/web/src/app/design-systems/layout.tsx +0 -24
  1057. package/.opencode/oh-my-design/web/src/app/design-systems/page.tsx +0 -95
  1058. package/.opencode/oh-my-design/web/src/app/docs/layout.tsx +0 -22
  1059. package/.opencode/oh-my-design/web/src/app/docs/page.tsx +0 -1453
  1060. package/.opencode/oh-my-design/web/src/app/faq/page.tsx +0 -324
  1061. package/.opencode/oh-my-design/web/src/app/font-playground/font-playground-view.tsx +0 -424
  1062. package/.opencode/oh-my-design/web/src/app/font-playground/page.tsx +0 -43
  1063. package/.opencode/oh-my-design/web/src/app/globals.css +0 -328
  1064. package/.opencode/oh-my-design/web/src/app/icon.png +0 -0
  1065. package/.opencode/oh-my-design/web/src/app/layout.tsx +0 -229
  1066. package/.opencode/oh-my-design/web/src/app/page.tsx +0 -50
  1067. package/.opencode/oh-my-design/web/src/app/playground/page.tsx +0 -81
  1068. package/.opencode/oh-my-design/web/src/app/playground/playground-view.tsx +0 -436
  1069. package/.opencode/oh-my-design/web/src/app/qa-references/page.tsx +0 -233
  1070. package/.opencode/oh-my-design/web/src/app/r/[id]/route.ts +0 -57
  1071. package/.opencode/oh-my-design/web/src/app/reference/[id]/page.tsx +0 -152
  1072. package/.opencode/oh-my-design/web/src/app/result/[typeCode]/layout.tsx +0 -70
  1073. package/.opencode/oh-my-design/web/src/app/result/[typeCode]/page.tsx +0 -280
  1074. package/.opencode/oh-my-design/web/src/app/robots.ts +0 -44
  1075. package/.opencode/oh-my-design/web/src/app/sitemap.ts +0 -156
  1076. package/.opencode/oh-my-design/web/src/app/what-is-design-md/page.tsx +0 -308
  1077. package/.opencode/oh-my-design/web/src/components/ab-picker.tsx +0 -74
  1078. package/.opencode/oh-my-design/web/src/components/analytics-init.tsx +0 -21
  1079. package/.opencode/oh-my-design/web/src/components/brand-logo.tsx +0 -101
  1080. package/.opencode/oh-my-design/web/src/components/browse-modal.tsx +0 -149
  1081. package/.opencode/oh-my-design/web/src/components/component-modal.tsx +0 -108
  1082. package/.opencode/oh-my-design/web/src/components/content-preview-modal.tsx +0 -213
  1083. package/.opencode/oh-my-design/web/src/components/customizer.tsx +0 -641
  1084. package/.opencode/oh-my-design/web/src/components/design-wizard.tsx +0 -691
  1085. package/.opencode/oh-my-design/web/src/components/ds-card.tsx +0 -162
  1086. package/.opencode/oh-my-design/web/src/components/export-panel.tsx +0 -162
  1087. package/.opencode/oh-my-design/web/src/components/font-card.tsx +0 -121
  1088. package/.opencode/oh-my-design/web/src/components/font-playground/color-palette.tsx +0 -86
  1089. package/.opencode/oh-my-design/web/src/components/font-playground/detail-modal.tsx +0 -789
  1090. package/.opencode/oh-my-design/web/src/components/font-playground/filter-bar.tsx +0 -192
  1091. package/.opencode/oh-my-design/web/src/components/font-playground/font-tile.tsx +0 -92
  1092. package/.opencode/oh-my-design/web/src/components/font-playground/gallery.tsx +0 -42
  1093. package/.opencode/oh-my-design/web/src/components/font-playground/hero-entry.tsx +0 -150
  1094. package/.opencode/oh-my-design/web/src/components/font-playground/labels.ts +0 -18
  1095. package/.opencode/oh-my-design/web/src/components/font-playground/match-results.tsx +0 -486
  1096. package/.opencode/oh-my-design/web/src/components/font-playground/my-fonts.tsx +0 -315
  1097. package/.opencode/oh-my-design/web/src/components/font-playground/preview-templates.tsx +0 -395
  1098. package/.opencode/oh-my-design/web/src/components/font-playground/sample-input.tsx +0 -30
  1099. package/.opencode/oh-my-design/web/src/components/font-playground/script-toggle.tsx +0 -73
  1100. package/.opencode/oh-my-design/web/src/components/font-playground/usage-guide.tsx +0 -172
  1101. package/.opencode/oh-my-design/web/src/components/install-cta.tsx +0 -133
  1102. package/.opencode/oh-my-design/web/src/components/landing-v2/hero.tsx +0 -459
  1103. package/.opencode/oh-my-design/web/src/components/landing-v2/live-proof.tsx +0 -464
  1104. package/.opencode/oh-my-design/web/src/components/landing-v2/nav.tsx +0 -126
  1105. package/.opencode/oh-my-design/web/src/components/landing-v2/sections.tsx +0 -1166
  1106. package/.opencode/oh-my-design/web/src/components/landing-v2/the-wall.tsx +0 -332
  1107. package/.opencode/oh-my-design/web/src/components/landing-v2/tokens.ts +0 -33
  1108. package/.opencode/oh-my-design/web/src/components/markdown.tsx +0 -168
  1109. package/.opencode/oh-my-design/web/src/components/playground/actions-header.tsx +0 -28
  1110. package/.opencode/oh-my-design/web/src/components/playground/contrast-badge.tsx +0 -112
  1111. package/.opencode/oh-my-design/web/src/components/playground/controls/category-section.tsx +0 -50
  1112. package/.opencode/oh-my-design/web/src/components/playground/controls/color-picker.tsx +0 -116
  1113. package/.opencode/oh-my-design/web/src/components/playground/controls/density-picker.tsx +0 -56
  1114. package/.opencode/oh-my-design/web/src/components/playground/controls/mood-picker.tsx +0 -53
  1115. package/.opencode/oh-my-design/web/src/components/playground/controls/motion-picker.tsx +0 -62
  1116. package/.opencode/oh-my-design/web/src/components/playground/controls/name-description.tsx +0 -55
  1117. package/.opencode/oh-my-design/web/src/components/playground/controls/palette-grid.tsx +0 -111
  1118. package/.opencode/oh-my-design/web/src/components/playground/controls/personas-picker.tsx +0 -85
  1119. package/.opencode/oh-my-design/web/src/components/playground/controls/radius-picker.tsx +0 -48
  1120. package/.opencode/oh-my-design/web/src/components/playground/controls/voice-picker.tsx +0 -120
  1121. package/.opencode/oh-my-design/web/src/components/playground/controls/weight-picker.tsx +0 -48
  1122. package/.opencode/oh-my-design/web/src/components/playground/export-box.tsx +0 -120
  1123. package/.opencode/oh-my-design/web/src/components/playground/header.tsx +0 -71
  1124. package/.opencode/oh-my-design/web/src/components/playground/layout.tsx +0 -50
  1125. package/.opencode/oh-my-design/web/src/components/playground/mobile-drawer.tsx +0 -78
  1126. package/.opencode/oh-my-design/web/src/components/playground/mood-override-badge.tsx +0 -40
  1127. package/.opencode/oh-my-design/web/src/components/playground/preview-pane.tsx +0 -82
  1128. package/.opencode/oh-my-design/web/src/components/playground/primitives-strip.tsx +0 -153
  1129. package/.opencode/oh-my-design/web/src/components/playground/reference-picker-modal.tsx +0 -146
  1130. package/.opencode/oh-my-design/web/src/components/playground/share-button.tsx +0 -42
  1131. package/.opencode/oh-my-design/web/src/components/playground/start-from.tsx +0 -90
  1132. package/.opencode/oh-my-design/web/src/components/preview-export-view.tsx +0 -205
  1133. package/.opencode/oh-my-design/web/src/components/preview.tsx +0 -869
  1134. package/.opencode/oh-my-design/web/src/components/reference-preview.tsx +0 -1187
  1135. package/.opencode/oh-my-design/web/src/components/reference-selector.tsx +0 -671
  1136. package/.opencode/oh-my-design/web/src/components/scroll-to-top.tsx +0 -41
  1137. package/.opencode/oh-my-design/web/src/components/status-badge.tsx +0 -64
  1138. package/.opencode/oh-my-design/web/src/components/survey/company-mini-ui.tsx +0 -669
  1139. package/.opencode/oh-my-design/web/src/components/survey/install-cta.tsx +0 -80
  1140. package/.opencode/oh-my-design/web/src/components/survey/mood-step.tsx +0 -260
  1141. package/.opencode/oh-my-design/web/src/components/survey/quiz-wizard.tsx +0 -528
  1142. package/.opencode/oh-my-design/web/src/components/survey/result-card.tsx +0 -242
  1143. package/.opencode/oh-my-design/web/src/components/survey/share-buttons.tsx +0 -320
  1144. package/.opencode/oh-my-design/web/src/components/survey/survey-wizard.tsx +0 -661
  1145. package/.opencode/oh-my-design/web/src/components/survey/typography-step.tsx +0 -192
  1146. package/.opencode/oh-my-design/web/src/components/theme-provider.tsx +0 -12
  1147. package/.opencode/oh-my-design/web/src/components/ui/badge.tsx +0 -52
  1148. package/.opencode/oh-my-design/web/src/components/ui/button.tsx +0 -58
  1149. package/.opencode/oh-my-design/web/src/components/ui/card.tsx +0 -103
  1150. package/.opencode/oh-my-design/web/src/components/ui/dialog.tsx +0 -160
  1151. package/.opencode/oh-my-design/web/src/components/ui/input.tsx +0 -20
  1152. package/.opencode/oh-my-design/web/src/components/ui/label.tsx +0 -20
  1153. package/.opencode/oh-my-design/web/src/components/ui/radio-group.tsx +0 -38
  1154. package/.opencode/oh-my-design/web/src/components/ui/scroll-area.tsx +0 -55
  1155. package/.opencode/oh-my-design/web/src/components/ui/select.tsx +0 -201
  1156. package/.opencode/oh-my-design/web/src/components/ui/separator.tsx +0 -25
  1157. package/.opencode/oh-my-design/web/src/components/ui/sheet.tsx +0 -138
  1158. package/.opencode/oh-my-design/web/src/components/ui/slider.tsx +0 -52
  1159. package/.opencode/oh-my-design/web/src/components/ui/switch.tsx +0 -32
  1160. package/.opencode/oh-my-design/web/src/components/ui/tabs.tsx +0 -82
  1161. package/.opencode/oh-my-design/web/src/components/ui/tooltip.tsx +0 -66
  1162. package/.opencode/oh-my-design/web/src/data/faq.ts +0 -81
  1163. package/.opencode/oh-my-design/web/src/data/registry.generated.ts +0 -304
  1164. package/.opencode/oh-my-design/web/src/data/version.generated.ts +0 -2
  1165. package/.opencode/oh-my-design/web/src/lib/changelog.ts +0 -96
  1166. package/.opencode/oh-my-design/web/src/lib/collections.ts +0 -252
  1167. package/.opencode/oh-my-design/web/src/lib/contrast.ts +0 -40
  1168. package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.test.ts +0 -100
  1169. package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.ts +0 -102
  1170. package/.opencode/oh-my-design/web/src/lib/core/color.ts +0 -122
  1171. package/.opencode/oh-my-design/web/src/lib/core/config-hash.test.ts +0 -157
  1172. package/.opencode/oh-my-design/web/src/lib/core/config-hash.ts +0 -133
  1173. package/.opencode/oh-my-design/web/src/lib/core/generate-css.test.ts +0 -813
  1174. package/.opencode/oh-my-design/web/src/lib/core/generate-css.ts +0 -586
  1175. package/.opencode/oh-my-design/web/src/lib/core/survey-hash.test.ts +0 -51
  1176. package/.opencode/oh-my-design/web/src/lib/core/survey-hash.ts +0 -56
  1177. package/.opencode/oh-my-design/web/src/lib/core/types.ts +0 -37
  1178. package/.opencode/oh-my-design/web/src/lib/design-systems.ts +0 -102
  1179. package/.opencode/oh-my-design/web/src/lib/extract-components.test.ts +0 -116
  1180. package/.opencode/oh-my-design/web/src/lib/extract-tokens.test.ts +0 -202
  1181. package/.opencode/oh-my-design/web/src/lib/extract-tokens.ts +0 -1335
  1182. package/.opencode/oh-my-design/web/src/lib/font-registry.ts +0 -376
  1183. package/.opencode/oh-my-design/web/src/lib/fonts/analytics.test.ts +0 -194
  1184. package/.opencode/oh-my-design/web/src/lib/fonts/analytics.ts +0 -234
  1185. package/.opencode/oh-my-design/web/src/lib/fonts/catalog.ts +0 -1509
  1186. package/.opencode/oh-my-design/web/src/lib/fonts/designmd-export.ts +0 -104
  1187. package/.opencode/oh-my-design/web/src/lib/fonts/loaders.test.ts +0 -169
  1188. package/.opencode/oh-my-design/web/src/lib/fonts/loaders.ts +0 -90
  1189. package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.test.ts +0 -93
  1190. package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.ts +0 -288
  1191. package/.opencode/oh-my-design/web/src/lib/fonts/preview-contexts.ts +0 -124
  1192. package/.opencode/oh-my-design/web/src/lib/fonts/rate-limit.ts +0 -43
  1193. package/.opencode/oh-my-design/web/src/lib/fonts/saved-store.ts +0 -113
  1194. package/.opencode/oh-my-design/web/src/lib/fonts/share-link.test.ts +0 -101
  1195. package/.opencode/oh-my-design/web/src/lib/fonts/share-link.ts +0 -52
  1196. package/.opencode/oh-my-design/web/src/lib/fonts/similarity.ts +0 -106
  1197. package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.test.ts +0 -213
  1198. package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.ts +0 -186
  1199. package/.opencode/oh-my-design/web/src/lib/fonts/types.ts +0 -96
  1200. package/.opencode/oh-my-design/web/src/lib/gtag.ts +0 -64
  1201. package/.opencode/oh-my-design/web/src/lib/hot-refs.ts +0 -41
  1202. package/.opencode/oh-my-design/web/src/lib/kv.ts +0 -30
  1203. package/.opencode/oh-my-design/web/src/lib/logos.ts +0 -39
  1204. package/.opencode/oh-my-design/web/src/lib/new-refs.ts +0 -30
  1205. package/.opencode/oh-my-design/web/src/lib/playground/codec.ts +0 -34
  1206. package/.opencode/oh-my-design/web/src/lib/playground/defaults.ts +0 -56
  1207. package/.opencode/oh-my-design/web/src/lib/playground/generate.ts +0 -384
  1208. package/.opencode/oh-my-design/web/src/lib/playground/palettes.ts +0 -259
  1209. package/.opencode/oh-my-design/web/src/lib/playground/rules/density.ts +0 -59
  1210. package/.opencode/oh-my-design/web/src/lib/playground/rules/mood.ts +0 -82
  1211. package/.opencode/oh-my-design/web/src/lib/playground/rules/motion.ts +0 -71
  1212. package/.opencode/oh-my-design/web/src/lib/playground/rules/personality.ts +0 -93
  1213. package/.opencode/oh-my-design/web/src/lib/playground/rules/philosophy.ts +0 -270
  1214. package/.opencode/oh-my-design/web/src/lib/playground/rules/radius.ts +0 -54
  1215. package/.opencode/oh-my-design/web/src/lib/playground/rules/weight.ts +0 -41
  1216. package/.opencode/oh-my-design/web/src/lib/playground/samples.ts +0 -280
  1217. package/.opencode/oh-my-design/web/src/lib/playground/state.ts +0 -194
  1218. package/.opencode/oh-my-design/web/src/lib/search-aliases.ts +0 -213
  1219. package/.opencode/oh-my-design/web/src/lib/survey/profiles.generated.ts +0 -1143
  1220. package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.test.ts +0 -102
  1221. package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.ts +0 -571
  1222. package/.opencode/oh-my-design/web/src/lib/survey/scoring.test.ts +0 -111
  1223. package/.opencode/oh-my-design/web/src/lib/survey/scoring.ts +0 -146
  1224. package/.opencode/oh-my-design/web/src/lib/survey/types.test.ts +0 -153
  1225. package/.opencode/oh-my-design/web/src/lib/survey/types.ts +0 -604
  1226. package/.opencode/oh-my-design/web/src/lib/utils.ts +0 -6
  1227. package/.opencode/oh-my-design/web/src/styles/shadcn.css +0 -95
  1228. package/.opencode/oh-my-design/web/src/styles/tw-animate.css +0 -1
  1229. package/.opencode/oh-my-design/web/src/types/gtag.d.ts +0 -3
  1230. package/.opencode/oh-my-design/web/tsconfig.json +0 -34
  1231. package/.opencode/oh-my-design/web/vitest.config.ts +0 -14
  1232. package/.utils/docs_opencode/acp.md +0 -165
  1233. package/.utils/docs_opencode/acp.pdf +0 -0
  1234. package/.utils/docs_opencode/agents.md +0 -803
  1235. package/.utils/docs_opencode/agents.pdf +0 -0
  1236. package/.utils/docs_opencode/commands.md +0 -354
  1237. package/.utils/docs_opencode/commands.pdf +0 -0
  1238. package/.utils/docs_opencode/custom-tools.md +0 -209
  1239. package/.utils/docs_opencode/custom-tools.pdf +0 -0
  1240. package/.utils/docs_opencode/ecosystem.md +0 -81
  1241. package/.utils/docs_opencode/ecosystem.pdf +0 -0
  1242. package/.utils/docs_opencode/formatters.md +0 -142
  1243. package/.utils/docs_opencode/formatters.pdf +0 -0
  1244. package/.utils/docs_opencode/keybinds.md +0 -205
  1245. package/.utils/docs_opencode/keybinds.pdf +0 -0
  1246. package/.utils/docs_opencode/lsp.md +0 -202
  1247. package/.utils/docs_opencode/lsp.pdf +0 -0
  1248. package/.utils/docs_opencode/mcp-servers.md +0 -565
  1249. package/.utils/docs_opencode/mcp-servers.pdf +0 -0
  1250. package/.utils/docs_opencode/models.md +0 -234
  1251. package/.utils/docs_opencode/models.pdf +0 -0
  1252. package/.utils/docs_opencode/permissions.md +0 -248
  1253. package/.utils/docs_opencode/permissions.pdf +0 -0
  1254. package/.utils/docs_opencode/plugins.md +0 -409
  1255. package/.utils/docs_opencode/plugins.pdf +0 -0
  1256. package/.utils/docs_opencode/rules.md +0 -189
  1257. package/.utils/docs_opencode/rules.pdf +0 -0
  1258. package/.utils/docs_opencode/sdk.md +0 -522
  1259. package/.utils/docs_opencode/sdk.pdf +0 -0
  1260. package/.utils/docs_opencode/server.md +0 -324
  1261. package/.utils/docs_opencode/server.pdf +0 -0
  1262. package/.utils/docs_opencode/skills.md +0 -235
  1263. package/.utils/docs_opencode/skills.pdf +0 -0
  1264. package/.utils/docs_opencode/themes.md +0 -378
  1265. package/.utils/docs_opencode/themes.pdf +0 -0
  1266. package/.utils/docs_opencode/tools.md +0 -364
  1267. package/.utils/docs_opencode/tools.pdf +0 -0
  1268. package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.app.tsbuildinfo +0 -1
  1269. package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.node.tsbuildinfo +0 -1
  1270. package/.utils/zugzweb/client/node_modules/nanoid/.claude/settings.local.json +0 -14
  1271. package/.utils/zugzweb/client/package-lock.json +0 -3707
@@ -1,637 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * One-shot migration: enrich every references/<id>/DESIGN.md frontmatter
4
- * with canonical fields by merging:
5
- * - existing frontmatter (wins when non-empty)
6
- * - the 5 source-of-truth maps in web/src/...
7
- *
8
- * Required after migration:
9
- * id, name, country, category, homepage, primary_color, logo.type,
10
- * logo.slug, verified
11
- * Optional: display_name_kr, ds, omd
12
- *
13
- * Usage:
14
- * node web/scripts/migrate-frontmatters.mjs # write
15
- * node web/scripts/migrate-frontmatters.mjs --dry-run # diff only
16
- */
17
- import { readdirSync, readFileSync, writeFileSync, existsSync } from 'node:fs';
18
- import { join, dirname, resolve } from 'node:path';
19
- import { fileURLToPath } from 'node:url';
20
-
21
- const __filename = fileURLToPath(import.meta.url);
22
- const __dirname = dirname(__filename);
23
- const ROOT = resolve(__dirname, '..', '..');
24
- const REFS_DIR = join(ROOT, 'references');
25
- const DRY_RUN = process.argv.includes('--dry-run');
26
-
27
- // ─── Canonical category slug + country code maps ────────────────────────
28
- const CATEGORY_LABEL_TO_SLUG = {
29
- 'Fintech': 'fintech',
30
- 'Developer Tools': 'developer-tools',
31
- 'Backend & DevOps': 'backend-devops',
32
- 'Productivity': 'productivity',
33
- 'Design Tools': 'design-tools',
34
- 'AI & LLM': 'ai',
35
- 'Consumer Tech': 'consumer-tech',
36
- 'Marketing': 'marketing',
37
- 'Automotive': 'automotive',
38
- 'E-commerce': 'ecommerce',
39
- 'Travel': 'consumer-tech', // collapse travel → consumer-tech (no separate canonical)
40
- 'Government': 'government',
41
- 'Education': 'education',
42
- 'Healthcare': 'healthcare',
43
- 'Other': 'consumer-tech',
44
- };
45
-
46
- const COUNTRY_LABEL_TO_CODE = {
47
- 'Korea': 'KR',
48
- 'Taiwan': 'TW',
49
- 'Japan': 'JP',
50
- 'France': 'FR',
51
- 'Italy': 'IT',
52
- 'Germany': 'DE',
53
- 'UK': 'UK',
54
- 'United States': 'US',
55
- };
56
-
57
- // Loose remap from arbitrary existing-frontmatter category strings into the canonical slugs.
58
- function normalizeCategory(raw) {
59
- if (!raw) return null;
60
- const s = String(raw).toLowerCase().trim();
61
- if (CATEGORY_LABEL_TO_SLUG[raw]) return CATEGORY_LABEL_TO_SLUG[raw];
62
- const direct = ['ecommerce','fintech','saas','ai','consumer-tech','education','productivity','developer-tools','design-tools','backend-devops','automotive','marketing','government','healthcare'];
63
- if (direct.includes(s)) return s;
64
- // common aliases
65
- const alias = {
66
- 'e-commerce': 'ecommerce',
67
- 'marketplace': 'ecommerce',
68
- 'consumer': 'consumer-tech',
69
- 'travel': 'consumer-tech',
70
- 'dev-tools': 'developer-tools',
71
- 'design tools': 'design-tools',
72
- 'ai & llm': 'ai',
73
- 'llm': 'ai',
74
- 'backend': 'backend-devops',
75
- 'devops': 'backend-devops',
76
- 'backend & devops': 'backend-devops',
77
- 'auto': 'automotive',
78
- 'gov': 'government',
79
- };
80
- return alias[s] || null;
81
- }
82
-
83
- function normalizeCountry(raw) {
84
- if (!raw) return null;
85
- const s = String(raw).trim();
86
- if (COUNTRY_LABEL_TO_CODE[s]) return COUNTRY_LABEL_TO_CODE[s];
87
- if (['KR','US','JP','TW','UK','DE','FR','IT'].includes(s.toUpperCase())) return s.toUpperCase();
88
- return null;
89
- }
90
-
91
- // ─── Source-of-truth maps (copied from web/src/...) ─────────────────────
92
- const CATEGORIES_RAW = {
93
- stripe: 'Fintech', coinbase: 'Fintech', revolut: 'Fintech', wise: 'Fintech', kraken: 'Fintech',
94
- vercel: 'Developer Tools', cursor: 'Developer Tools', warp: 'Developer Tools',
95
- expo: 'Developer Tools', lovable: 'Developer Tools', raycast: 'Developer Tools', superhuman: 'Developer Tools',
96
- supabase: 'Backend & DevOps', mongodb: 'Backend & DevOps', sentry: 'Backend & DevOps',
97
- posthog: 'Backend & DevOps', hashicorp: 'Backend & DevOps', clickhouse: 'Backend & DevOps',
98
- composio: 'Backend & DevOps', sanity: 'Backend & DevOps',
99
- notion: 'Productivity', 'linear.app': 'Productivity', cal: 'Productivity',
100
- zapier: 'Productivity', intercom: 'Productivity', resend: 'Productivity', mintlify: 'Productivity',
101
- figma: 'Design Tools', framer: 'Design Tools', miro: 'Design Tools',
102
- webflow: 'Design Tools', airtable: 'Design Tools', clay: 'Design Tools',
103
- claude: 'AI & LLM', cohere: 'AI & LLM', 'mistral.ai': 'AI & LLM',
104
- ollama: 'AI & LLM', 'opencode.ai': 'AI & LLM', replicate: 'AI & LLM',
105
- 'together.ai': 'AI & LLM', 'x.ai': 'AI & LLM', elevenlabs: 'AI & LLM',
106
- minimax: 'AI & LLM', runwayml: 'AI & LLM', voltagent: 'AI & LLM',
107
- apple: 'Consumer Tech', spotify: 'Consumer Tech', uber: 'Consumer Tech',
108
- airbnb: 'Consumer Tech', pinterest: 'Consumer Tech', nvidia: 'Consumer Tech',
109
- ibm: 'Consumer Tech', spacex: 'Consumer Tech', semrush: 'Marketing',
110
- tesla: 'Automotive', bmw: 'Automotive', ferrari: 'Automotive',
111
- lamborghini: 'Automotive', renault: 'Automotive',
112
- toss: 'Fintech', kakaobank: 'Fintech',
113
- kakao: 'Consumer Tech', baemin: 'Consumer Tech', karrot: 'Consumer Tech',
114
- naver: 'Consumer Tech', ohouse: 'Consumer Tech', ridi: 'Consumer Tech',
115
- qanda: 'Consumer Tech',
116
- pinkoi: 'Consumer Tech', dcard: 'Consumer Tech',
117
- line: 'Consumer Tech', mercari: 'Consumer Tech',
118
- freee: 'Productivity',
119
- coupang: 'E-commerce', musinsa: 'E-commerce', kurly: 'E-commerce',
120
- yeogiotte: 'Travel', yanolja: 'Travel',
121
- krds: 'Government',
122
- socar: 'Consumer Tech', gangnamunni: 'Consumer Tech', zigbang: 'Consumer Tech',
123
- kakaopay: 'Fintech', banksalad: 'Fintech',
124
- zigzag: 'E-commerce', '29cm': 'E-commerce', ably: 'E-commerce',
125
- wanted: 'Productivity', remember: 'Productivity',
126
- kream: 'E-commerce', bunjang: 'E-commerce',
127
- upbit: 'Fintech', kbank: 'Fintech', wadiz: 'Fintech',
128
- inflearn: 'Productivity', classum: 'Productivity',
129
- channeltalk: 'Productivity', flex: 'Productivity',
130
- lunit: 'Consumer Tech',
131
- 'toss-securities': 'Fintech', chai: 'Fintech',
132
- oliveyoung: 'E-commerce', gmarket: 'E-commerce',
133
- tving: 'Consumer Tech', catchtable: 'Consumer Tech', dabang: 'Consumer Tech',
134
- upstage: 'AI & LLM',
135
- jumpit: 'Productivity', fastcampus: 'Productivity',
136
- };
137
-
138
- const COUNTRIES_RAW = {
139
- toss: 'Korea', kakao: 'Korea', baemin: 'Korea', karrot: 'Korea',
140
- yeogiotte: 'Korea', musinsa: 'Korea', kurly: 'Korea', ohouse: 'Korea',
141
- naver: 'Korea', yanolja: 'Korea', coupang: 'Korea', kakaobank: 'Korea',
142
- ridi: 'Korea', qanda: 'Korea', krds: 'Korea',
143
- socar: 'Korea', gangnamunni: 'Korea', kakaopay: 'Korea', zigzag: 'Korea',
144
- '29cm': 'Korea', ably: 'Korea', banksalad: 'Korea', zigbang: 'Korea',
145
- wanted: 'Korea', remember: 'Korea',
146
- kream: 'Korea', upbit: 'Korea', kbank: 'Korea', inflearn: 'Korea',
147
- wadiz: 'Korea', channeltalk: 'Korea', lunit: 'Korea',
148
- bunjang: 'Korea', flex: 'Korea', classum: 'Korea',
149
- 'toss-securities': 'Korea', oliveyoung: 'Korea', gmarket: 'Korea',
150
- tving: 'Korea', catchtable: 'Korea', upstage: 'Korea', chai: 'Korea',
151
- dabang: 'Korea', jumpit: 'Korea', fastcampus: 'Korea',
152
- pinkoi: 'Taiwan', dcard: 'Taiwan',
153
- line: 'Japan', mercari: 'Japan', freee: 'Japan',
154
- 'mistral.ai': 'France', renault: 'France',
155
- ferrari: 'Italy', lamborghini: 'Italy',
156
- bmw: 'Germany',
157
- revolut: 'UK', wise: 'UK',
158
- };
159
-
160
- const DISPLAY_NAMES_RAW = {
161
- 'linear.app': 'Linear', cal: 'Cal.com', 'mistral.ai': 'Mistral AI',
162
- 'opencode.ai': 'OpenCode AI', 'together.ai': 'Together AI', 'x.ai': 'xAI',
163
- ibm: 'IBM', bmw: 'BMW', nvidia: 'NVIDIA', posthog: 'PostHog',
164
- supabase: 'Supabase', voltagent: 'VoltAgent', elevenlabs: 'ElevenLabs',
165
- runwayml: 'RunwayML', spacex: 'SpaceX', coinbase: 'Coinbase',
166
- airbnb: 'Airbnb', clickhouse: 'ClickHouse',
167
- karrot: 'Karrot', toss: 'Toss', baemin: 'Baemin', kakao: 'Kakao',
168
- pinkoi: 'Pinkoi', dcard: 'Dcard',
169
- line: 'LINE', mercari: 'Mercari', freee: 'freee',
170
- yeogiotte: '여기어때', musinsa: 'Musinsa', kurly: 'Kurly', ohouse: 'Ohouse',
171
- naver: 'Naver', yanolja: 'Yanolja', coupang: 'Coupang',
172
- kakaobank: 'KakaoBank', ridi: 'RIDI', qanda: 'QANDA',
173
- krds: 'KRDS',
174
- socar: 'SOCAR', gangnamunni: '강남언니', kakaopay: 'KakaoPay',
175
- zigzag: 'ZIGZAG', '29cm': '29CM', ably: 'Ably',
176
- banksalad: 'Banksalad', zigbang: 'Zigbang',
177
- wanted: 'Wanted', remember: 'Remember',
178
- kream: 'KREAM', upbit: 'Upbit', kbank: 'K bank', inflearn: 'Inflearn',
179
- wadiz: 'Wadiz', channeltalk: 'Channel Talk', lunit: 'Lunit',
180
- bunjang: '번개장터', flex: 'flex', classum: 'Classum',
181
- 'toss-securities': 'Toss Securities', oliveyoung: 'Olive Young',
182
- gmarket: 'Gmarket', tving: 'TVING', catchtable: 'CatchTable',
183
- upstage: 'Upstage', chai: 'Chai', dabang: '다방',
184
- jumpit: 'Jumpit', fastcampus: 'fastcampus',
185
- };
186
-
187
- // Korean display name overrides (display_name_kr) — distinct from `name`.
188
- // We extract these by detecting Hangul in DISPLAY_NAMES_RAW.
189
- const KR_DISPLAY = {};
190
- for (const [id, name] of Object.entries(DISPLAY_NAMES_RAW)) {
191
- if (/[가-힯]/.test(name)) KR_DISPLAY[id] = name;
192
- }
193
- // extra known KR display names not in the original DISPLAY_NAMES map
194
- Object.assign(KR_DISPLAY, {
195
- // gmarket has brand_kr in its own frontmatter (지마켓); upstage has 업스테이지
196
- gmarket: '지마켓',
197
- upstage: '업스테이지',
198
- });
199
-
200
- const HOMEPAGE_URLS = {
201
- airbnb: 'https://www.airbnb.com', airtable: 'https://www.airtable.com', apple: 'https://www.apple.com',
202
- baemin: 'https://www.baemin.com', bmw: 'https://www.bmw.com', cal: 'https://cal.com',
203
- claude: 'https://claude.ai', clay: 'https://www.clay.com', clickhouse: 'https://clickhouse.com',
204
- cohere: 'https://cohere.com', coinbase: 'https://www.coinbase.com', composio: 'https://composio.dev',
205
- cursor: 'https://www.cursor.com', dcard: 'https://www.dcard.tw', elevenlabs: 'https://elevenlabs.io',
206
- expo: 'https://expo.dev', ferrari: 'https://www.ferrari.com', figma: 'https://www.figma.com',
207
- framer: 'https://www.framer.com', freee: 'https://www.freee.co.jp', hashicorp: 'https://www.hashicorp.com',
208
- ibm: 'https://www.ibm.com', intercom: 'https://www.intercom.com', kakao: 'https://www.kakao.com',
209
- karrot: 'https://www.karrotmarket.com', kraken: 'https://www.kraken.com', lamborghini: 'https://www.lamborghini.com',
210
- line: 'https://line.me', 'linear.app': 'https://linear.app', lovable: 'https://lovable.dev',
211
- mercari: 'https://www.mercari.com', minimax: 'https://www.minimaxi.com', mintlify: 'https://mintlify.com',
212
- miro: 'https://miro.com', 'mistral.ai': 'https://mistral.ai', mongodb: 'https://www.mongodb.com',
213
- notion: 'https://www.notion.so', nvidia: 'https://www.nvidia.com', ollama: 'https://ollama.com',
214
- 'opencode.ai': 'https://opencode.ai', pinkoi: 'https://www.pinkoi.com', pinterest: 'https://www.pinterest.com',
215
- posthog: 'https://posthog.com', raycast: 'https://www.raycast.com', renault: 'https://www.renault.com',
216
- replicate: 'https://replicate.com', resend: 'https://resend.com', revolut: 'https://www.revolut.com',
217
- runwayml: 'https://runwayml.com', sanity: 'https://www.sanity.io', sentry: 'https://sentry.io',
218
- spacex: 'https://www.spacex.com', spotify: 'https://www.spotify.com', stripe: 'https://stripe.com',
219
- supabase: 'https://supabase.com', superhuman: 'https://superhuman.com', tesla: 'https://www.tesla.com',
220
- 'together.ai': 'https://www.together.ai', toss: 'https://toss.im', uber: 'https://www.uber.com',
221
- vercel: 'https://vercel.com', voltagent: 'https://voltagent.dev', warp: 'https://www.warp.dev',
222
- webflow: 'https://webflow.com', wise: 'https://wise.com', 'x.ai': 'https://x.ai',
223
- zapier: 'https://zapier.com',
224
- yeogiotte: 'https://www.yeogi.com', musinsa: 'https://www.musinsa.com', kurly: 'https://www.kurly.com',
225
- ohouse: 'https://ohou.se', naver: 'https://www.naver.com', yanolja: 'https://www.yanolja.com',
226
- coupang: 'https://www.coupang.com', kakaobank: 'https://www.kakaobank.com', ridi: 'https://ridibooks.com',
227
- qanda: 'https://qanda.ai', krds: 'https://www.krds.go.kr/html/site/index.html',
228
- socar: 'https://www.socar.kr', gangnamunni: 'https://www.gangnamunni.com', kakaopay: 'https://www.kakaopay.com',
229
- zigzag: 'https://zigzag.kr', '29cm': 'https://www.29cm.co.kr', ably: 'https://m.a-bly.com',
230
- banksalad: 'https://www.banksalad.com', zigbang: 'https://www.zigbang.com', wanted: 'https://www.wanted.co.kr',
231
- remember: 'https://www.rememberapp.co.kr',
232
- kream: 'https://kream.co.kr', upbit: 'https://upbit.com', kbank: 'https://www.kbanknow.com',
233
- inflearn: 'https://www.inflearn.com', wadiz: 'https://www.wadiz.kr', channeltalk: 'https://channel.io',
234
- lunit: 'https://www.lunit.io', bunjang: 'https://m.bunjang.co.kr', flex: 'https://flex.team',
235
- classum: 'https://www.classum.com',
236
- 'toss-securities': 'https://tossinvest.com', oliveyoung: 'https://www.oliveyoung.co.kr',
237
- gmarket: 'https://www.gmarket.co.kr', tving: 'https://www.tving.com', catchtable: 'https://www.catchtable.co.kr',
238
- upstage: 'https://www.upstage.ai', chai: 'https://chai.finance', dabang: 'https://www.dabangapp.com',
239
- jumpit: 'https://www.jumpit.co.kr', fastcampus: 'https://fastcampus.co.kr',
240
- // Cover unmapped ones with the .com fallback used by getLogoFallbackUrl semantics.
241
- // Anything not present here we'll derive from id at write time.
242
- yanoljaPlaceholder_: '', // noop key removed below
243
- };
244
- delete HOMEPAGE_URLS.yanoljaPlaceholder_;
245
-
246
- const LOGO_MAP = {
247
- claude: { type: 'simpleicons', slug: 'anthropic' }, cohere: { type: 'github', slug: 'cohere-ai' },
248
- elevenlabs: { type: 'simpleicons', slug: 'elevenlabs' }, minimax: { type: 'simpleicons', slug: 'minimax' },
249
- 'mistral.ai': { type: 'simpleicons', slug: 'mistralai' }, ollama: { type: 'simpleicons', slug: 'ollama' },
250
- 'opencode.ai': { type: 'github', slug: 'opencode-ai' }, replicate: { type: 'simpleicons', slug: 'replicate' },
251
- runwayml: { type: 'github', slug: 'runwayml' }, 'together.ai': { type: 'github', slug: 'togethercomputer' },
252
- voltagent: { type: 'github', slug: 'VoltAgent' }, 'x.ai': { type: 'simpleicons', slug: 'x' },
253
- bmw: { type: 'simpleicons', slug: 'bmw' }, ferrari: { type: 'simpleicons', slug: 'ferrari' },
254
- lamborghini: { type: 'simpleicons', slug: 'lamborghini' }, renault: { type: 'simpleicons', slug: 'renault' },
255
- tesla: { type: 'simpleicons', slug: 'tesla' },
256
- clickhouse: { type: 'simpleicons', slug: 'clickhouse' }, composio: { type: 'github', slug: 'composiohq' },
257
- hashicorp: { type: 'simpleicons', slug: 'hashicorp' }, mongodb: { type: 'simpleicons', slug: 'mongodb' },
258
- posthog: { type: 'simpleicons', slug: 'posthog' }, sanity: { type: 'simpleicons', slug: 'sanity' },
259
- sentry: { type: 'simpleicons', slug: 'sentry' }, supabase: { type: 'simpleicons', slug: 'supabase' },
260
- airbnb: { type: 'simpleicons', slug: 'airbnb' }, apple: { type: 'simpleicons', slug: 'apple' },
261
- ibm: { type: 'github', slug: 'IBM' }, nvidia: { type: 'simpleicons', slug: 'nvidia' },
262
- pinterest: { type: 'simpleicons', slug: 'pinterest' }, spacex: { type: 'simpleicons', slug: 'spacex' },
263
- spotify: { type: 'simpleicons', slug: 'spotify' }, uber: { type: 'simpleicons', slug: 'uber' },
264
- airtable: { type: 'simpleicons', slug: 'airtable' }, clay: { type: 'github', slug: 'clay-run' },
265
- figma: { type: 'simpleicons', slug: 'figma' }, framer: { type: 'simpleicons', slug: 'framer' },
266
- miro: { type: 'simpleicons', slug: 'miro' }, webflow: { type: 'simpleicons', slug: 'webflow' },
267
- cursor: { type: 'simpleicons', slug: 'cursor' }, expo: { type: 'simpleicons', slug: 'expo' },
268
- lovable: { type: 'favicon', slug: 'https://lovable.dev/favicon-192x192.png' },
269
- raycast: { type: 'simpleicons', slug: 'raycast' }, superhuman: { type: 'github', slug: 'superhuman' },
270
- vercel: { type: 'simpleicons', slug: 'vercel' }, warp: { type: 'simpleicons', slug: 'warp' },
271
- coinbase: { type: 'simpleicons', slug: 'coinbase' }, kraken: { type: 'github', slug: 'krakenfx' },
272
- revolut: { type: 'simpleicons', slug: 'revolut' }, stripe: { type: 'simpleicons', slug: 'stripe' },
273
- wise: { type: 'simpleicons', slug: 'wise' },
274
- karrot: { type: 'github', slug: 'daangn' },
275
- toss: { type: 'favicon', slug: 'https://static.toss.im/icons/png/4x/icon-toss-logo.png' },
276
- baemin: { type: 'favicon', slug: 'https://www.baemin.com/favicon.ico' },
277
- kakao: { type: 'simpleicons', slug: 'kakaotalk' }, kakaobank: { type: 'simpleicons', slug: 'kakaotalk' },
278
- naver: { type: 'simpleicons', slug: 'naver' }, coupang: { type: 'simpleicons', slug: 'coupang' },
279
- yeogiotte: { type: 'favicon', slug: 'https://www.yeogi.com/favicon/rel_icon/favicon_png_192.png' },
280
- yanolja: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=yanolja.com&sz=128' },
281
- musinsa: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=musinsa.com&sz=128' },
282
- kurly: { type: 'favicon', slug: 'https://res.kurly.com/icons/favicon-128x128.png' },
283
- ohouse: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=ohou.se&sz=128' },
284
- ridi: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=ridibooks.com&sz=128' },
285
- qanda: { type: 'favicon', slug: 'https://qanda.ai/favicon.ico' },
286
- krds: { type: 'favicon', slug: 'https://www.krds.go.kr/resources/img/guide/favicon_192.png' },
287
- socar: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=socar.kr&sz=256' },
288
- gangnamunni: { type: 'favicon', slug: 'https://www.gangnamunni.com/images/icon/apple-icon-180x180.png' },
289
- kakaopay: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=kakaopay.com&sz=256' },
290
- zigzag: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=zigzag.kr&sz=256' },
291
- '29cm': { type: 'favicon', slug: 'https://asset.29cm.co.kr/icon/apple-icon-144x144.png' },
292
- ably: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=a-bly.com&sz=128' },
293
- banksalad: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=banksalad.com&sz=256' },
294
- zigbang: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=zigbang.com&sz=256' },
295
- wanted: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=wanted.co.kr&sz=256' },
296
- remember: { type: 'favicon', slug: 'https://cdn.rememberapp.co.kr/logos/remember/rmbr_og_image.png' },
297
- kream: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=kream.co.kr&sz=256' },
298
- upbit: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=upbit.com&sz=256' },
299
- kbank: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=kbanknow.com&sz=256' },
300
- inflearn: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=inflearn.com&sz=256' },
301
- wadiz: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=wadiz.kr&sz=256' },
302
- channeltalk: { type: 'github', slug: 'channel-io' },
303
- lunit: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=lunit.io&sz=256' },
304
- bunjang: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=bunjang.co.kr&sz=256' },
305
- flex: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=flex.team&sz=256' },
306
- classum: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=classum.com&sz=256' },
307
- 'toss-securities': { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=tossinvest.com&sz=256' },
308
- oliveyoung: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=oliveyoung.co.kr&sz=256' },
309
- gmarket: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=gmarket.co.kr&sz=256' },
310
- tving: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=tving.com&sz=256' },
311
- catchtable: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=catchtable.co.kr&sz=256' },
312
- upstage: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=upstage.ai&sz=256' },
313
- chai: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=chai.finance&sz=256' },
314
- dabang: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=dabangapp.com&sz=256' },
315
- jumpit: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=jumpit.co.kr&sz=256' },
316
- fastcampus: { type: 'favicon', slug: 'https://www.google.com/s2/favicons?domain=fastcampus.co.kr&sz=256' },
317
- pinkoi: { type: 'github', slug: 'pinkoi' }, dcard: { type: 'github', slug: 'Dcard' },
318
- line: { type: 'simpleicons', slug: 'line' }, mercari: { type: 'github', slug: 'mercari' },
319
- freee: { type: 'github', slug: 'freee' },
320
- semrush: { type: 'simpleicons', slug: 'semrush' },
321
- cal: { type: 'simpleicons', slug: 'caldotcom' }, intercom: { type: 'simpleicons', slug: 'intercom' },
322
- 'linear.app': { type: 'simpleicons', slug: 'linear' }, mintlify: { type: 'simpleicons', slug: 'mintlify' },
323
- notion: { type: 'simpleicons', slug: 'notion' }, resend: { type: 'simpleicons', slug: 'resend' },
324
- zapier: { type: 'simpleicons', slug: 'zapier' },
325
- };
326
-
327
- const BRAND_COLORS = {
328
- stripe: '#635bff', toss: '#0064ff', 'linear.app': '#5e6ad2', notion: '#000000', vercel: '#000000',
329
- resend: '#000000', cursor: '#000000', airbnb: '#ff5a5f', spotify: '#1db954', uber: '#000000',
330
- apple: '#000000', pinterest: '#e60023', spacex: '#005288', tesla: '#cc0000', bmw: '#0066b1',
331
- ferrari: '#ff2800', lamborghini: '#f4c01a', renault: '#ffcc00', nvidia: '#76b900', ibm: '#0f62fe',
332
- mongodb: '#00ed64', posthog: '#1d4aff', sanity: '#f03e2f', sentry: '#362d59', supabase: '#3ecf8e',
333
- clickhouse: '#fff100', hashicorp: '#000000', composio: '#6366f1', airtable: '#fcb400',
334
- baemin: '#2ac1bc', cal: '#111827', claude: '#cc785c', clay: '#ffd23f', cohere: '#39594d',
335
- coinbase: '#0052ff', dcard: '#0086ff', elevenlabs: '#000000', expo: '#000020', figma: '#a259ff',
336
- framer: '#0055ff', freee: '#005bac', intercom: '#286efa', kakao: '#fee500', karrot: '#ff7e36',
337
- kraken: '#5741d9', line: '#06c755', lovable: '#ff6f61', mercari: '#ff0211', minimax: '#000000',
338
- mintlify: '#0d9373', miro: '#ffd02f', 'mistral.ai': '#ff7000', ollama: '#000000',
339
- 'opencode.ai': '#000000', pinkoi: '#ff595a', raycast: '#ff6363', replicate: '#fc7676',
340
- revolut: '#0075eb', runwayml: '#000000', superhuman: '#5840ff', 'together.ai': '#0f6fff',
341
- voltagent: '#22c55e', warp: '#01a4ff', webflow: '#146ef5', wise: '#9fe870', 'x.ai': '#000000',
342
- zapier: '#ff4f00',
343
- gangnamunni: '#d54300', kakaopay: '#ffeb00', zigzag: '#fa6ee3', '29cm': '#000000',
344
- ably: '#fa2e5f', banksalad: '#04c584', zigbang: '#0066ff', wanted: '#0066ff', remember: '#000000',
345
- kream: '#000000', upbit: '#093687', kbank: '#0046ff', inflearn: '#00c471', wadiz: '#00c4c4',
346
- channeltalk: '#4f46e5', lunit: '#1032cf', bunjang: '#d80c18', flex: '#000000', classum: '#ff4438',
347
- 'toss-securities': '#3182f6', oliveyoung: '#000000', gmarket: '#ffd200', tving: '#ff153c',
348
- catchtable: '#ff3d00', upstage: '#d2ff95', chai: '#ff0062', dabang: '#ff3478',
349
- jumpit: '#00dd6d', fastcampus: '#fc1c49',
350
- };
351
-
352
- const DS_OG_IMAGES = {
353
- airbnb: 'https://firebasestorage.googleapis.com/v0/b/standards-site-beta.appspot.com/o/documents%2Fa130cd31136%2F099b28f7432%2Fmeta%2Fstandards---project-thumbnail.png?alt=media&token=b1ee4a9a-cb2a-4dd9-ae43-01dd309d6f17',
354
- airtable: 'https://www.airtable.com/images/airtable-seo.jpg',
355
- apple: 'https://docs.developer.apple.com/tutorials/developer-og.jpg',
356
- cohere: 'https://cdn.sanity.io/images/rjtqmwfu/web3-prod/0750efbc3db33b1a67bc77575525b076f0137f26-1200x630.jpg?w=1200&h=630',
357
- cursor: 'https://cursor.com/public/opengraph-image.png',
358
- elevenlabs: 'https://elevenlabs.io/cover.png',
359
- expo: 'https://og.expo.dev/?theme=universe&title=Brand%2C+Assets%2C+Styles&description=Get+Expo+brand+assets+and+styles+for+any+use.',
360
- figma: 'https://cdn.sanity.io/images/599r6htc/regionalized/342e17642c7afa81206490b0dd21c3e5724ae040-2400x1260.png?w=1200&q=70&fit=max&auto=format',
361
- framer: 'https://framerusercontent.com/assets/MFmOCFlEnwFAS9IP2HbUEH68axo.jpg',
362
- ibm: 'https://carbondesignsystem.com/ogimage.png',
363
- line: 'https://designsystem.line.me/static/36a4ead41b7b972b1130287e849a14b1/73f08/SEO_IMG_1741574443.png',
364
- 'linear.app': 'https://linear.app/api/og/generic?title=Brand&v=3',
365
- miro: 'https://www.mirotone.xyz/cover.png',
366
- 'mistral.ai': 'https://mistral.ai/-/brand/opengraph-image-1robrb.png',
367
- 'opencode.ai': 'https://opencode.ai/social-share.png',
368
- posthog: 'https://d36j3rcgc2qfsv.cloudfront.net/handbookcompanybrand-assets.jpeg',
369
- resend: 'https://cdn.resend.com/cover-brand.png',
370
- sanity: 'https://cdn.sanity.io/images/mos42crl/production/f378d0067c1406f4e3d3ed6874cd715c72f52d2c-1920x1080.png',
371
- supabase: 'https://supabase.com/images/og/supabase-og.png',
372
- superhuman: 'https://superhumanstatic.com/super-funnel/main/public/images/v3/social-share.png',
373
- 'together.ai': 'https://cdn.prod.website-files.com/69654e88dce9154b5f1206dd/69a49f8243e74bf4b805d130_og-brand.jpg',
374
- vercel: 'https://assets.vercel.com/image/upload/v1709494095/front/design/geist-og.jpg',
375
- zapier: 'https://firebasestorage.googleapis.com/v0/b/standards-site-beta.appspot.com/o/documents%2F279072ea39f%2F8fc2c38ae5f%2Fmeta%2Fthumbnail_1_2.jpg?alt=media&token=0d0ea63f-6a32-4e46-b516-9db3c6c6ffe4',
376
- yeogiotte: 'https://framerusercontent.com/assets/kA6JROOLbG0jX7SQZl1tLZzahM.jpg',
377
- naver: 'https://www.navercorp.com/img/og/OG_TAG_1_Main.png',
378
- yanolja: 'https://www.yanoljagroup.com/common/assets/yanolja_colored_og_image.jpg',
379
- coupang: 'https://news.coupang.com/wp-content/uploads/2023/01/Coupang_2_1609.jpg',
380
- kakaobank: 'https://www.kakaobank.com/view/images/kkb_og_img.png',
381
- krds: 'https://www.krds.go.kr/resources/img/guide/KRDS_Open_Graph.png',
382
- kakaopay: 'https://i0.wp.com/story.kakaopay.com/wp-content/uploads/2024/03/kakaopay_thumb.png',
383
- zigzag: 'https://img1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/4Zzt/image/-3UDP-Htu127zH73hWgxU-DsWNg.jpg',
384
- gangnamunni: 'https://blog.gangnamunni.com/contents/posts/238d9338-d3d4-80ac-a8c6-da95db5bc8bc/cover/7d41f721-4cf0-408c-b2fd-f7aa403a5cbe.png',
385
- banksalad: 'https://avatars.githubusercontent.com/u/71009899?s=280&v=4',
386
- socar: 'https://design.socar.kr/og.jpg',
387
- remember: 'https://cdn.rememberapp.co.kr/logos/remember/rmbr_og_image.png',
388
- channeltalk: 'https://opengraph.githubassets.com/d5fd6836ec938de2c8399cf28b2ceabc49104fbbf86e937f9e89983f1b50d638/channel-io/bezier-react',
389
- upstage: 'https://cdn.prod.website-files.com/6743d5190bb2b52f38e99e37/680a25ee07a17eed6deeff74_OG.avif',
390
- };
391
-
392
- const DESIGN_SYSTEMS = {
393
- apple: { name: 'Human Interface Guidelines', url: 'https://developer.apple.com/design/human-interface-guidelines', type: 'system', description: "Apple's official design guidelines for iOS, macOS, watchOS, and visionOS." },
394
- clickhouse: { name: 'ClickHouse Design', url: 'https://clickhouse.design', type: 'system', description: 'ClickHouse brand hub plus the Click UI design system and component library.' },
395
- freee: { name: 'Vibes', url: 'https://vibes.freee.co.jp', type: 'system', description: "freee's open-source design system with accessibility-focused components." },
396
- hashicorp: { name: 'Helios', url: 'https://helios.hashicorp.design', type: 'system', description: "HashiCorp's design system documenting components and foundations." },
397
- ibm: { name: 'Carbon', url: 'https://carbondesignsystem.com', type: 'system', description: "IBM's open-source design system with React, Angular, Vue, and Web Components." },
398
- karrot: { name: 'SEED Design', url: 'https://seed-design.io', type: 'system', description: "Karrot (Daangn)'s open-source design system for marketplace apps." },
399
- line: { name: 'LINE Design System', url: 'https://designsystem.line.me', type: 'system', description: "LINE's shared design system for products across the LINE family." },
400
- miro: { name: 'Mirotone', url: 'https://mirotone.xyz', type: 'system', description: "Miro's CSS component library for apps built on the Miro platform." },
401
- mongodb: { name: 'LeafyGreen', url: 'https://www.mongodb.design', type: 'system', description: "MongoDB's open-source design system with an extensive React component library." },
402
- pinterest: { name: 'Gestalt', url: 'https://gestalt.pinterest.systems', type: 'system', description: "Pinterest's open-source React component library with tokens and foundations." },
403
- sanity: { name: 'Sanity UI', url: 'https://www.sanity.io/ui', type: 'system', description: "Sanity's accessible React toolkit for building apps with design tokens." },
404
- toss: { name: 'TDS', url: 'https://tossmini-docs.toss.im/tds-mobile/', type: 'system', description: "Toss's mobile design system — 40+ components, tokens, and hooks." },
405
- uber: { name: 'Base Web', url: 'https://baseweb.design', type: 'system', description: "Uber's React implementation of Base — a living component system." },
406
- vercel: { name: 'Geist', url: 'https://vercel.com/geist', type: 'system', description: "Vercel's design system with 50+ components, foundations, and brand resources." },
407
- wise: { name: 'Wise Design', url: 'https://wise.design', type: 'system', description: "Wise's design system covering foundations, components, patterns, and tone of voice." },
408
- socar: { name: 'SOCAR Design', url: 'https://design.socar.kr/', type: 'system', description: "SOCAR's design system hub — Space Frame, SOCAR Blue, Sandoll Gothic Neo2 + Avenir typography, and mobility-flow component patterns." },
409
- wanted: { name: 'Wanted Montage', url: 'https://montage.wanted.co.kr/', type: 'system', description: "Wanted's Montage design system docs — components, foundations, Wanted Sans, and the brandcenter resource hub." },
410
- remember: { name: 'Remember UI', url: 'https://dramancompany.github.io/remember-ui/', type: 'system', description: 'Remember (drama&company) UI library — public Storybook deploy with components for the business-card / B2B networking product.' },
411
- airbnb: { name: 'Airbnb Brand Hub', url: 'https://brand.withairbnb.com', type: 'brand', description: "Airbnb's brand guidelines hub with logo, color, and visual identity rules." },
412
- airtable: { name: 'Airtable Trademark Guidelines', url: 'https://www.airtable.com/company/trademark-guidelines', type: 'brand', description: "Airtable's trademark usage and brand guidelines." },
413
- clay: { name: 'Clay Newsroom', url: 'https://www.clay.com/press', type: 'brand', description: "Clay's official press kit and co-branding guidelines." },
414
- cohere: { name: 'Cohere Newsroom', url: 'https://cohere.com/newsroom', type: 'brand', description: "Cohere's press kit with logos, symbols, and media resources." },
415
- cursor: { name: 'Cursor Brand', url: 'https://www.cursor.com/brand', type: 'brand', description: "Cursor's brand guidelines with logos, icons, and naming conventions." },
416
- elevenlabs: { name: 'ElevenLabs Brand', url: 'https://elevenlabs.io/brand', type: 'brand', description: 'ElevenLabs brand guidelines covering logo, symbol, and product sub-brands.' },
417
- expo: { name: 'Expo Brand', url: 'https://expo.dev/brand', type: 'brand', description: 'Expo logo/wordmark trademark and usage guidelines.' },
418
- figma: { name: 'Figma Brand Guidelines', url: 'https://www.figma.com/using-the-figma-brand', type: 'brand', description: "Figma's official trademark and brand usage guidelines with logo downloads." },
419
- framer: { name: 'Framer Brand Guidelines', url: 'https://www.framer.com/brand', type: 'brand', description: "Framer's brand and trademark guidelines with logo rules and color palette." },
420
- 'linear.app': { name: 'Linear Brand', url: 'https://linear.app/brand', type: 'brand', description: "Linear's brand guidelines with wordmark, logomark, and color specifications." },
421
- 'mistral.ai': { name: 'Mistral Brand', url: 'https://mistral.ai/brand', type: 'brand', description: "Mistral AI's logo, colors, typography, and brand asset kit." },
422
- 'opencode.ai': { name: 'OpenCode Brand', url: 'https://opencode.ai/brand', type: 'brand', description: "OpenCode's terminal-oriented logo and brand assets." },
423
- posthog: { name: 'PostHog Brand Assets', url: 'https://posthog.com/handbook/company/brand-assets', type: 'brand', description: "PostHog's public handbook brand, logo, and illustration guidelines." },
424
- raycast: { name: 'Raycast Brand', url: 'https://www.raycast.com/templates/brand-guidelines', type: 'brand', description: "Raycast's brand guidelines with colors, logos, and asset kit." },
425
- resend: { name: 'Resend Brand', url: 'https://resend.com/brand', type: 'brand', description: "Resend's brand guidelines with wordmark, icons, and naming rules." },
426
- superhuman: { name: 'Superhuman Media Assets', url: 'https://superhuman.com/media-assets', type: 'brand', description: "Superhuman's press and brand asset kit." },
427
- supabase: { name: 'Supabase Brand Assets', url: 'https://supabase.com/brand-assets', type: 'brand', description: "Supabase's brand guidelines with logos and integration button specs." },
428
- 'together.ai': { name: 'Together AI Brand', url: 'https://www.together.ai/brand', type: 'brand', description: "Together AI's logo, color, and typography brand guidelines." },
429
- zapier: { name: 'Zapier Brand', url: 'https://brand.zapier.com', type: 'brand', description: "Zapier's official brand guidelines 1.0." },
430
- yeogiotte: { name: '여기어때 Design Library', url: 'https://designlibrary.yeogi.com/', type: 'system', description: '여기어때 디자인 라이브러리 — A Visual Language for Travel. Foundations, components, and tokens.' },
431
- naver: { name: 'NAVER Brand Resource', url: 'https://www.navercorp.com/en/company/brandGuide', type: 'brand', description: "NAVER Corp's official brand guide — logo usage, NAVER Green #03C75A, and identity rules." },
432
- yanolja: { name: 'Yanolja Brand Center', url: 'https://www.yanoljagroup.com/brand_center', type: 'brand', description: "Yanolja's official brand center — visual identity inspired by the Multiverse of Dreams." },
433
- coupang: { name: 'Coupang Media Assets', url: 'https://news.coupang.com/coupang-media-assets-brand-guidelines-eng/', type: 'brand', description: "Coupang's official media-asset brand guidelines — logo usage, sizing, and attribution rules." },
434
- kakaobank: { name: 'KakaoBank Brand Resource', url: 'https://www.kakaobank.com/view/about/brand/resource', type: 'brand', description: 'KakaoBank Brand Identity Guidelines V2.0 — logo system, KakaoBank Yellow #FFE300, downloadable CI assets.' },
435
- krds: { name: 'KRDS — Korea Republic Design System', url: 'https://www.krds.go.kr/html/site/index.html', type: 'system', description: '행정안전부 주관 범정부 통합 디자인 시스템. Government Blue #256EF4, Pretendard GOV, WCAG/KWCAG 2.2 a11y-first tokens and components.' },
436
- kakaopay: { name: 'KakaoPay Story', url: 'https://story.kakaopay.com/', type: 'brand', description: "KakaoPay's design narrative blog — 3 pillars (Color · Icon · Type), the 3:1 contrast accessibility policy, and the KPDS internal design system context." },
437
- zigzag: { name: 'ZIGZAG Tech / Brunch', url: 'https://brunch.co.kr/@zigzag/73', type: 'brand', description: "Kakaostyle / ZIGZAG's brand & design articles — the ZDS (ZIGZAG Design System) rearchitecture and the 2021 cool-pink rebrand." },
438
- gangnamunni: { name: 'Gangnamunni Blog', url: 'https://blog.gangnamunni.com/post/welchis/', type: 'brand', description: "Healience design team blog — the Cell + Welchis two-system architecture behind Gangnamunni's medical-platform UI." },
439
- banksalad: { name: 'Banksalad GitHub', url: 'https://github.com/banksalad', type: 'brand', description: "Banksalad's public GitHub org including styleguide repos and BPL (Banksalad Product Library) reference material." },
440
- channeltalk: { name: 'Bezier', url: 'https://github.com/channel-io/bezier-react', type: 'system', description: "Channel Talk's open-source design system — Bezier (MIT). Inter + Noto KR/JP type stacks, token/component/icon packages, marketing-vs-product type cliff documented." },
441
- upstage: { name: 'Upstage Brand Resource Center', url: 'https://www.upstage.ai/resources/brand-resource-center', type: 'brand', description: "Upstage's brand resource hub — logo / symbol assets + IP rights statement. Token spec lives only in production CSS (Geist + Espeak proprietary face + violet #5B52FF × plum #3C043B + Solar accent #D2FF95)." },
442
- gmarket: { name: 'Gmarket Sans', url: 'https://corp.gmarket.com/fonts/', type: 'brand', description: "Gmarket's SIL OFL brand typeface — 3 weights, TTF/OTF, 11,172 KR glyphs. First-party font artifact from a 25-year-old open marketplace; backing 247 :root CSS vars + Smile Yellow #ffd200 + Club/Event/Service sub-systems on the storefront." },
443
- };
444
-
445
- // ─── Tiny frontmatter parser (no deps) ─────────────────────────────────
446
- function parseFrontmatter(md) {
447
- if (!md.startsWith('---')) return { fm: {}, body: md };
448
- const end = md.indexOf('\n---', 4);
449
- if (end === -1) return { fm: {}, body: md };
450
- const yaml = md.slice(4, end);
451
- const bodyStart = end + 4;
452
- const body = md.slice(bodyStart).replace(/^\n+/, '\n');
453
- const fm = {};
454
- let currentKey = null;
455
- let currentNested = null;
456
- for (const rawLine of yaml.split('\n')) {
457
- const line = rawLine.replace(/\r$/, '');
458
- if (!line.trim()) continue;
459
- if (/^\s+/.test(line) && currentKey) {
460
- // nested key under currentKey
461
- const m = line.trim().match(/^([a-zA-Z0-9_]+):\s*(.*)$/);
462
- if (m) {
463
- fm[currentKey] = fm[currentKey] || {};
464
- fm[currentKey][m[1]] = stripQuotes(m[2]);
465
- }
466
- continue;
467
- }
468
- const m = line.match(/^([a-zA-Z0-9_]+):\s*(.*)$/);
469
- if (m) {
470
- currentKey = m[1];
471
- const value = m[2];
472
- if (value === '') {
473
- fm[currentKey] = {};
474
- } else {
475
- fm[currentKey] = stripQuotes(value);
476
- }
477
- currentNested = null;
478
- }
479
- }
480
- return { fm, body };
481
- }
482
-
483
- function stripQuotes(s) {
484
- s = s.trim();
485
- if ((s.startsWith('"') && s.endsWith('"')) || (s.startsWith("'") && s.endsWith("'"))) {
486
- return s.slice(1, -1);
487
- }
488
- return s;
489
- }
490
-
491
- function yamlEscape(s) {
492
- if (s === null || s === undefined) return '""';
493
- const str = String(s);
494
- if (/^[#&*!|>%@`]/.test(str) || /[:#]/.test(str) || /^\s|\s$/.test(str) || str === '' || /^(true|false|null|yes|no|on|off)$/i.test(str) || /^-?\d/.test(str)) {
495
- return `"${str.replace(/"/g, '\\"')}"`;
496
- }
497
- return str;
498
- }
499
-
500
- function serializeFrontmatter(fm) {
501
- const ordered = ['id','name','display_name_kr','country','category','homepage','primary_color','logo','verified','omd','ds'];
502
- const lines = ['---'];
503
- for (const key of ordered) {
504
- if (!(key in fm) || fm[key] === undefined || fm[key] === null) continue;
505
- const v = fm[key];
506
- if (key === 'logo' && typeof v === 'object') {
507
- lines.push('logo:');
508
- lines.push(` type: ${yamlEscape(v.type)}`);
509
- lines.push(` slug: ${yamlEscape(v.slug)}`);
510
- } else if (key === 'ds' && typeof v === 'object') {
511
- lines.push('ds:');
512
- lines.push(` name: ${yamlEscape(v.name)}`);
513
- lines.push(` url: ${yamlEscape(v.url)}`);
514
- lines.push(` type: ${yamlEscape(v.type)}`);
515
- lines.push(` description: ${yamlEscape(v.description)}`);
516
- if (v.og_image) lines.push(` og_image: ${yamlEscape(v.og_image)}`);
517
- } else {
518
- lines.push(`${key}: ${yamlEscape(v)}`);
519
- }
520
- }
521
- lines.push('---');
522
- return lines.join('\n');
523
- }
524
-
525
- // ─── Main ──────────────────────────────────────────────────────────────
526
- const REQUIRED = ['id','name','country','category','homepage','primary_color','logo','verified'];
527
- const ids = readdirSync(REFS_DIR, { withFileTypes: true })
528
- .filter(d => d.isDirectory() && existsSync(join(REFS_DIR, d.name, 'DESIGN.md')))
529
- .map(d => d.name)
530
- .sort();
531
-
532
- let failures = 0;
533
- let enriched = 0;
534
- const today = new Date().toISOString().slice(0, 10);
535
-
536
- for (const id of ids) {
537
- const path = join(REFS_DIR, id, 'DESIGN.md');
538
- const original = readFileSync(path, 'utf-8');
539
- const { fm, body } = parseFrontmatter(original);
540
-
541
- // Merge logic: existing fm wins (when non-empty), source maps fill gaps.
542
- const canonical = {};
543
- canonical.id = id;
544
- // name: existing 'name' > existing 'brand' > DISPLAY_NAMES_RAW > id-title-cased
545
- const existingName = (typeof fm.name === 'string' && fm.name.trim()) || (typeof fm.brand === 'string' && fm.brand.trim()) || null;
546
- // Prefer English/Latin name; if existingName is Hangul, treat as display_name_kr.
547
- let englishName = null, krName = null;
548
- if (existingName) {
549
- if (/[가-힯]/.test(existingName)) krName = existingName;
550
- else englishName = existingName;
551
- }
552
- canonical.name = englishName || DISPLAY_NAMES_RAW[id] || id.charAt(0).toUpperCase() + id.slice(1);
553
- // If name itself ends up as Hangul (rare — KREAM/Bunjang), keep it; display_name_kr separate.
554
- const explicitKr = (typeof fm.display_name_kr === 'string' && fm.display_name_kr.trim()) || (typeof fm.brand_kr === 'string' && fm.brand_kr.trim()) || (typeof fm.korean_name === 'string' && fm.korean_name.trim()) || krName || KR_DISPLAY[id] || null;
555
- if (explicitKr) canonical.display_name_kr = explicitKr;
556
-
557
- // country
558
- const existingCountry = normalizeCountry(fm.country);
559
- const mapCountry = COUNTRY_LABEL_TO_CODE[COUNTRIES_RAW[id]] || 'US';
560
- canonical.country = existingCountry || mapCountry;
561
-
562
- // category
563
- const existingCat = normalizeCategory(fm.category);
564
- const mapCat = CATEGORY_LABEL_TO_SLUG[CATEGORIES_RAW[id]] || null;
565
- canonical.category = existingCat || mapCat || 'consumer-tech';
566
-
567
- // homepage
568
- canonical.homepage = (typeof fm.homepage === 'string' && fm.homepage.trim())
569
- || (typeof fm.url === 'string' && fm.url.trim())
570
- || HOMEPAGE_URLS[id]
571
- || `https://${id}.com`;
572
-
573
- // primary_color
574
- const existingColor = (typeof fm.primary_color === 'string' && fm.primary_color.trim()) || null;
575
- canonical.primary_color = existingColor || BRAND_COLORS[id] || '#000000';
576
-
577
- // logo
578
- const logoSrc = LOGO_MAP[id];
579
- let logo = null;
580
- if (fm.logo && typeof fm.logo === 'object' && fm.logo.type && fm.logo.slug) {
581
- logo = { type: fm.logo.type, slug: fm.logo.slug };
582
- } else if (logoSrc) {
583
- logo = { type: logoSrc.type, slug: logoSrc.slug };
584
- } else {
585
- // Fallback: derive a favicon entry from homepage domain
586
- try {
587
- const u = new URL(canonical.homepage);
588
- logo = { type: 'favicon', slug: u.hostname };
589
- } catch {
590
- logo = { type: 'favicon', slug: `${id}.com` };
591
- }
592
- }
593
- canonical.logo = logo;
594
-
595
- // verified
596
- canonical.verified = (typeof fm.verified === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(fm.verified)) ? fm.verified : today;
597
-
598
- // omd
599
- canonical.omd = fm.omd || 0.1;
600
-
601
- // ds — preserve any existing ds object, else inject from DESIGN_SYSTEMS
602
- if (fm.ds && typeof fm.ds === 'object' && fm.ds.name) {
603
- canonical.ds = {
604
- name: fm.ds.name,
605
- url: fm.ds.url,
606
- type: fm.ds.type,
607
- description: fm.ds.description,
608
- };
609
- if (fm.ds.og_image) canonical.ds.og_image = fm.ds.og_image;
610
- } else if (DESIGN_SYSTEMS[id]) {
611
- const d = DESIGN_SYSTEMS[id];
612
- canonical.ds = { name: d.name, url: d.url, type: d.type, description: d.description };
613
- if (DS_OG_IMAGES[id]) canonical.ds.og_image = DS_OG_IMAGES[id];
614
- }
615
-
616
- // Validate
617
- const missing = REQUIRED.filter(k => !canonical[k]);
618
- const status = missing.length === 0 ? '✓' : '✗';
619
- if (missing.length > 0) failures++;
620
-
621
- // Compose output
622
- const fmBlock = serializeFrontmatter(canonical);
623
- const output = `${fmBlock}\n\n${body.replace(/^\n+/, '')}`;
624
-
625
- if (DRY_RUN) {
626
- console.log(`${id} ${status} ${missing.length ? `missing: ${missing.join(',')}` : 'enriched'}`);
627
- } else {
628
- if (output !== original) {
629
- writeFileSync(path, output, 'utf-8');
630
- }
631
- enriched++;
632
- console.log(`${id} ${status} ${missing.length ? `missing: ${missing.join(',')}` : 'enriched'}`);
633
- }
634
- }
635
-
636
- console.log(`\n${enriched}/${ids.length} processed, ${failures} failures`);
637
- if (failures > 0) process.exit(1);