@nurix/etna 0.18.20 → 0.18.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +1 -1
  2. package/data/harness-index.json +1 -1
  3. package/data/harnesses/code/CLAUDE.md +3 -3
  4. package/data/harnesses/code/agents/brainstorm.md +1 -1
  5. package/data/harnesses/code/agents/maintenance.md +8 -7
  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 +4 -4
  14. package/data/harnesses/code/skills/brainstorm/SKILL.md +5 -3
  15. package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +15 -11
  16. package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +5 -5
  17. package/data/harnesses/code/skills/design/SKILL.md +14 -11
  18. package/data/harnesses/code/skills/design/data/catalog/rules.csv +4 -4
  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 +27 -238
  31. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +7 -88
  32. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +1 -82
  33. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +4 -85
  34. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +5 -86
  35. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +4 -87
  36. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +7 -86
  37. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +4 -84
  38. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +5 -86
  39. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +3 -84
  40. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +2 -82
  41. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +10 -91
  42. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +2 -84
  43. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +3 -85
  44. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +7 -90
  45. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -80
  46. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -80
  47. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +5 -85
  48. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +2 -82
  49. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +5 -86
  50. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +9 -91
  51. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +9 -89
  52. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -115
  53. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +5 -85
  54. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +7 -88
  55. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +3 -84
  56. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +4 -85
  57. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +8 -88
  58. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +8 -88
  59. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +4 -85
  60. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +4 -84
  61. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +7 -88
  62. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +5 -86
  63. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +6 -87
  64. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +9 -91
  65. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +5 -88
  66. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +9 -89
  67. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +4 -119
  68. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +4 -84
  69. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -82
  70. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +3 -86
  71. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +13 -94
  72. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +2 -82
  73. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +6 -88
  74. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +13 -94
  75. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +4 -86
  76. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +7 -88
  77. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +6 -88
  78. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +5 -86
  79. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +6 -86
  80. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +12 -93
  81. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +11 -91
  82. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +8 -88
  83. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +2 -82
  84. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +11 -126
  85. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +8 -88
  86. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +3 -83
  87. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +10 -91
  88. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +7 -90
  89. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +6 -88
  90. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +9 -89
  91. package/data/harnesses/code/skills/design/data/design-md/nurix.md +4 -87
  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/surface-catalog.md +1 -1
  220. package/data/harnesses/code/skills/design/references/create.md +14 -9
  221. package/data/harnesses/code/skills/design/references/diagnosis.md +1 -1
  222. package/data/harnesses/code/skills/design/references/hard-rules.md +4 -4
  223. package/data/harnesses/code/skills/design/references/improve.md +11 -9
  224. package/data/harnesses/code/skills/design/references/introspect.md +1 -1
  225. package/data/harnesses/code/skills/design/references/personality.md +337 -413
  226. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
  227. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +596 -296
  228. package/data/harnesses/code/skills/design/scripts/{detector.mjs → lib/checks.mjs} +145 -140
  229. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
  230. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +105 -37
  231. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +60 -73
  232. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +1 -1
  233. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +1 -1
  234. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +205 -37
  235. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +68 -0
  236. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +314 -0
  237. package/data/harnesses/code/skills/documentation/SKILL.md +61 -17
  238. package/data/harnesses/code/skills/documentation/references/examples.md +41 -0
  239. package/data/harnesses/code/skills/documentation/references/style-guide.md +14 -9
  240. package/data/harnesses/code/skills/documentation/references/templates.md +306 -52
  241. package/data/harnesses/etna/CLAUDE.md +3 -3
  242. package/data/harnesses/etna/agents/brainstorm.md +1 -1
  243. package/data/harnesses/etna/agents/maintenance.md +8 -7
  244. package/data/harnesses/etna/harness.json +2 -2
  245. package/data/harnesses/etna/rules/general.md +2 -40
  246. package/data/harnesses/etna/rules/nomenclature.md +1 -8
  247. package/data/harnesses/etna/skills/brainstorm/README.md +4 -4
  248. package/data/harnesses/etna/skills/brainstorm/SKILL.md +5 -3
  249. package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +15 -11
  250. package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +5 -5
  251. package/data/harnesses/etna/skills/documentation/SKILL.md +61 -17
  252. package/data/harnesses/etna/skills/documentation/references/examples.md +41 -0
  253. package/data/harnesses/etna/skills/documentation/references/style-guide.md +14 -9
  254. package/data/harnesses/etna/skills/documentation/references/templates.md +306 -52
  255. package/data/harnesses/mobile/CLAUDE.md +3 -3
  256. package/data/harnesses/mobile/agents/brainstorm.md +1 -1
  257. package/data/harnesses/mobile/agents/maintenance.md +8 -7
  258. package/data/harnesses/mobile/harness.json +2 -2
  259. package/data/harnesses/mobile/rules/database.md +38 -0
  260. package/data/harnesses/mobile/rules/general.md +2 -40
  261. package/data/harnesses/mobile/rules/nomenclature.md +1 -8
  262. package/data/harnesses/mobile/rules/nustack.md +150 -0
  263. package/data/harnesses/mobile/skills/brainstorm/README.md +4 -4
  264. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +5 -3
  265. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +15 -11
  266. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +5 -5
  267. package/data/harnesses/mobile/skills/documentation/SKILL.md +61 -17
  268. package/data/harnesses/mobile/skills/documentation/references/examples.md +41 -0
  269. package/data/harnesses/mobile/skills/documentation/references/style-guide.md +14 -9
  270. package/data/harnesses/mobile/skills/documentation/references/templates.md +306 -52
  271. package/package.json +1 -1
  272. package/data/harnesses/code/skills/design/scripts/hook-config.json +0 -11
