@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
@@ -120,118 +120,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
120
120
  is `tabular-nums`; every ID / code / timestamp is `font-mono`; the `ring` is always visible.
121
121
  - Leave marketing behind: hero display (40–80px), the -3px display tracking, product screenshots as the
122
122
  page protagonist, 96px section rhythm, pill toggles, the inverse-white CTA.
123
-
124
- ```yaml design-primitives
125
- radius: 8px # derived: Linear's button/input radius (rounded.md 8px) as the operator base; cards step to 12px
126
- shadow-intensity: 0.3 # derived: Linear resists shadow; rank is surface ladder + hairline
127
- border-weight: 1px
128
- density-gap: 0.85 # derived: dense, technical read — tighter than a standard operator app
129
- density-inset: 0.85 # derived: matches the dense gap
130
- font-sans: Inter, SF Pro Display, -apple-system, system-ui, sans-serif # derived: Linear's custom sans is proprietary; corpus names Inter as the closest free substitute
131
- font-mono: Geist Mono, JetBrains Mono, ui-monospace, monospace # derived: Linear Mono substitute per corpus
132
- font-weight-normal: 400
133
- font-weight-strong: 600
134
- heading-tracking: -0.02em # derived: Linear's negative display tracking scaled to operator heading sizes (hero -3px stays behind)
135
- duration-unit: 50ms # derived: no corpus motion; snappy operator base
136
- duration-fast: 100ms # derived: Linear's UI reads notably fast
137
- duration-normal: 150ms # derived: functional transition default
138
- duration-slow: 200ms # derived: kept short — Linear favors crisp, not cinematic
139
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: no corpus easing; standard crisp ease
140
- contrast-boost: 1 # derived: surface-ladder hierarchy needs no border boosting
141
- icon-stroke: 1.5 # derived: Linear iconography is fine and precise; below lucide's default 2
142
- icon-size-base: 16px
143
- sidebar-width-expanded: 240px # derived: Linear product left-nav proportion
144
- sidebar-width-collapsed: 56px # derived: icon-rail width
145
- topbar-height: 56px # corpus top-nav height
146
- side-panel-width: 440px # derived: Linear issue-detail panel proportion
147
- side-panel-width-rich: 640px # derived: content-heavy detail
148
- modal-width-max: 560px # derived: confirmation-dialog cap
149
- form-max-width: 640px # derived: readable form column
150
- table-row-height: 36px # derived: Linear's dense issue-row height
151
- verbosity: compact # derived: Linear's chrome is intentionally minimal and terse
152
- feedback: subtle # derived: understated, functional motion
153
- density-tier: dense # derived: Linear reads dense like a technical tool, not a spacious consumer app
154
- product-traits: [dev-tools, issue-tracker, project-management, dashboard]
155
- ```
156
-
157
- ```yaml lever-manifest
158
- version: 1
159
- fonts: { sans: "Inter, SF Pro Display, -apple-system, system-ui, sans-serif", mono: "Geist Mono, JetBrains Mono, ui-monospace, monospace" }
160
- color-tokens:
161
- light:
162
- background: "#ffffff"
163
- foreground: "#0d0e10" # derived: near-black ink, softened from corpus inverse-ink #000000 for operator legibility
164
- card: "#ffffff"
165
- card-foreground: "#0d0e10"
166
- muted: "#f4f5f8" # derived: light cool-gray fill, inverse-surface family
167
- muted-foreground: "#6b7280" # derived: mid cool gray for secondary text
168
- border: "#e6e7eb" # derived: light hairline, cool gray
169
- input: "#d9dbe0" # derived: slightly stronger light field edge
170
- ring: "#5e69d1"
171
- primary: "#5e6ad2"
172
- primary-foreground: "#ffffff"
173
- accent: "#eceefb" # derived: faint lavender selected-row wash (Linear's product behavior)
174
- accent-foreground: "#5e6ad2"
175
- destructive: "#eb5757" # derived: Linear product red (marketing avoids red; the product ships it)
176
- destructive-foreground: "#ffffff"
177
- success: "#27a644"
178
- warning: "#f2994a" # derived: operator amber, Linear product palette family (corpus has no warning)
179
- popover: "#ffffff"
180
- popover-foreground: "#0d0e10"
181
- secondary: "#f4f5f8"
182
- secondary-foreground: "#0d0e10"
183
- chart-1: "#5e6ad2" # derived: Linear product tag palette (lavender/blue/green/amber/red)
184
- chart-2: "#4ea7fc"
185
- chart-3: "#4cb782"
186
- chart-4: "#f2994a"
187
- chart-5: "#eb5757"
188
- sidebar: "#fbfbfc" # derived: faint cool tint, distinct from the white canvas
189
- sidebar-foreground: "#0d0e10"
190
- sidebar-primary: "#5e6ad2"
191
- sidebar-primary-foreground: "#ffffff"
192
- sidebar-accent: "#eceefb"
193
- sidebar-accent-foreground: "#5e6ad2"
194
- sidebar-border: "#e6e7eb"
195
- sidebar-ring: "#5e69d1"
196
- dark:
197
- background: "#010102"
198
- foreground: "#f7f8f8"
199
- card: "#0f1011"
200
- card-foreground: "#f7f8f8"
201
- muted: "#141516"
202
- muted-foreground: "#8a8f98"
203
- border: "#23252a"
204
- input: "#34343a" # corpus hairline-strong — field edges read on near-black
205
- ring: "#5e69d1"
206
- primary: "#5e6ad2"
207
- primary-foreground: "#ffffff"
208
- accent: "#1c1d2b" # derived: faint lavender-tinted surface lift for selected rows
209
- accent-foreground: "#f7f8f8"
210
- destructive: "#eb5757" # derived: Linear product red
211
- destructive-foreground: "#ffffff"
212
- success: "#27a644"
213
- warning: "#f2994a" # derived: operator amber (corpus has no warning)
214
- popover: "#18191a" # corpus surface-3 — dropdowns and menus
215
- popover-foreground: "#f7f8f8"
216
- secondary: "#0f1011"
217
- secondary-foreground: "#f7f8f8"
218
- chart-1: "#5e6ad2" # derived: Linear product tag palette
219
- chart-2: "#4ea7fc"
220
- chart-3: "#4cb782"
221
- chart-4: "#f2994a"
222
- chart-5: "#eb5757"
223
- sidebar: "#0f1011"
224
- sidebar-foreground: "#d0d6e0" # corpus ink-muted for nav labels
225
- sidebar-primary: "#5e6ad2"
226
- sidebar-primary-foreground: "#ffffff"
227
- sidebar-accent: "#1c1d2b"
228
- sidebar-accent-foreground: "#f7f8f8"
229
- sidebar-border: "#23252a"
230
- sidebar-ring: "#5e69d1"
231
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
232
- radius-scale: [0, 4, 6, 8, 12, 9999]
233
- shadow-levels: [none, sm, md]
234
- motion: { durations: [100, 150, 200], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
235
- icons: { family: lucide, stroke: 1.5 }
236
- accent-count: 1
237
- ```
@@ -8,11 +8,11 @@ sourced: 2026-07-04
8
8
  # Lovable — warm parchment operator design
