@nurix/etna 0.18.19 → 0.18.21

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 (283) hide show
  1. package/README.md +1 -1
  2. package/data/harness-index.json +1 -1
  3. package/data/harnesses/code/CLAUDE.md +1 -1
  4. package/data/harnesses/code/agents/brainstorm.md +1 -1
  5. package/data/harnesses/code/agents/maintenance.md +2 -2
  6. package/data/harnesses/code/harness.json +2 -2
  7. package/data/harnesses/code/rules/database.md +38 -0
  8. package/data/harnesses/code/rules/express.md +28 -0
  9. package/data/harnesses/code/rules/frontend.md +14 -0
  10. package/data/harnesses/code/rules/general.md +2 -40
  11. package/data/harnesses/code/rules/nomenclature.md +1 -8
  12. package/data/harnesses/code/rules/nustack.md +150 -0
  13. package/data/harnesses/code/skills/brainstorm/README.md +1 -1
  14. package/data/harnesses/code/skills/brainstorm/SKILL.md +1 -1
  15. package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +4 -4
  16. package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +3 -3
  17. package/data/harnesses/code/skills/design/SKILL.md +68 -0
  18. package/data/harnesses/code/skills/design/data/catalog/rules.csv +132 -0
  19. package/data/harnesses/code/skills/design/data/combinations/Readme.md +29 -0
  20. package/data/harnesses/code/skills/design/data/combinations/charts.csv +33 -0
  21. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +437 -0
  22. package/data/harnesses/code/skills/design/data/combinations/icons.csv +157 -0
  23. package/data/harnesses/code/skills/design/data/combinations/landing.csv +38 -0
  24. package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +2001 -0
  25. package/data/harnesses/code/skills/design/data/combinations/manifest.json +283 -0
  26. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +49 -0
  27. package/data/harnesses/code/skills/design/data/combinations/product-router.csv +80 -0
  28. package/data/harnesses/code/skills/design/data/combinations/styles.csv +54 -0
  29. package/data/harnesses/code/skills/design/data/combinations/typography.csv +61 -0
  30. package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +106 -0
  31. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +154 -0
  32. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +151 -0
  33. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +139 -0
  34. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +139 -0
  35. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +140 -0
  36. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +140 -0
  37. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +140 -0
  38. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +139 -0
  39. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +139 -0
  40. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +147 -0
  41. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +156 -0
  42. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +138 -0
  43. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +138 -0
  44. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +137 -0
  45. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +148 -0
  46. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +141 -0
  47. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +156 -0
  48. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +140 -0
  49. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +153 -0
  50. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +158 -0
  51. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +156 -0
  52. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +122 -0
  53. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +140 -0
  54. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +139 -0
  55. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +139 -0
  56. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +139 -0
  57. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +153 -0
  58. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +140 -0
  59. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +155 -0
  60. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +140 -0
  61. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +141 -0
  62. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +145 -0
  63. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +142 -0
  64. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +152 -0
  65. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +137 -0
  66. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +140 -0
  67. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +170 -0
  68. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +145 -0
  69. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +137 -0
  70. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +168 -0
  71. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +163 -0
  72. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +147 -0
  73. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +158 -0
  74. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +171 -0
  75. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +166 -0
  76. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +160 -0
  77. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +173 -0
  78. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +145 -0
  79. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +153 -0
  80. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +167 -0
  81. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +140 -0
  82. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +140 -0
  83. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +140 -0
  84. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +130 -0
  85. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +140 -0
  86. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +140 -0
  87. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +139 -0
  88. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +137 -0
  89. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +138 -0
  90. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +158 -0
  91. package/data/harnesses/code/skills/design/data/design-md/nurix.md +134 -0
  92. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +580 -0
  93. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +20 -0
  94. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +964 -0
  95. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +20 -0
  96. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +960 -0
  97. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +20 -0
  98. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +965 -0
  99. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +20 -0
  100. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +954 -0
  101. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +20 -0
  102. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +949 -0
  103. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +20 -0
  104. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +962 -0
  105. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +20 -0
  106. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +958 -0
  107. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +20 -0
  108. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +953 -0
  109. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +20 -0
  110. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +960 -0
  111. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +20 -0
  112. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +973 -0
  113. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +20 -0
  114. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +954 -0
  115. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +20 -0
  116. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +963 -0
  117. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +20 -0
  118. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +968 -0
  119. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +20 -0
  120. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +981 -0
  121. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +20 -0
  122. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +962 -0
  123. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +20 -0
  124. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +964 -0
  125. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +20 -0
  126. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +959 -0
  127. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +251 -0
  128. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +20 -0
  129. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +965 -0
  130. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +20 -0
  131. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +978 -0
  132. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +20 -0
  133. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +982 -0
  134. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +20 -0
  135. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +958 -0
  136. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +23 -0
  137. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +589 -0
  138. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +964 -0
  139. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +20 -0
  140. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +955 -0
  141. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +20 -0
  142. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +977 -0
  143. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +20 -0
  144. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +950 -0
  145. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +20 -0
  146. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +976 -0
  147. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +20 -0
  148. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +979 -0
  149. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +20 -0
  150. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +955 -0
  151. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +20 -0
  152. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +958 -0
  153. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +20 -0
  154. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +953 -0
  155. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +20 -0
  156. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +904 -0
  157. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +20 -0
  158. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +957 -0
  159. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +20 -0
  160. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +945 -0
  161. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +20 -0
  162. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +960 -0
  163. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +20 -0
  164. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +953 -0
  165. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +20 -0
  166. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +955 -0
  167. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +20 -0
  168. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +958 -0
  169. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +23 -0
  170. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +613 -0
  171. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +968 -0
  172. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +20 -0
  173. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +956 -0
  174. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +20 -0
  175. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +960 -0
  176. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +20 -0
  177. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +958 -0
  178. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +20 -0
  179. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +980 -0
  180. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +20 -0
  181. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +964 -0
  182. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +20 -0
  183. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +957 -0
  184. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +20 -0
  185. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +979 -0
  186. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +20 -0
  187. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +974 -0
  188. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +20 -0
  189. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +973 -0
  190. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +20 -0
  191. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +979 -0
  192. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +20 -0
  193. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +966 -0
  194. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +20 -0
  195. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +961 -0
  196. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +20 -0
  197. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +977 -0
  198. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +20 -0
  199. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +991 -0
  200. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +20 -0
  201. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +966 -0
  202. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +20 -0
  203. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +988 -0
  204. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +23 -0
  205. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +602 -0
  206. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +974 -0
  207. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +20 -0
  208. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +979 -0
  209. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +20 -0
  210. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +960 -0
  211. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +20 -0
  212. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +968 -0
  213. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +20 -0
  214. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +965 -0
  215. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +20 -0
  216. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +988 -0
  217. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +20 -0
  218. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +978 -0
  219. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +249 -0
  220. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +249 -0
  221. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +248 -0
  222. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +245 -0
  223. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +223 -0
  224. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +249 -0
  225. package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +88 -0
  226. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +132 -0
  227. package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +76 -0
  228. package/data/harnesses/code/skills/design/references/create.md +131 -0
  229. package/data/harnesses/code/skills/design/references/diagnosis.md +108 -0
  230. package/data/harnesses/code/skills/design/references/hard-rules.md +155 -0
  231. package/data/harnesses/code/skills/design/references/improve.md +87 -0
  232. package/data/harnesses/code/skills/design/references/interaction.md +77 -0
  233. package/data/harnesses/code/skills/design/references/introspect.md +100 -0
  234. package/data/harnesses/code/skills/design/references/lifecycle.md +73 -0
  235. package/data/harnesses/code/skills/design/references/personality.md +428 -0
  236. package/data/harnesses/code/skills/design/references/structure.md +138 -0
  237. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
  238. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +1006 -0
  239. package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +551 -0
  240. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +903 -0
  241. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
  242. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +454 -0
  243. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +267 -0
  244. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +690 -0
  245. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +552 -0
  246. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +600 -0
  247. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +68 -0
  248. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +314 -0
  249. package/data/harnesses/code/skills/documentation/SKILL.md +61 -17
  250. package/data/harnesses/code/skills/documentation/references/examples.md +41 -0
  251. package/data/harnesses/code/skills/documentation/references/style-guide.md +14 -9
  252. package/data/harnesses/code/skills/documentation/references/templates.md +305 -51
  253. package/data/harnesses/etna/CLAUDE.md +1 -1
  254. package/data/harnesses/etna/agents/brainstorm.md +1 -1
  255. package/data/harnesses/etna/agents/maintenance.md +2 -2
  256. package/data/harnesses/etna/harness.json +2 -2
  257. package/data/harnesses/etna/rules/general.md +2 -40
  258. package/data/harnesses/etna/rules/nomenclature.md +1 -8
  259. package/data/harnesses/etna/skills/brainstorm/README.md +1 -1
  260. package/data/harnesses/etna/skills/brainstorm/SKILL.md +1 -1
  261. package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +4 -4
  262. package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +3 -3
  263. package/data/harnesses/etna/skills/documentation/SKILL.md +61 -17
  264. package/data/harnesses/etna/skills/documentation/references/examples.md +41 -0
  265. package/data/harnesses/etna/skills/documentation/references/style-guide.md +14 -9
  266. package/data/harnesses/etna/skills/documentation/references/templates.md +305 -51
  267. package/data/harnesses/mobile/CLAUDE.md +1 -1
  268. package/data/harnesses/mobile/agents/brainstorm.md +1 -1
  269. package/data/harnesses/mobile/agents/maintenance.md +2 -2
  270. package/data/harnesses/mobile/harness.json +2 -2
  271. package/data/harnesses/mobile/rules/database.md +38 -0
  272. package/data/harnesses/mobile/rules/general.md +2 -40
  273. package/data/harnesses/mobile/rules/nomenclature.md +1 -8
  274. package/data/harnesses/mobile/rules/nustack.md +150 -0
  275. package/data/harnesses/mobile/skills/brainstorm/README.md +1 -1
  276. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +1 -1
  277. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +4 -4
  278. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +3 -3
  279. package/data/harnesses/mobile/skills/documentation/SKILL.md +61 -17
  280. package/data/harnesses/mobile/skills/documentation/references/examples.md +41 -0
  281. package/data/harnesses/mobile/skills/documentation/references/style-guide.md +14 -9
  282. package/data/harnesses/mobile/skills/documentation/references/templates.md +305 -51
  283. package/package.json +1 -1
