@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
@@ -8,12 +8,12 @@ sourced: 2026-07-04
8
8
  # Miro — the operator reading
9
9
 
10
10
  Miro's marketing canvas is a confident, playful frame: a canary-yellow wordmark on stark white,
11
- black-pill CTAs, and oversized pastel feature cards echoing the live whiteboard's sticky-note palette.
12
- The 80px Roobert display, the 120px hero rhythm, the real-board mockups, and the exuberant pastels stay
13
- on the marketing site. An operator surface inherits the *spine*: black ink on white, one chromatic
14
- accent (Miro brand blue), the friendly geometric Roobert type voice at its elegant medium weight, and a
15
- roomy rounded radius — a friendly tool made by people who like color, the joy demoted to chart
16
- encodings. Judgments away from the brand are annotated `# derived:` where the corpus is silent.
11
+ black-pill CTAs, and oversized pastel feature cards echoing the live whiteboard's sticky-note
12
+ palette. The 80px Roobert display, the 120px hero rhythm, the real-board mockups, and the exuberant
13
+ pastels stay on the marketing site. An operator surface inherits the *spine*: black ink on white,
14
+ one chromatic accent (Miro brand blue), the friendly geometric Roobert type voice at its elegant
15
+ medium weight, and a roomy rounded radius — a friendly tool made by people who like color, the joy
16
+ demoted to chart encodings.
17
17
 
18
18
  ## 1 Visual Theme
19
19
 
@@ -28,8 +28,8 @@ tier, stepping denser per archetype.
28
28
 
29
29
  ## 2 Color Roles
30
30
 