9
9
 
10
10
  An operator reading of Lovable's warm, humanist brand. This entry keeps what carries onto a dense
11
- internal tool — the cream-and-charcoal palette, the opacity-derived neutral ramp, the soft warm radius
12
- character, the humanist type voice, the flat border-over-shadow depth — and leaves the marketing behind:
13
- hero-scale display type, negative tracking at 48–60px, the gradient washes, the 96–208px editorial
14
- section spacing. Light by default; a single achromatic accent (charcoal `primary`) does the emphasis
15
- work. Both machine blocks are fully valued; every judgment away from the source lands with a `# derived:` note.
11
+ internal tool — the cream-and-charcoal palette, the opacity-derived neutral ramp, the soft warm
12
+ radius character, the humanist type voice, the flat border-over-shadow depth — and leaves the
13
+ marketing behind: hero-scale display type, negative tracking at 48–60px, the gradient washes, the
14
+ 96–208px editorial section spacing. Light by default; a single achromatic accent (charcoal
15
+ `primary`) does the emphasis work.
16
16
 
17
17
  ## 1 Visual Theme
18
18
 
@@ -138,83 +138,3 @@ What carries from Lovable onto an operator tool, and what stays behind:
138
138
  - **Numbers**: every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
139
139
  - **Keyboard-first**: every workflow completes from the keyboard; the `ring` focus outline is always visible (P6).
