@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: Wired
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Wired — the print-editorial, black-on-white operator reading
9
+
10
+ An operator translation of Wired's design language — a flagship technology magazine ported to the
11
+ screen. The marketing theatre stays behind: the 64px `WiredDisplay` cover headline, the full-bleed
12
+ 16:9 hero photography, the magazine story grid. What carries is the chassis underneath — a strict
13
+ black-on-white duet with no chromatic accent, square geometry on every control, hairline-only
14
+ elevation, and an editorial three-face type voice where a serif carries the page title over the sans
15
+ that runs the chrome.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Light by default; dark is opt-in. Pure and unmistakable: black ink on a white canvas, the way a printed
20
+ page reads. Flat — hierarchy is the `border` hairline, type weight, and stark ink contrast, never
21
+ shadow (the brand uses none). The single "accent" is black itself (`primary`), reserved for the
22
+ wordmark, the one CTA, and active nav; there is no chromatic accent in the chrome. Temperature is
23
+ dead-neutral — every gray a true achromatic gray, colder than any tinted-slate tool. Geometry is
24
+ square: `radius` 0 on every control, the non-negotiable signature. The anchor is a white canvas beside
25
+ a white `sidebar` split by a hairline; density is `standard`, the breathing riding type, not rows.
26
+
27
+ ## 2 Color Roles
28
+
29
+ Light values. A deliberate black-and-white duet: `primary` is black, the sole chromatic grace (link
30
+ blue) is text-links only, and status hues are derived (the brand ships none), kept deep to sit under
31
+ the austerity.
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` | every headline and every line of ink — the brand override (see §7) |
37
+ | `muted` / `secondary` | canvas-soft `#f5f5f5` | hover rows, subtle fills, secondary button — the brand's single soft tint |
38
+ | `muted-foreground` | body gray `#757575` | bylines, timestamps, labels, secondary metadata |
39
+ | `border` | hairline `#e0e0e0` | every divider, story-row rule, table grid line, and card edge — the brand's only "line" |
40
+ | `input` | black `#000000` | the field edge — Wired's square black-bordered input is a signature (dividers stay hairline) |
41
+ | `primary` | black `#000000` | the one CTA fill; the wordmark; active nav; the heavy-border moment |
42
+ | `accent` | canvas-soft `#f5f5f5` | selected / hovered rows and nav — selection tints, never colours |
43
+ | `ring` | black `#000000` | the 2px focus outline — it IS the brand's heavy black border, put to keyboard use |
44
+ | `destructive` | deep red `#c1121f` | destructive actions and error state only |
45
+ | `success` / `warning` | green `#1a7f37` / amber `#b45309` | status signalling only, never chrome |
46
+
47
+ The link blue `#057dbc` is the one chromatic grace — inline text-links only, never a button, nav, or
48
+ focus ring. It survives in the chart ramp (`chart-2`) as the single accent series; every other is gray.
49
+
50
+ ## 3 Typography
51
+
52
+ Three faces, three roles — the editorial ladder. `font-sans` is Apercu (Inter fallback), the humanist
53
+ sans that runs all chrome: nav, labels, buttons, metadata, table cells, dense body. Page titles wear
54
+ the **serif** — `WiredDisplay` shading into `BreveText`; *Playfair Display* / *Lora* the open
55
+ substitutes — applied to h1/h2 by hand at operator scale, never the 64px hero. `font-mono` is derived
56
+ (the corpus ships none) for IDs, codes, timestamps; numeric columns render `tabular-nums`.
57
+
58
+ | Step | Role | Family | Size · line | Weight · tracking |
59
+ | --- | --- | --- | --- | --- |
60
+ | h1 | page title | serif | 32px / 1.1 | 400 · `heading-tracking` |
61
+ | h2 | section head | serif | 26px / 1.08 | 400 · `heading-tracking` |
62
+ | h3 | card / group head | sans | 17px / 1.3 | `font-weight-strong` · 0 |
63
+ | body | UI + prose | sans | 14px / 1.4 | `font-weight-normal` |
64
+ | small | labels, meta, dense table | sans | 13px / 1.4 | `font-weight-normal` |
65
+ | caption | uppercase eyebrow / category | sans | 12px / 1.3 | `font-weight-strong`, `+0.02em`, uppercase |
66
+ | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
67
+
68
+ Two weights only: sans emphasis 700, serif heading 400 — **never** promote the display past 400, its
69
+ elegance is the typeface, not the weight.
70
+
71
+ ## 4 Component Stylings
72
+
73
+ - **Button** — `primary`: filled black on `primary-foreground`, `radius` 0 (a sharp rectangle), never a
74
+ pill. Secondary is the brand outline: `background` fill, 1px ink `border`. Ghost: `accent` on hover.
75
+ - **Input** — `background` fill, 1px `input` (black) border, `radius` 0; focus draws the black `ring` at
76
+ a full 2px with 1px offset, no glow. Standalone fields wear the black edge; inline table-edit cells
77
+ relax to the `border` hairline.
78
+ - **Card** — `card` surface, no shadow; hierarchy is the 1px `border` hairline alone, `radius` 0.
79
+ - **Table row** — height `table-row-height`; `border` hairline grid lines; `muted` on hover;
80
+ `tabular-nums` on numeric columns; row selection tints `accent`.
81
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
82
+ beside the work, not over it; it lifts by a 2px `border`, never a shadow.
83
+ - **Badge** — square (`radius` 0), hairline `border`, `muted` / status fill, uppercase caption; status
84
+ badges take `success` / `warning` / `destructive`, never `primary`.
85
+
86
+ ## 5 Layout
87
+
88
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 20 · 24 · 32 · 48`. Shell dimensions
89
+ map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`,
90
+ topbar `topbar-height` (the thin masthead band), side panel `side-panel-width` / `side-panel-width-rich`,
91
+ modal `modal-width-max`, forms `form-max-width`, tables full-width in a wide ~1400px container. Density
92
+ is governed globally by `density-tier` and stepped per archetype — never by absolute overrides.
93
+
94
+ ## 6 Depth
95
+
96
+ Flat, and emphatically so — the brand uses zero drop-shadows. Hierarchy is the surface duet and
97
+ hairlines, across three z-levels (content, sticky chrome, overlay):
98
+
99
+ - **0 — canvas** `background`, no border. Almost every surface lives here.
100
+ - **1 — hairline** `card` / row / input on a 1px `border` (`#e0e0e0`) — the brand's only elevation cue.
101
+ - **2 — heavy black border** a 2px `border` at ink for the moment that must stand off the page — a
102
+ floated overlay, the side panel, the modal; rank is border weight and position, never a shadow.
103
+
104
+ Focus reuses that heavy black border: a 2px black `ring` outline (never a glow) on every interactive
105
+ element, put to keyboard work.
106
+
107
+ ## 7 Do's & Don'ts
108
+
109
+ - **Do** hold the strict black-on-white duet — pure-black `foreground` on `#ffffff` canvas is a
110
+ deliberate brand override of the usual near-black default; keep it.
111
+ - **Do** keep `radius` at 0 on every button, input, card, and badge; the only round shape is a circular
112
+ icon container. Carry elevation with the `border` hairline (or the 2px black border), never a shadow.
113
+ - **Don't** introduce a chromatic brand accent — link blue is text-links only, never a button, nav, or
114
+ focus ring; the chrome accent is black.
115
+ - **Don't** round a corner, bold the serif past 400, drop a soft shadow, or open detail in a modal when
116
+ the side panel fits.
117
+
118
+ ## 8 Responsive
119
+
120
+ | Breakpoint | What changes |
121
+ | --- | --- |
122
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; h1 32 → 26; 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 | forms cap at `form-max-width`; tables and dashboards use the full width |
126
+
127
+ ## 9 Agent Prompt Guide
128
+
129
+ - **Carries:** the strict black-on-white duet; pure-black ink and CTA; the dead-neutral achromatic
130
+ grays; square `radius` 0 geometry; hairline-and-black-border elevation (zero shadow); the Apercu sans
131
+ for all chrome with the editorial serif on page titles; the scarce link blue for text links only.
132
+ - **Stays behind:** the 64px `WiredDisplay` cover hero; the full-bleed 16:9 story photography; the
133
+ magazine cover-grid; the relaxed 2.2 byline line-height; the campaign-only heavy-border theatrics.
134
+ - Lead every list with its table and every entity with its primary read — not chrome. The accent is
135
+ black; if something wants colour it wants weight or a hairline, and link blue stays on text links.
136
+ - Keep every control square; page titles wear the serif (never bolded past 400), everything else Apercu
137
+ sans; `tabular-nums` on numeric columns, `font-mono` on IDs / codes / timestamps.
138
+ - Every workflow completes from the keyboard, the 2px black `ring` always visible; stay flat — hairline
139
+ and the black border before anything, the brand owns no shadow.
@@ -0,0 +1,137 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Wise
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Wise — the operator reading
9
+
10
+ A global money-transfer brand distilled to one idea for internal tools: a single lime-green action
11
+ color against a warm sage surface ladder, near-black olive ink, and generously rounded cards. This
12
+ is a deliberate operator reading of Wise — the friendly-fintech temperature carried onto a payments
13
+ console, a transfers queue, a settlement dashboard — with the marketing skin left behind.
14
+
15
+ ## 1 Visual Theme
16
+
17
+ Light by default; dark is opt-in. The defining move is the **surface ladder**: a warm sage `background`
18
+ (`#e8ebe6`) with white `card` surfaces lifting off it — surface contrast, not shadow, carries elevation
19
+ (the brand's own stated depth model). Flat throughout: hierarchy is sage/white contrast, warm hairlines,
20
+ and type weight. A single accent — Wise lime `primary` (`#9fe870`) on black `primary-foreground` — is
21
+ reserved for the one action that matters; ink is near-black olive `foreground` (`#0e0f0c`). The chrome
22
+ is white (top nav, sidebar) beside the sage content canvas, echoing Wise's white nav over sage bands.
23
+ Density is `standard` — the brand breathes, so the operator read holds an honest tier.
24
+
25
+ ## 2 Color Roles
26
+
27
+ Light values. One accent: `primary` lime carries brand meaning; the two greens are disciplined apart
28
+ (lime is the action, positive green is status), and the tertiary orange `#ffc091` / cyan `#38c8ff`
29
+ are illustration graces that survive only as chart hues, never UI accents.
30
+
31
+ | Role | Value | Allowed where |
32
+ | --- | --- | --- |
33
+ | `background` | sage `#e8ebe6` | the content canvas — the brand's defining surface; cards lift off it |
34
+ | `card` / `popover` | white `#ffffff` | panels, cards, overlays — the bright surface that lifts off the sage |
35
+ | `foreground` | near-black olive `#0e0f0c` | all primary ink and headings |
36
+ | `muted` | faint sage `#eef1ea` | table-row hover, quiet fills — one step between white card and sage canvas |
37
+ | `muted-foreground` | warm gray `#454745` | labels, captions, secondary text (lowest-priority meta drops to `#868685`) |
38
+ | `border` | sage hairline `#d4d8d2` | every separator and grid line — a soft sage line, not an ink rule |
39
+ | `input` | ink `#0e0f0c` | the field edge — Wise's signature 1px ink-outlined input, kept as a brand override |
40
+ | `primary` | Wise lime `#9fe870` | the one primary action, active nav indicator, the brand mark — nowhere else |
41
+ | `primary-foreground` | black `#0e0f0c` | text/icon on the lime fill — never white on lime |
42
+ | `accent` | pale green `#e2f6d5` | selected/hovered rows and nav — a soft brand tint, never a lime wash |
43
+ | `ring` | forest `#163300` | the focus outline — the deep brand green, because lime is too light to read as a ring |
44
+ | `destructive` | red `#d03238` | destructive actions and error state only |
45
+ | `success` / `warning` | green `#2ead4b` / amber `#b86700` | status only — success is a truer green than the lime CTA; warning is the legible warning-deep, not the bright `#ffd11a` |
46
+
47
+ ## 3 Typography
48
+
49
+ One sans carries the operator UI. `font-sans` is **Inter** — the brand's actual second face, workhorse
50
+ for body, sub-display, labels, and UI. Wise Sans (the weight-900 geometric display) reads bombastic at
51
+ operator scale, so it stays behind; headings hold the brand's semibold sub-display weight (600).
52
+ `font-mono` is JetBrains Mono for IDs, codes, timestamps; amount and numeric columns render
53
+ `tabular-nums` (Inter carries `tnum`) — the number legibility a money product depends on.
54
+
55
+ | Step | Role | Size · line | Weight · tracking |
56
+ | --- | --- | --- | --- |
57
+ | h1 | page title | 28px / 1.2 | `font-weight-strong` · `heading-tracking` |
58
+ | h2 | section head | 22px / 1.3 | `font-weight-strong` · -0.01em |
59
+ | h3 | card / group head | 16px / 1.4 | `font-weight-strong` · 0 |
60
+ | body | UI + prose | 16px / 1.5 | `font-weight-normal` |
61
+ | small | labels, dense table | 14px / 1.4 | `font-weight-normal` |
62
+ | caption | fine print, eyebrow | 12px / 1.35 | `font-weight-normal` |
63
+ | number | amounts, IDs | 16px / 1.4 | `font-mono` · `tabular-nums` |
64
+
65
+ Emphasize by weight (400 → 600) or size, never a third family. Negative heading tracking echoes the
66
+ brand's Inter sub-displays; the 900-weight hero display is not part of the operator voice.
67
+
68
+ ## 4 Component Stylings
69
+
70
+ Every recurring component composes from the primitives — no literal values.
71
+
72
+ - **Button** — `primary`: filled lime on black `primary-foreground`, `radius`, rounded but not the 24px pill. Secondary: sage `secondary` fill, `foreground`. Tertiary: white fill, 1px ink `input` border.
73
+ - **Input** — white `card` fill, 1px ink `input` border (`border-weight`), `radius`; focus draws the forest `ring` at 2px, no glow. The bold ink edge is the Wise form signature.
74
+ - **Card** — white `card` lifting off the sage canvas by contrast, not shadow; `radius` (scale offers
75
+ 16/24px for larger cards); optional sage hairline; inset by `density-inset`.
76
+ - **Table row** — height `table-row-height`; sage `border` grid lines; `muted` on hover; `accent` on
77
+ selection; `tabular-nums` on amount columns; `font-mono` on IDs and reference codes.
78
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`), beside the work, not over it.
79
+ - **Badge** — pill radius, status tint; the brand's positive badge is pale-green `accent` fill with forest text; status badges take `success` / `warning` / `destructive`, never `primary`.
80
+
81
+ ## 5 Layout
82
+
83
+ Base unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the marketing 96px rhythm
84
+ stays behind). Shell dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded`
85
+ (256px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (56px), side panel `side-panel-width`
86
+ (440px) / `side-panel-width-rich` (640px), modal cap `modal-width-max`, forms `form-max-width`, tables
87
+ full-width. Density is governed globally by `density-tier` and stepped per archetype, never by overrides.
88
+
89
+ ## 6 Depth
90
+
91
+ Flat, surface-contrast-first. Hierarchy comes from the sage/white ladder and warm hairlines, not shadow:
92
+
93
+ - **0 — canvas** `background` (sage `#e8ebe6`), no border.
94
+ - **1 — panel / card** white `card` lifting off the sage by contrast — the brand's primary elevation
95
+ cue; a soft `border` hairline where a card sits on white.
96
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
97
+ shadow. Rank is contrast and position, never a heavier shadow.
98
+
99
+ Focus is a 2px forest `ring` (`#163300`) outline, never a glow, on every interactive element; three z-levels (content, sticky chrome, overlay).
100
+
101
+ ## 7 Do's & Don'ts
102
+
103
+ - **Do** reserve lime `primary` for the single most important action, the active-nav indicator, and the
104
+ brand mark — nowhere else; keep black `primary-foreground` on the fill.
105
+ - **Do** anchor on the sage/white surface ladder — white cards lifting off the sage canvas IS the
106
+ brand's elevation; carry rank with contrast and hairline before any shadow.
107
+ - **Do** keep the two greens apart — lime is the action, positive `#2ead4b` is success status. Carry amounts in `tabular-nums`, IDs/codes in `font-mono`.
108
+ - **Don't** promote a second brand accent (orange/cyan are chart graces), wash a selected row in lime
109
+ (use the pale-green `accent`), or pair the lime CTA with a green surface — lime sits on neutral only.
110
+ - **Don't** render controls with sharp corners, signal elevation with heavy shadow, or reach for the
111
+ 900-weight hero stencil in operator chrome (headings hold semibold 600).
112
+
113
+ ## 8 Responsive
114
+
115
+ The operator sweep is 375 / 768 / 1024 / 1440:
116
+
117
+ | Breakpoint | What changes |
118
+ | --- | --- |
119
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; amount tables scroll horizontally; density holds |
120
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
121
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
122
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; the sage canvas widens |
123
+
124
+ ## 9 Agent Prompt Guide
125
+
126
+ - Anchor on the sage/white surface ladder — sage `background`, white `card` lifting off it by contrast;
127
+ reach for shadow only on a true overlay.
128
+ - Accent only the primary action in lime; black on lime, never white. Hold the two-green discipline —
129
+ lime `primary` is the action, positive `#2ead4b` is success status, never interchanged.
130
+ - Every amount/numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`. Every
131
+ workflow completes from the keyboard; the forest `ring` outline is always visible.
132
+ - Keep the rounded friendliness (12px `radius`, never sharp corners) and the bold ink input edge, but
133
+ not the 24px marketing pill.
134
+ - Leave the marketing skin behind: Wise Sans 900 hero display, the 64–126px scale, the 24px pill CTA,
135
+ the currency-converter widget, the polarity-flipped dark bands, and illustrative SVGs. What carries:
136
+ the sage/white temperature, the lime accent, the olive ink, the moderate radius, the Inter voice, and
137
+ the tabular number discipline.
@@ -0,0 +1,138 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: xAI
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # xAI — the engineered-cosmic monochrome operator design
9
+
10
+ xAI's web surface is a near-black cosmic canvas broken only by white outline pills, a proprietary
11
+ geometric sans (Universal Sans) at weight 400 with extreme negative tracking, and uppercase tracked
12
+ GeistMono eyebrows that read like code comments — confidently sparse, unmarketed. This entry is the
13
+ *operator* reading of that brand: an internal tool (model-ops console, agent-run queue, inference
14
+ dashboard, log stream) in xAI's language. What carries: the stark near-monochrome discipline, the
15
+ near-black `#0a0a0a` ink, the single sunset-orange accent held scarce, the pill shape on interactive
16
+ controls, the geometric-sans display voice (weight 400, negative tracking, never bold), the mono-caps
17
+ eyebrow, and hairline-only flat depth. What stays behind: the 96px hero display, the edge-to-edge black
18
+ page, and the sunset/dusk gradient illustration accents.
19
+
20
+ **Light surface, cosmic inlay.** Inverting the whole page to near-black would be
21
+ dark-mode-as-default, which the light floor refuses; instead the operator surface is a cool
22
+ near-white canvas, and xAI's signature near-black is carried as the **cosmic inlay** — the sidebar
23
+ rail and the terminal / log / metric panels.
24
+
25
+ ## 1 Visual Theme
26
+
27
+ Light by default; dark is opt-in. The content floats on a faint cool near-white `background`
28
+ (`#fbfbfc`); cards step up to pure white `card` (`#ffffff`), so a panel reads by a hair of brightness
29
+ plus its hairline, never by shadow. Emphatically flat — the brand uses no shadows; cool hairline
30
+ `border`, type weight, and the near-white-to-white step carry every elevation cue. A single accent,
31
+ sunset orange `primary` (`#ff7a17`) — xAI's one brand chroma — is held scarce: the primary action, the
32
+ focus `ring`, the active-nav indicator. Ink is xAI's stark near-black `foreground` (`#0a0a0a`), which
33
+ returns as the cosmic inlay — a near-black `sidebar` rail and dark terminal / metric panels. Density is
34
+ `standard`, engineered-tight, stepping denser per archetype.
35
+
36
+ ## 2 Color Roles
37
+
38
+ Light values. One accent — `primary` is the only chromatic hue that carries UI meaning; the cosmic
39
+ accent palette lives only in charts (§7), status hues speak only status.
40
+
41
+ | Role | Value | Allowed where |
42
+ | --- | --- | --- |
43
+ | `background` | cool near-white `#fbfbfc` | the page floor and content canvas — the dominant surface |
44
+ | `card` / `popover` | pure white `#ffffff` | cards and overlays — a slight bright lift off the near-white, read by hairline |
45
+ | `foreground` | stark near-black `#0a0a0a` | display and all primary ink — xAI's signature black |
46
+ | `muted` / `secondary` | cool light fill `#f2f3f5` | hover rows, quiet band tints, secondary-button fill |
47
+ | `muted-foreground` | cool gray `#7d8187` | labels, captions, secondary text — the brand's mute gray |
48
+ | `border` / `input` | cool hairline `#e6e7ea` | every separator, grid line, and field edge — one cool step, not an ink line |
49
+ | `primary` | sunset orange `#ff7a17` | the one primary action; the focus `ring`; the active-nav indicator |
50
+ | `primary-foreground` | near-black `#0a0a0a` | text on the sunset action — near-black reads on the bright orange (the brand's on-primary) |
51
+ | `accent` | cool selection lift `#eceef1` | selected / hovered rows and nav — a neutral cool step, never orange |
52
+ | `ring` | `primary` sunset | the focus outline — high-chroma, unmistakable even at 1px |
53
+ | `destructive` | clean red `#e5484d` | destructive actions and error state only |
54
+ | `success` / `warning` | green `#30a46c` / amber-gold `#d99126` | status signalling only, never chrome |
55
+
56
+ ## 3 Typography
57
+
58
+ `font-sans` is Universal Sans (the proprietary geometric brand face), with Inter the corpus's documented
59
+ open substitute — one sans carries body, UI, labels, and headings. `font-mono` is Geist Mono for IDs,
60
+ codes, timestamps, log lines, metric counters, and — the signature move — the uppercase tracked
61
+ **eyebrow** above every section head; numeric columns render `tabular-nums`. The defining trait is xAI's
62
+ restraint: the display sits at weight 400 with aggressive negative tracking (never bold — size and
63
+ gathering do the emphasis). The 96px hero stays behind; an operator surface tops out at a 24px title.
64
+
65
+ | Step | Role | Family | Size · line | Weight · tracking |
66
+ | --- | --- | --- | --- | --- |
67
+ | h1 | page title | sans | 24px / 1.2 | `font-weight-normal` (400) · `heading-tracking` |
68
+ | h2 | section head | sans | 19px / 1.3 | `font-weight-normal` (400) · -0.02em |
69
+ | h3 | card / group head | sans | 15px / 1.4 | `font-weight-strong` (500) · 0 |
70
+ | body | UI + prose | sans | 14px / 1.5 | `font-weight-normal` |
71
+ | small | labels, meta, dense table | sans | 13px / 1.4 | `font-weight-normal` |
72
+ | eyebrow | uppercase mono label | mono | 12px / 1.4 | 400, `+0.12em`, uppercase (GeistMono) |
73
+ | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
74
+
75
+ Keep the display at 400 with gathered negative tracking — it is the brand; never bold it, and keep the eyebrow mono, not sans.
76
+
77
+ ## 4 Component Stylings
78
+
79
+ Every recurring operator component composes from the primitives — no literal values.
80
+ - **Button** — primary: filled sunset `primary` on near-black `primary-foreground`, **pill radius** (the pill is xAI). Secondary: white `card`, 1px `border`, `foreground`, pill. Ghost: transparent, `accent` on hover.
81
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius` (8px, not pilled); focus draws the sunset `ring` at 1px, no glow.
82
+ - **Card** — white `card` surface on a 1px `border` — the bright step off the near-white carries the lift; `radius` 8px; shadow only when a true overlay must separate; inset by `density-inset`.
83
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection lifts to `accent`; column headers wear the mono-caps eyebrow.
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, `muted`/status fill, uppercase mono caption; status badges take `success` / `warning` / `destructive`, never `primary`.
86
+
87
+ ## 5 Layout
88
+
89
+ Base spacing unit 4px; the on-scale ramp is xAI's exact set — `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64`.
90
+ Shell dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` (240px) /
91
+ `sidebar-width-collapsed` (56px), topbar `topbar-height` (52px, the brand's lean nav), side panel
92
+ `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap `modal-width-max`, forms
93
+ `form-max-width`, tables full-width — engineered-tight, not editorial-loose. Density is governed
94
+ globally by `density-tier` and stepped per archetype by the surface catalog, never by absolute overrides.
95
+
96
+ ## 6 Depth
97
+
98
+ Flat and hairline-only — the brand uses no shadows. Depth comes from the surface step, cool hairlines, and the cosmic inlay:
99
+
100
+ - **0 — canvas** `background` (`#fbfbfc`), no border.
101
+ - **1 — panel / card** white `card` (`#ffffff`) on a 1px `border`; the bright step plus the hairline carries the lift. Selected / hover rows lift to `accent` (`#eceef1`).
102
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest lift, enough to float above the near-white. Rank is surface, border, and position.
103
+ - **inlay — cosmic near-black** `#0a0a0a` with `#dadbdf` text and `font-mono` — the sidebar rail and terminal / log / metric panels, xAI's white-on-near-black soul carried into a light UI.
104
+
105
+ Focus is a 1px sunset `ring` outline (never a glow), visible everywhere because the orange is high-chroma; three z-levels: content, sticky chrome, overlay.
106
+
107
+ ## 7 Do's & Don'ts
108
+
109
+ - **Do** stay near-monochrome — near-black ink on cool near-white, hairlines and type weight before any color; the restraint is the brand.
110
+ - **Do** reserve sunset orange `primary` for the single primary action, the focus `ring`, and the active-nav indicator — its scarcity is what reads as voltage.
111
+ - **Do** pill the interactive controls (buttons, chips, badges) — the pill is xAI's shape system; keep cards, inputs, and panels at the 8px `radius`.
112
+ - **Do** keep the display at weight 400 with negative tracking, wear GeistMono uppercase for eyebrows and metric counters, and render every code / log / terminal surface in `font-mono` with `tabular-nums`.
113
+ - **Don't** bold the display — weight 400 is the whole scale; component heads and labels earn 500 at most.
114
+ - **Don't** promote a second chromatic accent — the dusk / twilight / breeze cosmic hues are chart series only, and status stays `success` / `warning` / `destructive`; keep the amber-gold warning distinct from the sunset primary.
115
+ - **Don't** signal elevation with drop shadows, or turn the whole page near-black — the near-black is the sidebar and terminal inlay, not the operator canvas.
116
+
117
+ ## 8 Responsive
118
+
119
+ The operator sweep is 375 / 768 / 1024 / 1440.
120
+
121
+ | Breakpoint | What changes |
122
+ | --- | --- |
123
+ | 375 | sidebar → off-canvas drawer (stays near-black); two-pane list+detail stacks; side panel → full sheet; density holds |
124
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
125
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
126
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
127
+
128
+ ## 9 Agent Prompt Guide
129
+
130
+ Directives the emitting agent follows verbatim:
131
+
132
+ - Reach for the cool near-white canvas first, near-black ink on top — the operator page is light; the near-black is the sidebar rail and terminal / metric inlays, never the whole page.
133
+ - Spend sunset orange once per surface: the primary action, the focus `ring`, the active-nav indicator. If two things want the orange, one of them is not primary. Color otherwise belongs to data and status.
134
+ - The display sits at weight 400 with negative tracking — the geometric-sans voice; never bold it. Component heads and labels earn the restrained 500. Emphasise by size and gathering, not weight.
135
+ - The eyebrow above every section head is GeistMono, uppercase, positively tracked — the code-comment label. Every numeric column is `tabular-nums`; every ID / code / timestamp / metric counter is `font-mono`.
136
+ - Pill the buttons, chips, and badges — the pill is xAI's shape system; keep cards, inputs, and panels at the 8px radius. Dress terminal, log, and metric panels in the near-black cosmic inlay (`#0a0a0a`, `font-mono`).
137
+ - Depth is the surface step and cool hairlines, never shadow; the brand uses none. Reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work.
138
+ - Keyboard-first: the sunset `ring` focus outline is always visible. Leave behind the 96px hero display, the edge-to-edge black page, and the sunset / dusk gradient accents.
@@ -0,0 +1,158 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Zapier
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Zapier — the operator reading
9
+
10
+ The operator translation of Zapier's workflow-automation brand. Zapier's public surface is
11
+ confidently warm — a cream canvas, deep coffee ink, one saturated orange CTA, and a two-face type
12
+ system (Degular Display for hero moments, Inter for the rest). This entry keeps what survives at
13
+ operator scale: the cream temperature, the single orange accent, the coffee ink, the recessed
14
+ cream-card elevation, the 12px middle-radius signature, and Inter as the workhorse. The 56px Degular
15
+ hero, the dark coffee-ink polarity-flip bands, and the 64px rhythm stay behind — warm where the
16
+ category runs cool, but earning its density and reserving its one accent.
17
+
18
+ ## 1 Visual Theme
19
+
20
+ Warm by default; dark is opt-in. The canvas is Zapier's warm-cream `background` (`#fffefb`) — a
21
+ deliberate off-white, never the pure white the category defaults to (it reads light, so the
22
+ light-default floor holds — it is simply warm). Flat: hierarchy comes from warm hairline `border`, the
23
+ recessed cream-card surface ladder, and type weight, never heavy shadow. A single accent, Zapier orange
24
+ `primary` (`#ff4f00`), is reserved for the one action that matters; ink is deep coffee `foreground`
25
+ (`#201515`), never pure black. Corners hold the brand's signature 12px middle radius — neither
26
+ friendly-pill nor technical-square. Density is `standard`; the anchor is a bright cream canvas holding
27
+ faintly recessed cream cards.
28
+
29
+ ## 2 Color Roles
30
+
31
+ Light values. One accent: `primary` is the only chromatic hue that carries meaning; status hues
32
+ speak only status.
33
+
34
+ | Role | Value | Allowed where |
35
+ | --- | --- | --- |
36
+ | `background` / `popover` | warm cream `#fffefb` (canvas) | page and overlays — the brightest surface |
37
+ | `card` | recessed cream `#f8f4f0` (canvas-soft) | content cards / inset panels — a step below canvas, elevation by surface contrast |
38
+ | `foreground` | deep coffee `#201515` (ink) | all primary ink and headings; never pure black |
39
+ | `muted` / `secondary` | soft cream `#f1ece4` | hover rows, subtle fills, secondary button fill |
40
+ | `muted-foreground` | warm gray `#605d52` (body) | labels, captions, secondary text |
41
+ | `border` | warm hairline `#e9e2d8` | separators, grid lines, card edges |
42
+ | `input` | coffee ink `#201515` | form-field edges — the brand's bold ink-bordered field |
43
+ | `primary` | Zapier orange `#ff4f00` | the one primary action; active nav; the single conversion voltage |
44
+ | `accent` | pale orange `#ffe9e0` | selected/hovered rows and nav — a whisper of brand warmth |
45
+ | `accent-foreground` | burnt orange `#b83900` | ink on the accent tint |
46
+ | `ring` | `primary` orange | the focus outline — unmistakable, because keyboard-first |
47
+ | `destructive` | brick red `#c0362c` | destructive actions and error state only — distinct from the orange |
48
+ | `success` / `warning` | green `#3f8f5a` / gold `#c88a1e` | status signalling only, never chrome |
49
+
50
+ The warm-neutral ladder runs coffee-ink → body `#605d52` → body-mid `#939084` → mute `#c5c0b1`: every
51
+ neutral carries warmth, none is cool gray. The dark coffee polarity-flip (dark hero/feature bands, dark
52
+ footer) is a marketing device and stays behind (see §7).
53
+
54
+ ## 3 Typography
55
+
56
+ `font-sans` is **Inter** — the brand's actual workhorse (sub-display, body, button, label) and, at
57
+ operator scale, the whole ramp; its display steps track slightly negative, which is what carries. The
58
+ proprietary Degular Display carries only hero-scale loud moments (56px, weight 500) and stays behind.
59
+ `font-mono` is derived — the corpus ships none, but zap IDs, run IDs, webhook payloads, and log
60
+ timestamps need one. Numeric columns render `tabular-nums`; headlines stay sentence-case.
61
+
62
+ | Step | Role | Size · line | Weight · tracking |
63
+ | --- | --- | --- | --- |
64
+ | h1 | page title | 24px / 1.25 | `font-weight-strong` · `heading-tracking` |
65
+ | h2 | section head | 20px / 1.3 | `font-weight-strong` · `heading-tracking` |
66
+ | h3 | card / group head | 16px / 1.35 | `font-weight-strong` · -0.01em |
67
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` |
68
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
69
+ | caption | uppercase eyebrow | 13px / 1.3 | `font-weight-strong`, +0.06em, uppercase |
70
+
71
+ The eyebrow keeps **positive** tracking — the corpus's signature label style (Degular +1px at 14px),
72
+ carried on Inter uppercase. Emphasize by weight, never size, never past 600 (the corpus 700 is
73
+ display-micro and stays behind).
74
+
75
+ ## 4 Component Stylings
76
+
77
+ Every recurring operator component composes from the primitives — no literal values.
78
+
79
+ - **Button** — filled orange on `primary-foreground` (warm white), `radius` (12px), no pill. Secondary:
80
+ `secondary` cream fill, 1px `border`. Tertiary/outline: transparent, bold ink border. Ghost: `accent`
81
+ on hover.
82
+ - **Input** — `background` fill, 1px `input` (coffee-ink) border (`border-weight`), `radius` at the 6px
83
+ scale step; focus draws the orange `ring` at 2px, no glow.
84
+ - **Card** — recessed `card` cream on the brighter canvas (surface-contrast elevation); 1px `border` for
85
+ a grid edge; shadow only when a card truly floats; inset by `density-inset`.
86
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
87
+ numeric columns; row selection tints `accent`.
88
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
89
+ for content-heavy), beside the work, not over it.
90
+ - **Badge** — pill radius, `muted`/status fill, uppercase caption; status badges take `success` /
91
+ `warning` / `destructive`, never `primary`.
92
+
93
+ ## 5 Layout
94
+
95
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the corpus
96
+ tokens; the 64px marketing band padding stays behind). Shell dimensions map one-to-one to the layout
97
+ primitives: sidebar `sidebar-width-expanded` (256px) / `sidebar-width-collapsed` (56px), topbar
98
+ `topbar-height` (56px), side panel `side-panel-width` (440px) / `side-panel-width-rich` (640px), 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 — never by absolute overrides.
101
+
102
+ ## 6 Depth
103
+
104
+ Flat, surface-contrast-first. Hierarchy comes from the recessed cream ladder and warm hairlines:
105
+
106
+ - **0 — canvas** `background` (`#fffefb`), no border.
107
+ - **1 — panel / card** recessed `card` cream (`#f8f4f0`) — surface contrast carries the elevation; a 1px
108
+ `border` where a grid edge is wanted. Emphasized outlines take the bold ink border.
109
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
110
+ shadow, over a scrim for modals. Rank is surface, border, and position, never a heavier shadow.
111
+
112
+ Focus is a 2px orange `ring` outline (never a glow) on every interactive element. Three z-levels:
113
+ content, sticky chrome, overlay.
114
+
115
+ ## 7 Do's & Don'ts
116
+
117
+ - **Do** anchor on the warm cream canvas (`#fffefb`) — pure white loses the brand; keep coffee ink
118
+ `#201515`, never pure black. The temperature is the voice.
119
+ - **Do** reserve orange `primary` for the single most important action — orange + cream + coffee is the
120
+ whole conversion story; everything else is neutral or status.
121
+ - **Do** keep corners at the 12px middle radius on buttons and cards; inputs step to 6px, badges pill.
122
+ - **Do** apply `tabular-nums` to numerics with `font-mono` for IDs, run codes, and timestamps.
123
+ - **Don't** render the CTA as a pill or a square — the 12px rounded rectangle is the signature.
124
+ - **Don't** promote a second chromatic accent, and don't let orange become `destructive` (use the brick
125
+ red); status uses `success` / `warning` / `destructive`.
126
+ - **Don't** pull the Degular hero, the dark coffee polarity-flip bands, or the 64px rhythm into an
127
+ operator surface.
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 | forms cap at `form-max-width`; tables and dashboards use the full width |
139
+
140
+ ## 9 Agent Prompt Guide
141
+
142
+ Directives the emitting agent follows verbatim. This brand is warm and confident; keep it restrained.
143
+
144
+ **Carries over:** the warm cream temperature (canvas `#fffefb`, never pure white) · deep coffee ink
145
+ `#201515` (never pure black) · orange `primary` (`#ff4f00`) as the single reserved accent · the 12px
146
+ middle-radius character (never pill, never square) · the recessed cream-card surface-contrast elevation
147
+ · the bold ink-bordered field · Inter with the positive-tracked uppercase eyebrow · `tabular-nums`.
148
+
149
+ **Stays behind:** the 56px Degular Display hero · the dark coffee-ink polarity-flip (dark hero/feature/
150
+ pricing bands, dark footer) · the illustrative zap/workflow SVGs · the 64px section-padding rhythm.
151
+
152
+ - Lead every list surface with its table; accent only the primary action in orange — if two things want
153
+ it, one is not primary.
154
+ - Reach for the warm cream canvas first; float recessed cream cards on it, separated by surface contrast
155
+ and warm hairlines before shadow. Detail and edit go in the side panel; a modal is a confirmation.
156
+ - Every numeric column is `tabular-nums`; every ID / run code / timestamp is `font-mono`; every workflow
157
+ completes from the keyboard with the orange `ring` outline always visible.
158
+ - One accent. Type stays on Inter — Degular Display and the marketing bands do not follow into a console.