@@ -7,12 +7,11 @@ sourced: 2026-07-04
7
7
 
8
8
  # Apple — the reverent, photography-first operator reading
9
9
 
10
- An operator translation of Apple's web design language. The marketing theatre stays behind: full-bleed
11
- product tiles, hero display type, and photography carrying the one drop-shadow in the system. What
12
- carries is the quiet chassis underneath — a parchment canvas with white cards that lift by surface
13
- change rather than shadow, near-black ink that reads photographic, a single Action Blue accent doing
14
- every "click me" job, SF Pro's tight-tracked voice, and the 17px reading pace. Both machine blocks are
15
- fully valued; every judgment past what the corpus states is annotated `# derived:` where it lands.
10
+ An operator translation of Apple's web design language. The marketing theatre stays behind:
11
+ full-bleed product tiles, hero display type, and photography carrying the one drop-shadow in the
12
+ system. What carries is the quiet chassis underneath — a parchment canvas with white cards that lift
13
+ by surface change rather than shadow, near-black ink that reads photographic, a single Action Blue
14
+ accent doing every "click me" job, SF Pro's tight-tracked voice, and the 17px reading pace.
16
15
 
17
16
  ## 1 Visual Theme
18
17
 
@@ -138,83 +137,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
138
137
  - Accent only the primary action; if two things want Action Blue, one of them is not primary.
139
138
  - Keep the sidebar recessive and near-black, with Sky Link Blue actives; the light canvas does the talking.
140
139
  - Every workflow completes from the keyboard; the 2px Focus Blue `ring` is always visible.
141
-
142
- ```yaml design-primitives
143
- radius: 11px # derived: Apple's Pearl-capsule md (11px) as the base control radius; the pill 9999 stays in-scale for a lone hero CTA
144
- shadow-intensity: 0.3 # derived: Apple puts zero shadow on chrome (its one shadow is product imagery); overlays earn only the faintest lift
145
- border-weight: 1px
146
- density-gap: 1.15 # derived: Apple's density is categorically low; the spacious tier widens the spacing base
147
- density-inset: 1.15 # derived: matches the spacious tier — every control gets generous internal air
148
- font-sans: -apple-system, system-ui, SF Pro Text, Inter, sans-serif
149
- font-mono: ui-monospace, SF Mono, SFMono-Regular, Menlo, monospace # derived: Apple's system mono is SF Mono; ui-monospace resolves to it on Apple platforms
150
- font-weight-normal: 400
151
- font-weight-strong: 600 # Apple headlines are weight 600, not 700
152
- heading-tracking: -0.02em # derived: Apple's negative display tracking (-0.28 to -0.374px) plus the Inter substitution nudge, scaled to operator heading sizes
153
- duration-unit: 50ms # derived: corpus documents no durations; standard operator base
154
- duration-fast: 100ms # derived: the scale(0.95) press reads snappy
155
- duration-normal: 200ms # derived: Apple transitions read smooth, a touch more languid than a dense tool
156
- duration-slow: 300ms # derived: editorial ease-out for larger surface changes
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus documents only the scale(0.95) press, no easing curves; functional smooth ease
158
- contrast-boost: 1 # derived: Apple's spacious surfaces read as a grid without boosted hairlines
159
- icon-stroke: 1.5 # derived: Apple's SF Symbols read thin and refined; one step under lucide's 2
160
- icon-size-base: 18px # derived: Apple's airy scale nudges glyphs up to sit with 17px body
161
- sidebar-width-expanded: 264px # derived: Apple's airy posture widens the nav rail
162
- sidebar-width-collapsed: 56px # derived: standard icon-rail width
163
- topbar-height: 52px # derived: Apple's sub-nav height — a thin, recessive operator topbar
164
- side-panel-width: 440px # derived: a step wider than the operator standard for Apple's airier detail read
165
- side-panel-width-rich: 680px # derived: content-heavy detail, kept airy
166
- modal-width-max: 580px # derived: Apple prefers panels to modals; the cap stays generous for the rare confirmation
167
- form-max-width: 640px # derived: Apple's generous 17px reading pace caps forms comfortably
168
- table-row-height: 48px # derived: the spacious tier; also clears Apple's 44px minimum touch target
169
- verbosity: compact # derived: Apple's copy is terse and its chrome recedes
170
- feedback: subtle
171
- density-tier: spacious
172
- product-traits: [catalog, dashboard, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "-apple-system, system-ui, 'SF Pro Text', Inter, sans-serif", mono: "ui-monospace, 'SF Mono', SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#f5f5f7"
181
- foreground: "#1d1d1f"
182
- card: "#ffffff"
183
- card-foreground: "#1d1d1f"
184
- muted: "#f0f0f0"
185
- muted-foreground: "#6e6e73"
186
- border: "#e0e0e0"
187
- input: "#d2d2d7"
188
- ring: "#0071e3"
189
- primary: "#0066cc"
190
- primary-foreground: "#ffffff"
191
- accent: "#e8f1fb"
192
- accent-foreground: "#0066cc"
193
- destructive: "#d70015"
194
- destructive-foreground: "#ffffff"
195
- success: "#248a3d"
196
- warning: "#b25000"
197
- popover: "#ffffff"
198
- popover-foreground: "#1d1d1f"
199
- secondary: "#e8e8ea"
200
- secondary-foreground: "#1d1d1f"
201
- chart-1: "#0066cc"
202
- chart-2: "#2997ff"
203
- chart-3: "#5856d6"
204
- chart-4: "#248a3d"
205
- chart-5: "#b25000"
206
- sidebar: "#1d1d1f"
207
- sidebar-foreground: "#ffffff"
208
- sidebar-primary: "#2997ff"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#2a2a2c"
211
- sidebar-accent-foreground: "#ffffff"
212
- sidebar-border: "#333333"
213
- sidebar-ring: "#2997ff"
214
- spacing-scale: [4, 8, 12, 17, 24, 32, 48, 80]
215
- radius-scale: [0, 5, 8, 11, 18, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 200, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.5 }
219
- accent-count: 1
220
- ```
@@ -7,13 +7,10 @@ sourced: 2026-07-04
7
7
 