@@ -0,0 +1,139 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: MiniMax
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # MiniMax — operator reading of the AI-infrastructure brand
9
+
10
+ The design a project wears when it names or resembles MiniMax and the user confirms the match. A
11
+ *deliberate* operator reading, not a marketing transcription: MiniMax's public surfaces are stark
12
+ monochrome broken open by vibrant gradient product cards and an oversized 80px hero display. An
13
+ operator surface keeps the monochrome bones, the near-black signature action, and the DM Sans voice
14
+ — and leaves the gradients, the pill-everything CTA, and the hero-scale type behind.
15
+
16
+ ## 1 Visual Theme
17
+
18
+ Light by default; dark is opt-in. Stark and flat: hierarchy comes from hairline `border`, type weight,
19
+ and near-black ink on a white canvas — never heavy shadow. The single most important action wears the
20
+ brand's signature near-black fill (`primary`, `#0a0a0a`) — the black pill is MiniMax's most recognizable
21
+ element, though in operator work it takes the rectangular `radius`, not the marketing pill. One chromatic
22
+ accent — a deep blue (`ring`, `#1d4ed8`) — is reserved for focus, links, and form activation; chrome
23
+ otherwise stays monochrome. The vibrant product palette (coral, magenta, blue, purple, cyan) never
24
+ touches chrome — it reappears only in charts. The anchor surface is a white content canvas beside a
25
+ faintly tinted `sidebar`. Density is `standard`.
26
+
27
+ ## 2 Color Roles
28
+
29
+ Light values first. One chromatic accent — deep blue carries interactivity, near-black `primary` carries
30
+ the primary action, status hues speak only status, and the brand's saturated palette lives in `chart-*`
31
+ and nowhere else in the chrome.
32
+
33
+ | Role | Value | Allowed where |
34
+ | --- | --- | --- |
35
+ | `background` / `card` / `popover` | canvas white `#ffffff` | page, cards, overlays — the dominant surface |
36
+ | `foreground` | near-black ink `#0a0a0a` | all primary ink, headlines, the primary CTA fill |
37
+ | `muted` / `secondary` | surface `#f7f8fa` | subtle fills, secondary buttons, hover rows |
38
+ | `muted-foreground` | steel `#5f5f5f` | labels, captions, table headers, inactive nav |
39
+ | `border` / `input` | hairline `#e5e7eb` | every separator, grid line, and field edge |
40
+ | `primary` / `primary-foreground` | near-black `#0a0a0a` on white `#ffffff` | the one primary action; active nav marker |
41
+ | `accent` | surface-soft `#f2f3f5` | selected/active rows and nav — neutral, never chromatic |
42
+ | `ring` | deep blue `#1d4ed8` | the focus outline; also links and form activation |
43
+ | `destructive` | soft red `#d45656` | destructive actions and error state only |
44
+ | `success` / `warning` | green `#1ba673` / amber `#d97706` | status signalling only, never chrome |
45
+
46
+ The vibrant brand colors — coral `#ff5530`, magenta `#ea5ec1`, blue `#1456f0`, purple `#a855f7`, cyan
47
+ `#3daeff` — are product-identity graces on marketing; here they seed only the `chart-*` ramp (§7).
48
+
49
+ ## 3 Typography
50
+
51
+ One sans, one mono. `font-sans` is DM Sans — UI, body, and headings all ride it; the brand mixes no
52
+ second sans, and emphasis comes from weight (400 / 500 / 600 / 700). `font-mono` is a system monospace
53
+ for IDs, codes, timestamps, and log lines (the brand ships no dedicated mono). Numeric columns render
54
+ `tabular-nums` so figures align down a column (floor P4).
55
+
56
+ | Step | Role | Size · line | Weight · tracking |
57
+ | --- | --- | --- | --- |
58
+ | h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
59
+ | h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
60
+ | h3 | card / group head | 16px / 1.5 | `font-weight-strong` |
61
+ | body | UI + prose | 14px / 1.5 | `font-weight-normal` |
62
+ | small | labels, meta, dense | 13px / 1.5 | `font-weight-normal` |
63
+ | caption | uppercase eyebrow | 12px / 1.5 | `font-weight-strong`, `+0.02em`, uppercase |
64
+
65
+ The display voice is aggressive negative tracking (-2px at 80px); at operator heading sizes that becomes
66
+ a mild `heading-tracking`. Bump weight one step for emphasis; never change size.
67
+
68
+ ## 4 Component Stylings
69
+
70
+ Every recurring operator component composes from the primitives — no literal values.
71
+ - **Button** — `primary`: filled near-black `primary` on `primary-foreground`, rectangular `radius`, no
72
+ pill. Secondary: transparent with a `foreground` `border`. Tertiary: `card` fill with hairline `border`.
73
+ - **Input** — `background` fill, 1px `border`, `radius`; focus switches the edge to a 2px `ring` (deep
74
+ blue), no glow.
75
+ - **Card** — `card` surface, 1px `border`, `radius`, shadow only when lifted; inset by `density-inset`.
76
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
77
+ numeric columns; selection tints `accent` (neutral, not blue).
78
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
79
+ beside the work, not over it (floor P3).
80
+ - **Badge** — the one place the pill survives: `radius-scale` full (9999), `muted`/status fill, uppercase
81
+ caption. Status badges take `success` / `warning` / `destructive`, never `primary`.
82
+
83
+ ## 5 Layout
84
+
85
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 20 · 24 · 32 · 48 · 64` (MiniMax
86
+ uniquely carries the 20 step). Shell dimensions map one-to-one to the layout primitives: sidebar
87
+ `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
88
+ `side-panel-width` / `side-panel-width-rich`, modal `modal-width-max`, forms `form-max-width`, tables
89
+ full-width. Density is governed globally by `density-tier`, stepped per archetype by the surface catalog.
90
+
91
+ ## 6 Depth
92
+
93
+ Flat; hierarchy comes from the surface ladder and hairlines, not shadow:
94
+
95
+ - **0 — canvas** `background`, no border.
96
+ - **1 — panel / card** `card` on a 1px `border`; a whisper of `sm` shadow only when it must lift.
97
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
98
+ shadow. Rank is border and position, never a heavier shadow.
99
+
100
+ Focus is a 2px `ring` outline in deep blue (never a glow), on every interactive element (floor P6). Three
101
+ z-levels: content, sticky chrome, overlay.
102
+
103
+ ## 7 Do's & Don'ts
104
+
105
+ - **Do** reserve near-black `primary` for the single most important action; everything else is neutral
106
+ or status. Carry hierarchy with hairlines, weight, and whitespace — the brand is predominantly flat.
107
+ - **Do** apply `tabular-nums` to every numeric column and `font-mono` to IDs, codes, and timestamps.
108
+ - **Do** send the vibrant brand palette to charts — the one operator place it belongs.
109
+ - **Don't** put a brand color on a button, badge, or large surface — off charts it breaks the monochrome discipline.
110
+ - **Don't** pill the operator CTA — the pill is a marketing signature; operator buttons take the
111
+ rectangular `radius` (badges keep the pill). Don't introduce a second display typeface.
112
+ - **Don't** tint selected rows or active nav with the accent blue — active states stay neutral `accent`;
113
+ blue is reserved for focus, links, and form activation. Don't signal elevation with heavy shadows.
114
+
115
+ ## 8 Responsive
116
+
117
+ The operator sweep is 375 / 768 / 1024 / 1440.
118
+
119
+ | Breakpoint | What changes |
120
+ | --- | --- |
121
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
122
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
123
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
124
+ | 1440 | content caps at `form-max-width` for forms; tables and dashboards use the full width |
125
+
126
+ ## 9 Agent Prompt Guide
127
+
128
+ Directives the emitting agent follows verbatim:
129
+
130
+ - **Carries:** the monochrome bones (near-black ink on white canvas, hairline borders, flat), near-black
131
+ `primary` as the one signature action, the deep-blue accent for focus/links, DM Sans as the single
132
+ family, and the vibrant palette — but only as `chart-*`.
133
+ - **Stays behind:** the gradient product cards, the pill-everything CTA, and the hero-scale 80px display
134
+ type with -2px tracking. None of it enters operator chrome.
135
+ - Lead every list surface with its table; lead every entity with its primary read, not its chrome. Detail
136
+ and edit go in the side panel; a modal is a confirmation, not a workspace (P3).
137
+ - Accent only the primary action; the one chromatic accent (blue) is for focus and links.
138
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4). Keyboard
139
+ completes every workflow; the `ring` focus outline is always visible (P6). Stay flat — hairline before shadow.
@@ -0,0 +1,139 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Mintlify
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Mintlify — the mint-accent documentation-platform operator design
9
+
10
+ Mintlify's site is dual-mode: atmospheric sky-gradient marketing heroes float above dense,
11
+ developer-grade documentation surfaces. This entry is the *operator* reading — an internal tool
12
+ (docs-ops console, project queue, usage dashboard, log stream) in Mintlify's language — and it keeps
13
+ the docs side. What carries: the white canvas with cool-gray neutrals and near-black ink, the single
14
+ Mintlify mint accent held scarce, the dark charcoal code inlay, the Inter + Geist Mono pairing, flat
15
+ hairline depth, and the 8px control radius. What stays behind: the sky-to-cream and teal-to-mint
16
+ gradient hero bands, the 72px hero display, the full-pill buttons, the bright testimonial-orange card,
17
+ and the 96/120px marketing section rhythm.
18
+
19
+ **Light holds cleanly.** The white canvas (`#ffffff`) *is* the brand's documentation surface — no
20
+ categorically-dark exception; the light-default floor stands as-is.
21
+
22
+ ## 1 Visual Theme
23
+
24
+ Light by default; dark is opt-in. The UI floats on a white `background` (`#ffffff`); cards sit on the
25
+ same white and read by their hairline `border`, not brightness. Emphatically flat: hierarchy is carried
26
+ by the light-gray hairline (`#e5e5e5`), type weight, and cool-neutral surface tints — never a drop
27
+ shadow. A single chromatic accent, Mintlify mint `primary` (`#00d4a4`), is held scarce: the one primary
28
+ action (ink text on mint, exactly as the brand's green button renders), the focus `ring`, and the
29
+ active-nav indicator. Ink is near-black `foreground` (`#0a0a0a`) — the color the marketing site spends
30
+ on its black-pill button, spent here as text. Density is `standard` — layout-dense, readable prose.
31
+
32
+ ## 2 Color Roles
33
+
34
+ Light values. One accent — mint `primary` is the only chromatic hue that carries UI meaning;
35
+ tag-blue, warn-amber, and testimonial-orange are chart/status graces (see §7), status hues speak
36
+ only status.
37
+
38
+ | Role | Value | Allowed where |
39
+ | --- | --- | --- |
40
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface, differentiated by hairline not brightness |
41
+ | `foreground` | near-black ink `#0a0a0a` | headlines and all primary ink |
42
+ | `muted` / `secondary` | cool surface `#f7f7f7` | hover rows, quiet band tints, secondary-button fill, inline-code wells |
43
+ | `muted-foreground` | steel gray `#5a5a5c` | labels, captions, table headers, secondary text |
44
+ | `border` / `input` | light hairline `#e5e5e5` | every separator, grid line, and field edge |
45
+ | `primary` | Mintlify mint `#00d4a4` | the one primary action; the focus `ring`; the active-nav indicator |
46
+ | `primary-foreground` | near-black ink `#0a0a0a` | text on the mint action — the brand's green-button pairing |
47
+ | `accent` | neutral lift `#ededed` | selected / hovered rows and nav — a neutral step; mint stays the indicator, never the fill |
48
+ | `ring` | `primary` mint | the focus outline — mint focuses inputs in the brand, unmistakable because keyboard-first |
49
+ | `destructive` | brand error red `#d45656` | destructive actions and error state only |
50
+ | `success` / `warning` | annotate green `#1ba673` / warn amber `#c37d0d` | status signalling only, never chrome |
51
+
52
+ Mint's power is its scarcity at element scale; the corpus warns against mint on body text or large
53
+ surfaces — it loses signal (see §7).
54
+
55
+ ## 3 Typography
56
+
57
+ One sans, one mono — no third face. `font-sans` is Inter — body, UI, labels, and headings all ride
58
+ it; weight (500/600) and color, never italics, carry emphasis. `font-mono` is Geist Mono for IDs,
59
+ codes, timestamps, log lines, type signatures, and every code surface; numeric columns render
60
+ `tabular-nums`. The Inter/Geist-Mono contrast is the brand's developer-respect signal. The marketing
61
+ display scale (72/56/48px) stays behind — an operator surface tops out at a 24px page title, and
62
+ long-form docs prose holds 16px/1.5 (the brand's "never compress reading copy" rule).
63
+
64
+ | Step | Role | Size · line | Weight · tracking |
65
+ | --- | --- | --- | --- |
66
+ | h1 | page title | 24px / 1.3 | `font-weight-strong` (600) · `heading-tracking` |
67
+ | h2 | section head | 18px / 1.35 | `font-weight-strong` (600) · `heading-tracking` |
68
+ | h3 | card / group head | 15px / 1.4 | `font-weight-strong` (600) · 0 |
69
+ | body | UI + prose | 14px / 1.5 | `font-weight-normal` (400) |
70
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` (400) |
71
+ | caption | uppercase eyebrow | 11px / 1.4 | `font-weight-strong`, `+0.05em`, uppercase |
72
+ | code | IDs, logs, amounts | mono 13px / 1.5 | `font-weight-normal` (400) |
73
+
74
+ Long-form docs prose holds 16px/1.5 — never denser; emphasise by weight or color, never italics (the brand ships none).
75
+
76
+ ## 4 Component Stylings
77
+
78
+ Every recurring operator component composes from the primitives — no literal values.
79
+
80
+ - **Button** — primary: filled mint `primary` on ink `primary-foreground`, `radius` (8px), never a pill (the marketing full-pill stays behind). Secondary: `secondary` gray fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
81
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the mint `ring` at full 2px, no glow — the brand focuses fields in mint.
82
+ - **Card** — white `card` on a 1px `border`; panels read by their hairline, not brightness (nothing sits lighter than white); cards step to 12px `radius`; shadow only when a true overlay must lift; inset by `density-inset`.
83
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection tints `accent` with a mint left-indicator.
84
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
85
+ - **Badge** — pill radius (badges and pill-tabs only), `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, never `primary`.
86
+ - **Code / log / terminal** — the dark charcoal inlay (`#1c1c1e`) with on-dark text and `font-mono`; the brand's own doc chrome, carried even in a light UI (see §6).
87
+
88
+ ## 5 Layout
89
+
90
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` — the marketing
91
+ 96/120px section rhythm stays behind. Shell dimensions map one-to-one to the layout primitives: sidebar
92
+ `sidebar-width-expanded` (240px, the corpus docs sidebar) / `sidebar-width-collapsed` (56px), topbar
93
+ `topbar-height` (56px, the docs top nav), side panel `side-panel-width` (420px) / `side-panel-width-rich`
94
+ (640px), modal cap `modal-width-max`, forms `form-max-width`, tables full-width. Density is governed
95
+ globally by `density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
96
+
97
+ ## 6 Depth
98
+
99
+ Flat and hairline-first. Depth comes from the hairline and cool-neutral surface tints, not shadow:
100
+
101
+ - **0 — canvas** `background` (`#ffffff`), no border.
102
+ - **1 — panel / card** white `card` on a 1px `border`; the hairline carries the lift — panels read by their edge, not by a brighter fill. Selected / hover rows step to `accent` (`#ededed`).
103
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md` shadow, enough to float an overlay above the canvas. Rank is border and position — never a heavier shadow.
104
+ - **inlay — code / log / terminal** dark charcoal `#1c1c1e` with on-dark text and `font-mono` — Mintlify's product chrome, carried even in a light UI (the code-block wrapper).
105
+
106
+ Focus is a 2px mint `ring` outline (never a glow), visible on every interactive element; three z-levels: content, sticky chrome, overlay.
107
+
108
+ ## 7 Do's & Don'ts
109
+
110
+ - **Do** anchor every surface on the white canvas with cool-gray neutrals and near-black ink.
111
+ - **Do** reserve mint `primary` for the single primary action, the focus `ring`, and the active-nav indicator — its scarcity at element scale is what reads as brand voltage.
112
+ - **Do** pair Inter (UI and prose) with Geist Mono (code) — never introduce a third typeface; the assignment *is* the brand voice.
113
+ - **Do** dress code, log, and terminal panels in the dark charcoal inlay (`#1c1c1e`, `font-mono`), and keep long-form docs prose at 16px/1.5.
114
+ - **Don't** set mint on body text or large fills — it loses signal; keep it to the primary action, ring, and indicator.
115
+ - **Don't** promote a second chromatic accent — tag-blue, warn-amber, error-red, and testimonial-orange are chart/status graces, not UI accents.
116
+ - **Don't** pill the controls — buttons and inputs are 8px `radius`; the marketing full-pill is left behind, pill radius is badges and tabs only.
117
+ - **Don't** signal elevation with heavy shadows, or reach for the atmospheric gradient heroes — hairlines and surface carry depth.
118
+
119
+ ## 8 Responsive
120
+
121
+ The operator sweep is 375 / 768 / 1024 / 1440.
122
+
123
+ | Breakpoint | What changes |
124
+ | --- | --- |
125
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
126
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
127
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
128
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
129
+
130
+ ## 9 Agent Prompt Guide
131
+
132
+ Directives the emitting agent follows verbatim:
133
+
134
+ - Reach for the white canvas with cool-gray neutrals and near-black ink; the quiet palette is Mintlify's docs surface, not its marketing hero.
135
+ - Spend mint once per surface: the primary action, the focus `ring`, the active-nav indicator. If two things want the mint, one of them is not primary. Color otherwise belongs to data and status — never mint on body text or a large fill.
136
+ - Pair Inter (UI and prose) with Geist Mono (code) — never a third face. Render every code, log, and terminal panel in the dark charcoal inlay (`#1c1c1e`), real product chrome, not a light mockup of it.
137
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp / type-signature is `font-mono` (Geist Mono). Keep long-form docs prose at 16px/1.5; operator chrome at 14px.
138
+ - Depth is hairlines and surface tints, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work; keyboard-first, the mint `ring` focus outline always visible.
139
+ - Leave behind: the sky/teal gradient hero bands, the 72px hero display, the full-pill buttons, the testimonial-orange card, and the 96/120px section rhythm — marketing presentation, not operator chrome.
@@ -0,0 +1,153 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Miro
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Miro — the operator reading
9
+
10
+ Miro's marketing canvas is a confident, playful frame: a canary-yellow wordmark on stark white,
11
+ black-pill CTAs, and oversized pastel feature cards echoing the live whiteboard's sticky-note
12
+ palette. The 80px Roobert display, the 120px hero rhythm, the real-board mockups, and the exuberant
13
+ pastels stay on the marketing site. An operator surface inherits the *spine*: black ink on white,
14
+ one chromatic accent (Miro brand blue), the friendly geometric Roobert type voice at its elegant
15
+ medium weight, and a roomy rounded radius — a friendly tool made by people who like color, the joy
16
+ demoted to chart encodings.
17
+
18
+ ## 1 Visual Theme
19
+
20
+ Light by default; dark is not documented and stays opt-in. Flat: hierarchy is carried by hairline
21
+ `border`, type weight, and the black/white contrast — never by heavy shadow, and where a true overlay
22
+ lifts, the shadow is soft and **navy-tinted** (`rgba(5,0,56,…)`), never a hard black drop. The primary
23
+ action fills black — Miro's own primary is the black pill, so `primary` is achromatic and the one
24
+ chromatic accent, Miro brand blue, stays a scarce single-shot. Canary yellow is a brand grace for one
25
+ moment (the wordmark lockup), no operator role. The anchor surface is a white content canvas beside a
26
+ faintly cool `sidebar`. Density is `standard`, leaning roomy — the airy rhythm read into an operator
27
+ tier, stepping denser per archetype.
28
+
29
+ ## 2 Color Roles
30
+
31
+ Light values first. One chromatic accent — brand blue carries interactive meaning; the sticky-note
32
+ pastels appear only as chart series; yellow is a grace.
33
+
34
+ | Role | Value | Allowed where |
35
+ | --- | --- | --- |
36
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
37
+ | `foreground` | Miro ink `#1c1c1e` | all primary ink — headlines, body, labels |
38
+ | `muted` / `secondary` | cool surface `#f7f8fa` | hover rows, tile fills, secondary buttons, the sidebar ground |
39
+ | `muted-foreground` | slate `#555a6a` | labels, captions, table meta — the secondary ink role |
40
+ | `border` | hairline `#e0e2e8` | every separator, grid line, and divider |
41
+ | `input` | stronger hairline `#c7cad5` | field edges — Miro deliberately gives inputs a heavier edge than dividers |
42
+ | `primary` | black `#1c1c1e` | the one primary action; active-nav fill; selected tab |
43
+ | `accent` | pale lavender `#f5f3ff` | selected / hovered rows and nav — a tint, never a fill (Miro's featured-tier wash) |
44
+ | `accent-foreground` / `ring` | brand blue `#4262ff` | inline links, the focus outline, active indicators — the single chromatic pop |
45
+ | `destructive` | red `#e5484d` | destructive actions and error state only |
46
+ | `success` / `warning` | green `#00b473` / amber `#fcb900` | status signalling only, never chrome |
47
+
48
+ The pastels — coral `#ff9999`, teal `#0fbcb0`, rose, orange — are marketing surfaces with no operator
49
+ role, reappearing only as `chart-*` encodings (§7). Canary yellow `#ffd02f` is the wordmark grace,
50
+ never a CTA, status hue, or background fill.
51
+
52
+ ## 3 Typography
53
+
54
+ One sans, one mono. `font-sans` is **Roobert PRO** — Miro's geometric, slightly-rounded custom face
55
+ (fallbacks Noto Sans, -apple-system, BlinkMacSystemFont) — carrying UI, body, and headings by weight
56
+ and size, never a second family. Its irreducible trait is the **elegant medium weight**: headings run
57
+ 500, not 700 — the brand has no 700 — so hierarchy comes from size and the geometric face, not
58
+ heaviness. `font-mono` substitutes for the mono the corpus never ships, reserved for IDs, codes,
59
+ timestamps, and log lines; numeric columns render `tabular-nums`.
60
+
61
+ | Step | Role | Size · line | Weight · tracking |
62
+ | --- | --- | --- | --- |
63
+ | h1 | page title | 24px / 1.25 | `font-weight-strong` (500) · `heading-tracking` |
64
+ | h2 | section head | 18px / 1.35 | `font-weight-strong` (500) · -0.01em |
65
+ | h3 | card / group head | 16px / 1.45 | `font-weight-strong` (500) · 0 |
66
+ | body | UI + prose | 14px / 1.5 | `font-weight-normal` (400) |
67
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` (400) |
68
+ | eyebrow / caption | uppercase table divider | 11px / 1.4 | 600, `+0.05em`, uppercase |
69
+
70
+ Emphasis bumps weight one step (400 → 500); the 600 weight is reserved for uppercase eyebrows and badge
71
+ chips. Never change size to emphasise. The 80px hero display, 64px stat-display, and the aggressive
72
+ -2px display tracking stay on the marketing site.
73
+
74
+ ## 4 Component Stylings
75
+
76
+ Every recurring operator component composes from the primitives — no literal values.
77
+
78
+ - **Button** — `primary`: filled black `primary` on white `primary-foreground`, base `radius` (8px) —
79
+ the marketing full-pill relaxes to the functional radius in dense chrome; the pill (9999) stays on
80
+ icon-only buttons, filter chips, and badges. Secondary: `secondary` fill, 1px `border`, `foreground`.
81
+ Ghost: transparent, `accent` on hover.
82
+ - **Input** — `background` fill, 1px `border` at the stronger `input` edge, `radius`; focus draws the
83
+ brand-blue `ring` at 2px, no fill change and no glow.
84
+ - **Card** — `card` surface, 1px `border`, `radius`, inset by `density-inset`; shadow only when it must
85
+ lift (`shadow-intensity`); larger panels may take the 12px radius step.
86
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
87
+ numeric columns; selection tints the pale-lavender `accent` with a brand-blue indicator.
88
+ - **Side panel** — detail and edit open beside the work (`side-panel-width`, `side-panel-width-rich`
89
+ for content-heavy), not over it.
90
+ - **Badge** — pill radius, `muted`/status fill, uppercase caption; status badges take `success` /
91
+ `warning` / `destructive`, never `primary` or brand blue.
92
+
93
+ ## 5 Layout
94
+
95
+ Base spacing unit 4px (8px the primary increment); the on-scale ramp is `4 · 8 · 12 · 16 · 20 · 24 ·
96
+ 32 · 40 · 48 · 64` — Miro's distinctive 20px step is kept. Shell dimensions map one-to-one to the
97
+ layout primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`
98
+ (64px — Miro's own nav height), side panel `side-panel-width` / `side-panel-width-rich`, modal
99
+ `modal-width-max`, forms `form-max-width`, tables full-width. Density is governed globally by
100
+ `density-tier` and stepped per archetype by the surface catalog. The 96px and 120px marketing rhythms
101
+ stay behind.
102
+
103
+ ## 6 Depth
104
+
105
+ Flat, with strategic soft depth on true overlays only. Hierarchy is the surface ladder and hairlines,
106
+ not shadow:
107
+
108
+ - **0 — canvas** `background`, no border.
109
+ - **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
110
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
111
+ shadow, navy-tinted (`rgba(5,0,56,0.08)`), never a hard black drop. Rank is border and position.
112
+
113
+ Focus is a 2px brand-blue `ring` outline (never a glow), visible on every interactive element. Three
114
+ z-levels: content, chrome, overlay.
115
+
116
+ ## 7 Do's & Don'ts
117
+
118
+ - **Do** fill black `primary` for the single most important action; everything else is neutral or status.
119
+ - **Do** keep brand blue scarce — inline links, the focus `ring`, and active indicators only; it is a
120
+ single-shot accent, not a fill or a body-text color.
121
+ - **Do** carry hierarchy with size, the geometric Roobert face, hairlines, and whitespace — never heavy
122
+ weight; there is no 700. Apply `tabular-nums` to numeric columns and `font-mono` to IDs and timestamps.
123
+ - **Don't** reach for the sticky-note pastels as UI chrome; they are marketing surfaces and appear
124
+ operator-side only as `chart-*` series.
125
+ - **Don't** spend canary yellow on a CTA, status hue, or background — it is the wordmark grace, nothing more.
126
+ - **Don't** introduce a second chromatic accent, or signal elevation with heavy or hard-black shadows —
127
+ Miro's shadows are soft and navy-tinted.
128
+
129
+ ## 8 Responsive
130
+
131
+ The operator sweep is 375 / 768 / 1024 / 1440.
132
+
133
+ | Breakpoint | What changes |
134
+ | --- | --- |
135
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
136
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
137
+ | 1024 | sidebar expands; two-pane list+detail holds side by side |
138
+ | 1440 | content caps at `form-max-width` for forms; tables and dashboards use the full width |
139
+
140
+ ## 9 Agent Prompt Guide
141
+
142
+ Directives the emitting agent follows verbatim:
143
+
144
+ - Wear the spine, not the marketing: black ink on white, the friendly rounded radius, hairline depth.
145
+ The 80px hero display, the pastel feature cards, the real-board mockups, and the 120px rhythm stay behind.
146
+ - Primary action fills black. If two things want the black fill, one of them is not primary. Brand blue
147
+ is single-shot — inline links, the focus `ring`, active indicators — never a fill or body text; canary
148
+ yellow is the wordmark grace, never a UI color.
149
+ - Buttons sit at the base `radius`; the full pill (9999) is for icon-only buttons, filter chips, and
150
+ badges. Hierarchy is size and the geometric face, never heavy weight — there is no 700; emphasise 400 → 500.
151
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
152
+ - The sticky-note pastels live only in charts (`chart-1..5`); stay flat — hairline and weight before
153
+ shadow, and reach past a hairline only for a real, soft, navy-tinted overlay.
@@ -0,0 +1,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Mistral AI
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Mistral AI — the operator reading
9
+
10
+ Mistral's public brand is cinematographic: sunset gradients over mountain photography, a
11
+ red-to-cream "stripe" closing every page, hero-scale near-serif display type. This is the *operator*
12
+ reading — the palette temperature, the single saturated-orange accent, the sober editorial geometry,
13
+ and the type voice carry across; the gradients, photographic heroes, and hero-scale display face
14
+ stay behind. An internal tool wearing Mistral is a warm, cream-panelled console with one orange
15
+ action, not a landing page.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Light by default; dark is opt-in. Flat — hierarchy rides hairline `border`, type weight, and the warm
20
+ surface ladder, never heavy shadow. A single accent, Mistral Orange `primary` (`#fa520f`), for the one
21
+ action that matters. The neutrals are true grays, but the *surfaces* run warm — a white canvas beside a
22
+ cream-tinted `sidebar` with cream panels, the operator signature that carries Mistral's temperature
23
+ without a gradient. Density is `standard`, leaning comfortable (44px rows), dense-capable.
24
+
25
+ ## 2 Color Roles
26
+
27
+ Light values; hex is the brand's native format. One accent — `primary` orange is the only chromatic
28
+ hue that carries meaning; status hues speak only status.
29
+
30
+ | Role | Value | Allowed where |
31
+ | --- | --- | --- |
32
+ | `background` / `card` / `popover` | canvas white `#ffffff` | page, cards, and overlays — the dominant surface |
33
+ | `foreground` | ink `#1f1f1f` | all primary ink |
34
+ | `muted` | warm-white `#fffaeb` | hover rows, quiet fills, subtle sections |
35
+ | `secondary` | cream `#fff8e0` | secondary buttons, grouped panels |
36
+ | `muted-foreground` | steel `#6a6a6a` | labels, captions, secondary text |
37
+ | `border` | hairline `#e5e5e5` | separators and grid lines on white |
38
+ | `input` | hairline-strong `#c7c7c7` | field edges — a firmer edge than the grid, per brand |
39
+ | `primary` | Mistral Orange `#fa520f` | the one primary action; active nav; key interactive detail |
40
+ | `accent` | cream-deeper `#fff0c2` | selected/hovered rows and nav, on-accent surfaces only |
41
+ | `ring` | `primary` `#fa520f` | the focus outline — unmistakable, keyboard-first |
42
+ | `destructive` | red `#d92d20` | destructive actions and error state only |
43
+ | `success` / `warning` | green `#16a34a` / amber `#d97706` | status signalling only, never chrome |
44
+
45
+ The sunset yellows (`#ffd900`, the sunshine ramp) and gradient bands are brand graces, not operator
46
+ tokens (see §7). The source palette ships no semantic red or green, so status red/green/amber are
47
+ derived functional imports, kept muted.
48
+
49
+ ## 3 Typography
50
+
51
+ One sans, one mono. `font-sans` is Inter — body, UI, and headings all ride it; heading weight and
52
+ tracking, not a second family, carry the voice. `font-mono` is JetBrains Mono for IDs, codes,
53
+ timestamps, and log lines. Numeric columns render `tabular-nums` so figures align down a column.
54
+
55
+ | Step | Role | Size · line | Weight · tracking |
56
+ | --- | --- | --- | --- |
57
+ | h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
58
+ | h2 | section head | 18px / 1.3 | `font-weight-strong` · `heading-tracking` |
59
+ | h3 | card / group head | 15px / 1.35 | `font-weight-strong` |
60
+ | body | UI + prose | 14px / 1.5 | `font-weight-normal` |
61
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
62
+ | caption | uppercase eyebrow | 11px / 1.4 | 600, `+0.09em`, uppercase |
63
+
64
+ Heading emphasis is `font-weight-strong` = **500**, not 600 — a deliberately lighter, editorial emphasis
65
+ is the brand's tell (the marketing heads run 500); 600 is reserved for the uppercase eyebrow. Emphasize
66
+ by weight, never size. The near-serif PP Editorial Old is a hero-display grace and stays behind —
67
+ operator surfaces have no hero, so Inter carries every head.
68
+
69
+ ## 4 Component Stylings
70
+
71
+ Every recurring operator component composes from the primitives — no literal values.
72
+ - **Button** — `primary`: filled orange on `primary-foreground`, `radius` (8px), no pill. Secondary:
73
+ `secondary` (cream) fill, `border`, `foreground`. Ghost: transparent, `accent` on hover.
74
+ - **Input** — `background` fill, 1px `input` border (firmer than the grid), `radius`; focus draws the
75
+ `ring` at 2px, no glow; field height rides `table-row-height` (44px).
76
+ - **Card** — `card` surface, 1px `border`, 12px corner (one step up from the 8px button), shadow only
77
+ when lifted; the cream variant uses `secondary` fill with a warm `sidebar-border` edge, not gray.
78
+ - **Table row** — `table-row-height` (44px); `border` grid lines; `muted` on hover; `tabular-nums` on
79
+ numerics; selection tints `accent`.
80
+ - **Side panel** — detail and edit open in the panel (`side-panel-width`/`-rich`), beside the work.
81
+ - **Badge** — hairline `border`, `muted`/status fill, uppercase caption; pill radius (9999) is for
82
+ badges only. Status badges take `success` / `warning` / `destructive`, never `primary`.
83
+
84
+ ## 5 Layout
85
+
86
+ Base spacing unit 4px; the on-scale ramp is the brand's own `4 · 8 · 12 · 16 · 20 · 24 · 32 · 40 · 48 ·
87
+ 64` (capped below the hero-scale 96/120 that stays behind). Shell dimensions map one-to-one to the
88
+ layout primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`,
89
+ side panel `side-panel-width` / `side-panel-width-rich`, modal `modal-width-max`, forms `form-max-width`,
90
+ tables full-width. Density is governed globally by `density-tier`, stepped per archetype by the catalog.
91
+
92
+ ## 6 Depth
93
+
94
+ Flat. Hierarchy comes from the warm surface ladder and hairlines, not shadow:
95
+
96
+ - **0 — canvas** `background`, no border.
97
+ - **1 — panel / card** `card` or cream `secondary` on a 1px border; `sm` shadow only to lift off canvas.
98
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
99
+ shadow. Rank is border, surface, and position, never a heavier drop shadow.
100
+
101
+ Focus is a 2px `ring` outline (never a glow), visible on every interactive element. Three z-levels:
102
+ content, sticky chrome, overlay — the marketing photographic and gradient depth does not carry.
103
+
104
+ ## 7 Do's & Don'ts
105
+
106
+ - **Do** reserve `primary` orange for the single most important action on a surface; everything else is
107
+ neutral or status.
108
+ - **Do** carry warmth with cream surfaces — the `sidebar` and grouped panels — against a white canvas.
109
+ - **Do** apply `tabular-nums` to every numeric column and `font-mono` to IDs, codes, and timestamps.
110
+ - **Do** keep the sober editorial geometry — 8px buttons, 12px cards; emphasize heads with weight-500.
111
+ - **Don't** pill the primary CTA — Mistral's button geometry is sober, not playful; 9999 is for badges.
112
+ - **Don't** promote the sunset yellows, a gradient, or the near-serif display into chrome — the stripe
113
+ band, sunshine ramp, hero photography, and display face are marketing signatures that stay behind.
114
+ - **Don't** open detail or edit in a modal when the side panel fits — modals are for confirmations.
115
+
116
+ ## 8 Responsive
117
+
118
+ The operator sweep is 375 / 768 / 1024 / 1440.
119
+
120
+ | Breakpoint | What changes |
121
+ | --- | --- |
122
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
123
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
124
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
125
+ | 1440 | content caps at `form-max-width` for forms; tables and dashboards use the full width |
126
+
127
+ ## 9 Agent Prompt Guide
128
+
129
+ This entry dresses an internal tool — CRM, queue, dashboard, console — in Mistral's design language.
130
+ Carries: the warm temperature (white canvas + cream `sidebar` and panels), the single orange accent,
131
+ the sober 8px/12px radius, the Inter voice with editorial weight-500 heads, JetBrains Mono. Stays
132
+ behind: the sunset gradient bands, the hero-scale PP Editorial Old display face, the photographic heroes.
133
+
134
+ - Lead every list surface with its table; lead every entity with its primary read, not its chrome.
135
+ - Accent only the primary action with orange. If two things want the accent, one is not primary.
136
+ - Anchor warmth in the surface ladder, not the ink — grays stay gray; cream carries the brand.
137
+ - Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
138
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
139
+ - Every workflow completes from the keyboard; the orange `ring` focus outline is always visible.
140
+ - Stay flat and sober — hairline and weight before shadow, no pills, no gradient chrome.