@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,153 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Tesla
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Tesla — radical-subtraction minimalism, translated for operators
9
+
10
+ Tesla's web design is radical subtraction: a white canvas, a single Electric Blue accent, a rich
11
+ grayscale ink ramp, near-zero decoration, and a categorical geometry — **barely-rounded 4px
12
+ corners**. This operator reading keeps the white-dominant palette, the one blue accent, the 4px
13
+ radius character, the flat/shadowless depth, the two-weight (400 / 500) type discipline, the
14
+ signature **zero letter-spacing**, and the color-only interaction feel. Left behind: full-viewport
15
+ hero photography, 40px display type, whitespace-as-luxury rhythm, the frosted-glass nav, the
16
+ carousel, the chatbot bar.
17
+
18
+ ## 1 Visual Theme
19
+
20
+ Light by default; dark is opt-in. White-dominant and categorically shadowless: hierarchy rides a
21
+ grayscale surface ladder (`background` white → `muted` Light Ash → hairline `border`) and type weight,
22
+ never shadow. The single accent — Electric Blue `primary` (`#3e6ae1`) — is the only chromatic hue,
23
+ reserved for the one action that matters. Ink is Carbon Dark `foreground` (`#171a20`), a warm
24
+ blue-undertoned near-black, stepping down a documented ramp (Carbon → Graphite → Pewter → Silver Fog).
25
+ The geometry is the identity: `radius` 4, barely rounded. The anchor surface is a white canvas beside a
26
+ Light Ash `sidebar`; density is `standard` — engineered-uniform, the marketing whitespace left behind.
27
+
28
+ ## 2 Color Roles
29
+
30
+ Light values (hex — the corpus's native format). One accent — `primary` Electric Blue is the only
31
+ chromatic hue that carries meaning; status hues speak only status. The rich grayscale ramp is Tesla's
32
+ signature alongside the single blue.
33
+
34
+ | Role | Value | Allowed where |
35
+ | --- | --- | --- |
36
+ | `background` / `card` / `popover` | Pure White `#ffffff` | page, cards, and overlays — the dominant canvas that lets content breathe |
37
+ | `foreground` | Carbon Dark `#171a20` | primary ink, headings, nav — the darkest text, a warm blue-undertoned near-black |
38
+ | `muted` / `secondary` | Light Ash `#f4f4f4` | hover rows, subtle fills, secondary-button surfaces, section differentiation |
39
+ | `muted-foreground` | Pewter `#5c5e62` | labels, captions, tertiary links, placeholders' firmer sibling |
40
+ | `border` | Cloud Gray `#eeeeee` | separators and divider lines — the light hairline |
41
+ | `input` | Pale Silver `#d0d1d2` | field edges — the firmer border tone Tesla uses for delineation |
42
+ | `primary` | Electric Blue `#3e6ae1` | the one primary action; active nav; promotional emphasis text |
43
+ | `accent` | faint blue wash `#edf1fc` | selected / hovered rows and nav, on-accent surfaces only |
44
+ | `ring` | `primary` | the focus outline — an unmistakable blue border, because keyboard-first |
45
+ | `destructive` | red `#dc2626` | destructive actions and error state only |
46
+ | `success` / `warning` | green `#16a34a` / amber `#d97706` | status signalling only, never chrome |
47
+
48
+ Graphite `#393c41` is the `secondary-foreground` (body / secondary-CTA text); Silver Fog `#8e8e8e` is the
49
+ placeholder / disabled tone. Tesla avoids semantic status color (browser defaults); the derived
50
+ `destructive` / `success` / `warning` give the operator tool a status vocabulary, kept off the chrome (§7).
51
+
52
+ ## 3 Typography
53
+
54
+ One sans, one mono. `font-sans` leads with Universal Sans Text — Tesla's custom geometric family with
55
+ humanist terminals, unifying web, app, and in-car software — falling back to Inter, the open-source
56
+ stand-in. The hero-scale Universal Sans Display (40px / 500) stays behind; the operator ramp keeps the
57
+ voice at working sizes. `font-mono` is derived (Tesla ships none) — JetBrains Mono for IDs, codes,
58
+ timestamps; numeric columns render `tabular-nums`.
59
+
60
+ | Step | Role | Size · line | Weight · tracking |
61
+ | --- | --- | --- | --- |
62
+ | h1 | page title | 24px / 1.25 | `font-weight-strong` (500) · `heading-tracking` (0) |
63
+ | h2 | section head | 18px / 1.3 | `font-weight-strong` · 0 |
64
+ | h3 | card / group head | 16px / 1.35 | `font-weight-strong` · 0 |
65
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` (400) |
66
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
67
+ | caption | eyebrow / meta | 12px / 1.3 | `font-weight-strong` · 0 · sentence case |
68
+
69
+ Two weights only — 500 for heads and UI, 400 for body; **no bold, no light**. **Zero letter-spacing at
70
+ every level** is the Tesla signature (unlike most tech brands it takes no negative tracking); **no
71
+ uppercase transforms** — captions and labels stay sentence-case. Emphasize by weight, never size.
72
+
73
+ ## 4 Component Stylings
74
+
75
+ Every recurring operator component composes from the primitives — no literal values, `radius` 4 on
76
+ controls throughout.
77
+
78
+ - **Button** — `primary`: filled Electric Blue on `primary-foreground`, `radius` (4px), no pill; the
79
+ border reserves space for the focus animation. Hover is color-only — a subtle darkening, never a
80
+ transform. Secondary: `secondary` Light Ash fill, 1px `border`, `secondary-foreground` Graphite.
81
+ - **Input** — `background` fill, 1px `input` (Pale Silver) edge, `radius`; placeholder in Silver Fog
82
+ (`muted-foreground`); focus draws the blue `ring` at 2px, no glow.
83
+ - **Card** — white `card`, optional 1px `border`, `radius` (4px controls; the scale offers 12px for a
84
+ large image-forward tile); no shadow at rest, inset by `density-inset`.
85
+ - **Table row** — `table-row-height`; Cloud Gray `border` grid lines; Light Ash `muted` on hover;
86
+ `tabular-nums` on numeric columns; row selection tints `accent`.
87
+ - **Side panel** — detail and edit open beside the work (`side-panel-width` / `side-panel-width-rich`),
88
+ never over it.
89
+ - **Badge / chip** — `radius`, hairline `border`, `muted` / status fill, sentence-case caption (no
90
+ uppercase); status badges take `success` / `warning` / `destructive`, never `primary`.
91
+
92
+ ## 5 Layout
93
+
94
+ Base spacing unit 8px (Tesla's grid); the on-scale ramp is `4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the
95
+ 4px step is the button padding). Shell dimensions map one-to-one to the layout primitives — sidebar
96
+ `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
97
+ `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables
98
+ full-width capped at ~1383px (Tesla's container). Density is governed globally by `density-tier` and
99
+ stepped per archetype; the viewport-height rhythm and whitespace-as-luxury stay behind.
100
+
101
+ ## 6 Depth
102
+
103
+ Flat, and essentially shadowless — Tesla's elevation approach is "none." Hierarchy comes from the surface
104
+ ladder, hairlines, and z-position, never a drop shadow:
105
+
106
+ - **0 — flat** `background` white, no shadow, no border — the default at rest for cards, panels, controls.
107
+ - **1 — frost** sticky chrome floats over content by a frosted-glass backdrop (`rgba(255,255,255,0.75)`)
108
+ and z-position, not shadow.
109
+ - **2 — overlay** `popover` / side panel / modal — a region-scrim (`rgba(128,128,128,0.65)`) dims the
110
+ canvas beneath; `shadow-intensity` earns only a whisper `sm` shadow, a hairline still carrying the edge.
111
+
112
+ Focus is a 2px `ring` outline in Electric Blue (never a glow), visible everywhere. Three z-levels:
113
+ content, sticky chrome, overlay.
114
+
115
+ ## 7 Do's & Don'ts
116
+
117
+ - **Do** reserve Electric Blue (`primary`) for the single most important action — never decoration;
118
+ carry hierarchy with the grayscale surface ladder, hairlines, and weight.
119
+ - **Do** keep every corner barely rounded — `radius` 4 on buttons, inputs, and chips is the signature.
120
+ - **Do** hold typography at 400 / 500 only, zero letter-spacing, and sentence case — no bold, no light,
121
+ no negative tracking, no uppercase; apply `tabular-nums` to numbers, `font-mono` to IDs / codes / times.
122
+ - **Don't** promote a second chromatic accent — the palette is monochrome-plus-one; status uses
123
+ `success` / `warning` / `destructive`, never the blue.
124
+ - **Don't** pill or over-round a control (radius stays inside `radius-scale`), or signal elevation with a
125
+ drop shadow — the aesthetic is flat.
126
+ - **Don't** animate with scale or translate — Tesla's interactions are color-only (background and border
127
+ transitions).
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 queue+detail holds side by side |
138
+ | 1440 | content caps at ~1383px; forms hold `form-max-width`; tables and dashboards use the full width |
139
+
140
+ ## 9 Agent Prompt Guide
141
+
142
+ Directives the emitting agent follows verbatim:
143
+
144
+ - Carries over: the white-dominant palette (Carbon → Graphite → Pewter → Silver Fog ink ramp, Electric
145
+ Blue `#3e6ae1`), the single-accent discipline, the 4px technical radius, the flat/shadowless depth, the
146
+ two-weight 500 / 400 type voice with zero tracking and no uppercase.
147
+ - Stays behind: full-viewport hero photography, 40px display type, whitespace-as-luxury rhythm, the
148
+ frosted-glass nav, the carousel, the chatbot bar — none belong in operator chrome.
149
+ - Accent only the primary action in Electric Blue — if two things want it, one is not primary.
150
+ - Keep motion color-only — background and border transitions, never a scale or translate; the hot path
151
+ tempers Tesla's languid 0.33s to a still-smooth normal, parking 330ms for large surface changes.
152
+ - Numeric columns `tabular-nums`, IDs / codes / timestamps `font-mono`; every workflow keyboard-complete
153
+ with the blue `ring` focus outline always visible; stay flat, a whisper `sm` shadow only for a true overlay.
@@ -0,0 +1,167 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: The Verge
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # The Verge — the operator reading
9
+
10
+ The operator reading of The Verge's 2024 editorial system. The Verge is categorically dark — "there
11
+ is no light mode; the dark canvas is the product" — so this entry earns the doctrine's dark
12
+ exception: the near-black canvas fills the default-emitted theme, recorded plainly because the brand
13
+ demands it. What carries onto internal tools (a content queue, a moderation dashboard, an activity
14
+ log): the near-black canvas, the single acid-mint accent, the mono-uppercase label voice, the flat
15
+ color-as-elevation depth, and the rounded-never-square character. What stays behind: the marketing
16
+ shout — 60–107px Manuka hero display, the saturated rave-flyer story tiles, the FK Roman serif
17
+ pulls, the 40px pill CTAs, the thin-weight "fashion whisper" eyebrows. The result is unmistakably
18
+ The Verge — a developer-console feel with club-night color — but it reserves its one accent and
19
+ earns its density.
20
+
21
+ ## 1 Visual Theme
22
+
23
+ Dark by default, deliberately — the categorically-dark exception, not the light-default norm. The canvas
24
+ is Canvas Black `#131313`, almost-but-not-pure black with just enough warmth to read as a printed-newsprint
25
+ negative rather than an OLED void. Flat: hierarchy comes from 1px hairline `border`, the near-black surface
26
+ ladder, and saturated color — never heavy shadow, color is elevation here. A single accent, Jelly Mint
27
+ `primary` (`#3cffd0`), is reserved for the one action that matters, treated like neon safety paint; ink is
28
+ Hazard White `foreground` (`#ffffff`). The type voice pairs a grotesque sans body with a mono-uppercase
29
+ label register — the second-most-identifiable Verge detail after the display face. Density is `standard`;
30
+ the anchor surface is the black canvas beside a fractionally darker `sidebar`.
31
+
32
+ ## 2 Color Roles
33
+
34
+ One accent: `primary` (mint) is the only chromatic hue that carries brand meaning; ultraviolet,
35
+ yellow, pink, and electric blue live only in charts, and status hues speak status.
36
+
37
+ | Role | Value | Allowed where |
38
+ | --- | --- | --- |
39
+ | `background` | Canvas Black `#131313` | the page — the dominant near-black surface, no light mode |
40
+ | `foreground` | Hazard White `#ffffff` | primary text and headlines on the canvas |
41
+ | `card` / `popover` | `#1a1a1a` | panels and overlays — a faint step off canvas, border still carries |
42
+ | `muted` | `#242424` | subtle fills and hover rows |
43
+ | `muted-foreground` | Secondary Text `#949494` | bylines, timestamps, captions, column headers |
44
+ | `border` / `input` | Image Frame `#313131` | every quiet hairline, grid line, field edge; white/mint reserved for emphasis |
45
+ | `primary` | Jelly Mint `#3cffd0` | the one primary action, active nav underline — as fill with black text, never small text |
46
+ | `primary-foreground` | Absolute Black `#000000` | text/icon on the mint fill — the only place black appears |
47
+ | `accent` | Surface Slate `#2d2d2d` | selected/hovered rows and nav — a neutral step, never a mint wash |
48
+ | `ring` | Focus Cyan `#1eaedb` | the keyboard-focus outline — the brand's dedicated focus hue, shown nowhere else |
49
+ | `secondary` | Surface Slate `#2d2d2d` | secondary button fill |
50
+ | `destructive` | hazard red-pink `#ff3b5c` | destructive actions and error state only |
51
+ | `success` / `warning` | green `#22c55e` / hazard yellow `#ffd23c` | status signalling only, never chrome |
52
+
53
+ Verge Ultraviolet `#5200ff` is a brand hazard, not an operator accent — it survives here as a chart hue
54
+ (the corpus's error-purple role is handed to a readable red so destructive reads as danger). Deep Link
55
+ Blue `#3860be` is the text-link hover color; Console Mint Border `#309875` outlines mint elements where
56
+ pure mint over-saturates. White as a large fill is a "spotlight" moment, not the canvas.
57
+
58
+ ## 3 Typography
59
+
60
+ Two families carry the voice. `font-sans` is PolySans (Space Grotesk the corpus-named substitute) — the
61
+ UI, body, table, and headline workhorse. `font-mono` is PolySans Mono (Space Mono substitute) — used
62
+ exclusively for ALL-CAPS labels: kickers, timestamps, category tags, IDs, log lines. Lowercase mono does
63
+ not exist in this system; every all-caps label carries positive letter-spacing, the Verge signature.
64
+ Numeric columns render `tabular-nums`. Line heights run tight for a telegraph-ticker rhythm.
65
+
66
+ | Step | Role | Family | Size · line | Weight · tracking |
67
+ | --- | --- | --- | --- | --- |
68
+ | h1 | page title | sans | 26px / 1.1 | `font-weight-strong` · `heading-tracking` |
69
+ | h2 | section head | sans | 20px / 1.2 | `font-weight-strong` · 0 |
70
+ | h3 | card / group head | sans | 16px / 1.3 | `font-weight-strong` · 0 |
71
+ | body | UI + prose | sans | 14px / 1.5 | `font-weight-normal` |
72
+ | small | labels, dense table | sans | 13px / 1.4 | `font-weight-normal` |
73
+ | label | all-caps kicker / tag / timestamp | mono | 12px / 1.2 | `font-weight-strong`, +0.12em, uppercase |
74
+ | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
75
+
76
+ Emphasis is the jump from 400 to 700 — the brand is punchy, not calm. The Manuka display, the 300-weight
77
+ whisper eyebrows, and the FK Roman serif pulls stay behind; the mono-uppercase label register is the
78
+ irreducible type signature and carries.
79
+
80
+ ## 4 Component Stylings
81
+
82
+ Every recurring operator component composes from the primitives — no literal values.
83
+
84
+ - **Button** — `primary`: filled mint on `primary-foreground` (black on mint), `radius`, no pill; hover
85
+ inverts to a translucent-white surface, active dims. Secondary: `secondary` slate fill, `foreground`.
86
+ Ghost: transparent, `accent` on hover.
87
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the Focus Cyan
88
+ `ring` at 2px, no glow.
89
+ - **Card** — `card` surface on a 1px `border`; a focused or active card firms its hairline to mint or
90
+ white (the depth ladder), never a shadow lift; inset by `density-inset`.
91
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
92
+ numeric columns; row selection tints `accent`; timestamps and IDs ride `font-mono` uppercase.
93
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
94
+ for content-heavy), beside the work, not over it.
95
+ - **Badge / tag** — pill radius, `muted` / status fill, `font-mono` uppercase caption with positive
96
+ tracking; status badges take `success` / `warning` / `destructive`, never `primary`.
97
+
98
+ ## 5 Layout
99
+
100
+ Base spacing unit 4px (the corpus's editorial 8px base loosens for the operator grid); the on-scale ramp
101
+ is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64`. Shell dimensions map one-to-one to the layout primitives:
102
+ sidebar `sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height`
103
+ (56px), side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap
104
+ `modal-width-max`, forms `form-max-width`, tables full-width. The corpus caps content at ~1280px with
105
+ 24/48px outer padding — operator forms cap tighter at `form-max-width`. Density is governed globally by
106
+ `density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
107
+
108
+ ## 6 Depth
109
+
110
+ Flat, color-as-elevation. Hierarchy comes from the near-black surface ladder and hairlines, never a
111
+ traditional shadow:
112
+
113
+ - **0 — canvas** `background` (`#131313`), no border.
114
+ - **1 — panel / card** `card` on a 1px `border`; a focused card firms its hairline to mint `#3cffd0` or
115
+ white — the border escalates, the surface does not lift.
116
+ - **2 — overlay** `popover` / side panel / modal — on a dark canvas a drop shadow barely registers, so
117
+ `shadow-intensity` earns only the faintest `sm` ring; separation is carried by border and position.
118
+
119
+ Focus is a Focus Cyan `ring` outline (never a glow), visible on every interactive element. The active-nav
120
+ underline is a 1px inset mint rule — a signature Verge move that carries. Three z-levels: content, sticky
121
+ chrome, overlay. No gradients, no glows, no atmospheric blurs — the hazard-tape aesthetic breaks if
122
+ anything fades.
123
+
124
+ ## 7 Do's & Don'ts
125
+
126
+ - **Do** anchor every view on the near-black `#131313` canvas — the dark canvas is the product, the
127
+ categorically-dark exception, not a theme toggle.
128
+ - **Do** reserve mint `primary` for the single most important action and the active-nav underline (black
129
+ text on the mint fill); everything else is neutral or status.
130
+ - **Do** carry every all-caps label, tag, timestamp, and ID in `font-mono` uppercase with positive
131
+ tracking — missing tracking is missing voice; apply `tabular-nums` to every numeric column.
132
+ - **Don't** use mint as small text (it vibrates under 16px) or as a background wash — mint is a fill and a
133
+ hairline, never a canvas tint.
134
+ - **Don't** promote a second chromatic accent — ultraviolet, yellow, and pink are chart/status hues.
135
+ - **Don't** pill the primary CTA (the 40px pill is a marketing shout) or square a corner — controls stay
136
+ softly rounded at `radius`.
137
+ - **Don't** signal elevation with a drop shadow; escalate the hairline (white, then mint) or step the
138
+ surface instead.
139
+
140
+ ## 8 Responsive
141
+
142
+ The operator sweep is 375 / 768 / 1024 / 1440.
143
+
144
+ | Breakpoint | What changes |
145
+ | --- | --- |
146
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; mono labels stay pinned at 11–12px; density holds |
147
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
148
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
149
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; margins breathe |
150
+
151
+ Saturated status and chart hues never lose saturation on any viewport — they reflow, they do not fade.
152
+
153
+ ## 9 Agent Prompt Guide
154
+
155
+ Directives the emitting agent follows verbatim:
156
+
157
+ - Reach for the near-black `#131313` canvas first — there is no light mode; the dark canvas is the brand.
158
+ - Accent only the primary action in mint, as a fill with black text or the active-nav underline. If two
159
+ things want the accent, one of them is not primary.
160
+ - Carry the mono-uppercase label voice everywhere labels, tags, timestamps, and IDs appear — positive
161
+ tracking on every all-caps run; every numeric column is `tabular-nums`, every ID / log line `font-mono`.
162
+ - Every workflow completes from the keyboard; the Focus Cyan `ring` outline is always visible.
163
+ - Stay flat — hairline and the near-black surface ladder before any shadow; escalate a border to white or
164
+ mint before reaching for elevation.
165
+ - Leave the marketing shout behind: the 60–107px Manuka hero, the saturated story tiles, the FK Roman
166
+ serif pulls, the 40px pill CTAs, the 300-weight whisper eyebrows. What carries: the near-black palette,
167
+ the single mint accent, the mono-uppercase voice, the rounded-never-square character, and flat depth.
@@ -0,0 +1,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Together AI
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Together AI — the white-band operator reading
9
+
10
+ Together AI's surface alternates two registers: near-black hero bands carrying a single piece of
11
+ brand chrome — a three-color orange-magenta-periwinkle gradient ribbon — and bright white technical
12
+ bands where the real content lives (pricing tables, docs, model rows). This entry is the *operator*
13
+ reading: it lives in the **white technical band**, carried onto a CRM, a queue, or a dashboard. What
14
+ carries: the white canvas, stark black ink and black CTA, the uppercase mono-caps eyebrow/label
15
+ voice, hairline-led flatness, the tight 4px radius, and a near-black nav rail — the brand's dark nav
16
+ made permanent. What stays behind: near-black content bands, the gradient ribbon, hero-scale display
17
+ (64px), the giant `together.ai` wordmark banner, the mint/white hero pills, and the dual-surface
18
+ alternation. The gradient's colors survive only in data viz.
19
+
20
+ ## 1 Visual Theme
21
+
22
+ Light by default; dark is opt-in. Flat — hierarchy is carried by hairline `border`, type weight, uppercase
23
+ mono labels, and surface contrast, never by shadow. The register is stark: ink is pure black `foreground`
24
+ (`#000000`) on a pure white canvas — recorded plainly, because the brand's own ink is `#000000` and that
25
+ starkness *is* the voice. The primary action wears black `primary` (`#000000`) — a monochrome CTA, not a
26
+ color; the brand's black pill carried intact. One chromatic accent — a periwinkle-indigo pulled from the
27
+ cool leg of the brand gradient — is reserved for links, selection, and focus; the full three-stop gradient
28
+ stays marketing-only. The persistent nav rail wears the brand's near-black nav color (`sidebar` `#010120`) —
29
+ the dark-nav-over-light-content signature made permanent. Density is `standard`, stepping denser per
30
+ archetype; the brand's pricing tables read like a sheet.
31
+
32
+ ## 2 Color Roles
33
+
34
+ One chromatic accent — periwinkle-indigo carries interactive meaning; status hues (all derived — the
35
+ brand documents none) speak only status.
36
+
37
+ | Role | Value | Allowed where |
38
+ | --- | --- | --- |
39
+ | `background` / `card` / `popover` | canvas white `#ffffff` | page, cards, and overlays — the dominant surface, differentiated by border not brightness |
40
+ | `foreground` | ink black `#000000` | all primary text — stark, per the brand |
41
+ | `muted` | faint neutral `#f5f5f5` | hover rows, subtle fills |
42
+ | `muted-foreground` | body gray `#666666` | labels, captions, mono eyebrows, secondary text |
43
+ | `secondary` | canvas-soft `#ebebeb` | secondary buttons, table-header rails, toggle rails |
44
+ | `border` / `input` | hairline `#e6e6e6` | every separator, grid line, field edge, and card chrome |
45
+ | `primary` | black `#000000` | the one primary action; active nav — a neutral, not a color |
46
+ | `accent` | pale periwinkle `#eeedfd` | selected/hovered rows and nav, on-accent surfaces only |
47
+ | `accent-foreground` | periwinkle-indigo `#4b44dd` | links, selection detail — the single interactive hue |
48
+ | `ring` | periwinkle-indigo `#4b44dd` | the keyboard focus outline — the one accent, so focus never reads as the black CTA |
49
+ | `destructive` | red `#dc2626` | destructive actions and error state only |
50
+ | `success` / `warning` | green `#16a34a` / amber `#d97706` | status signalling only, never chrome |
51
+
52
+ The three-stop gradient (orange → magenta → periwinkle) and the mint pill are marketing graces — no chrome role here; they survive only as chart hues (see §6, §7).
53
+
54
+ ## 3 Typography
55
+
56
+ Two faces carry the whole system, and their contrast *is* the brand. `font-sans` is Together's geometric
57
+ display sans (`The Future`, Inter substitute) — headings and body both ride it; tight negative tracking,
58
+ not weight, is the voice, and it never bolds past 500. `font-mono` is the uppercase mono-caps face
59
+ (`PP Neue Montreal Mono`, JetBrains Mono substitute) — the brand's irreducible signature: every eyebrow,
60
+ button label, table-header cell, and system tag is set in it, uppercase, at positive tracking. Headlines
61
+ stay sentence-case; every uppercase moment is the mono. Numeric columns render `tabular-nums`; the 64px
62
+ hero display stays behind.
63
+
64
+ | Step | Role | Family | Size · line | Weight · tracking |
65
+ | --- | --- | --- | --- | --- |
66
+ | h1 | page title | sans | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
67
+ | h2 | section head | sans | 20px / 1.3 | `font-weight-strong` · -0.015em |
68
+ | h3 | card / group head | sans | 16px / 1.35 | `font-weight-strong` · -0.01em |
69
+ | body | UI + prose | sans | 14px / 1.45 | `font-weight-normal` |
70
+ | small | labels, meta, dense table | sans | 13px / 1.4 | `font-weight-normal` |
71
+ | mono-label | uppercase eyebrow / header cell | mono | 11px / 1.4 | `font-weight-strong`, +0.05em, uppercase |
72
+ | mono-button | uppercase button label | mono | 13px / 1 | `font-weight-strong`, +0.02em, uppercase |
73
+ | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
74
+
75
+ Never let the mono carry a paragraph; emphasis is weight-to-strong or a switch to the mono face.
76
+
77
+ ## 4 Component Stylings
78
+
79
+ Every recurring operator component composes from the primitives — no literal values.
80
+
81
+ - **Button** — `primary`: filled black `primary` on `primary-foreground`, `radius` (4px), never a full pill, label in uppercase mono. Secondary: `secondary` fill, 1px `border`, `foreground`. Ghost: `accent` on hover.
82
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the periwinkle `ring` at 2px, no glow.
83
+ - **Card** — `card` on a 1px `border`; white-on-white, read by its hairline, never brightness; shadow only when a true overlay lifts (`shadow-intensity`); inset by `density-inset`.
84
+ - **Table row** — height `table-row-height`; `secondary` header fill with uppercase mono header cells; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; selection tints `accent`.
85
+ - **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
86
+ - **Badge** — pill `radius` (9999) allowed here as a brand grace; hairline `border` or status fill, uppercase mono caption; status badges take `success` / `warning` / `destructive`, never `primary`.
87
+
88
+ ## 5 Layout
89
+
90
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 80` (the 80 preserves the
91
+ brand's dramatic section rhythm). Shell dimensions map one-to-one to the layout primitives: the near-black
92
+ sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height` (the brand's nav
93
+ rhythm), side panel `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms
94
+ `form-max-width`, tables full-width. Rows ride `table-row-height` (40px — the brand's sheet-tight pricing
95
+ row). Density is governed globally by `density-tier` and stepped per archetype by the surface catalog —
96
+ never by absolute overrides.
97
+
98
+ ## 6 Depth
99
+
100
+ Flat. Hierarchy comes from hairlines, surface polarity, and the dark rail — not shadow:
101
+
102
+ - **0 — canvas** `background` white, no border.
103
+ - **1 — panel / card** `card` white on a 1px `border`; white-on-white read entirely by the hairline.
104
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md` shadow, navy-tinted (the brand's `rgba(1,1,32,0.1)` drop); modals lean on a tinted scrim, not a heavy shadow.
105
+ - **rail — nav** the persistent sidebar wears near-black `sidebar` (`#010120`) with white text — the brand's dark nav carried, the one dark surface in a light UI.
106
+
107
+ The gradient is not chrome here — it lives in charts (`chart-1..5` carry the accent indigo, brand magenta, brand orange, deepened mint). Focus is a 2px periwinkle `ring` outline, never a glow, on every interactive element. Three z-levels: content, sticky chrome, overlay.
108
+
109
+ ## 7 Do's & Don'ts
110
+
111
+ - **Do** keep the canvas pure white and the ink pure black — the stark black-on-white is the brand's technical register.
112
+ - **Do** set every eyebrow, button label, and table-header cell in uppercase mono (`font-mono`) with positive tracking — the two-face contrast is the voice.
113
+ - **Do** reserve black `primary` for the single most important action and the periwinkle `accent-foreground` for links, selection, and focus — one accent, treated as scarce.
114
+ - **Do** dress the persistent nav rail in the near-black `sidebar` (`#010120`) — the brand's dark nav made permanent.
115
+ - **Don't** set headlines in the all-caps mono or let the mono carry a paragraph — every uppercase moment is the mono, every headline is the sans in sentence case.
116
+ - **Don't** promote a second chromatic accent, or reduce the three-stop gradient into UI chrome — it survives only at chart scale.
117
+ - **Don't** full-pill the primary CTA (buttons keep the 4px `radius`; pills stay on badges), or signal elevation with heavy drop shadows — hairlines and surface polarity carry rank.
118
+
119
+ ## 8 Responsive
120
+
121
+ The operator sweep is 375 / 768 / 1024 / 1440.
122
+
123
+ | Breakpoint | What changes |
124
+ | --- | --- |
125
+ | 375 | dark sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; table rows stack model above values; density holds |
126
+ | 768 | sidebar collapses to the near-black 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; section rhythm widens |
129
+
130
+ ## 9 Agent Prompt Guide
131
+
132
+ Directives the emitting agent follows verbatim:
133
+
134
+ - Reach for the white canvas and pure-black ink first; float hairline-bordered white `card` surfaces on it, read by border, never by brightness.
135
+ - Set every eyebrow, button label, and table-header cell in uppercase mono (`font-mono`); keep headlines in the sentence-case sans with tight negative tracking. Never bold the sans past 500.
136
+ - Accent only the primary action in black `primary`; let the periwinkle `accent-foreground` be the one chromatic hue, for links, selection, and focus. If two things want the accent, one is not primary.
137
+ - Dress the persistent nav rail in the near-black `sidebar` (`#010120`) — the one dark surface in a light UI.
138
+ - Every numeric column is `tabular-nums`; every ID, code, model slug, and timestamp is `font-mono`. Every workflow completes from the keyboard; the periwinkle `ring` focus outline is always visible.
139
+ - Stay flat — hairline and surface polarity before shadow; reach past a hairline only for a real overlay.
140
+ - Leave the marketing furniture behind: near-black content bands, the gradient ribbon, the 64px hero display, the wordmark banner, the mint/white hero pills. The gradient's colors return only in charts.
@@ -0,0 +1,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Uber
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Uber — the black-and-white super-app operator design
9
+
10
+ The operator reading of Uber's monochrome web brand. The marketing theatre stays behind: hero
11
+ display type (52 / 36px), the editorial 4:3 illustrations, the ride-request hero card, and the
12
+ alternating white-then-black band rhythm. What carries is the chassis underneath — a black-and-white
13
+ duet where pure black `primary` (`#000000`) does every conversion job, the pill on every interactive
14
+ control, a flat no-shadow-by-default discipline, the neutral-tracked geometric sans voice, and the
15
+ polarity-flip as the depth cue.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Light by default; dark is opt-in. The system is a black-and-white duet: a pure white `background`
20
+ canvas, pure black `foreground` ink, and a single accent that is not a colour at all — black `primary`
21
+ (`#000000`) carries the one primary action, the active state, and the polarity-flipped bands. No second
22
+ chromatic accent exists; the identity is the monochrome contrast plus one signature shape — the pill.
23
+ Every interactive control rounds to the pill (`9999`), Uber's irreducible geometry, while cards take a
24
+ soft 16px. Pure black is intentional (the brand ink is true `#000000`, recorded plainly over the generic
25
+ no-pure-black bias). Flat: hierarchy is hairline `border`, type weight, and the polarity-flip, never
26
+ shadow. The anchor surface is a white canvas beside a black `sidebar` — the shell is the duet, at `standard` density.
27
+
28
+ ## 2 Color Roles
29
+
30
+ Light values. One accent: black `primary` is the only value that carries meaning; the status hues
31
+ are derived and speak only status.
32
+
33
+ | Role | Value | Allowed where |
34
+ | --- | --- | --- |
35
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
36
+ | `foreground` | pure black `#000000` | all primary ink and headlines — the brand's true-black ink |
37
+ | `muted` / `secondary` | canvas-soft `#efefef` | hover rows, subtle fills, chip grounds, the gray subtle-pill button |
38
+ | `muted-foreground` | body gray `#5e5e5e` | labels, captions, secondary text |
39
+ | `border` / `input` | pressed gray `#e2e2e2` | every separator, grid line, and field edge |
40
+ | `primary` | black `#000000` | the one primary action; active nav mark; the polarity-flip bands |
41
+ | `accent` | pressed gray `#e2e2e2` | selected / hovered rows — a gray wash, never a hue |
42
+ | `ring` | black `#000000` | the focus outline — maximally visible, keyboard-first |
43
+ | `destructive` | derived red `#d93025` | destructive actions and error state only |
44
+ | `success` / `warning` | derived `#157347` / `#b25000` | status signalling only, never chrome |
45
+
46
+ Links are ink and underlined, never blue — the `#0000ee` browser-blue in Uber's fine print stays behind.
47
+ The black `sidebar` wears Uber's dark-band tones (`#000000` fill, `#282828` hover); `#afafaf` is placeholder only.
48
+
49
+ ## 3 Typography
50
+
51
+ One sans, one mono. `font-sans` is Inter — the corpus's substitute for the proprietary UberMove /
52
+ UberMoveText, with `font-feature-settings: "ss01"` approximating UberMove's geometric alternates. One
53
+ family carries body, UI, and headings; weight, not a second face, carries the display voice (the
54
+ two-face split and the hero 52 / 36px sizes stay behind). Tracking is neutral (`0`) — Uber never
55
+ letter-spaces, a stated brand invariant. `font-mono` is Geist Mono for IDs, codes, and timestamps;
56
+ numeric columns render `tabular-nums`.
57
+
58
+ | Step | Role | Size · line | Weight · tracking |
59
+ | --- | --- | --- | --- |
60
+ | h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` (0) |
61
+ | h2 | section head | 20px / 1.3 | `font-weight-strong` · 0 |
62
+ | h3 | card / group head | 16px / 1.4 | `font-weight-strong` · 0 |
63
+ | body | UI + prose | 15px / 1.5 | `font-weight-normal` |
64
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
65
+ | caption | uppercase eyebrow (rare) | 12px / 1.4 | `font-weight-strong`, `+0.04em`, uppercase |
66
+ | mono | IDs, codes, timestamps | 13px / 1.5 | `font-weight-normal` |
67
+
68
+ Headlines are sentence-case (the uppercase eyebrow is the rare exception); emphasise by weight, never size or tracking.
69
+
70
+ ## 4 Component Stylings
71
+
72
+ - **Button** — `primary`: filled black `primary` on `primary-foreground`, pill (`9999`) — the pill IS
73
+ the signature, kept where other readings would rect. Secondary: white `card` fill, 1px `border`, pill.
74
+ Subtle: `secondary` gray fill, pill. Ghost: transparent, `muted` hover.
75
+ - **Input** — `background` fill, 1px `border`, the soft `radius` rect (~8px) — inputs are the one
76
+ control that does **not** pill; focus draws the black `ring` at 2px, no glow.
77
+ - **Card** — `card` surface, 1px `border`, `radius` steps to 16px (Uber's canonical card); shadow only when lifted.
78
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; selection tints
79
+ `accent`; `tabular-nums` on numerics; the active-row indicator is a black `primary` left edge.
80
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width` / `-rich`), beside the work, never over it.
81
+ - **Badge** — pill radius, `muted` / status fill, uppercase caption; status badges take
82
+ `success` / `warning` / `destructive`, never `primary`.
83
+
84
+ ## 5 Layout
85
+
86
+ Base spacing unit 4px; the on-scale ramp is `4 · 6 · 8 · 12 · 16 · 20 · 24 · 32 · 48` (the brand's own
87
+ tokens, including the 6px sub-step). Shell dimensions map one-to-one to the layout primitives: sidebar
88
+ `sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (56px), side
89
+ panel `side-panel-width` (440px) / `side-panel-width-rich` (640px), modal `modal-width-max`, forms
90
+ `form-max-width`, tables full-width. Density is `standard`, governed by `density-tier`, stepped per archetype.
91
+
92
+ ## 6 Depth
93
+
94
+ Flat, polarity-first. Hierarchy comes from the black/white contrast and hairlines, not shadow:
95
+
96
+ - **0 — canvas** white `background`, no border.
97
+ - **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
98
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
99
+ drop (matching Uber's ~0.16-alpha card drop).
100
+ - **band — polarity-flip** inverting to the black `primary` / `sidebar` surface with white text is
101
+ Uber's signature depth cue: rank by flipping to black, never by stacking a heavier shadow.
102
+
103
+ Focus is a 2px black `ring` outline (never a glow). Three z-levels: content, sticky chrome, overlay.
104
+
105
+ ## 7 Do's & Don'ts
106
+
107
+ - **Do** keep the system black-and-white — one black `primary` doing every conversion job; the
108
+ monochrome contrast is the brand.
109
+ - **Do** pill every interactive control (buttons, chips, badges) — Uber's irreducible geometric
110
+ signature; inputs are the one exception (the soft `radius` rect).
111
+ - **Do** keep headlines sentence-case with neutral (`0`) tracking — Uber never letter-spaces; apply
112
+ `tabular-nums` to numeric columns and `font-mono` to IDs, codes, and timestamps.
113
+ - **Don't** introduce a second chromatic accent — orange, blue, or green flattens the monochrome
114
+ system; the status hues are derived and reserved for status only.
115
+ - **Don't** render links in browser-blue (the `#0000ee` fine-print artifact stays behind), or put a
116
+ shadow on chrome — flat is the default; shadow lifts only true overlays.
117
+ - **Don't** reach past `radius-scale`, or open detail in a modal when the side panel fits.
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
+ - **Carries:** the black-and-white duet; pure black `primary` as the single accent; the pill on every
133
+ interactive control; the black `sidebar` / band polarity-flip; Inter (`ss01`) at neutral tracking; flat hairline depth.
134
+ - **Stays behind:** the hero display (52 / 36px); the editorial 4:3 illustrations; the ride-request hero
135
+ card; the alternating-band rhythm at hero scale; the browser-blue link.
136
+ - Lead every list with its table, every entity with its primary read. Accent only the primary action in
137
+ black — if two things want black, one is not primary.
138
+ - Pill the interactive controls; inputs take the soft rect; keep the `sidebar` black with white actives.
139
+ Every numeric column is `tabular-nums`, every ID / code / timestamp `font-mono`, the black `ring` always visible.
140
+ - Stay flat — hairline and polarity-flip before shadow; past a hairline only for a real overlay.