31
- Light values first (the manifest carries the corpus's native hex). One chromatic accent — brand blue
32
- carries interactive meaning; the sticky-note pastels appear only as chart series; yellow is a grace.
31
+ Light values first. One chromatic accent — brand blue carries interactive meaning; the sticky-note
32
+ pastels appear only as chart series; yellow is a grace.
33
33
 
34
34
  | Role | Value | Allowed where |
35
35
  | --- | --- | --- |
@@ -151,83 +151,3 @@ Directives the emitting agent follows verbatim:
151
151
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
152
152
  - The sticky-note pastels live only in charts (`chart-1..5`); stay flat — hairline and weight before
153
153
  shadow, and reach past a hairline only for a real, soft, navy-tinted overlay.
154
-
155
- ```yaml design-primitives
156
- radius: 8px # corpus: Miro's functional radius (rounded.md — inputs, search-pill, ghost); the marketing 28-32px pastel cards stay behind
157
- shadow-intensity: 0.5 # derived: predominantly flat with soft navy-tinted shadows (corpus 0.04-0.12 alpha); shadow lifts only true overlays
158
- border-weight: 1px
159
- density-gap: 1
160
- density-inset: 1
161
- font-sans: Roobert PRO, Noto Sans, -apple-system, BlinkMacSystemFont, sans-serif # corpus: Roobert PRO plus documented fallbacks
162
- font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # derived: Miro ships no mono (all Roobert); operator IDs/codes/logs need one — Geist Mono's geometric humanist character pairs with Roobert
163
- font-weight-normal: 400 # corpus: body 400
164
- font-weight-strong: 500 # corpus: headings AND medium emphasis run 500; Roobert never uses 700 — the elegant medium-weight display voice carries
165
- heading-tracking: -0.01em # derived: display tracks -2px…-1px but relaxes to 0 by heading-3; a faint -0.01em echoes the display DNA at operator heading sizes
166
- duration-unit: 50ms # derived: corpus documents no timings; operator functional base
167
- duration-fast: 100ms # derived: operator functional default
168
- duration-normal: 150ms # corpus: recommends 150-200ms ease
169
- duration-slow: 200ms # corpus: recommends 150-200ms ease (upper bound); friendly-quick
170
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus recommends a generic "ease"; standard functional curve
171
- contrast-boost: 1 # derived: Miro's hairlines are visible and inputs already take a stronger edge; no boost needed
172
- icon-stroke: 1.75 # derived: Miro ships no icon system; lucide at 1.75 matches Roobert's geometric medium-weight character
173
- icon-size-base: 16px # derived: operator standard
174
- sidebar-width-expanded: 256px # derived: Miro is marketing (no app shell); the airy brand rhythm → a touch roomier than a dense rail
175
- sidebar-width-collapsed: 64px # derived: mirrors Miro's ~64px nav height as the icon rail
176
- topbar-height: 64px # corpus: Miro's documented top-nav height (~64px)
177
- side-panel-width: 440px # derived: no shell in corpus; roomy per the friendly brand rhythm
178
- side-panel-width-rich: 640px # derived: no shell; content-heavy detail width
179
- modal-width-max: 560px # derived: no shell; modals for confirmations only
180
- form-max-width: 640px # derived: no shell; comfortable single-column form cap
181
- table-row-height: 44px # corpus: Miro's 44px form/touch-target height → roomy operator rows; dense archetypes step down via the surface catalog
182
- verbosity: default
183
- feedback: subtle # rationale: Miro's friendly, responsive brand wants present-but-tasteful feedback
184
- density-tier: standard # rationale: a spacious, airy consumer brand read down to an honest operator tier, leaning roomy; density earned per archetype
185
- product-traits: [saas, collaboration, workspace, dashboard, admin]
186
- ```
187
-
188
- ```yaml lever-manifest
189
- version: 1
190
- fonts: { sans: "Roobert PRO, Noto Sans, -apple-system, BlinkMacSystemFont, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
191
- color-tokens:
192
- light:
193
- background: "#ffffff"
194
- foreground: "#1c1c1e"
195
- card: "#ffffff"
196
- card-foreground: "#1c1c1e"
197
- muted: "#f7f8fa"
198
- muted-foreground: "#555a6a"
199
- border: "#e0e2e8"
200
- input: "#c7cad5" # corpus: hairline-strong — Miro gives inputs a heavier edge than dividers
201
- ring: "#4262ff" # corpus: brand blue on the focus edge (text-input-focused)
202
- primary: "#1c1c1e" # corpus: the black-pill primary CTA color
203
- primary-foreground: "#ffffff"
204
- accent: "#f5f3ff" # corpus: surface-pricing-featured lavender — the featured/selected wash
205
- accent-foreground: "#4262ff" # corpus: brand blue on the lavender tint
206
- destructive: "#e5484d" # derived: Miro ships only soft error backgrounds; a saturated red is needed for destructive fills, tuned to the warm coral-leaning palette
207
- destructive-foreground: "#ffffff"
208
- success: "#00b473" # corpus: success-accent green
209
- warning: "#fcb900" # derived: brand-yellow-deep repurposed as the amber warning hue
210
- popover: "#ffffff"
211
- popover-foreground: "#1c1c1e"
212
- secondary: "#f7f8fa"
213
- secondary-foreground: "#1c1c1e"
214
- chart-1: "#4262ff" # brand: blue anchors the ramp as the saturated primary series
215
- chart-2: "#0fbcb0" # brand: teal sticky-note hue
216
- chart-3: "#ff9999" # brand: coral sticky-note hue
217
- chart-4: "#fcb900" # brand: deep-yellow sticky-note hue
218
- chart-5: "#00b473" # brand: green success accent, completing the sticky-note set
219
- sidebar: "#f7f8fa"
220
- sidebar-foreground: "#1c1c1e"
221
- sidebar-primary: "#1c1c1e"
222
- sidebar-primary-foreground: "#ffffff"
223
- sidebar-accent: "#eef0f3" # corpus: hairline-soft — neutral nav hover/selection tint
224
- sidebar-accent-foreground: "#1c1c1e"
225
- sidebar-border: "#e0e2e8"
226
- sidebar-ring: "#4262ff" # corpus: brand-blue focus ring in the nav
227
- spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
228
- radius-scale: [0, 4, 8, 12, 16, 9999]
229
- shadow-levels: [none, sm, md]
230
- motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
231
- icons: { family: lucide, stroke: 1.75 }
232
- accent-count: 1
233
- ```
@@ -7,12 +7,12 @@ sourced: 2026-07-04
7
7
 
8
8
  # Mistral AI — the operator reading
9
9
 
10
- Mistral's public brand is cinematographic: sunset gradients over mountain photography, a red-to-cream
11
- "stripe" closing every page, hero-scale near-serif display type. This is the *operator* reading — the
12
- palette temperature, the single saturated-orange accent, the sober editorial geometry, and the type
13
- voice carry across; the gradients, photographic heroes, and hero-scale display face stay behind. An
14
- internal tool wearing Mistral is a warm, cream-panelled console with one orange action, not a landing
15
- page. Both machine blocks are fully valued; judgments away from the brand are annotated inline.
10
+ Mistral's public brand is cinematographic: sunset gradients over mountain photography, a
11
+ red-to-cream "stripe" closing every page, hero-scale near-serif display type. This is the *operator*
12
+ reading — the palette temperature, the single saturated-orange accent, the sober editorial geometry,
13
+ and the type voice carry across; the gradients, photographic heroes, and hero-scale display face
14
+ stay behind. An internal tool wearing Mistral is a warm, cream-panelled console with one orange
15
+ action, not a landing page.
16
16
 
17
17
  ## 1 Visual Theme
18
18
 
@@ -24,8 +24,8 @@ without a gradient. Density is `standard`, leaning comfortable (44px rows), dens
24
24
 
25
25
  ## 2 Color Roles
26
26
 
27
- Light values; hex is the brand's native format (the manifest carries the same). One accent — `primary`
28
- orange is the only chromatic hue that carries meaning; status hues speak only status.
27
+ Light values; hex is the brand's native format. One accent — `primary` orange is the only chromatic
28
+ hue that carries meaning; status hues speak only status.
29
29
 
30
30
  | Role | Value | Allowed where |
31
31
  | --- | --- | --- |
@@ -138,83 +138,3 @@ behind: the sunset gradient bands, the hero-scale PP Editorial Old display face,
138
138
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
139
139
  - Every workflow completes from the keyboard; the orange `ring` focus outline is always visible.
140
140
  - Stay flat and sober — hairline and weight before shadow, no pills, no gradient chrome.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # derived: brand button radius is md=8px; scale keeps 12px for cards
144
- shadow-intensity: 0.4 # derived: brand runs predominantly flat, shadows at 0.04 alpha — lift only overlays
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: Inter, system-ui, sans-serif # brand's UI/prose face; the hero-scale near-serif display stays behind
149
- font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace
150
- font-weight-normal: 400
151
- font-weight-strong: 500 # derived: brand headings emphasize at 500 (editorial), not 600 — 600 reserved for the eyebrow
152
- heading-tracking: -0.01em # brand display tracks -0.5px at the large heads; operator heads echo the tightening
153
- duration-unit: 50ms # derived: corpus does not extract motion timings
154
- duration-fast: 100ms # derived: no corpus value; operator default
155
- duration-normal: 150ms # brand note recommends 150–200ms ease for state transitions
156
- duration-slow: 200ms # brand note recommends 150–200ms; slow lands at the top of that range
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard operator ease
158
- contrast-boost: 1
159
- icon-stroke: 1.75 # derived: corpus does not specify icons; refined operator stroke
160
- icon-size-base: 16px
161
- sidebar-width-expanded: 248px # derived: corpus is marketing-nav only; operator shell default
162
- sidebar-width-collapsed: 56px # derived: operator shell default
163
- topbar-height: 56px # derived: brand marketing nav ~64px; tightened for an operator topbar
164
- side-panel-width: 420px # derived: no operator side panel in corpus; standard width
165
- side-panel-width-rich: 640px # derived: standard rich-content width
166
- modal-width-max: 560px # derived: corpus has a modal elevation level but no width; standard cap
167
- form-max-width: 560px # brand contact form caps ~520px; rounded to the operator standard
168
- table-row-height: 44px # brand touch targets (inputs/buttons) render 44px — comfortable, editorial
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: standard # derived: brand reads comfortable/editorial; standard keeps it dense-capable, not cramped
172
- product-traits: [dashboard, ai-console, dev-tools, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#1f1f1f"
182
- card: "#ffffff"
183
- card-foreground: "#1f1f1f"
184
- muted: "#fffaeb"
185
- muted-foreground: "#6a6a6a"
186
- border: "#e5e5e5"
187
- input: "#c7c7c7"
188
- ring: "#fa520f"
189
- primary: "#fa520f"
190
- primary-foreground: "#ffffff"
191
- accent: "#fff0c2"
192
- accent-foreground: "#1f1f1f"
193
- destructive: "#d92d20" # derived: source palette ships no semantic red; distinct from the CTA orange
194
- destructive-foreground: "#ffffff"
195
- success: "#16a34a" # derived: source palette ships no green; functional status import
196
- warning: "#d97706" # derived: amber distinct from CTA orange; brand yellows fail contrast for status
197
- popover: "#ffffff"
198
- popover-foreground: "#1f1f1f"
199
- secondary: "#fff8e0"
200
- secondary-foreground: "#1f1f1f"
201
- chart-1: "#fa520f" # derived: sunset ramp as categorical; warm palette suits sequential/few-series charts
202
- chart-2: "#cc3a05"
203
- chart-3: "#ffa110"
204
- chart-4: "#ffd06a"
205
- chart-5: "#ff8a00"
206
- sidebar: "#fff8e0"
207
- sidebar-foreground: "#1f1f1f"
208
- sidebar-primary: "#fa520f"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#fff0c2"
211
- sidebar-accent-foreground: "#1f1f1f"
212
- sidebar-border: "#e6d5a8" # brand's cream-surface border (beige-deep)
213
- sidebar-ring: "#fa520f"
214
- spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
215
- radius-scale: [4, 6, 8, 12, 16, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 200], 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
  # MongoDB — the operator reading
9
9
 
10
10
  MongoDB ships a dual-mode marketing identity — deep navy-teal hero bands carrying the bright MongoDB
11
- green (`#00ed64`) pill CTA over stark white documentation. This is the *operator* reading: the palette
12
- temperature, type voice, and rounder radius carry; the dark hero bands, 72px display type, and
13
- pill-on-everything stay behind. An internal tool wearing MongoDB reads as a light, comfortable,
11
+ green (`#00ed64`) pill CTA over stark white documentation. This is the *operator* reading: the
12
+ palette temperature, type voice, and rounder radius carry; the dark hero bands, 72px display type,
13
+ and pill-on-everything stay behind. An internal tool wearing MongoDB reads as a light, comfortable,
14
14
  engineered console — white canvas, deep navy-teal ink, one bright green accent, the category palette
15
- pressed into chart duty. Both machine blocks are fully valued; judgments away from the brand are
16
- annotated `# derived:`.
15
+ pressed into chart duty.
17
16
 
18
17
  ## 1 Visual Theme
19
18
 
@@ -154,83 +153,3 @@ in MongoDB's language. What carries and what stays behind:
154
153
  keyboard; the brand-green-dark `ring` outline is always visible.
155
154
  - Stay near-flat — hairline and the cool surface ladder before shadow; reach past a hairline only for a
156
155
  real overlay.
157
-
158
- ```yaml design-primitives
159
- radius: 8px # derived: MongoDB's md/input radius — rounder than a terminal, cards step to 12px, primary action pills
160
- shadow-intensity: 0.5 # derived: MongoDB uses genuine but soft navy-tinted elevation (alpha 0.04–0.16); one step over a purely flat brand
161
- border-weight: 1px
162
- density-gap: 1
163
- density-inset: 1
164
- font-sans: Euclid Circular A, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
165
- font-mono: Source Code Pro, SFMono-Regular, Menlo, Consolas, monospace
166
- font-weight-normal: 400
167
- font-weight-strong: 600 # derived: MongoDB reserves 600 for buttons and emphasis; display weight 500 is marketing-scale and stays behind
168
- heading-tracking: -0.01em # derived: MongoDB tracks display negative (-1.5 to -0.5px); scaled to a subtle operator-heading tighten
169
- duration-unit: 50ms
170
- duration-fast: 100ms
171
- duration-normal: 150ms
172
- duration-slow: 200ms # derived: corpus recommends 150–200ms ease; motion timings were not extracted
173
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus does not state an easing; standard operator ease
174
- contrast-boost: 1
175
- icon-stroke: 1.75 # derived: corpus names no icon library; lucide at a refined operator stroke
176
- icon-size-base: 16px
177
- sidebar-width-expanded: 248px # derived: no operator shell in a marketing corpus; standard operator sidebar
178
- sidebar-width-collapsed: 56px # derived: standard operator icon-rail width
179
- topbar-height: 56px # derived: MongoDB's ~64px marketing nav tightened to a slightly-taller-than-baseline operator bar
180
- side-panel-width: 420px # derived: standard operator detail-panel width
181
- side-panel-width-rich: 640px # derived: standard content-heavy panel width
182
- modal-width-max: 560px # derived: standard operator confirmation-modal cap
183
- form-max-width: 640px # derived: standard operator form column
184
- table-row-height: 44px # derived: MongoDB's 44px control height carries as a comfortable operator row
185
- verbosity: default
186
- feedback: subtle
187
- density-tier: standard # derived: MongoDB reads comfortable and breathable, not terminal-dense; archetypes step denser per the surface catalog
188
- product-traits: [dev-tools, database, dashboard, cloud-console]
189
- ```
190
-
191
- ```yaml lever-manifest
192
- version: 1
193
- fonts: { sans: "Euclid Circular A, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif", mono: "Source Code Pro, SFMono-Regular, Menlo, Consolas, monospace" }
194
- color-tokens:
195
- light:
196
- background: "#ffffff"
197
- foreground: "#001e2b"
198
- card: "#ffffff"
199
- card-foreground: "#001e2b"
200
- muted: "#f4f7f6"
201
- muted-foreground: "#5c6c7a"
202
- border: "#e1e5e8"
203
- input: "#c1ccd6"
204
- ring: "#00684a"
205
- primary: "#00ed64"
206
- primary-foreground: "#001e2b"
207
- accent: "#e3fcef"
208
- accent-foreground: "#00684a"
209
- destructive: "#d92d20" # derived: MongoDB defines no error red; a clean red tuned to the cool navy base
210
- destructive-foreground: "#ffffff"
211
- success: "#00a35c" # derived: brand-green-mid, deliberately deeper than the bright CTA so status reads as status
212
- warning: "#946f3f"
213
- popover: "#ffffff"
214
- popover-foreground: "#001e2b"
215
- secondary: "#f4f7f6"
216
- secondary-foreground: "#001e2b"
217
- chart-1: "#00684a" # derived: brand-green-dark anchors the chart set — readable green on white
218
- chart-2: "#3d4f9f" # derived: accent-blue from MongoDB's category palette
219
- chart-3: "#7b3ff2" # derived: accent-purple from the category palette
220
- chart-4: "#fa6e39" # derived: accent-orange from the category palette
221
- chart-5: "#f06bb8" # derived: accent-pink from the category palette
222
- sidebar: "#f9fbfa"
223
- sidebar-foreground: "#001e2b"
224
- sidebar-primary: "#00ed64"
225
- sidebar-primary-foreground: "#001e2b"
226
- sidebar-accent: "#e3fcef"
227
- sidebar-accent-foreground: "#00684a"
228
- sidebar-border: "#e1e5e8"
229
- sidebar-ring: "#00684a"
230
- spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
231
- radius-scale: [0, 4, 6, 8, 12, 9999]
232
- shadow-levels: [none, sm, md]
233
- motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
234
- icons: { family: lucide, stroke: 1.75 }
235
- accent-count: 1
236
- ```
@@ -9,10 +9,10 @@ sourced: 2026-07-04
9
9
 
10
10
  The operator reading of Notion's brand: a warm, paper-toned workspace where hierarchy is carried by
11
11
  hairlines and type weight, a single purple reserved for the one action that matters, and sober
12
- rectangular geometry — never pills. What carries is the temperament — warm-charcoal ink over off-white
13
- paper, beige hairline discipline, the 8px-button / 12px-card rhythm, one purple signal. What stays
14
- behind: the deep-navy marketing hero band, the pastel feature-card rainbow, the 80px display. Judgments
15
- away from the marketing brand are annotated `# derived:`.
12
+ rectangular geometry — never pills. What carries is the temperament — warm-charcoal ink over
13
+ off-white paper, beige hairline discipline, the 8px-button / 12px-card rhythm, one purple signal.
14
+ What stays behind: the deep-navy marketing hero band, the pastel feature-card rainbow, the 80px
15
+ display.
16
16
 
17
17
  ## 1 Visual Theme
18
18
 
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
138
138
  - Sober rectangles: 8px buttons, 12px cards. Pills are for status badges only — never the CTA.
139
139
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
140
140
  - Every workflow completes from the keyboard, `ring` focus always visible (P6); stay flat — hairline and weight before shadow, reaching past a hairline only for a real overlay.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # derived: Notion button/input radius (md 8px) is the base component radius; scale offers 12px for cards
144
- shadow-intensity: 0.5 # derived: Notion cards carry soft low-alpha shadows over a flat docs base — moderate lift, never harsh
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: Inter, system-ui, sans-serif # derived: Notion Sans is proprietary Inter-based; the operator wears its documented Inter fallback
149
- font-mono: ui-monospace, SFMono-Regular, Menlo, monospace # derived: corpus ships no branded mono; the system mono stack matches Notion's restrained editorial voice
150
- font-weight-normal: 400
151
- font-weight-strong: 600 # Notion headings are 600
152
- heading-tracking: -0.015em # derived: Notion tracks display sizes negative (-0.5px at 48px, -2px hero); proportional negative tracking at operator heading sizes
153
- duration-unit: 50ms # derived: corpus records no motion; standard operator base
154
- duration-fast: 100ms # derived: standard operator fast tier
155
- duration-normal: 160ms # derived: corpus recommends 150–200ms ease
156
- duration-slow: 240ms # derived: top of the corpus-recommended 150–200ms band, rounded for slow tier
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on easing; standard operator ease
158
- contrast-boost: 1 # Notion's hairlines are soft and low-contrast by design; no boost
159
- icon-stroke: 1.5 # derived: Notion's iconography reads light and editorial — one step under the operator 1.75 default
160
- icon-size-base: 16px
161
- sidebar-width-expanded: 248px # derived: marketing corpus has no app sidebar; standard operator width, matching Notion's ~240px product rail
162
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
163
- topbar-height: 56px # derived: Notion marketing nav is ~64px; tightened one step for an operator topbar
164
- side-panel-width: 420px # derived: standard operator detail-panel width
165
- side-panel-width-rich: 640px # derived: content-heavy panel, matching Notion's editorial reading measure
166
- modal-width-max: 560px # derived: standard operator modal cap
167
- form-max-width: 640px # derived: Notion's editorial content column reads ~640px
168
- table-row-height: 40px # derived: comfortable standard row; dense archetypes step down via the surface catalog
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: standard # derived: Notion marketing breathes, but its database/table product runs at a comfortable standard density — the operator mirrors the product, not the marketing
172
- product-traits: [workspace, docs, knowledge-base, crm, dashboard]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, sans-serif", mono: "ui-monospace, SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#37352f"
182
- card: "#ffffff"
183
- card-foreground: "#37352f"
184
- muted: "#f6f5f4"
185
- muted-foreground: "#5d5b54"
186
- border: "#e5e3df"
187
- input: "#c8c4be"
188
- ring: "#5645d4"
189
- primary: "#5645d4"
190
- primary-foreground: "#ffffff"
191
- accent: "#e6e0f5"
192
- accent-foreground: "#391c57"
193
- destructive: "#e03131"
194
- destructive-foreground: "#ffffff"
195
- success: "#1aae39"
196
- warning: "#dd5b00"
197
- popover: "#ffffff"
198
- popover-foreground: "#37352f"
199
- secondary: "#f6f5f4"
200
- secondary-foreground: "#37352f"
201
- chart-1: "#5645d4"
202
- chart-2: "#2a9d99"
203
- chart-3: "#1aae39"
204
- chart-4: "#dd5b00"
205
- chart-5: "#ff64c8"
206
- sidebar: "#f6f5f4"
207
- sidebar-foreground: "#37352f"
208
- sidebar-primary: "#5645d4"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#e6e0f5"
211
- sidebar-accent-foreground: "#391c57"
212
- sidebar-border: "#e5e3df"
213
- sidebar-ring: "#5645d4"
214
- spacing-scale: [4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
215
- radius-scale: [4, 6, 8, 12, 16, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 160, 240], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.5 }
219
- accent-count: 1
220
- ```
@@ -7,14 +7,13 @@ sourced: 2026-07-04
7
7
 
8
8
  # NVIDIA — the operator reading
9
9
 
10
- The operator reading of NVIDIA's marketing system: an engineering-grade look reduced to four colors —
11
- black, white, gray, and one violently saturated green — on an aggressively angular 2px grid. NVIDIA's
12
- own surfaces alternate deep-black hero/footer chapters with paper-white body content under hero-scale
13
- display type. This entry keeps what survives at operator scale: the strict single-green accent, the
14
- pure black/white/gray palette, the 2px radius, the weight-not-size type hierarchy, and flat hairline
15
- depth. The 48px display, dark hero chapters, corner squares, and editorial purple/blue washes stay
16
- behind. Unmistakably NVIDIA — stark, technical, one-color; judgments away from the corpus are annotated
17
- `# derived:` where it is silent.
10
+ The operator reading of NVIDIA's marketing system: an engineering-grade look reduced to four colors
11
+ — black, white, gray, and one violently saturated green — on an aggressively angular 2px grid.
12
+ NVIDIA's own surfaces alternate deep-black hero/footer chapters with paper-white body content under
13
+ hero-scale display type. This entry keeps what survives at operator scale: the strict single-green
14
+ accent, the pure black/white/gray palette, the 2px radius, the weight-not-size type hierarchy, and
15
+ flat hairline depth. The 48px display, dark hero chapters, corner squares, and editorial purple/blue
16
+ washes stay behind. Unmistakably NVIDIA — stark, technical, one-color.
18
17
 
19
18
  ## 1 Visual Theme
20
19
 
@@ -140,83 +139,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
140
139
  - Leave behind the marketing skin: 48px display headlines, dark full-bleed hero chapters, decorative
141
140
  corner squares, and the editorial purple/blue/pale accents. What carries: the black/white/gray/green
142
141
  palette, the neutral temperature, the 2px angular radius, the weight-not-size voice, and flat depth.
143
-
144
- ```yaml design-primitives
145
- radius: 2px # corpus: rounded.sm (2px) on every interactive element; the brand's aggressively angular signature
146
- shadow-intensity: 0.3 # corpus: effectively flat; the lone shadow is a 5px ambient at rgba(0,0,0,0.3) on sticky chrome
147
- border-weight: 1px # corpus: 1px hairline border is standard (focus edge steps to 2px green)
148
- density-gap: 0.9 # derived: dense engineering-grid character packs rows tighter than the standard tier
149
- density-inset: 0.9 # derived: matches the dense tier's tighter component insets
150
- font-sans: Inter, Arial, Helvetica, sans-serif # corpus: Inter is the named substitute for proprietary NVIDIA-EMEA; Arial the documented fallback
151
- font-mono: JetBrains Mono, ui-monospace, monospace # derived: the marketing system ships no mono; a neutral engineering mono for operator IDs/logs
152
- font-weight-normal: 400 # corpus: regular is 400
153
- font-weight-strong: 700 # corpus: the brand's only bold is 700 — hierarchy is 400-vs-700, no intermediate weight
154
- heading-tracking: 0 # corpus: letterSpacing is 0 across every display and heading step
155
- duration-unit: 50ms # derived: motion out of scope in corpus; functional operator default
156
- duration-fast: 100ms # derived: corpus silent on motion
157
- duration-normal: 150ms # derived: corpus silent on motion
158
- duration-slow: 250ms # derived: corpus silent on motion
159
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
160
- contrast-boost: 1 # derived: pure-black ink already maxes text contrast; borders stay at the brand hairline
161
- icon-stroke: 2 # derived: brand is bold/700-heavy and angular; full 2px lucide stroke matches, not the refined 1.75
162
- icon-size-base: 16px # corpus: chrome icons render 14–22px; 16px base control size
163
- sidebar-width-expanded: 248px # derived: corpus has no app shell (marketing top-nav); operator standard
164
- sidebar-width-collapsed: 56px # derived: corpus has no app shell; operator standard icon rail
165
- topbar-height: 56px # corpus: the brand's sub-nav strip is 56px (primary nav 64px); a tight operator bar
166
- side-panel-width: 420px # derived: corpus has no app shell; operator standard
167
- side-panel-width-rich: 640px # derived: corpus has no app shell; content-heavy detail width
168
- modal-width-max: 560px # derived: corpus shows only a locale-selector overlay; confirmations only
169
- form-max-width: 640px # derived: corpus caps content ~1280px; forms read comfortably at 640px
170
- table-row-height: 36px # derived: dense technical-grid character → tighter than the 40px standard
171
- verbosity: compact # derived: dense factual editorial voice trusts terse copy over explanatory chrome
172
- feedback: minimal # derived: austere single-signal brand — one green focus border, no documented hover
173
- density-tier: dense # corpus: dense multi-column technical grids are the brand's native mode
174
- product-traits: [dev-tools, dashboard, infrastructure, admin]
175
- ```
176
-
177
- ```yaml lever-manifest
178
- version: 1
179
- fonts: { sans: "Inter, Arial, Helvetica, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
180
- color-tokens:
181
- light:
182
- background: "#ffffff"
183
- foreground: "#000000"
184
- card: "#ffffff"
185
- card-foreground: "#000000"
186
- muted: "#f7f7f7"
187
- muted-foreground: "#757575"
188
- border: "#cccccc"
189
- input: "#cccccc"
190
- ring: "#76b900"
191
- primary: "#76b900"
192
- primary-foreground: "#000000"
193
- accent: "#eef7d6" # derived: pale NVIDIA-green wash for selection — the operator translation of the green accent
194
- accent-foreground: "#000000" # derived: black ink on the pale tint, on-brand with the stark-ink discipline
195
- destructive: "#e52020"
196
- destructive-foreground: "#ffffff"
197
- success: "#3f8500" # corpus: success-deep, used where the saturated brand green would clash
198
- warning: "#df6500"
199
- popover: "#ffffff"
200
- popover-foreground: "#000000"
201
- secondary: "#f7f7f7"
202
- secondary-foreground: "#000000"
203
- chart-1: "#76b900" # brand green
204
- chart-2: "#0046a4" # link-blue
205
- chart-3: "#952fc6" # editorial purple
206
- chart-4: "#df6500" # warning orange
207
- chart-5: "#898989" # derived: mid-gray series — honest to the brand's monochrome-forward palette
208
- sidebar: "#000000" # derived: NVIDIA's chrome is pure black; the black frame carried to the operator shell
209
- sidebar-foreground: "#ffffff"
210
- sidebar-primary: "#76b900"
211
- sidebar-primary-foreground: "#000000"
212
- sidebar-accent: "#1a1a1a" # corpus: surface-elevated — hover/active fill on the black frame
213
- sidebar-accent-foreground: "#ffffff"
214
- sidebar-border: "#5e5e5e" # corpus: hairline-strong, the divider on dark surfaces
215
- sidebar-ring: "#76b900"
216
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
217
- radius-scale: [0, 1, 2, 9999]
218
- shadow-levels: [none, sm]
219
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
220
- icons: { family: lucide, stroke: 2 }
221
- accent-count: 1
222
- ```
@@ -10,10 +10,9 @@ sourced: 2026-07-04
10
10
  An operator reading of Ollama's defiantly minimal brand: paper-white canvas end to end, hairline
11
11
  borders instead of shadow, and a single accent that is pure black itself. Ollama's marketing surface
12
12
  reads like a Markdown README — one continuous white sheet, a rounded display face, a black pill CTA,
13
- an inline `curl` snippet as the hero. An operator surface keeps the palette, the flatness, the rounded
14
- type voice, and the airy rhythm; it leaves behind the hero-scale display type, the full-pill CTA on
15
- every action, and the marketing whitespace at 88px. Both machine blocks are fully valued; every
16
- judgment away from the marketing brand is annotated `# derived:` where it lands.
13
+ an inline `curl` snippet as the hero. An operator surface keeps the palette, the flatness, the
14
+ rounded type voice, and the airy rhythm; it leaves behind the hero-scale display type, the full-pill
15
+ CTA on every action, and the marketing whitespace at 88px.
17
16
 
18
17
  ## 1 Visual Theme
19
18
 
@@ -28,8 +27,8 @@ brand's whole layout — and steps denser per surface archetype.
28
27
 
29
28
  ## 2 Color Roles
30
29
 
31
- Values are the brand's own (the manifest carries every hex). One accent — black — carries interaction;
32
- status hues signal only status.
30
+ Values are the brand's own. One accent — black — carries interaction; status hues signal only
31
+ status.
33
32
 
34
33
  | Role | Value | Allowed where |
35
34
  | --- | --- | --- |
@@ -144,83 +143,3 @@ Directives the emitting agent follows verbatim:
144
143
  - Every numeric column is `tabular-nums`; every ID / code / timestamp / log line is `font-mono`.
145
144
  - The focus `ring` is the blue — the brand's one functional non-monochrome element; keep it visible.
146
145
  - Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
147
-
148
- ```yaml design-primitives
149
- radius: 8px # derived: Ollama's soft-rounded character (cards 12px, chips 6px); operator default sits at md 8px — the marketing pill relaxes for dense scanning (9999 stays in the scale for chips/singular actions)
150
- shadow-intensity: 0.2 # derived: brand has no drop-shadow elevation anywhere; only a true overlay gets a whisper
151
- border-weight: 1px
152
- density-gap: 1.1 # derived: whitespace is the brand's entire layout (88px section rhythm) — spacious tier opens the grid; archetypes step denser
153
- density-inset: 1.1 # derived: coheres with the spacious tier
154
- font-sans: Nunito, system-ui, sans-serif # rationale: corpus names Nunito as the SF Pro Rounded substitute; the rounded voice is Ollama's whole brand expression and carries into headings and body alike
155
- font-mono: JetBrains Mono, ui-monospace, monospace # rationale: corpus's named ui-monospace substitute — IDs, codes, log lines, install snippets
156
- font-weight-normal: 400
157
- font-weight-strong: 600 # rationale: brand display runs 500–600; operator headings tighten to 600 for hierarchy against 400 body
158
- heading-tracking: 0 # rationale: brand tracks every type step at 0 — the rounded face needs no tightening
159
- duration-unit: 50ms # derived: corpus documents no motion; functional operator base
160
- duration-fast: 100ms # derived: functional operator motion, no marketing flourish
161
- duration-normal: 150ms # derived: as above
162
- duration-slow: 250ms # derived: as above
163
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: calm, standard functional ease
164
- contrast-boost: 1 # derived: pure-black ink on white already maxes contrast; no boost needed
165
- icon-stroke: 1.5 # derived: Ollama's icons are thin stroke-only line drawings; one step under lucide's 2 for a hairline-consistent stroke
166
- icon-size-base: 16px
167
- sidebar-width-expanded: 248px
168
- sidebar-width-collapsed: 56px
169
- topbar-height: 56px # rationale: brand primary-nav height is 56px
170
- side-panel-width: 420px
171
- side-panel-width-rich: 640px
172
- modal-width-max: 560px
173
- form-max-width: 640px
174
- table-row-height: 48px # derived: spacious tier default; dense archetypes step down via the surface catalog
175
- verbosity: compact # rationale: the README-terse, "the restraint is the design" ethos → lean copy
176
- feedback: minimal # rationale: the brand carries no banners or toasts; feedback stays understated
177
- density-tier: spacious # rationale: whitespace is the brand's entire layout
178
- product-traits: [dev-tools, dashboard, model-registry]
179
- ```
180
-
181
- ```yaml lever-manifest
182
- version: 1
183
- fonts: { sans: "Nunito, system-ui, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
184
- color-tokens:
185
- light:
186
- background: "#ffffff"
187
- foreground: "#000000"
188
- card: "#ffffff"
189
- card-foreground: "#000000"
190
- muted: "#fafafa"
191
- muted-foreground: "#737373"
192
- border: "#e5e5e5"
193
- input: "#e5e5e5"
194
- ring: "#3b82f6" # derived: brand's translucent focus-ring blue made solid for a crisp operator outline — the one functional non-monochrome element
195
- primary: "#000000"
196
- primary-foreground: "#ffffff"
197
- accent: "#f5f5f5" # derived: one step past muted so row/nav selection reads distinct from hover
198
- accent-foreground: "#000000"
199
- destructive: "#c92a2a" # derived: terminal-red family, darkened to AA text contrast on white
200
- destructive-foreground: "#ffffff"
201
- success: "#1a7f37" # derived: terminal-green darkened to AA text contrast on white
202
- warning: "#b45309" # derived: terminal-yellow → text-safe amber
203
- popover: "#ffffff"
204
- popover-foreground: "#000000"
205
- secondary: "#fafafa"
206
- secondary-foreground: "#000000"
207
- chart-1: "#000000" # derived: monochrome chart ramp honors the brand's no-color identity — the neutral ladder ink → charcoal → body → mute → hairline-strong
208
- chart-2: "#525252"
209
- chart-3: "#737373"
210
- chart-4: "#a3a3a3"
211
- chart-5: "#d4d4d4"
212
- sidebar: "#fafafa" # derived: faint off-white rail distinct from the white canvas
213
- sidebar-foreground: "#000000"
214
- sidebar-primary: "#000000"
215
- sidebar-primary-foreground: "#ffffff"
216
- sidebar-accent: "#f5f5f5"
217
- sidebar-accent-foreground: "#000000"
218
- sidebar-border: "#e5e5e5"
219
- sidebar-ring: "#3b82f6"
220
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64, 88]
221
- radius-scale: [0, 6, 8, 12, 9999]
222
- shadow-levels: [none, sm, md]
223
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
224
- icons: { family: lucide, stroke: 1.5 }
225
- accent-count: 1
226
- ```