140
140
  - **Left behind** (marketing only): hero type at 36–60px, display-scale negative tracking, the gradient washes, the 96–208px editorial spacing. Warmth comes from palette and type, not lavish gaps.
141
-
142
- ```yaml design-primitives
143
- radius: 6px
144
- shadow-intensity: 0.3 # derived: brand is flat, borders over shadows; only the soft focus glow and button inset lift
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: Camera Plain Variable, ui-sans-serif, system-ui, sans-serif
149
- font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, monospace # derived: no brand mono documented; IBM Plex Mono's humanist warmth pairs with Camera Plain for IDs/codes/logs
150
- font-weight-normal: 400
151
- font-weight-strong: 600 # derived: brand ceiling is 600 — never 700
152
- heading-tracking: -0.015em # derived: Camera Plain compresses at scale; scaled down from the −0.9/−1.5px display tracking to a gentle operator-heading value
153
- duration-unit: 50ms # derived: corpus silent on timing; operator default
154
- duration-fast: 100ms # derived: corpus silent on timing; operator default
155
- duration-normal: 150ms # derived: corpus silent on timing; operator default
156
- duration-slow: 250ms # derived: corpus silent on timing; operator default
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard ease suits the soft, diffused character
158
- contrast-boost: 1 # derived: the soft warm #eceae4 hairline is intentional; boosting contrast would fight the brand
159
- icon-stroke: 1.75 # derived: shadcn/lucide default 2 stepped to 1.75 for a refined humanist stroke
160
- icon-size-base: 16px
161
- sidebar-width-expanded: 248px # derived: source is a marketing site with no shell; operator default
162
- sidebar-width-collapsed: 56px # derived: operator default
163
- topbar-height: 56px # derived: a touch taller than baseline to honor the comfortable, breathing rhythm
164
- side-panel-width: 420px # derived: operator default
165
- side-panel-width-rich: 640px # derived: operator default
166
- modal-width-max: 560px # derived: operator default
167
- form-max-width: 640px # derived: marketing max width ~1200px is hero-scale; operator forms cap tighter
168
- table-row-height: 44px # derived: comfortable 8×16 button padding character carried to a slightly taller warm row
169
- verbosity: default
170
- feedback: subtle # derived: brand uses opacity-0.8 active and soft diffused focus — gentle, understated feedback
171
- density-tier: standard # derived: a spacious marketing brand read at operator density; warmth carries via palette and type, not lavish gaps
172
- product-traits: [dev-tools, ai-builder, no-code]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Camera Plain Variable, ui-sans-serif, system-ui, sans-serif", mono: "IBM Plex Mono, ui-monospace, SFMono-Regular, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#f7f4ed"
181
- foreground: "#1c1c1c"
182
- card: "#f7f4ed"
183
- card-foreground: "#1c1c1c"
184
- muted: "#eeebe5" # derived: charcoal ~4% over cream (rgba(28,28,28,0.04)) resolved to an opaque warm tint
185
- muted-foreground: "#5f5f5d"
186
- border: "#eceae4"
187
- input: "#eceae4"
188
- ring: "#3b82f6"
189
- primary: "#1c1c1c"
190
- primary-foreground: "#fcfbf8"
191
- accent: "#eeebe5" # derived: subtle warm hover/selection tint, same as muted
192
- accent-foreground: "#1c1c1c"
193
- destructive: "#c0392b" # derived: warm red tuned to the parchment palette (corpus silent on status hues)
194
- destructive-foreground: "#fcfbf8"
195
- success: "#4f7a3f" # derived: muted sage green, warm-leaning to fit the palette
196
- warning: "#c08a2d" # derived: ochre amber, warm-leaning
197
- popover: "#fcfbf8" # derived: off-white lifts overlays a half-step above the cream canvas
198
- popover-foreground: "#1c1c1c"
199
- secondary: "#eeebe5" # derived: the cream-surface button given a faint warm fill so it reads against the cream page
200
- secondary-foreground: "#1c1c1c"
201
- chart-1: "#1c1c1c" # derived: charcoal anchors the primary series
202
- chart-2: "#c08a2d" # derived: warm categorical ramp from the status hues + ring blue, kept within the palette
203
- chart-3: "#4f7a3f" # derived
204
- chart-4: "#bc6c3a" # derived: terracotta/burnt-orange to extend the warm ramp
205
- chart-5: "#3b82f6" # derived: the ring blue as a single cool anchor
206
- sidebar: "#f2efe6" # derived: a faintly deeper cream than the canvas so the nav rail reads as chrome
207
- sidebar-foreground: "#1c1c1c"
208
- sidebar-primary: "#1c1c1c"
209
- sidebar-primary-foreground: "#fcfbf8"
210
- sidebar-accent: "#eeebe5"
211
- sidebar-accent-foreground: "#1c1c1c"
212
- sidebar-border: "#eceae4"
213
- sidebar-ring: "#3b82f6"
214
- spacing-scale: [4, 8, 12, 16, 24, 32, 40, 56, 80] # 8px base; editorial 96–208 stay behind with the marketing
215
- radius-scale: [4, 6, 8, 12, 16, 9999] # no hard 0 — the brand's soft-corner character starts at 4px
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
- ```
@@ -7,13 +7,12 @@ sourced: 2026-07-04
7
7
 