8
8
  # Binance — the operator reading
9
9
 
10
- A confident financial-platform look reduced to one idea: a single electric accent doing all the brand
11
- voltage against a calm neutral field. This entry is a deliberate operator reading of Binance — the
12
- trading-terminal density and the black-on-yellow signature carried onto internal tools (a markets
13
- console, a queue, a settlement dashboard), with the marketing skin left behind. The manifest ships the
14
- light theme (fully valued, no `hint:`); the dark console — Binance's more iconic, categorically dark
15
- read — is recorded in Color Roles for the surface that opts into it. Judgments away from the marketing
16
- surfaces are annotated `# derived:`.
10
+ A confident financial-platform look reduced to one idea: a single electric accent doing all the
11
+ brand voltage against a calm neutral field. This entry is a deliberate operator reading of Binance —
12
+ the trading-terminal density and the black-on-yellow signature carried onto internal tools (a
13
+ markets console, a queue, a settlement dashboard), with the marketing skin left behind.
17
14
 
18
15
  ## 1 Visual Theme
19
16
 
@@ -141,83 +138,3 @@ The operator sweep is 375 / 768 / 1024 / 1440:
141
138
  - Leave the marketing skin behind: 64/48px hero display, yellow→dark gradients, pill hero CTAs,
142
139
  coin-stack illustrations, the light-footer inversion, 80px editorial bands. What carries: the
143
140
  palette, its cool temperature, the tight radius character, the tabular number voice, and flat depth.
144
-
145
- ```yaml design-primitives
146
- radius: 6px
147
- shadow-intensity: 0.3 # derived: flat color-block brand; one soft shadow only on true overlays
148
- border-weight: 1px
149
- density-gap: 0.9 # derived: markets-terminal density — rows pack but stay legible
150
- density-inset: 0.9 # derived: matches the dense tier's tighter component insets
151
- font-sans: BinanceNova, Inter, system-ui, sans-serif # BinanceNova display/body; Inter is the corpus-named substitute
152
- font-mono: BinancePlex, JetBrains Mono, ui-monospace, monospace # BinancePlex number voice; JetBrains Mono substitute
153
- font-weight-normal: 400
154
- font-weight-strong: 600 # derived: operator strong weight; the 700 hero display stays behind
155
- heading-tracking: 0 # derived: Binance's title tier (24/20/16px) tracks 0; the negative tracking lives on hero display, left behind
156
- duration-unit: 50ms # derived: motion out of scope in corpus; functional operator default
157
- duration-fast: 100ms # derived
158
- duration-normal: 150ms # derived
159
- duration-slow: 250ms # derived
160
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard functional ease; timings undocumented
161
- contrast-boost: 1 # derived: liberal hairlines + the surface ladder already carry the grid
162
- icon-stroke: 1.75 # derived: corpus icons are coin glyphs; operator line-icon stroke one step under lucide's 2
163
- icon-size-base: 16px # derived: base control icon (corpus coin icons are 24/32)
164
- sidebar-width-expanded: 248px # derived: no app sidebar in corpus (marketing top-nav); operator standard
165
- sidebar-width-collapsed: 56px # derived
166
- topbar-height: 64px # Binance's native top-nav height
167
- side-panel-width: 420px # derived
168
- side-panel-width-rich: 640px # derived
169
- modal-width-max: 560px # derived
170
- form-max-width: 640px # derived
171
- table-row-height: 40px # markets-row 12px vertical padding + number line ≈ 40px; dense archetypes step down via the surface catalog
172
- verbosity: compact # derived: trading platform trusts dense numbers over explanatory chrome
173
- feedback: subtle
174
- density-tier: dense
175
- product-traits: [trading-desk, dashboard, fintech, payments, crypto-exchange]
176
- ```
177
-
178
- ```yaml lever-manifest
179
- version: 1
180
- fonts: { sans: "BinanceNova, Inter, system-ui, sans-serif", mono: "BinancePlex, JetBrains Mono, ui-monospace, monospace" }
181
- color-tokens:
182
- light:
183
- background: "#ffffff"
184
- foreground: "#181a20"
185
- card: "#ffffff"
186
- card-foreground: "#181a20"
187
- muted: "#fafafa"
188
- muted-foreground: "#707a8a"
189
- border: "#eaecef"
190
- input: "#eaecef"
191
- ring: "#3b82f6"
192
- primary: "#fcd535"
193
- primary-foreground: "#181a20"
194
- accent: "#f5f5f5"
195
- accent-foreground: "#181a20"
196
- destructive: "#f6465d"
197
- destructive-foreground: "#ffffff"
198
- success: "#0ecb81"
199
- warning: "#d97706" # derived: Binance ships no warning hue and its yellow is the reserved accent; a distinct amber carries caution without colliding
200
- popover: "#ffffff"
201
- popover-foreground: "#181a20"
202
- secondary: "#f5f5f5"
203
- secondary-foreground: "#181a20"
204
- chart-1: "#fcd535"
205
- chart-2: "#0ecb81"
206
- chart-3: "#f6465d"
207
- chart-4: "#3b82f6"
208
- chart-5: "#2dbdb6" # the single-product turquoise, repurposed as a chart hue
209
- sidebar: "#fafafa"
210
- sidebar-foreground: "#181a20"
211
- sidebar-primary: "#fcd535"
212
- sidebar-primary-foreground: "#181a20"
213
- sidebar-accent: "#f5f5f5"
214
- sidebar-accent-foreground: "#181a20"
215
- sidebar-border: "#eaecef"
216
- sidebar-ring: "#3b82f6"
217
- spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64, 80]
218
- radius-scale: [2, 4, 6, 8, 12, 9999]
219
- shadow-levels: [none, sm]
220
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
221
- icons: { family: lucide, stroke: 1.75 }
222
- accent-count: 1
223
- ```
@@ -7,12 +7,13 @@ sourced: 2026-07-04
7
7
 
