@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,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Vercel
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Vercel — stark ink-on-near-white developer-platform operator design
9
+
10
+ The operator reading of Vercel's design language. Vercel's own surface is a marketing deck for
11
+ engineers — a near-white canvas broken at hero scale by a multi-stop mesh gradient (cyan / blue /
12
+ magenta / amber) that is the entire decoration system. This entry keeps what survives at operator
13
+ scale: the stark ink-on-near-white palette, the deliberate gray ramp, the two-tone canvas, the Geist
14
+ type voice (via Inter), negative heading tracking, the 6px radius, and the calm stacked-shadow-plus-
15
+ hairline elevation. The mesh gradient, the pill CTA, the hero display, and the dark bands stay behind.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Light by default; dark is opt-in. The system is achromatic to its core — ink `foreground` `#171717`
20
+ on a two-tone near-white field: the page body is `#fafafa` (98% white) and cards sit on pure white
21
+ `#ffffff`, separated by a `#ebebeb` hairline, not by brightness. Flat: hierarchy is carried by the
22
+ gray ramp, hairline `border`, and type weight — never heavy shadow. The single accent is the ink
23
+ itself — Vercel's primary action is a **black button** (`primary` `#171717` on white); one chromatic
24
+ hue, link/focus blue `#0070f3`, is reserved for interaction. Density is `standard`; the anchor surface
25
+ is a white canvas beside a faintly-tinted `sidebar`.
26
+
27
+ ## 2 Color Roles
28
+
29
+ Light values. The identity is monochrome — ink + a deliberate gray ramp; the one chromatic accent is
30
+ the interaction blue, and status speaks status.
31
+
32
+ | Role | Value | Allowed where |
33
+ | --- | --- | --- |
34
+ | `background` | near-white `#fafafa` | the page body — 98% white, the dominant field |
35
+ | `card` / `popover` | pure white `#ffffff` | cards, panels, and overlays — set off the body by a hairline, not brightness |
36
+ | `foreground` | ink `#171717` | all primary ink and headlines |
37
+ | `muted` / `secondary` | canvas-soft-2 `#f5f5f5` | hover rows, inset regions, secondary button fills |
38
+ | `muted-foreground` | gray `#666666` | labels, captions, secondary text |
39
+ | `border` / `input` | hairline `#ebebeb` | every separator, grid line, and field edge |
40
+ | `primary` | ink `#171717` | the one primary action — the black button; active nav indicator |
41
+ | `accent` | canvas-soft-2 `#f5f5f5` | selected / hovered rows and nav — a neutral gray wash, never coloured |
42
+ | `ring` | interaction blue `#0070f3` | the focus outline — the one chromatic hue, unmistakable and keyboard-first |
43
+ | `destructive` | red `#ee0000` | destructive actions and error state only |
44
+ | `success` / `warning` | green `#16a34a` / amber `#f5a623` | status signalling only, never chrome |
45
+
46
+ The mesh gradient (cyan `#50e3c2`, violet `#7928ca`, pink `#ff0080`, amber) is a hero-only marketing
47
+ object with no operator role (see §7); its hues survive only as chart series.
48
+
49
+ ## 3 Typography
50
+
51
+ One sans, one mono, single continuous voice. `font-sans` is **Geist** — the brand's custom geometric
52
+ face — with **Inter** the corpus-named open substitute (`Geist, Inter, system-ui, sans-serif`); it
53
+ carries display, body, button, and label. `font-mono` is Geist Mono (JetBrains Mono the substitute)
54
+ for IDs, codes, timestamps, terminal mockups, and technical eyebrows. Numeric columns render `tabular-nums`.
55
+
56
+ | Step | Role | Size · line | Weight · tracking |
57
+ | --- | --- | --- | --- |
58
+ | h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
59
+ | h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
60
+ | h3 | card / group head | 16px / 1.5 | `font-weight-strong` · -0.01em |
61
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` · -0.28px |
62
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
63
+ | eyebrow | technical label, section eyebrow | 12px / 1.35 | `font-weight-normal`, mono |
64
+ | code | IDs, logs, command snippets | 13px / 1.5 | `font-weight-normal`, mono |
65
+
66
+ Weight 600 is the display ceiling — the sans never reaches 700, and the brand reads calm for it. Bump
67
+ weight to emphasise, never size. Negative tracking is the voice (hero -0.05em stays behind; headings hold -0.03em).
68
+
69
+ ## 4 Component Stylings
70
+
71
+ Every recurring operator component composes from the primitives — no literal values.
72
+
73
+ - **Button** — `primary`: filled ink on `primary-foreground`, `radius` 6px, no pill — the black button
74
+ is the signature, kept square. Secondary: white `card` fill, 1px `border`. Ghost: `accent` on hover.
75
+ - **Input** — `background` fill, 1px `border`, `radius`; focus draws the blue `ring` at 2px, no glow (field 40px).
76
+ - **Card** — pure white `card` on a 1px `border`, `radius`; a faint stacked shadow plus inset-hairline ring only when lifted.
77
+ - **Table row** — height `table-row-height`; `border` grid; `muted` on hover; selection tints `accent`; `tabular-nums` on numerics.
78
+ - **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich`), beside the work, not over it.
79
+ - **Badge** — hairline `border`, `muted`/status fill; status uses `success` / `warning` / `destructive`, never `primary`.
80
+
81
+ ## 5 Layout
82
+
83
+ Base spacing unit 4px (corpus `--geist-space`); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 ·
84
+ 48 · 64` — the marketing 96 / 128 / 192px section rhythm stays behind. Shell dimensions map one-to-one
85
+ to the layout primitives: sidebar `sidebar-width-expanded` (256px) / `sidebar-width-collapsed` (56px),
86
+ topbar `topbar-height` (64px, the corpus nav height), side panel `side-panel-width` (440px) /
87
+ `side-panel-width-rich` (640px), modal `modal-width-max`, forms `form-max-width`, tables full-width.
88
+ The page reads engineered — large gaps between regions, tight interior stacks. Density is governed by
89
+ `density-tier`, stepped per archetype by the surface catalog, never by absolute overrides.
90
+
91
+ ## 6 Depth
92
+
93
+ Flat, calm, achromatic. Rank comes from the gray ladder and hairlines, never a heavy drop:
94
+
95
+ - **0 — canvas** `background` (`#fafafa`), no border.
96
+ - **1 — card / panel** pure white `card` set off the body by a 1px `border` + inset hairline ring.
97
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft
98
+ stacked `md` shadow, kept subtle (corpus elevation rides 4–12% black, never a single 8px blur).
99
+
100
+ Focus is a 2px blue `ring` outline (never a glow) on every interactive element — the one place a
101
+ chromatic hue appears, because the achromatic ink would vanish on the black button. Three z-levels: content, sticky chrome, overlay.
102
+
103
+ ## 7 Do's & Don'ts
104
+
105
+ - **Do** anchor on the two-tone near-white field — `#fafafa` page, `#ffffff` cards, set off by a hairline.
106
+ - **Do** make the primary action a square black button (`primary` ink, `radius` 6px); it is the brand.
107
+ - **Do** carry hierarchy with the gray ramp, hairlines, and type weight — the system is flat.
108
+ - **Do** set every ID, code, timestamp, and technical eyebrow in `font-mono`; mono is the platform's voice.
109
+ - **Don't** introduce a second chromatic accent — the interaction blue is focus and links only.
110
+ - **Don't** render the CTA as a 100px pill or mix pill with 6px radii — pick the 6px in-app scale and hold it.
111
+ - **Don't** bring the mesh gradient in at all — it is a hero-scale object, never an icon or a swatch.
112
+ - **Don't** promote the geometric sans past weight 600, set body in mono, or signal elevation with a heavy drop.
113
+
114
+ ## 8 Responsive
115
+
116
+ The operator sweep is 375 / 768 / 1024 / 1440.
117
+
118
+ | Breakpoint | What changes |
119
+ | --- | --- |
120
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
121
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; nav → hamburger |
122
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
123
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
124
+
125
+ Code and terminal panels keep mono legibility at every breakpoint by scrolling horizontally, not wrapping.
126
+
127
+ ## 9 Agent Prompt Guide
128
+
129
+ Directives the emitting agent follows verbatim:
130
+
131
+ - Anchor on the two-tone near-white field — `#fafafa` page, white cards set off by a hairline; never
132
+ pure-white everywhere, never a coloured page.
133
+ - Make the one primary action a square black button; accent nothing else. Reserve the interaction blue
134
+ `#0070f3` for the focus `ring` and inline links only — never a fill, never a second accent.
135
+ - Set page titles in the geometric sans with negative tracking (never past weight 600); set every ID,
136
+ code, timestamp, and technical eyebrow in `font-mono`; every numeric column is `tabular-nums`.
137
+ - Carry depth with the gray ladder, hairlines, and the inset-hairline card ring — past a hairline only
138
+ for a real overlay. Every workflow completes from the keyboard; the blue `ring` is always visible.
139
+ - Leave marketing behind entirely: the mesh gradient, the 100px pill CTA, the 48px hero display, the
140
+ dark bands, and the 96 / 128 / 192px section rhythm.
@@ -0,0 +1,130 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: VoltAgent
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # VoltAgent — near-black electric-green developer-console operator design
9
+
10
+ The *operator* reading of VoltAgent — a near-black IDE dressed as a documentation site: an
11
+ unrelenting `#101010` canvas with no light counterpart, one electric-green accent, hairline-bordered
12
+ cards, code-editor mockups. **Categorically dark**, like the source: dark is the signature, a valued
13
+ light daytime mode ships alongside. What carries — the near-black canvas, the single accent held
14
+ scarce, hairline-only flat depth, Inter + SF Mono, the 6px radius, near-black text on green (never
15
+ white); what stays behind — the 60px hero, the code-editor mockups, the 48px band rhythm, the green
16
+ divider band. One green does everything, so `success` is the brand's own deeper emerald `#10b981`
17
+ (its inline-link green), never the accent.
18
+
19
+ ## 1 Visual Theme
20
+
21
+ Dark by default; light is the opt-in daytime mode. The UI floats on the near-black canvas `background` (`#101010`) —
22
+ no gradient, no glow, no illustration, just the surface and its hairlines. Emphatically flat: hierarchy comes from
23
+ 1px `border` hairlines, type weight, and the off-white/near-black contrast, never a drop shadow (only true overlays
24
+ lift). A single accent, electric-green `primary` (`#00d992`), is reserved for the one primary action, live-status
25
+ indicators, the active-nav mark, and the focus `ring`; ink is a strain-reducing off-white `foreground` (`#f2f2f2`).
26
+ Density is `standard`, dense-capable from the engineered-documentation heritage, stepping denser per archetype. The
27
+ anchor surface is the near-black canvas beside a hair-darker `sidebar`, separated by a hairline, not a band.
28
+
29
+ ## 2 Color Roles
30
+
31
+ The signature is dark; both themes are valued. One chromatic accent — `primary` is the only hue that
32
+ carries the primary-action meaning; status hues speak only status; the deeper emerald `success` is
33
+ deliberately not the accent green.
34
+
35
+ | Role | Light (daytime) | Dark (signature) | Allowed where |
36
+ | --- | --- | --- | --- |
37
+ | `background` / `card` | `#ffffff` / `#ffffff` | `#101010` / `#1a1a1a` | page canvas; panels a hairline above it |
38
+ | `foreground` | `#101010` | `#f2f2f2` | all primary ink (off-white on dark to ease strain) |
39
+ | `muted` / `secondary` | `#f4f4f5` | `#242424` | hover rows, quiet fills, secondary-button fill |
40
+ | `muted-foreground` | `#6b7280` | `#8b949e` | labels, captions, secondary text |
41
+ | `border` / `input` | `#e4e4e7` | `#3d3a39` | every separator, grid line, and field edge |
42
+ | `primary` | `#00d992` | `#00d992` | the one primary action; live indicators; active nav; `ring` |
43
+ | `primary-foreground` | `#101010` | `#101010` | text on the green — near-black, never white (brand mandate) |
44
+ | `accent` | `#ececed` | `#2e2e2e` | selected / hovered rows and nav — a neutral surface lift, never green |
45
+ | `ring` | `#00d992` | `#00d992` | the focus outline — unmistakable, because keyboard-first |
46
+ | `destructive` | `#dc2626` | `#f04438` | destructive actions and error state only |
47
+ | `success` / `warning` | `#10b981` / `#d97706` | `#10b981` / `#f59e0b` | status only, never chrome; `success` is the deeper emerald, not the accent |
48
+
49
+ ## 3 Typography
50
+
51
+ Two faces. `font-sans` is Inter (weights 400 / 500 / 600 / 700) — display, body, UI, button, and every uppercase
52
+ eyebrow ride it; a second family never does the label work. `font-mono` is SF Mono (`SFMono-Regular` with Menlo /
53
+ Monaco / Consolas fallbacks; JetBrains Mono or Geist Mono the free substitutes) for IDs, codes, timestamps, log
54
+ lines, and metric counters; numeric columns render `tabular-nums`. The signature label is the **uppercase Inter
55
+ eyebrow with wide positive tracking** (`+0.18em`, the source's `2.52px` at `14px`) — the brand's one flourish.
56
+
57
+ | Step | Role | Size · line | Weight · tracking |
58
+ | --- | --- | --- | --- |
59
+ | h1 | page title | 24px / 1.35 | `font-weight-strong` (600) · `heading-tracking` |
60
+ | h2 | section head | 20px / 1.4 | `font-weight-strong` (600) · `heading-tracking` |
61
+ | h3 | card / group head | 16px / 1.5 | `font-weight-strong` (600) · 0 |
62
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` (400) |
63
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
64
+ | caption | uppercase eyebrow | 12px / 1.3 | `font-weight-strong`, `+0.18em`, uppercase |
65
+ | code | IDs, logs, amounts | mono 13px / 1.4 | `font-weight-normal` |
66
+
67
+ The calm 60px/400 hero display stays behind — operator headings top out at a 24px title, emphasized by
68
+ weight, never by a heavier display.
69
+
70
+ ## 4 Component Stylings
71
+
72
+ Every recurring operator component composes from the primitives — no literal values.
73
+
74
+ - **Button** — primary: filled green `primary` on near-black `primary-foreground`, `radius` (6px), never a pill. Secondary: `card` fill, 1px `border`, `foreground`. Ghost: transparent, green `primary` label (the one place a green *label* is allowed), `accent` on hover.
75
+ - **Input** — `muted` fill on dark, `background` fill on light; 1px `border` (`border-weight`), `radius`; focus draws the green `ring` at full 2px, no glow.
76
+ - **Card** — `card` surface on a 1px `border`; the hairline carries the edge, not a shadow; inset by `density-inset`. Featured cards take a 3px `border` or a 2px `primary` green edge, never a fill.
77
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection tints `accent` (neutral, never green).
78
+ - **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.
79
+ - **Badge** — pill radius (badges only), `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, live pills take `primary`.
80
+
81
+ ## 5 Layout
82
+
83
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the marketing
84
+ 48px band rhythm stays behind). Shell dimensions map one-to-one to the layout primitives: sidebar
85
+ `sidebar-width-expanded` (248px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (52px),
86
+ side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal `modal-width-max`, forms
87
+ `form-max-width`, tables full-width — the source has only a marketing top-nav, so these are the operator
88
+ standard. Density is governed globally by `density-tier` and stepped per archetype by the surface catalog.
89
+
90
+ ## 6 Depth
91
+
92
+ Flat and hairline-first. Depth comes from the surface ladder and hairlines, not shadow:
93
+
94
+ - **0 — canvas** `background` (`#101010` dark / `#ffffff` light), no border.
95
+ - **1 — panel / card** `card` a hairline above the canvas on a 1px `border` — the source seats marketing cards directly on the canvas with only a hairline; the operator reading lifts panels one surface step so dense tables read, keeping the hairline as the primary edge.
96
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft lift; rank is border, surface, and position, never a heavier shadow.
97
+
98
+ A 2px `primary` green border marks a featured or active card; the dashed divider stays behind. Focus is a 2px green `ring` outline (never a glow) on every interactive element; three z-levels: content, sticky chrome, overlay.
99
+
100
+ ## 7 Do's & Don'ts
101
+
102
+ - **Do** anchor the signature on the near-black canvas (`#101010`); ship the light daytime mode as the opt-in, never the default read.
103
+ - **Do** reserve electric-green `primary` for the single primary action, live indicators, the active-nav mark, and the focus `ring` — its scarcity is what reads as voltage.
104
+ - **Do** render code, log, and terminal surfaces in `font-mono` (SF Mono) with `tabular-nums`; carry the uppercase Inter eyebrow at `+0.18em` for section labels.
105
+ - **Don't** fill a decorative surface with the accent green — it is action, live-status, and the focus ring only; a green *label* is allowed only on the ghost button.
106
+ - **Don't** let a status green equal the accent green — `success` is the deeper emerald `#10b981`, never a CTA.
107
+ - **Don't** pill the primary CTA or use a radius outside `radius-scale` (buttons/inputs 6px, cards 8px; pill is badges and live tags only), and don't signal elevation with drop shadows — hairlines and the one-step surface lift carry depth.
108
+
109
+ ## 8 Responsive
110
+
111
+ The operator sweep is 375 / 768 / 1024 / 1440.
112
+
113
+ | Breakpoint | What changes |
114
+ | --- | --- |
115
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
116
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
117
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
118
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
119
+
120
+ Code and log surfaces keep mono legibility by scrolling horizontally, not wrapping.
121
+
122
+ ## 9 Agent Prompt Guide
123
+
124
+ Directives the emitting agent follows verbatim:
125
+
126
+ - Wear the near-black canvas as the signature; the light daytime mode is opt-in only — never make light the default for this brand. Panels sit a hairline above the canvas.
127
+ - Spend the electric green once per surface: the primary action, live indicators, the active-nav mark, the focus `ring`. If two things want the green, one is not primary. Never fill a decorative surface with it; text on the green is near-black (`#101010`), never white.
128
+ - `success` is the deeper emerald `#10b981`, never the accent green — keep status legible against a brand whose accent is already green.
129
+ - Render every code, log, terminal, and metric surface in `font-mono` (SF Mono); every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; section labels wear the uppercase Inter eyebrow at `+0.18em`.
130
+ - Depth is hairlines and one surface step, never shadow; reach for the overlay lift only for a true modal or popover. Detail and edit go in the side panel, never a modal. The green `ring` focus outline is always visible. Leave behind the 60px hero, the code-editor mockups, the 48px band rhythm, and the green divider.
@@ -0,0 +1,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Warp
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Warp — the warm-monochrome terminal operator design
9
+
10
+ Warp is an agentic development environment — a terminal wrapping an AI agent — and its marketing site
11
+ mirrors the product: a single warm near-charcoal band running the whole page (warmer than pure black),
12
+ copy almost entirely in Inter, DM Mono for the terminal mockups, no gradient, no chromatic accent
13
+ anywhere. This entry is the *operator* reading of that brand — an internal tool (agent-run console,
14
+ session queue, deploy stream) in Warp's language. What carries: the warm brown-beige temperature on
15
+ every neutral, the extremely tight near-rectangular radius, the Inter + DM Mono voice, the quiet display
16
+ (weight 400, negative tracking, never heavy), hairline-only flat depth, and — the defining trait — a
17
+ **monochrome** system with no chromatic accent. What stays behind: the 64px hero display, the 96px
18
+ section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
19
+
20
+ **Warm, light, and monochrome.** Warp's identity is the warmth, not the darkness — `oklch` hue 84.6,
21
+ a brown-beige tint on every neutral. This theme keeps that warmth on a **light** paper floor so the
22
+ light-default floor holds cleanly; the brand's own warm-charcoal `#2b2622` survives as the code /
23
+ log / terminal inlay (Warp is a terminal — that surface is real chrome, not a mockup). With no
24
+ chromatic accent, the one operator accent is **ink**: the primary action is a filled warm-charcoal
25
+ button.
26
+
27
+ ## 1 Visual Theme
28
+
29
+ Light by default; dark is opt-in. The whole UI floats on a warm paper `background` (`#f2efe8`); cards
30
+ lift to Warp's own off-white `card` (`#f7f5f0`), so a panel reads by a hair of brightness plus its warm
31
+ hairline, never a shadow. Emphatically flat: hierarchy is carried by warm hairline `border`, type
32
+ weight, and the paper-to-off-white surface step. There is **no chromatic accent** — the single accent is
33
+ monochrome ink, warm near-charcoal `primary` (`#2b2622`, Warp's own canvas color), reserved for the one
34
+ primary action, the active-nav indicator, and the focus `ring`. Density is `standard`; the temperature
35
+ and near-rectangular radius keep the terminal-dialect tightness.
36
+
37
+ ## 2 Color Roles
38
+
39
+ Light values. No chromatic accent: `primary` is monochrome ink; the chart series live only in charts
40
+ (see §7); status hues speak only status.
41
+
42
+ | Role | Value | Allowed where |
43
+ | --- | --- | --- |
44
+ | `background` | warm paper `#f2efe8` | the page floor and content canvas — the dominant surface |
45
+ | `card` / `popover` | Warp off-white `#f7f5f0` | cards and overlays — a bright warm lift off the paper, differentiated by hairline |
46
+ | `foreground` | warm charcoal `#2b2622` | display and all primary ink — Warp's own canvas color, inverted to ink |
47
+ | `muted` / `secondary` | soft warm fill `#eae6dd` | hover rows, quiet band tints, secondary-button fill |
48
+ | `muted-foreground` | warm gray `#6b655c` | labels, captions, secondary text |
49
+ | `border` / `input` | warm hairline `#e2ddd2` | every separator, grid line, and field edge — one warm step, not an ink line |
50
+ | `primary` | warm charcoal `#2b2622` | the one primary action; the focus `ring`; the active-nav indicator — ink, not a hue |
51
+ | `primary-foreground` | off-white `#f7f5f0` | text on the charcoal action — the brand's own light tone |
52
+ | `accent` | warm selection lift `#e4dfd4` | selected / hovered rows and nav — a neutral warm step, never ink-filled |
53
+ | `ring` | `primary` charcoal | the focus outline — unmistakable, because keyboard-first |
54
+ | `destructive` | warm brick-red `#c0392b` | destructive actions and error state only |
55
+ | `success` / `warning` | warm green `#5b8a45` / warm amber `#b8791f` | status signalling only, never chrome |
56
+
57
+ The warm-charcoal `#2b2622` is not only ink — it is also the code / log / terminal inlay surface (§6).
58
+
59
+ ## 3 Typography
60
+
61
+ `font-sans` is Inter — one sans carries body, UI, labels, and headings, weights 400 / 500 the working
62
+ pair. `font-mono` is DM Mono for IDs, codes, timestamps, log lines, and every terminal surface; numeric
63
+ columns render `tabular-nums`. The defining typographic trait is the **quiet display**: page titles wear
64
+ weight 400 with negative tracking — never a billboard — while smaller component heads step up to the
65
+ strong 500. The 64px hero display and rare Instrument Serif italic stay behind; a surface tops out at a
66
+ 24px page title.
67
+
68
+ | Step | Role | Size · line | Weight · tracking |
69
+ | --- | --- | --- | --- |
70
+ | h1 | page title | 24px / 1.25 | `font-weight-normal` (400) · `heading-tracking` |
71
+ | h2 | section head | 20px / 1.3 | `font-weight-normal` (400) · `heading-tracking` |
72
+ | h3 | card / group head | 15px / 1.4 | `font-weight-strong` (500) · 0 |
73
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` |
74
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
75
+ | caption | uppercase eyebrow | 12px / 1.4 | `font-weight-strong`, `+0.04em`, uppercase |
76
+ | code | IDs, logs, amounts | mono 13px / 1.4 | `font-weight-normal` |
77
+
78
+ Keep page titles at 400 with negative tracking — the quiet voice; never a heading at 700+, and emphasise by size, never heavy weight.
79
+
80
+ ## 4 Component Stylings
81
+
82
+ Every recurring operator component composes from the primitives — no literal values.
83
+ - **Button** — primary: filled charcoal `primary` on off-white `primary-foreground`, `radius` (near-rectangular), never a pill. Secondary: off-white `card` fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
84
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the charcoal `ring` at full 2px, no glow.
85
+ - **Card** — off-white `card` surface on a 1px `border` — the bright step off the paper carries the lift; shadow only when a true overlay must separate; inset by `density-inset`.
86
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection warms to `accent`.
87
+ - **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.
88
+ - **Badge** — pill radius (badges only), `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, never `primary`.
89
+
90
+ ## 5 Layout
91
+
92
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` — the marketing
93
+ 96px section rhythm stays behind. Shell dimensions map one-to-one to the layout primitives: sidebar
94
+ `sidebar-width-expanded` (240px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (52px, the
95
+ brand's nav height), side panel `side-panel-width` (420px) / `side-panel-width-rich` (640px), modal cap
96
+ `modal-width-max`, forms `form-max-width`, tables full-width — a touch tight, the terminal dialect
97
+ through the shell. Density is governed globally by `density-tier` and stepped per archetype by the
98
+ surface catalog — never by absolute overrides.
99
+
100
+ ## 6 Depth
101
+
102
+ Flat and hairline-only. Depth comes from the paper-to-off-white surface step and warm hairlines, not shadow:
103
+ - **0 — canvas** `background` (`#f2efe8`), no border.
104
+ - **1 — panel / card** off-white `card` (`#f7f5f0`) on a 1px `border`; the bright step off the paper plus the hairline carries the lift. Selected / hover rows warm to `accent` (`#e4dfd4`).
105
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest soft lift, enough to float an overlay above the paper. Rank is surface, border, and position — never a heavier shadow.
106
+ - **inlay — code / log / terminal** warm charcoal `#2b2622` with off-white text and `font-mono` — Warp's own terminal chrome carried into a light UI.
107
+
108
+ Focus is a 2px charcoal `ring` outline (never a glow), visible on every interactive element; three z-levels: content, sticky chrome, overlay.
109
+
110
+ ## 7 Do's & Don'ts
111
+
112
+ - **Do** anchor every surface on the warm paper canvas — pure white as the page floor reads as any-other-tool; the brown-beige tint is Warp.
113
+ - **Do** keep the accent monochrome — the primary action, the focus `ring`, and the active-nav indicator are warm-charcoal ink. There is no chromatic accent, by design.
114
+ - **Do** keep page titles at weight 400 with negative tracking, and render every code, log, and terminal surface in `font-mono` (DM Mono) on the warm-charcoal inlay, with `tabular-nums` on numeric columns.
115
+ - **Don't** introduce a chromatic brand accent — the off-white-and-charcoal monochrome IS Warp's voice; a colored CTA breaks the brand.
116
+ - **Don't** render a heading at 700+ or reach for a generous pill radius — the display is quiet at 400 and the button radius is near-rectangular (3–4px); pill is badges only.
117
+ - **Don't** drop a soft drop-shadow on cards or replace the warm paper with a cool gray or pure white — hairlines and the surface step carry depth, and the warmth is the identity.
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
+ Code and log inlays keep mono legibility at every breakpoint by scrolling, not wrapping.
131
+
132
+ ## 9 Agent Prompt Guide
133
+
134
+ Directives the emitting agent follows verbatim:
135
+ - Reach for the warm paper canvas first — never pure white or a cool gray for the page floor; the brown-beige tint is Warp. Cards are the off-white bright step above it.
136
+ - The accent is monochrome ink: spend warm-charcoal once per surface on the primary action, the focus `ring`, and the active-nav indicator. There is no chromatic accent — do not introduce one. Color otherwise belongs to data and status.
137
+ - Page titles wear weight 400 with negative tracking — the quiet voice; component heads and labels earn the strong 500. Never render a heading at 700+.
138
+ - Render code, log, and terminal panels in `font-mono` (DM Mono) on the warm-charcoal `#2b2622` inlay — show real terminal chrome, not a light mockup of it. Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
139
+ - Keep the geometry near-rectangular — the button/input radius is 3–4px; pill is badges only. Depth is the paper-to-off-white step and warm hairlines, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work, never a modal.
140
+ - Keyboard-first: the charcoal `ring` focus outline is always visible. Leave behind the 64px hero display, the 96px section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
@@ -0,0 +1,140 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Webflow
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Webflow — the visual-builder operator reading
9
+
10
+ A deliberate operator reading of the Webflow brand: engineered, near-monochrome, hairline-first. The
11
+ marketing site breathes 80px hero display type and full-saturation category cards; an operator
12
+ surface keeps the near-black primary, the pure-gray neutrals, and the single crisp blue, and leaves
13
+ the display type and chromatic fills behind.
14
+
15
+ ## 1 Visual Theme
16
+
17
+ Light by default; dark is opt-in. Flat and engineered: a generous white canvas (`background`
18
+ `#ffffff`) carries near-black ink (`foreground` `#080808` — deeper than pure black, so it reads as
19
+ branded, not default). Hierarchy comes from hairline `border` (`#d8d8d8`), type weight, and contrast —
20
+ never heavy shadow; the brand's layered drop-shadow is a marketing flourish operator surfaces reserve
21
+ for true overlays. The primary action is a near-black fill, not a color; a single chromatic accent — a
22
+ crisp blue `#146ef5` — is reserved for interactive state (focus, selection, active nav). The neutral
23
+ ramp is pure achromatic gray, no temperature. Density is `standard`; the anchor surface is white
24
+ content beside a barely-tinted `sidebar`.
25
+
26
+ ## 2 Color Roles
27
+
28
+ Light values first. One chromatic accent — the blue carries interactive meaning; near-black is the
29
+ action ink; status hues speak only status. The five brand hues live only in charts (§9).
30
+
31
+ | Role | Value | Allowed where |
32
+ | --- | --- | --- |
33
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
34
+ | `foreground` | near-black `#080808` | all primary ink, headings, wordmark |
35
+ | `muted` / `secondary` | light gray `#f4f4f4` | hover rows, subtle fills, secondary buttons |
36
+ | `muted-foreground` | mid gray `#5a5a5a` | labels, captions, secondary text |
37
+ | `border` / `input` | hairline `#d8d8d8` | every separator, grid line, and field edge |
38
+ | `primary` | near-black `#080808` | the one primary action; every primary CTA |
39
+ | `primary-foreground` | white `#ffffff` | ink on the near-black action |
40
+ | `accent` | faint blue tint `#eaf1fe` | selected/hovered rows and nav, on-accent surfaces only |
41
+ | `accent-foreground` / `ring` | blue `#146ef5` | active nav ink, link emphasis, and the focus outline |
42
+ | `destructive` | red `#ee1d36` | destructive actions and error state only |
43
+ | `success` / `warning` | green `#00d722` / amber `#ffae13` | status signalling only, never chrome |
44
+
45
+ The purple / pink / blue / orange / green category palette is marketing fill; it carries no operator role except as the chart series (§7).
46
+
47
+ ## 3 Typography
48
+
49
+ One sans, one mono. `font-sans` is WF Visual Sans Variable (falling back to Inter) — a single family
50
+ carries UI, body, and headings; weight and tracking, not a second face, carry the display voice. The
51
+ brand's ceiling is `font-weight-strong` 600 — it never goes heavier. `font-mono` is WFVisualSans-Mono
52
+ (Inconsolata fallback) for IDs, codes, timestamps, and log lines. Display tracks negative
53
+ (`heading-tracking` `-0.01em`) — tight kerning is part of the voice. Numeric columns render
54
+ `tabular-nums` so figures align down a column (floor P4).
55
+
56
+ | Step | Role | Size · line | Weight · tracking |
57
+ | --- | --- | --- | --- |
58
+ | h1 | page title | 24px / 1.3 | `font-weight-strong` · `heading-tracking` |
59
+ | h2 | section head | 20px / 1.4 | `font-weight-strong` · `heading-tracking` |
60
+ | h3 | card / group head | 16px / 1.5 | `font-weight-strong` |
61
+ | body | UI + prose, dense table | 14px / 1.6 | `font-weight-normal` |
62
+ | caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.6px`, uppercase |
63
+
64
+ Bump weight one step for emphasis — never past 600, never by resizing. Badge labels take the brand's signature semibold caption; the marketing eyebrow (`+1.5px` uppercase) survives as the section label.
65
+
66
+ ## 4 Component Stylings
67
+
68
+ Every recurring component composes from the primitives — no literal values.
69
+
70
+ - **Button** — `primary`: filled `primary` (near-black) on `primary-foreground`, `radius` 4px, no pill.
71
+ Secondary: `background` fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
72
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the `ring`
73
+ (blue) at 2px, no glow.
74
+ - **Card** — `card` surface, 1px `border`, `radius` steps up to the 8px card radius; shadow only when
75
+ lifted (`shadow-intensity`); inset by `density-inset`.
76
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
77
+ numeric columns; row selection tints `accent`.
78
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
79
+ for content-heavy), beside the work, not over it (floor P3).
80
+ - **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take
81
+ `success` / `warning` / `destructive`, never `primary`; the info badge fills `ring` blue.
82
+
83
+ ## 5 Layout
84
+
85
+ Base spacing unit 4px (Tailwind `--spacing` 0.25rem); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 20 ·
86
+ 24 · 32 · 48 · 64`. Shell dimensions map one-to-one to the layout primitives: sidebar
87
+ `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`, side panel
88
+ `side-panel-width` / `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`,
89
+ tables full-width. Density is governed globally by `density-tier` (rewriting the scale through
90
+ `density-gap`) and stepped per archetype by the surface catalog — never by absolute overrides.
91
+
92
+ ## 6 Depth
93
+
94
+ Flat. Hierarchy comes from the surface ladder and hairlines, not shadow:
95
+
96
+ - **0 — canvas** `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
+ shadow. The brand's five-stop layered drop-shadow collapses to this single restrained lift; rank is
100
+ border and position, never a heavier stack.
101
+
102
+ Focus is a 2px `ring` (blue) outline, never a glow, on every interactive element (floor P6). Three
103
+ z-levels: content, sticky chrome, overlay.
104
+
105
+ ## 7 Do's & Don'ts
106
+
107
+ - **Do** reserve `primary` (near-black) for the single most important action; everything else is
108
+ neutral or status, and hierarchy rides hairlines, weight, and whitespace — the brand is flat.
109
+ - **Do** keep one chromatic accent: blue `#146ef5` for interactive state; nothing else competes.
110
+ - **Do** apply `tabular-nums` to numeric columns, `font-mono` to IDs/codes/timestamps, and cap type
111
+ weight at 600 — emphasize by weight, never by resizing or a heavier face.
112
+ - **Don't** use the purple / pink / blue / orange / green category palette as button or chrome fills —
113
+ those stay in the chart series; a chromatic CTA is off-brand.
114
+ - **Don't** pill the primary CTA or reach for a radius outside `radius-scale` (buttons 4px, cards 8px).
115
+ - **Don't** open detail or edit in a modal when the side panel fits — modals are confirmations only.
116
+ - **Don't** import the 80px hero display type or marketing gutters into an operator surface.
117
+
118
+ ## 8 Responsive
119
+
120
+ The operator sweep is 375 / 768 / 1024 / 1440.
121
+
122
+ | Breakpoint | What changes |
123
+ | --- | --- |
124
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
125
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
126
+ | 1024 / 1440 | sidebar expands; two-pane queue+detail holds; forms cap at `form-max-width`, tables full-width |
127
+
128
+ ## 9 Agent Prompt Guide
129
+
130
+ Directives the emitting agent follows verbatim:
131
+
132
+ - What carries: the near-black `primary` action, pure achromatic gray neutrals, the single blue
133
+ interactive accent, 4px button / 8px card radius, the WF Visual Sans → Inter voice at weights
134
+ 400–600 with negative tracking, and the five brand hues as the chart series. What stays behind: the
135
+ 80px hero display type, full-saturation category-card fills, and marketing gutters.
136
+ - Accent only the primary action with near-black; reserve blue for focus, selection, and active nav.
137
+ If two things want emphasis, one of them is not primary.
138
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
139
+ - Every workflow completes from the keyboard; the 2px blue `ring` is always visible (P6). Stay flat —
140
+ hairline and weight before shadow; reach past a hairline only for a real overlay.