8
8
  # Meta — the stark-white, cobalt-accent operator reading
9
9
 
10
- An operator translation of Meta's hardware-commerce design language (Quest, Ray-Ban Meta glasses). The
11
- merchandising theatre stays behind: the 64px Optimistic hero display, full-bleed photography, the
12
- dual-CTA hero, the black-pill marketing CTA, the 80/120px rhythm. What carries is the chassis underneath
13
- — a stark white canvas (`#ffffff`), a single saturated cobalt accent (`#0064e0`, Meta's own buy-now
14
- color promoted to the operator primary), a cool blue-gray neutral temperature, Optimistic VF's snug
15
- geometric-humanist voice, moderate rounding, and Facebook-Blue focus. Both blocks are fully valued;
16
- judgments past the corpus are annotated `# derived:`, corpus values `# corpus:`.
10
+ An operator translation of Meta's hardware-commerce design language (Quest, Ray-Ban Meta glasses).
11
+ The merchandising theatre stays behind: the 64px Optimistic hero display, full-bleed photography,
12
+ the dual-CTA hero, the black-pill marketing CTA, the 80/120px rhythm. What carries is the chassis
13
+ underneath — a stark white canvas (`#ffffff`), a single saturated cobalt accent (`#0064e0`, Meta's
14
+ own buy-now color promoted to the operator primary), a cool blue-gray neutral temperature,
15
+ Optimistic VF's snug geometric-humanist voice, moderate rounding, and Facebook-Blue focus.
17
16
 
18
17
  ## 1 Visual Theme
19
18
 
@@ -65,7 +64,7 @@ is drawn snug — body carries a `-0.14` to `-0.16px` negative tracking, reflect
65
64
  | caption | uppercase eyebrow | 12px / 1.33 | `font-weight-strong`, `+0.02em`, uppercase |
66
65
  | code | IDs, codes, timestamps | 13px / 1.5 | `font-weight-normal` |
67
66
 
68
- Body runs at 16px, not 14 — Meta's `body-md` reading pace; emphasise by weight, never size. The `ss01`/`ss02` heading sets are a hand-applied invariant the machine block can't carry.
67
+ Body runs at 16px, not 14 — Meta's `body-md` reading pace; emphasise by weight, never size.
69
68
 
70
69
  ## 4 Component Stylings
71
70
 
@@ -138,83 +137,3 @@ The operator sweep is 375 / 768 / 1024 / 1440.
138
137
  - Accent only the primary action in cobalt. If two things want the accent, one of them is not primary.
139
138
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; keep the type snug.
140
139
  - Every workflow completes from the keyboard; the Facebook-Blue `ring` focus outline is always visible.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # corpus: form inputs / radio options at rounded.lg (8px); the 100px marketing pill stays behind (badges keep the pill)
