@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
@@ -17,12 +17,10 @@ controls, the geometric-sans display voice (weight 400, negative tracking, never
17
17
  eyebrow, and hairline-only flat depth. What stays behind: the 96px hero display, the edge-to-edge black
18
18
  page, and the sunset/dusk gradient illustration accents.
19
19
 
20
- **Light surface, cosmic inlay.** Inverting the whole page to near-black would be dark-mode-as-default,
21
- which the light floor refuses; instead the operator surface is a cool near-white canvas, and xAI's
22
- signature near-black is carried as the **cosmic inlay** — the sidebar rail and the terminal / log /
23
- metric panels. Both machine blocks are fully valued; brand tokens that override a generic ban
24
- (near-black `#0a0a0a` ink, pill buttons) are recorded plainly, and derivations where the corpus is
25
- silent are annotated `# derived:`.
20
+ **Light surface, cosmic inlay.** Inverting the whole page to near-black would be
21
+ dark-mode-as-default, which the light floor refuses; instead the operator surface is a cool
22
+ near-white canvas, and xAI's signature near-black is carried as the **cosmic inlay** — the sidebar
23
+ rail and the terminal / log / metric panels.
26
24
 
27
25
  ## 1 Visual Theme
28
26
 
@@ -37,8 +35,8 @@ returns as the cosmic inlay — a near-black `sidebar` rail and dark terminal /
37
35
 
38
36
  ## 2 Color Roles
39
37
 
40
- Light values (the manifest carries hex — the corpus's native format). One accent — `primary` is the
41
- only chromatic hue that carries UI meaning; the cosmic accent palette lives only in charts (§7), status hues speak only status.
38
+ Light values. One accent — `primary` is the only chromatic hue that carries UI meaning; the cosmic
39
+ accent palette lives only in charts (§7), status hues speak only status.
42
40
 
43
41
  | Role | Value | Allowed where |
44
42
  | --- | --- | --- |
@@ -138,83 +136,3 @@ Directives the emitting agent follows verbatim:
138
136
  - Pill the buttons, chips, and badges — the pill is xAI's shape system; keep cards, inputs, and panels at the 8px radius. Dress terminal, log, and metric panels in the near-black cosmic inlay (`#0a0a0a`, `font-mono`).
139
137
  - Depth is the surface step and cool hairlines, never shadow; the brand uses none. Reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work.
140
138
  - Keyboard-first: the sunset `ring` focus outline is always visible. Leave behind the 96px hero display, the edge-to-edge black page, and the sunset / dusk gradient accents.
141
-
142
- ```yaml design-primitives
143
- radius: 8px # corpus: cards/inputs at rounded.sm (8px, the brand's --radius); buttons/chips/badges reach the pill
144
- shadow-intensity: 0.1 # corpus: the brand uses NO shadows ("hairline borders carry all elevation"); only true overlays earn the faintest lift
145
- border-weight: 1px # corpus: 1px hairlines carry all depth
146
- density-gap: 1 # derived: marketing-spacious brand read to an honest, engineered-tight operator standard
147
- density-inset: 1 # derived: matches density-gap for coherent component insets
148
- font-sans: Universal Sans, Inter, system-ui, -apple-system, sans-serif # corpus: Universal Sans is the proprietary geometric face; Inter is the documented open substitute
149
- font-mono: Geist Mono, ui-monospace, SFMono-Regular, Menlo, monospace # corpus: GeistMono for eyebrows, labels, metric counters, and code
150
- font-weight-normal: 400 # corpus: weight 400 for everything — the brand never bolds; negative tracking + size do the emphasis
151
- font-weight-strong: 500 # derived: the display holds 400 (never bold); operator legibility earns a restrained 500 for component heads and labels only
152
- heading-tracking: -0.03em # corpus: the gathered negative tracking is the signature (-2.4px at hero 96px); -0.03em keeps the precise gathered look at operator heading scale
153
- duration-unit: 50ms # derived: corpus silent on motion (marketing surface); engineered character favors a crisp functional base
154
- duration-fast: 100ms # derived: corpus silent on motion; crisp functional tempo
155
- duration-normal: 150ms # derived: corpus silent on motion; standard functional tempo
156
- duration-slow: 250ms # derived: corpus silent on motion; overlay / panel transition
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
158
- contrast-boost: 1 # derived: the cool hairlines are intentional engineered calm; no boost
159
- icon-stroke: 1.5 # derived: corpus silent on icons; a light refined stroke suits the precise engineered feel
160
- icon-size-base: 16px # derived: corpus silent on icon size; operator standard
161
- sidebar-width-expanded: 240px # derived: corpus has no app shell (marketing top-nav only); engineered-tight rail
162
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
163
- topbar-height: 52px # corpus: lean nav (md/xl padding, body-sm); operator lands at 52px
164
- side-panel-width: 420px # derived: corpus has no shell; engineered-standard detail width
165
- side-panel-width-rich: 640px # derived: content-heavy detail panel
166
- modal-width-max: 560px # derived: corpus's bands are full-bleed marketing; operator confirmation cap
167
- form-max-width: 640px # derived: corpus content centres ~1200px (marketing); operator single-column form cap
168
- table-row-height: 40px # derived: engineered-dense standard; not editorial-loose
169
- verbosity: default
170
- feedback: minimal # derived: xAI's austere engineered restraint → crisp minimal feedback (no press-scale, 1px ring); the high-chroma sunset ring keeps focus visible
171
- density-tier: standard # derived: a marketing-spacious brand read down to an honest engineered operator tier; archetypes step denser
172
- product-traits: [ai-console, agent-ops, model-ops, dashboard, dev-tools]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Universal Sans, Inter, system-ui, -apple-system, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#fbfbfc" # derived: cool near-white page floor (light inversion of the #0a0a0a canvas; engineered-cool temperature)
181
- foreground: "#0a0a0a" # corpus: xAI's signature near-black, carried as operator ink (brand override of a near-pure-black ban)
182
- card: "#ffffff" # derived: pure white bright step off the near-white, inverting the dark canvas→card ladder
183
- card-foreground: "#0a0a0a"
184
- muted: "#f2f3f5" # derived: cool light fill (the light-surface analog of canvas-soft's quiet-fill role)
185
- muted-foreground: "#7d8187" # corpus: the brand's body-mid / mute cool gray
186
- border: "#e6e7ea" # derived: cool hairline (light inversion of the #212327 dark hairline)
187
- input: "#e6e7ea"
188
- ring: "#ff7a17"
189
- primary: "#ff7a17" # corpus: sunset orange — xAI's one brand chroma, promoted to the single operator accent
190
- primary-foreground: "#0a0a0a" # corpus: near-black on the bright sunset (the brand's on-primary), legible where white would fail
191
- accent: "#eceef1" # derived: cool selection lift one step past muted, so selection reads over hover; never orange
192
- accent-foreground: "#0a0a0a"
193
- destructive: "#e5484d" # derived: corpus surfaces no semantic palette; a clean red for destructive / error
194
- destructive-foreground: "#ffffff"
195
- success: "#30a46c" # derived: corpus has no success hue; a clean green for status
196
- warning: "#d99126" # derived: corpus has no warning hue; an amber-gold held distinct from the sunset primary
197
- popover: "#ffffff"
198
- popover-foreground: "#0a0a0a"
199
- secondary: "#f2f3f5"
200
- secondary-foreground: "#0a0a0a"
201
- chart-1: "#ff7a17" # corpus: sunset — the brand accent palette carries the chart series
202
- chart-2: "#7c3aed" # corpus: dusk purple
203
- chart-3: "#a0c3ec" # corpus: breeze blue
204
- chart-4: "#c4b5fd" # corpus: twilight violet
205
- chart-5: "#0d1726" # corpus: midnight — the deep cosmic anchor
206
- sidebar: "#0a0a0a" # corpus: the cosmic near-black canvas, carried as the operator sidebar rail (the white-on-near-black soul as chrome)
207
- sidebar-foreground: "#dadbdf" # corpus: xAI body text on dark
208
- sidebar-primary: "#ff7a17" # corpus: sunset accent for the active-nav indicator on the dark rail
209
- sidebar-primary-foreground: "#0a0a0a"
210
- sidebar-accent: "#1a1c20" # corpus: canvas-soft — hovered / selected nav on the dark rail
211
- sidebar-accent-foreground: "#ffffff"
212
- sidebar-border: "#212327" # corpus: the brand's dark hairline
213
- sidebar-ring: "#ff7a17"
214
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 4, 8, 12, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.5 }
219
- accent-count: 1
220
- ```
@@ -7,13 +7,13 @@ sourced: 2026-07-04
7
7
 
8
8
  # Zapier — the operator reading
9
9
 
10
- The operator translation of Zapier's workflow-automation brand. Zapier's public surface is confidently
11
- warm — a cream canvas, deep coffee ink, one saturated orange CTA, and a two-face type system (Degular
12
- Display for hero moments, Inter for the rest). This entry keeps what survives at operator scale: the
13
- cream temperature, the single orange accent, the coffee ink, the recessed cream-card elevation, the
14
- 12px middle-radius signature, and Inter as the workhorse. The 56px Degular hero, the dark coffee-ink
15
- polarity-flip bands, and the 64px rhythm stay behind — warm where the category runs cool, but earning
16
- its density and reserving its one accent; judgments away from the brand are annotated `# derived:`.
10
+ The operator translation of Zapier's workflow-automation brand. Zapier's public surface is
11
+ confidently warm — a cream canvas, deep coffee ink, one saturated orange CTA, and a two-face type
12
+ system (Degular Display for hero moments, Inter for the rest). This entry keeps what survives at
13
+ operator scale: the cream temperature, the single orange accent, the coffee ink, the recessed
14
+ cream-card elevation, the 12px middle-radius signature, and Inter as the workhorse. The 56px Degular
15
+ hero, the dark coffee-ink polarity-flip bands, and the 64px rhythm stay behind — warm where the
16
+ category runs cool, but earning its density and reserving its one accent.
17
17
 
18
18
  ## 1 Visual Theme
19
19
 
@@ -28,8 +28,8 @@ faintly recessed cream cards.
28
28
 
29
29
  ## 2 Color Roles
30
30
 
31
- Light values (the manifest carries the exact hex — the corpus's native format). One accent: `primary`
32
- is the only chromatic hue that carries meaning; status hues speak only status.
31
+ Light values. One accent: `primary` is the only chromatic hue that carries meaning; status hues
32
+ speak only status.
33
33
 
34
34
  | Role | Value | Allowed where |
35
35
  | --- | --- | --- |
@@ -156,83 +156,3 @@ pricing bands, dark footer) · the illustrative zap/workflow SVGs · the 64px se
156
156
  - Every numeric column is `tabular-nums`; every ID / run code / timestamp is `font-mono`; every workflow
157
157
  completes from the keyboard with the orange `ring` outline always visible.
158
158
  - One accent. Type stays on Inter — Degular Display and the marketing bands do not follow into a console.
159
-
160
- ```yaml design-primitives
161
- radius: 12px # corpus: buttons and cards at rounded.md (12px) — the brand's explicit middle-radius signature; inputs step to 6px via the scale
162
- shadow-intensity: 0.4 # derived: flat, surface-contrast-first; shadow only lifts true overlays (toasts/modals)
163
- border-weight: 1px
164
- density-gap: 1
165
- density-inset: 1
166
- font-sans: Inter, system-ui, -apple-system, sans-serif # derived: Inter is the brand's actual workhorse for everything but the hero; Degular Display (hero-only) stays behind
167
- font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, monospace # derived: corpus ships no mono; zap/run IDs, webhook payloads, and log timestamps need one — JetBrains Mono pairs with Inter
168
- font-weight-normal: 400
169
- font-weight-strong: 600 # corpus: card titles and primary buttons at 600; the 700 micro-label is display-only and stays behind
170
- heading-tracking: -0.02em # derived: the brand's Inter display steps track ~-0.025em (display-sub-sm -0.6px/24px); softened to -0.02em at operator heading scale
171
- duration-unit: 50ms
172
- duration-fast: 150ms # derived: corpus silent on motion; a warm brand runs a touch softer than a dense console
173
- duration-normal: 200ms # derived: corpus silent on motion
174
- duration-slow: 300ms # derived: corpus silent on motion
175
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard operator ease
176
- contrast-boost: 1 # derived: warm hairlines are intentional; no boost at default
177
- icon-stroke: 1.75 # derived: corpus uses illustrative SVGs; a confident 1.75 stroke suits the bold-warm voice, one step under lucide's 2
178
- icon-size-base: 16px # derived: corpus has no icon spec; operator standard
179
- sidebar-width-expanded: 256px # derived: corpus is marketing-only; warm-generous operator nav, a step over the dense rail
180
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
181
- topbar-height: 56px # derived: corpus marketing nav is generous; operator tightens to a working 56px
182
- side-panel-width: 440px # derived: warm-generous detail panel; no corpus shell spec
183
- side-panel-width-rich: 640px # derived: content-heavy detail width
184
- modal-width-max: 560px # derived: corpus silent; confirmation dialog cap
185
- form-max-width: 640px # derived: single-column form cap
186
- table-row-height: 44px # derived: warm posture → rows breathe a touch over the dense 40px default
187
- verbosity: default
188
- feedback: subtle # derived: Zapier's warm-confident voice wants gentle present feedback, not austere silence
189
- density-tier: standard # derived: a marketing-generous brand read down to an honest operator tier; warmth carried by palette and radius, not whitespace
190
- product-traits: [workflow-automation, automation, dashboard, saas, b2b]
191
- ```
192
-
193
- ```yaml lever-manifest
194
- version: 1
195
- fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "JetBrains Mono, ui-monospace, SFMono-Regular, monospace" }
196
- color-tokens:
197
- light:
198
- background: "#fffefb"
199
- foreground: "#201515"
200
- card: "#f8f4f0" # recessed cream card — surface-contrast elevation, a step below the canvas
201
- card-foreground: "#201515"
202
- muted: "#f1ece4" # derived: a step below the card cream for hover rows and subtle fills
203
- muted-foreground: "#605d52"
204
- border: "#e9e2d8" # derived: warm hairline for grid lines and separators; the corpus carries card separation by surface contrast, so a faint warm line is derived
205
- input: "#201515" # brand's bold ink-bordered field (corpus text-input borderColor = ink)
206
- ring: "#ff4f00" # derived: corpus silent on focus; orange is the interactive voltage, unmistakable for keyboard-first
207
- primary: "#ff4f00"
208
- primary-foreground: "#fffefb" # warm white (on-primary), never pure white
209
- accent: "#ffe9e0" # derived: pale orange wash for row/nav selection — a whisper of the brand warmth
210
- accent-foreground: "#b83900" # derived: burnt orange, readable ink on the pale tint
211
- destructive: "#c0362c" # derived: brand ships no semantic red; a brick red distinct from the primary orange
212
- destructive-foreground: "#fffefb"
213
- success: "#3f8f5a" # derived: brand ships no green; a warm-compatible status green, status only
214
- warning: "#c88a1e" # derived: brand ships no amber; a warm gold distinct from the primary orange, status only
215
- popover: "#fffefb"
216
- popover-foreground: "#201515"
217
- secondary: "#f1ece4" # cream secondary-button fill (the dark-ink secondary is a marketing polarity-flip, stays behind)
218
- secondary-foreground: "#201515"
219
- chart-1: "#ff4f00" # orange primary
220
- chart-2: "#3f8f5a" # derived: status green as second series
221
- chart-3: "#c88a1e" # derived: warm gold as third series
222
- chart-4: "#7a4a3a" # derived: warm coffee-brown mid — series warm to hold temperature
223
- chart-5: "#b83900" # derived: deep burnt orange as fifth series
224
- sidebar: "#f8f4f0" # derived: faint cream sidebar beside the brighter canvas
225
- sidebar-foreground: "#201515"
226
- sidebar-primary: "#ff4f00" # orange marks the active nav item (corpus app-shell activeIndicator = primary)
227
- sidebar-primary-foreground: "#fffefb"
228
- sidebar-accent: "#ffe9e0" # matches accent
229
- sidebar-accent-foreground: "#b83900"
230
- sidebar-border: "#e9e2d8"
231
- sidebar-ring: "#ff4f00"
232
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
233
- radius-scale: [0, 6, 12, 9999]
234
- shadow-levels: [none, sm, md]
235
- motion: { durations: [150, 200, 300], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
236
- icons: { family: lucide, stroke: 1.75 }
237
- accent-count: 1
238
- ```
@@ -9,10 +9,8 @@ sourced: 2026-07-04
9
9
 
10
10
  The document a zero-input project wears. No project `design.md`, no confirmed library match, and
11
11
  this is the brand personality synthesis derives from. It is a *deliberate* operator reading of the
12
- Nurix brand — engineered, calm, dense-capable, never decorative — not a marketing transcription:
13
- the brand's marketing surfaces breathe; an operator surface earns its density and keeps one accent.
14
- Both machine blocks are fully valued (no `hint:`); every judgment away from the marketing brand is
15
- annotated `# rationale:` where it lands.
12
+ Nurix brand — engineered, calm, dense-capable, never decorative — not a marketing transcription: the
13
+ brand's marketing surfaces breathe; an operator surface earns its density and keeps one accent.
16
14
 
17
15
  ## 1 Visual Theme
18
16
 
@@ -25,9 +23,8 @@ per surface archetype — dense-capable, not cramped.
25
23
 
26
24
  ## 2 Color Roles
27
25
 
28
- Light values first (the manifest carries the exact `oklch`; the brand hex is cited where it names the
29
- identity). One accent — `primary` is the only chromatic hue that carries meaning; status hues speak
30
- only status.
26
+ Light values first. One accent — `primary` is the only chromatic hue that carries meaning; status
27
+ hues speak only status.
31
28
 
32
29
  | Role | Value | Allowed where |
33
30
  | --- | --- | --- |
@@ -135,83 +132,3 @@ Directives the emitting agent follows verbatim:
135
132
  - Every workflow completes from the keyboard; the `ring` focus outline is always visible (P6).
136
133
  - Stay flat — hairline and weight before shadow. Reach past a hairline only for a real overlay.
137
134
  - One accent. Lime and navy are not operator colors here.
138
-
139
- ```yaml design-primitives
140
- radius: 6px # rationale: brand default 12px is marketing-surface soft; operator default tightens for a denser, engineered read (scale still offers 12px for large cards)
141
- shadow-intensity: 0.4 # rationale: brand is predominantly flat; shadow only lifts true overlays
142
- border-weight: 1px
143
- density-gap: 1
144
- density-inset: 1
145
- font-sans: Inter, system-ui, sans-serif # rationale: brand's body font; the single sans slot serves dense body/table chrome, so Inter over the marketing display font Manrope
146
- font-mono: Geist Mono, ui-monospace, SFMono-Regular, monospace # rationale: Geist (brand numeric family) monospace sibling — IDs, codes, log lines
147
- font-weight-normal: 400 # rationale: brand base 500 is display-tuned; dense operator body reads cleaner at 400
148
- font-weight-strong: 600
149
- heading-tracking: -0.01em # rationale: brand display tracks 0; at operator heading sizes Inter reads tighter and more engineered
150
- duration-unit: 50ms
151
- duration-fast: 100ms
152
- duration-normal: 150ms
153
- duration-slow: 250ms
154
- ease-default: cubic-bezier(0.4,0,0.2,1)
155
- contrast-boost: 1
156
- icon-stroke: 1.75 # rationale: one step under lucide's 2 for a refined operator stroke
157
- icon-size-base: 16px
158
- sidebar-width-expanded: 248px
159
- sidebar-width-collapsed: 56px
160
- topbar-height: 52px
161
- side-panel-width: 420px
162
- side-panel-width-rich: 640px
163
- modal-width-max: 560px
164
- form-max-width: 640px
165
- table-row-height: 40px # rationale: comfortable at standard density; dense archetypes step down via the surface catalog
166
- verbosity: default
167
- feedback: subtle
168
- density-tier: standard # rationale: a general operator default balances legibility and density; archetypes step denser, never the whole app
169
- product-traits: [operator-console, crm, queue, dashboard, admin]
170
- ```
171
-
172
- ```yaml lever-manifest
173
- version: 1
174
- fonts: { sans: "Inter, system-ui, sans-serif", mono: "Geist Mono, ui-monospace, SFMono-Regular, monospace" }
175
- color-tokens:
176
- light:
177
- background: "oklch(1 0 0)"
178
- foreground: "oklch(0.2077 0.0398 265.75)"
179
- card: "oklch(1 0 0)"
180
- card-foreground: "oklch(0.2077 0.0398 265.75)"
181
- muted: "oklch(0.9683 0.0069 247.9)"
182
- muted-foreground: "oklch(0.5544 0.0407 257.42)"
183
- border: "oklch(0.9288 0.0126 255.51)"
184
- input: "oklch(0.9288 0.0126 255.51)"
185
- ring: "oklch(0.5211 0.2145 263.89)"
186
- primary: "oklch(0.5211 0.2145 263.89)"
187
- primary-foreground: "oklch(1 0 0)"
188
- accent: "oklch(0.9603 0.0144 264.5)"
189
- accent-foreground: "oklch(0.5211 0.2145 263.89)"
190
- destructive: "oklch(0.5771 0.2152 27.33)"
191
- destructive-foreground: "oklch(1 0 0)"
192
- success: "oklch(0.6271 0.1699 149.21)"
193
- warning: "oklch(0.6658 0.1574 58.32)"
194
- popover: "oklch(1 0 0)"
195
- popover-foreground: "oklch(0.2077 0.0398 265.75)"
196
- secondary: "oklch(0.9683 0.0069 247.9)"
197
- secondary-foreground: "oklch(0.2077 0.0398 265.75)"
198
- chart-1: "oklch(0.5211 0.2145 263.89)"
199
- chart-2: "oklch(0.6089 0.1109 221.72)"
200
- chart-3: "oklch(0.6271 0.1699 149.21)"
201
- chart-4: "oklch(0.6658 0.1574 58.32)"
202
- chart-5: "oklch(0.5413 0.2466 293.01)"
203
- sidebar: "oklch(0.9842 0.0034 247.86)"
204
- sidebar-foreground: "oklch(0.2077 0.0398 265.75)"
205
- sidebar-primary: "oklch(0.5211 0.2145 263.89)"
206
- sidebar-primary-foreground: "oklch(1 0 0)"
207
- sidebar-accent: "oklch(0.9603 0.0144 264.5)"
208
- sidebar-accent-foreground: "oklch(0.5211 0.2145 263.89)"
209
- sidebar-border: "oklch(0.9288 0.0126 255.51)"
210
- sidebar-ring: "oklch(0.5211 0.2145 263.89)"
211
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
212
- radius-scale: [0, 4, 6, 12, 9999]
213
- shadow-levels: [none, sm, md]
214
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
215
- icons: { family: lucide, stroke: 1.75 }
216
- accent-count: 1
217
- ```