8
8
  # BMW — measured corporate-automotive, translated for operators
9
9
 
10
- The BMW corporate design (distinct from BMW M's motorsport-bombastic variant): measured, settled, engineered. A light
11
- near-white canvas, a single corporate blue for every primary action, and one categorical signature — **everything is
12
- rectangular, 0px corners** — with depth from a greyscale surface ladder and hairlines, never shadow. This operator reading
13
- keeps the palette, the blue accent, the 0px geometry, the flatness, and the heavy-display type voice; the marketing graces
14
- (dark-navy hero bands, 64px display type, full-bleed photography, the M tricolor stripe, 80px section rhythm) stay behind.
15
- Both machine blocks are fully valued; each judgment away from the marketing brand is annotated `# derived:` where silent.
10
+ The BMW corporate design (distinct from BMW M's motorsport-bombastic variant): measured, settled,
11
+ engineered. A light near-white canvas, a single corporate blue for every primary action, and one
12
+ categorical signature — **everything is rectangular, 0px corners** — with depth from a greyscale
13
+ surface ladder and hairlines, never shadow. This operator reading keeps the palette, the blue
14
+ accent, the 0px geometry, the flatness, and the heavy-display type voice; the marketing graces
15
+ (dark-navy hero bands, 64px display type, full-bleed photography, the M tricolor stripe, 80px
16
+ section rhythm) stay behind.
16
17
 
17
18
  ## 1 Visual Theme
18
19
 
@@ -137,83 +138,3 @@ Directives the emitting agent follows verbatim:
137
138
  blue — if two things want the accent, one is not primary; stay shadowless, reaching for the `card`
138
139
  grey plate and hairlines before any elevation, a whisper `sm` shadow only for a true overlay.
139
140
  - Numeric columns are `tabular-nums`, IDs / codes / timestamps `font-mono`, every workflow keyboard-complete with the `ring` focus outline always visible.
140
-
141
- ```yaml design-primitives
142
- radius: 0px # BMW signature: rectangular everything; scale still offers 12px for the rare large surface
143
- shadow-intensity: 0.1 # derived: brand never draws shadow; a whisper only lifts a true overlay
144
- border-weight: 1px
145
- density-gap: 1 # derived: BMW's native 8px rhythm rides the spacing-scale steps; base multiplier held at 1
146
- density-inset: 1 # derived: standard operator inset; marketing's generous 24px card padding stays behind
147
- font-sans: Inter, system-ui, -apple-system, sans-serif # Inter is the corpus-documented open-source stand-in for BMW Type Next Latin
148
- font-mono: Roboto Mono, ui-monospace, SFMono-Regular, monospace # derived: brand ships no mono; Roboto (BMW's own fallback) mono sibling for IDs/codes/logs
149
- font-weight-normal: 400 # derived: marketing body is Light 300; dense operator body bumps to BMW's utility weight 400 for legibility
150
- font-weight-strong: 700 # the BMW heavy-display weight — the 700/normal contrast is the editorial signature
151
- heading-tracking: 0 # BMW runs a wide body and takes no negative tracking; tightening reads off-brand
152
- duration-unit: 50ms # derived: corpus marks motion out of scope; functional operator base
153
- duration-fast: 100ms # derived: corpus silent on motion
154
- duration-normal: 150ms # derived: corpus silent on motion
155
- duration-slow: 250ms # derived: corpus silent on motion
156
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard measured easing
157
- contrast-boost: 1
158
- icon-stroke: 2 # derived: BMW's bold engineered voice (700 display, wide tracking) wants the full lucide stroke, not a hairline
159
- icon-size-base: 16px # derived: corpus silent; operator standard
160
- sidebar-width-expanded: 256px # derived: BMW is a top-nav marketing site with no sidebar; 8px-rhythm operator shell
161
- sidebar-width-collapsed: 64px # derived: matches BMW's 64px nav height and 8px rhythm
162
- topbar-height: 64px # BMW top-nav height (a real corpus value)
163
- side-panel-width: 440px # derived: no operator shell in corpus; 8px-rhythm detail panel
164
- side-panel-width-rich: 640px # derived: content-heavy panel on the 8px rhythm
165
- modal-width-max: 560px # derived: corpus silent; confirmation-scale cap
166
- form-max-width: 640px # derived: corpus silent; single-column form measure
167
- table-row-height: 44px # derived: BMW runs tall 48px controls; operator tables tighten one notch but stay above the generic 40px
168
- verbosity: default
169
- feedback: subtle # derived: BMW reads measured and settled; restrained feedback
170
- density-tier: standard # derived: consumer-marketing spaciousness stays behind; the dealership-functional density carries as standard
171
- product-traits: [inventory, crm, configurator, dashboard, automotive]
172
- ```
173
-
174
- ```yaml lever-manifest
175
- version: 1
176
- fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "Roboto Mono, ui-monospace, SFMono-Regular, monospace" }
177
- color-tokens:
178
- light:
179
- background: "#ffffff"
180
- foreground: "#262626"
181
- card: "#fafafa"
182
- card-foreground: "#262626"
183
- muted: "#f7f7f7"
184
- muted-foreground: "#6b6b6b"
185
- border: "#e6e6e6"
186
- input: "#e6e6e6"
187
- ring: "#1c69d4"
188
- primary: "#1c69d4"
189
- primary-foreground: "#ffffff"
190
- accent: "#e9f1fc" # derived: faint wash of BMW blue for selection/hover; brand has no blue-tint surface token
191
- accent-foreground: "#1c69d4"
192
- destructive: "#dc2626"
193
- destructive-foreground: "#ffffff"
194
- success: "#22c55e"
195
- warning: "#f59e0b"
196
- popover: "#ffffff"
197
- popover-foreground: "#262626"
198
- secondary: "#f7f7f7"
199
- secondary-foreground: "#262626"
200
- chart-1: "#1c69d4" # BMW blue
201
- chart-2: "#0066b1" # derived: M-blue-light recruited as a data-viz categorical only (not chrome)
202
- chart-3: "#22c55e" # success green
203
- chart-4: "#f59e0b" # warning amber
204
- chart-5: "#e22718" # derived: M-red recruited as a data-viz categorical only (not chrome)
205
- sidebar: "#f7f7f7" # derived: BMW's soft-grey sub-nav band as the chrome surface
206
- sidebar-foreground: "#262626"
207
- sidebar-primary: "#1c69d4"
208
- sidebar-primary-foreground: "#ffffff"
209
- sidebar-accent: "#e9f1fc" # derived: faint BMW-blue wash for the active/hovered nav item
210
- sidebar-accent-foreground: "#1c69d4"
211
- sidebar-border: "#e6e6e6"
212
- sidebar-ring: "#1c69d4"
213
- spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
214
- radius-scale: [0, 2, 4, 8, 12, 9999]
215
- shadow-levels: [none, sm]
216
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
217
- icons: { family: lucide, stroke: 2 }
218
- accent-count: 1
219
- ```
@@ -7,10 +7,10 @@ sourced: 2026-07-04
7
7
 
8
8
  # Cal.com — operator reading
9
9
 
10
- The operator reading of Cal.com's design language, distilled from Cal's marketing surface. It keeps what
11
- an internal tool can wear — the monochrome near-black action layer, the light-gray surface ladder,
12
- soft-rounded 8px/12px geometry, the Cal Sans / Inter type voice — and leaves the marketing scaffolding
13
- behind (§9). Judgments where the corpus is silent are annotated `# derived:`.
10
+ The operator reading of Cal.com's design language, distilled from Cal's marketing surface. It keeps
11
+ what an internal tool can wear — the monochrome near-black action layer, the light-gray surface
12
+ ladder, soft-rounded 8px/12px geometry, the Cal Sans / Inter type voice — and leaves the marketing
13
+ scaffolding behind (§9).
14
14
 
15
15
  ## 1 Visual Theme
16
16
 
@@ -138,83 +138,3 @@ What carries from Cal into an operator surface, and what stays on the marketing
138
138
  - The near-black `#101010` surface is scarce — one framing element per view, never a panel. Leave behind
139
139
  the hero display, the 96px band rhythm, the nav-pill switcher, product-fragment-in-card, and any
140
140
  gradient; charts are the only place color spends.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # derived: corpus control radius (md 8px); soft-rounded Cal character, scale still offers 12/16px for cards
144
- shadow-intensity: 0.5 # derived: corpus uses soft drop shadows on elevated cards (0.05–0.08 alpha), more than a fully flat brand
145
- border-weight: 1px
146
- density-gap: 1.15 # derived: spacious tier — Cal's generous whitespace opens the scale one notch above the operator default
147
- density-inset: 1.1 # derived: matches the roomier posture without over-padding dense tables
148
- font-sans: Inter, system-ui, sans-serif
149
- font-mono: JetBrains Mono, ui-monospace, monospace
150
- font-weight-normal: 400
151
- font-weight-strong: 600
152
- heading-tracking: -0.02em # derived: Cal Sans's negative-tracking signature (corpus Inter substitute -0.04em at display scale) eased to operator heading sizes
153
- duration-unit: 50ms # derived: corpus notes animation timings out of scope; functional operator motion
154
- duration-fast: 100ms # derived: functional operator motion
155
- duration-normal: 150ms # derived: functional operator motion
156
- duration-slow: 250ms # derived: functional operator motion
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard ease; corpus silent on motion
158
- contrast-boost: 1 # derived: corpus is high-contrast ink on white already; no boost needed
159
- icon-stroke: 1.75 # derived: corpus names no icon set; lucide one step under 2 for a refined operator stroke
160
- icon-size-base: 16px # derived: standard operator icon size; corpus silent
161
- sidebar-width-expanded: 248px # derived: Cal is marketing top-nav with no sidebar; operator-standard rail width
162
- sidebar-width-collapsed: 56px # derived: operator-standard icon rail
163
- topbar-height: 64px # corpus top-nav height (64px) — Cal's airier nav band carried over
164
- side-panel-width: 420px # derived: operator-standard detail panel; corpus has no side panel
165
- side-panel-width-rich: 640px # derived: content-heavy detail panel
166
- modal-width-max: 560px # derived: operator confirmation-modal cap
167
- form-max-width: 640px # derived: corpus 1200px is marketing content width; operator forms cap tighter
168
- table-row-height: 44px # derived: spacious posture — a step roomier than 40px controls, matching Cal's friendly density
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: spacious # derived: Cal reads as a spacious consumer-friendly SaaS (generous whitespace), not a dense terminal
172
- product-traits: [scheduling, booking, saas, dashboard, crm]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#111111"
182
- card: "#ffffff"
183
- card-foreground: "#111111"
184
- muted: "#f5f5f5"
185
- muted-foreground: "#6b7280"
186
- border: "#e5e7eb"
187
- input: "#e5e7eb"
188
- ring: "#111111"
189
- primary: "#111111"
190
- primary-foreground: "#ffffff"
191
- accent: "#f3f4f6"
192
- accent-foreground: "#111111"
193
- destructive: "#ef4444"
194
- destructive-foreground: "#ffffff"
195
- success: "#10b981"
196
- warning: "#f59e0b"
197
- popover: "#ffffff"
198
- popover-foreground: "#111111"
199
- secondary: "#f5f5f5"
200
- secondary-foreground: "#111111"
201
- chart-1: "#3b82f6" # derived: brand-accent blue as primary series
202
- chart-2: "#34d399" # derived: badge-emerald
203
- chart-3: "#fb923c" # derived: badge-orange
204
- chart-4: "#8b5cf6" # derived: badge-violet
205
- chart-5: "#ec4899" # derived: badge-pink
206
- sidebar: "#f8f9fa" # derived: corpus surface-soft — faint off-white rail vs white canvas
207
- sidebar-foreground: "#111111"
208
- sidebar-primary: "#111111"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#f3f4f6" # derived: hover/active nav tint, one step off the rail
211
- sidebar-accent-foreground: "#111111"
212
- sidebar-border: "#e5e7eb"
213
- sidebar-ring: "#111111"
214
- spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64] # 96 section rhythm stays behind; 64 derived to fill the operator shell gap
215
- radius-scale: [0, 4, 6, 8, 12, 16, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.75 }
219
- accent-count: 1
220
- ```
@@ -8,12 +8,11 @@ sourced: 2026-07-04
8
8
  # Clay — the warm-cream operator reading
9
9
 
10
10
  Clay's marketing surface is the most playful brand in the GTM-data category: a cream-tinted white
11
- canvas holding 3D claymation illustrations and saturated single-color feature cards in six hues. This
12
- is the *operator* reading — the warmth, the near-black actions, the generous radius, and the Inter body
13
- voice carried into a CRM/queue/dashboard; the hero-scale Plain Black display, the 3D illustrations, and
14
- the saturated feature-card fills stay behind in marketing. What makes a tool read as Clay is the cream
15
- substrate and the disciplined near-black action, not a colored card. Every judgment away from the
16
- marketing brand is annotated `# derived:` where it lands.
11
+ canvas holding 3D claymation illustrations and saturated single-color feature cards in six hues.
12
+ This is the *operator* reading — the warmth, the near-black actions, the generous radius, and the
13
+ Inter body voice carried into a CRM/queue/dashboard; the hero-scale Plain Black display, the 3D
14
+ illustrations, and the saturated feature-card fills stay behind in marketing. What makes a tool read
15
+ as Clay is the cream substrate and the disciplined near-black action, not a colored card.
17
16
 
18
17
  ## 1 Visual Theme
19
18
 
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
138
137
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
139
138
  - Every workflow completes from the keyboard; the near-black `ring` focus outline is always visible.
140
139
  - Plain Black hero type and 3D illustrations are marketing. They never enter the operator surface.
141
-
142
- ```yaml design-primitives
143
- radius: 12px # derived: brand's generous radius (12px buttons/inputs) is the rounded character the brief keeps; operator wears it as-is
144
- shadow-intensity: 0.35 # derived: brand uses no heavy shadow — depth is color contrast; shadow only lifts true overlays
145
- border-weight: 1px
146
- density-gap: 1.1 # derived: brand breathes (spacious marketing whitespace); operator leans airy, not cramped
147
- density-inset: 1.1 # derived: matches the spacious tier
148
- font-sans: Inter, -apple-system, BlinkMacSystemFont, sans-serif # brand's body/UI font; Plain Black display stays behind
149
- font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # derived: brand ships no mono (marketing site); operator needs one for IDs/codes/log lines
150
- font-weight-normal: 400
151
- font-weight-strong: 600 # brand titles are Inter 600 (display's 500 is hero-scale, stays behind)
152
- heading-tracking: -0.01em # derived: brand's negative display tracking, dialled to operator heading sizes (hero -2.5px stays behind)
153
- duration-unit: 50ms # derived: brand states motion is out of scope; functional operator default
154
- duration-fast: 100ms # derived: functional operator default
155
- duration-normal: 150ms # derived: functional operator default
156
- duration-slow: 250ms # derived: functional operator default
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: brand states motion is out of scope; standard operator ease
158
- contrast-boost: 1
159
- icon-stroke: 1.75 # derived: brand documents no icon set; refined operator stroke
160
- icon-size-base: 16px # derived: standard operator icon size
161
- sidebar-width-expanded: 260px # derived: no brand sidebar (horizontal marketing nav); spacious operator rail
162
- sidebar-width-collapsed: 60px # derived: icon rail
163
- topbar-height: 56px # derived: from brand's 64px top-nav, tightened for an operator topbar
164
- side-panel-width: 440px # derived: spacious tier
165
- side-panel-width-rich: 680px # derived: content-heavy detail
166
- modal-width-max: 560px # derived: standard operator modal cap
167
- form-max-width: 640px # derived: single-column form width
168
- table-row-height: 48px # derived: spacious tier; dense archetypes step down via the surface catalog
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: spacious # derived: brand voice is airy and warm; operator tools wearing it breathe, unlike a terminal
172
- product-traits: [crm, sales, data-orchestration, dashboard]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, -apple-system, BlinkMacSystemFont, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#fffaf0"
181
- foreground: "#0a0a0a"
182
- card: "#fffaf0"
183
- card-foreground: "#0a0a0a"
184
- muted: "#faf5e8"
185
- muted-foreground: "#6a6a6a"
186
- border: "#e5e5e5"
187
- input: "#e5e5e5"
188
- ring: "#0a0a0a"
189
- primary: "#0a0a0a"
190
- primary-foreground: "#ffffff"
191
- accent: "#ebe6d6"
192
- accent-foreground: "#0a0a0a"
193
- destructive: "#ef4444"
194
- destructive-foreground: "#ffffff"
195
- success: "#22c55e"
196
- warning: "#f59e0b"
197
- popover: "#fffaf0"
198
- popover-foreground: "#0a0a0a"
199
- secondary: "#f5f0e0"
200
- secondary-foreground: "#0a0a0a"
201
- chart-1: "#1a3a3a"
202
- chart-2: "#ff4d8b"
203
- chart-3: "#b8a4ed"
204
- chart-4: "#e8b94a"
205
- chart-5: "#ff6b5a"
206
- sidebar: "#faf5e8"
207
- sidebar-foreground: "#0a0a0a"
208
- sidebar-primary: "#0a0a0a"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#ebe6d6"
211
- sidebar-accent-foreground: "#0a0a0a"
212
- sidebar-border: "#e5e5e5"
213
- sidebar-ring: "#0a0a0a"
214
- spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 6, 8, 12, 16, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.75 }
219
- accent-count: 1
220
- ```
@@ -16,8 +16,7 @@ radius, and Inter's tight bold-700 voice. What stays behind: the 72/56/40px hero
16
16
  yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm.
17
17
 
18
18
  **This brand is categorically dark.** ClickHouse ships no light-mode surface — the black canvas *is*
19
- the identity. The light-default floor yields here (the categorically-dark exception): the default-worn
20
- theme is dark and fills the required default (`light`) slot in the manifest. White-canvas is off-brand.
19
+ the identity. White-canvas is off-brand.
21
20
 
22
21
  ## 1 Visual Theme
23
22
 
@@ -31,8 +30,8 @@ voltage. Density is `dense` — the brand's engineering-grade rhythm.
31
30
 
32
31
  ## 2 Color Roles
33
32
 
34
- Dark values (the manifest carries the exact hex in the required default slot). One accent — yellow
35
- `primary` is the only chromatic hue that carries meaning; status hues speak only status.
33
+ Dark values. One accent — yellow `primary` is the only chromatic hue that carries meaning; status
34
+ hues speak only status.
36
35
 
37
36
  | Role | Value | Allowed where |
38
37
  | --- | --- | --- |
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
138
137
  - Detail and edit go in the side panel beside the work; a modal is a confirmation, not a workspace.
139
138
  - Keyboard-first: the yellow `ring` focus outline is always visible.
140
139
  - Leave behind: full-bleed yellow CTA bands, 56px yellow stat numbers, hero 7/5 splits, and the 96px section rhythm — marketing voltage, not operator chrome.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # derived: brand button/input radius (md); cards step to 12px via the scale; pill is badges-only
144
- shadow-intensity: 0.2 # derived: brand is shadowless — depth is surface contrast; only true overlays get the faintest lift on the black canvas
145
- border-weight: 1px
146
- density-gap: 0.9 # derived: dense tier — the brand's engineering-grade, slightly-compressed rhythm compresses spacing one step
147
- density-inset: 0.9 # derived: matches the dense density-gap for coherent component insets
148
- font-sans: Inter, system-ui, sans-serif
149
- font-mono: JetBrains Mono, ui-monospace, monospace
150
- font-weight-normal: 400
151
- font-weight-strong: 700 # derived: ClickHouse's defining typographic trait is confident bold-700 headings; the display scale stays behind, the weight carries
152
- heading-tracking: -0.02em # derived: brand's signature tight negative display tracking (-1 to -2.5px), scaled to operator heading sizes
153
- duration-unit: 50ms # derived: corpus documents no motion (known gap); functional operator base
154
- duration-fast: 100ms # derived: corpus silent; functional tempo
155
- duration-normal: 150ms # derived: corpus silent; standard functional tempo
156
- duration-slow: 250ms # derived: corpus silent; overlay/panel transition
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
158
- contrast-boost: 1 # derived: brand's dim-panel contrast is deliberately subtle; hairline borders carry the grid, no boost
159
- icon-stroke: 1.75 # derived: corpus silent on icons; refined operator stroke one step under lucide's 2, matching the precise/engineered voice
160
- icon-size-base: 16px # derived: corpus silent on icon size; operator default
161
- sidebar-width-expanded: 248px # derived: brand has no app sidebar (marketing top nav); standard operator rail
162
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
163
- topbar-height: 64px # corpus top-nav height (64px)
164
- side-panel-width: 420px # derived: corpus silent; standard operator detail panel
165
- side-panel-width-rich: 640px # derived: content-heavy detail panel
166
- modal-width-max: 560px # derived: corpus's yellow CTA bands are full-bleed marketing; operator confirmation cap
167
- form-max-width: 640px # derived: brand max content ~1280px is marketing; operator form cap
168
- table-row-height: 40px # derived: matches the brand's 40px control height; dense archetypes step down via the surface catalog
169
- verbosity: default
170
- feedback: subtle # derived: brand is quiet in motion ("don't add hover beyond what the system encodes"); functional feedback only
171
- density-tier: dense # derived: brand's engineering-grade, slightly-compressed whitespace reads dense
172
- product-traits: [dev-tools, database, dashboard, analytics]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
178
- color-tokens:
179
- light: # categorically-dark brand: the default-worn theme is dark and fills this required default slot; there is no light surface
180
- background: "#0a0a0a"
181
- foreground: "#ffffff"
182
- card: "#1a1a1a"
183
- card-foreground: "#ffffff"
184
- muted: "#121212"
185
- muted-foreground: "#888888"
186
- border: "#2a2a2a"
187
- input: "#2a2a2a"
188
- ring: "#faff69"
189
- primary: "#faff69"
190
- primary-foreground: "#0a0a0a"
191
- accent: "#242424"
192
- accent-foreground: "#ffffff"
193
- destructive: "#ef4444"
194
- destructive-foreground: "#ffffff"
195
- success: "#22c55e"
196
- warning: "#f59e0b"
197
- popover: "#1a1a1a"
198
- popover-foreground: "#ffffff"
199
- secondary: "#1a1a1a"
200
- secondary-foreground: "#ffffff"
201
- chart-1: "#faff69" # derived: electric yellow — primary data series
202
- chart-2: "#3b82f6" # derived: accent blue
203
- chart-3: "#22c55e" # derived: emerald
204
- chart-4: "#f59e0b" # derived: amber
205
- chart-5: "#ef4444" # derived: rose
206
- sidebar: "#0a0a0a" # derived: brand nav rides the canvas; the hairline sidebar-border carries the seam
207
- sidebar-foreground: "#cccccc" # derived: resting nav labels dim to brand body grey, brightening on active
208
- sidebar-primary: "#faff69" # derived: yellow active-nav indicator
209
- sidebar-primary-foreground: "#0a0a0a"
210
- sidebar-accent: "#242424" # derived: hover/selected nav lift
211
- sidebar-accent-foreground: "#ffffff"
212
- sidebar-border: "#2a2a2a"
213
- sidebar-ring: "#faff69"
214
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 4, 6, 8, 12, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.75 }
219
- accent-count: 1
220
- ```