144
- shadow-intensity: 0.3 # corpus: only two elevated layers, at rgba ~0.2–0.3 alpha; chrome is otherwise flat
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: Optimistic VF, Montserrat, Inter, system-ui, sans-serif # corpus: Optimistic VF with Montserrat fallback; Inter added for dense-body legibility
149
- font-mono: Roboto Mono, ui-monospace, SFMono-Regular, monospace # derived: corpus ships no mono; Roboto Mono is the geometric-neutral sibling to the Optimistic/Montserrat voice
150
- font-weight-normal: 400 # corpus: body-md weight 400
151
- font-weight-strong: 600 # derived: corpus display headings are 500 (too light to separate at operator sizes) and functional emphasis 700; 600 is the operator middle
152
- heading-tracking: -0.01em # derived: corpus tracks headings at 0 but sets body snug (-0.14/-0.16px); Optimistic is drawn snug, so a slight -0.01em keeps that character at heading scale
153
- duration-unit: 50ms # derived: corpus documents no base unit; operator standard
154
- duration-fast: 100ms # derived: corpus silent below its 150ms floor
155
- duration-normal: 150ms # corpus: recommends 150–250ms ease-out for primary surface transitions
156
- duration-slow: 300ms # corpus: recommends 300ms ease-in-out for accordion expand/collapse
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus recommends ease-out; the standard functional curve
158
- contrast-boost: 1 # derived: standard density reads as a grid without boosted hairlines
159
- icon-stroke: 1.75 # derived: corpus uses line icons (20–32px); operator-standard stroke
160
- icon-size-base: 16px # derived: corpus feature icons run 20–32px; the base UI glyph tightens to 16px
161
- sidebar-width-expanded: 248px # derived: corpus has no app shell; operator standard rail
162
- sidebar-width-collapsed: 56px # derived: corpus has no app shell; operator standard icon rail
163
- topbar-height: 56px # derived: corpus top nav ~64px is marketing-generous; operator tightens to 56px
164
- side-panel-width: 420px # derived: corpus PDP purchase rail caps ~380px; nudged to 420 for operator detail
165
- side-panel-width-rich: 640px # derived: content-heavy detail width
166
- modal-width-max: 560px # derived: corpus has no shell; confirmations only
167
- form-max-width: 640px # derived: corpus configurator column; a comfortable form cap
168
- table-row-height: 44px # derived: corpus has no tables; the 44px input / touch-target height sets a comfortable row
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: standard # derived: corpus marketing breathes (80/120px) but the commerce configurator runs dense; the operator reading takes the panel's standard tier
172
- product-traits: [catalog, commerce, dashboard, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Optimistic VF, Montserrat, Inter, system-ui, sans-serif", mono: "Roboto Mono, ui-monospace, SFMono-Regular, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#0a1317"
182
- card: "#ffffff"
183
- card-foreground: "#0a1317"
184
- muted: "#f1f4f7"
185
- muted-foreground: "#5d6c7b"
186
- border: "#dee3e9"
187
- input: "#ced0d4"
188
- ring: "#1876f2"
189
- primary: "#0064e0"
190
- primary-foreground: "#ffffff"
191
- accent: "#e6f0fc" # derived: light tint of cobalt #0064e0 (corpus tints callouts with primary-soft at 15% alpha)
192
- accent-foreground: "#0064e0"
193
- destructive: "#e41e3f"
194
- destructive-foreground: "#ffffff"
195
- success: "#31a24c"
196
- warning: "#f2a918" # derived: corpus splits attention #f2a918 and promo yellow #f7b928; the operator warning takes the legible amber (promo yellow fails as status text on white)
197
- popover: "#ffffff"
198
- popover-foreground: "#0a1317"
199
- secondary: "#e9edf2" # derived: one step below surface-soft so secondary buttons separate from the muted hover tint
200
- secondary-foreground: "#0a1317"
201
- chart-1: "#0064e0" # cobalt primary
202
- chart-2: "#0091ff" # primary-soft sky
203
- chart-3: "#a121ce" # Oculus purple
204
- chart-4: "#31a24c" # success green
205
- chart-5: "#f2a918" # attention amber
206
- sidebar: "#f7f9fb" # derived: a faint cool tint below the white canvas; Meta's nav is white with a hairline, kept faintly recessive for operator chrome
207
- sidebar-foreground: "#0a1317"
208
- sidebar-primary: "#0064e0"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#e6f0fc"
211
- sidebar-accent-foreground: "#0064e0"
212
- sidebar-border: "#dee3e9"
213
- sidebar-ring: "#1876f2"
214
- spacing-scale: [4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 4, 6, 8, 16, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.75 }
219
- accent-count: 1
220
- ```
@@ -9,10 +9,9 @@ sourced: 2026-07-04
9
9
 
10
10
  The design a project wears when it names or resembles MiniMax and the user confirms the match. A
11
11
  *deliberate* operator reading, not a marketing transcription: MiniMax's public surfaces are stark
12
- monochrome broken open by vibrant gradient product cards and an oversized 80px hero display. An operator
13
- surface keeps the monochrome bones, the near-black signature action, and the DM Sans voice — and leaves
14
- the gradients, the pill-everything CTA, and the hero-scale type behind. Judgments past the corpus are
15
- annotated `# derived:`.
12
+ monochrome broken open by vibrant gradient product cards and an oversized 80px hero display. An
13
+ operator surface keeps the monochrome bones, the near-black signature action, and the DM Sans voice
14
+ — and leaves the gradients, the pill-everything CTA, and the hero-scale type behind.
16
15
 
17
16
  ## 1 Visual Theme
18
17
 
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
138
137
  - Accent only the primary action; the one chromatic accent (blue) is for focus and links.
139
138
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4). Keyboard
140
139
  completes every workflow; the `ring` focus outline is always visible (P6). Stay flat — hairline before shadow.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # derived: brand rectangular controls (inputs/data-tables) run 6-8px; 8px is the operator base (the marketing 9999 pill stays behind)
144
- shadow-intensity: 0.4 # derived: brand runs predominantly flat with subtle rgba(0,0,0,0.04-0.08) shadows; shadow only lifts true overlays
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: DM Sans, Inter, system-ui, sans-serif
149
- font-mono: ui-monospace, SFMono-Regular, Menlo, monospace # derived: brand ships no dedicated mono, uses system monospace for code
150
- font-weight-normal: 400
151
- font-weight-strong: 600
152
- heading-tracking: -0.01em # derived: brand display tracks -2px to -0.5px; scaled to operator heading sizes that becomes a mild negative to keep the tight voice
153
- duration-unit: 50ms # derived: motion not extracted; corpus recommends 150-200ms ease
154
- duration-fast: 100ms # derived: motion not extracted
155
- duration-normal: 150ms # derived: corpus recommends 150-200ms ease
156
- duration-slow: 200ms # derived: corpus recommends 150-200ms ease
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard ease; corpus specifies only "ease"
158
- contrast-boost: 1
159
- icon-stroke: 1.75 # derived: corpus does not state stroke; refined operator stroke under lucide's 2
160
- icon-size-base: 16px
161
- sidebar-width-expanded: 240px # derived: corpus docs rail ~220px; operator nav widened slightly for icon+label
162
- sidebar-width-collapsed: 56px # derived: standard icon rail; corpus silent
163
- topbar-height: 56px # brand platform/docs nav ~56px (denser than the 64px marketing bar)
164
- side-panel-width: 420px # derived: no side-panel pattern in corpus (marketing/docs only); operator default
165
- side-panel-width-rich: 640px # derived: content-heavy detail panel
166
- modal-width-max: 560px # derived: corpus defines a modal elevation level but no width
167
- form-max-width: 640px # derived: corpus docs prose ~720px; operator form column tightened
168
- table-row-height: 44px # derived: corpus packs table rows to 16px padding around 14px body -> ~44px
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: standard
172
- product-traits: [ai-platform, dashboard, dev-tools, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "DM Sans, Inter, system-ui, sans-serif", mono: "ui-monospace, SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#0a0a0a"
182
- card: "#ffffff"
183
- card-foreground: "#0a0a0a"
184
- muted: "#f7f8fa"
185
- muted-foreground: "#5f5f5f"
186
- border: "#e5e7eb"
187
- input: "#e5e7eb"
188
- ring: "#1d4ed8"
189
- primary: "#0a0a0a"
190
- primary-foreground: "#ffffff"
191
- accent: "#f2f3f5"
192
- accent-foreground: "#0a0a0a"
193
- destructive: "#d45656"
194
- destructive-foreground: "#ffffff"
195
- success: "#1ba673"
196
- warning: "#d97706"
197
- popover: "#ffffff"
198
- popover-foreground: "#0a0a0a"
199
- secondary: "#f7f8fa"
200
- secondary-foreground: "#0a0a0a"
201
- chart-1: "#1456f0"
202
- chart-2: "#ff5530"
203
- chart-3: "#a855f7"
204
- chart-4: "#ea5ec1"
205
- chart-5: "#3daeff"
206
- sidebar: "#f7f8fa"
207
- sidebar-foreground: "#0a0a0a"
208
- sidebar-primary: "#0a0a0a"
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#f2f3f5"
211
- sidebar-accent-foreground: "#0a0a0a"
212
- sidebar-border: "#e5e7eb"
213
- sidebar-ring: "#1d4ed8"
214
- spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48, 64]
215
- radius-scale: [0, 4, 6, 8, 12, 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
- ```
@@ -17,8 +17,7 @@ gradient hero bands, the 72px hero display, the full-pill buttons, the bright te
17
17
  and the 96/120px marketing section rhythm.
18
18
 
19
19
  **Light holds cleanly.** The white canvas (`#ffffff`) *is* the brand's documentation surface — no
20
- categorically-dark exception; the light-default floor stands as-is. Judgments away from the marketing
21
- brand are annotated `# derived:` where the corpus is silent.
20
+ categorically-dark exception; the light-default floor stands as-is.
22
21
 
23
22
  ## 1 Visual Theme
24
23
 
@@ -32,9 +31,9 @@ on its black-pill button, spent here as text. Density is `standard` — layout-d
32
31
 
33
32
  ## 2 Color Roles
34
33
 
35
- Light values (the manifest carries hex — the corpus's native format). One accent — mint `primary` is
36
- the only chromatic hue that carries UI meaning; tag-blue, warn-amber, and testimonial-orange are
37
- chart/status graces (see §7), status hues speak only status.
34
+ Light values. One accent — mint `primary` is the only chromatic hue that carries UI meaning;
35
+ tag-blue, warn-amber, and testimonial-orange are chart/status graces (see §7), status hues speak
36
+ only status.
38
37
 
39
38
  | Role | Value | Allowed where |
40
39
  | --- | --- | --- |
@@ -138,83 +137,3 @@ Directives the emitting agent follows verbatim:
138
137
  - Every numeric column is `tabular-nums`; every ID / code / timestamp / type-signature is `font-mono` (Geist Mono). Keep long-form docs prose at 16px/1.5; operator chrome at 14px.
139
138
  - Depth is hairlines and surface tints, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work; keyboard-first, the mint `ring` focus outline always visible.
140
139
  - Leave behind: the sky/teal gradient hero bands, the 72px hero display, the full-pill buttons, the testimonial-orange card, and the 96/120px section rhythm — marketing presentation, not operator chrome.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # corpus: inputs/search-pill/code-blocks/secondary-cards at rounded.md (8px); cards step to 12px (lg); the full-pill button is marketing — pill is badges/tabs only
144
- shadow-intensity: 0.4 # derived: docs surfaces run flat (level-0 hairline); the 0.08–0.12 alpha feature/mockup shadows are marketing — only true overlays lift
145
- border-weight: 1px # corpus: 1px hairlines (#e5e5e5) carry dividers and card edges
146
- density-gap: 1 # derived: docs are layout-dense but hold 16px/1.5 prose; an honest standard operator tier
147
- density-inset: 1 # derived: matches density-gap for coherent component insets
148
- font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif # corpus: Inter across every UI surface, with the documented system fallbacks
149
- font-mono: Geist Mono, "SF Mono", Menlo, Consolas, monospace # corpus: Geist Mono on every code surface, documented fallbacks
150
- font-weight-normal: 400 # corpus: body and prose at 400
151
- font-weight-strong: 600 # corpus: every heading at 600 (button labels/active nav at 500)
152
- heading-tracking: -0.01em # corpus: negative tracking is display-scale (-2px→-0.5px), relaxing to 0 by 28px; a faint -0.01em keeps operator titles crisp without the hero tightness
153
- duration-unit: 50ms # derived: corpus notes motion is unextracted (known gap); operator-standard functional base
154
- duration-fast: 100ms # derived: corpus silent on curve; functional tempo
155
- duration-normal: 150ms # corpus: recommends 150–200ms ease for state transitions; standard functional tempo
156
- duration-slow: 250ms # derived: the corpus 150–200ms recommendation extended for overlay/panel transitions
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent on curve; standard functional ease
158
- contrast-boost: 1 # derived: the light-gray hairlines are intentionally quiet; no boost
159
- icon-stroke: 1.75 # derived: corpus near-silent on icons (16px chevrons); refined operator stroke one step under lucide's 2
160
- icon-size-base: 16px # corpus: doc/FAQ chevrons render at 16px
161
- sidebar-width-expanded: 240px # corpus: documentation left sidebar nav ~240px
162
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
163
- topbar-height: 56px # corpus: documentation top nav ~56px (the app-like surface; marketing nav is 64px)
164
- side-panel-width: 420px # derived: corpus TOC (~200px) is thin; standard operator detail panel
165
- side-panel-width-rich: 640px # derived: content-heavy detail, near the corpus prose column (~720px)
166
- modal-width-max: 560px # derived: operator confirmation cap
167
- form-max-width: 640px # derived: corpus doc prose caps ~720px; operator single-column form caps at 640
168
- table-row-height: 40px # derived: corpus packs rows to 16px vertical padding on 14px cells; standard operator 40px
169
- verbosity: default
170
- feedback: subtle # derived: corpus is quiet (no-hover policy, unextracted motion); gentle present feedback, not austere silence
171
- density-tier: standard # derived: docs are layout-dense but insist on readable 16px/1.5 prose; an honest standard operator tier
172
- product-traits: [dev-tools, documentation, dashboard, saas]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif", mono: "Geist Mono, \"SF Mono\", Menlo, Consolas, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#0a0a0a"
182
- card: "#ffffff"
183
- card-foreground: "#0a0a0a"
184
- muted: "#f7f7f7"
185
- muted-foreground: "#5a5a5c" # corpus steel — labels, table headers, secondary text
186
- border: "#e5e5e5"
187
- input: "#e5e5e5"
188
- ring: "#00d4a4"
189
- primary: "#00d4a4"
190
- primary-foreground: "#0a0a0a" # corpus: the mint button carries ink text, not white
191
- accent: "#ededed" # derived: corpus hairline-soft as the neutral selection lift; mint stays the indicator, never the fill
192
- accent-foreground: "#0a0a0a"
193
- destructive: "#d45656" # corpus brand-error
194
- destructive-foreground: "#ffffff"
195
- success: "#1ba673" # corpus brand-annotate green — distinct from the teal-green primary so status reads green, not mint
196
- warning: "#c37d0d" # corpus brand-warn amber
197
- popover: "#ffffff"
198
- popover-foreground: "#0a0a0a"
199
- secondary: "#f7f7f7" # corpus surface — secondary-button and search-pill fill
200
- secondary-foreground: "#0a0a0a"
201
- chart-1: "#00d4a4" # mint — primary series
202
- chart-2: "#3772cf" # corpus brand-tag blue
203
- chart-3: "#c37d0d" # corpus brand-warn amber
204
- chart-4: "#f55a3c" # corpus testimonial-orange — chart-only here, off general chrome
205
- chart-5: "#7c5cff" # derived: violet for a fifth categorical hue; corpus has no fifth series
206
- sidebar: "#fafafa" # derived: corpus surface-soft — a faint chrome step below the white canvas so the rail reads distinct
207
- sidebar-foreground: "#0a0a0a" # derived: base nav ink; resting items dim to steel, active brighten to ink (corpus)
208
- sidebar-primary: "#00d4a4" # corpus: mint active-nav indicator
209
- sidebar-primary-foreground: "#0a0a0a"
210
- sidebar-accent: "#ededed" # derived: neutral active/hover lift over the #fafafa rail (corpus active-nav bg is neutral gray)
211
- sidebar-accent-foreground: "#0a0a0a"
212
- sidebar-border: "#e5e5e5"
213
- sidebar-ring: "#00d4a4"
214
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
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
- ```