@nurix/etna 0.18.20 → 0.18.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +1 -1
  2. package/data/harness-index.json +1 -1
  3. package/data/harnesses/code/CLAUDE.md +3 -3
  4. package/data/harnesses/code/agents/brainstorm.md +1 -1
  5. package/data/harnesses/code/agents/maintenance.md +8 -7
  6. package/data/harnesses/code/harness.json +2 -2
  7. package/data/harnesses/code/rules/database.md +38 -0
  8. package/data/harnesses/code/rules/express.md +28 -0
  9. package/data/harnesses/code/rules/frontend.md +14 -0
  10. package/data/harnesses/code/rules/general.md +2 -40
  11. package/data/harnesses/code/rules/nomenclature.md +1 -8
  12. package/data/harnesses/code/rules/nustack.md +150 -0
  13. package/data/harnesses/code/skills/brainstorm/README.md +4 -4
  14. package/data/harnesses/code/skills/brainstorm/SKILL.md +5 -3
  15. package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +15 -11
  16. package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +5 -5
  17. package/data/harnesses/code/skills/design/SKILL.md +14 -11
  18. package/data/harnesses/code/skills/design/data/catalog/rules.csv +4 -4
  19. package/data/harnesses/code/skills/design/data/combinations/Readme.md +29 -0
  20. package/data/harnesses/code/skills/design/data/combinations/charts.csv +33 -0
  21. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +437 -0
  22. package/data/harnesses/code/skills/design/data/combinations/icons.csv +157 -0
  23. package/data/harnesses/code/skills/design/data/combinations/landing.csv +38 -0
  24. package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +2001 -0
  25. package/data/harnesses/code/skills/design/data/combinations/manifest.json +283 -0
  26. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +49 -0
  27. package/data/harnesses/code/skills/design/data/combinations/product-router.csv +80 -0
  28. package/data/harnesses/code/skills/design/data/combinations/styles.csv +54 -0
  29. package/data/harnesses/code/skills/design/data/combinations/typography.csv +61 -0
  30. package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +27 -238
  31. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +7 -88
  32. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +1 -82
  33. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +4 -85
  34. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +5 -86
  35. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +4 -87
  36. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +7 -86
  37. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +4 -84
  38. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +5 -86
  39. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +3 -84
  40. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +2 -82
  41. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +10 -91
  42. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +2 -84
  43. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +3 -85
  44. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +7 -90
  45. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -80
  46. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -80
  47. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +5 -85
  48. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +2 -82
  49. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +5 -86
  50. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +9 -91
  51. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +9 -89
  52. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -115
  53. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +5 -85
  54. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +7 -88
  55. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +3 -84
  56. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +4 -85
  57. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +8 -88
  58. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +8 -88
  59. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +4 -85
  60. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +4 -84
  61. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +7 -88
  62. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +5 -86
  63. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +6 -87
  64. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +9 -91
  65. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +5 -88
  66. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +9 -89
  67. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +4 -119
  68. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +4 -84
  69. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -82
  70. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +3 -86
  71. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +13 -94
  72. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +2 -82
  73. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +6 -88
  74. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +13 -94
  75. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +4 -86
  76. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +7 -88
  77. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +6 -88
  78. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +5 -86
  79. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +6 -86
  80. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +12 -93
  81. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +11 -91
  82. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +8 -88
  83. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +2 -82
  84. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +11 -126
  85. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +8 -88
  86. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +3 -83
  87. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +10 -91
  88. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +7 -90
  89. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +6 -88
  90. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +9 -89
  91. package/data/harnesses/code/skills/design/data/design-md/nurix.md +4 -87
  92. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +580 -0
  93. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +20 -0
  94. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +964 -0
  95. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +20 -0
  96. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +960 -0
  97. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +20 -0
  98. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +965 -0
  99. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +20 -0
  100. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +954 -0
  101. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +20 -0
  102. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +949 -0
  103. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +20 -0
  104. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +962 -0
  105. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +20 -0
  106. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +958 -0
  107. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +20 -0
  108. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +953 -0
  109. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +20 -0
  110. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +960 -0
  111. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +20 -0
  112. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +973 -0
  113. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +20 -0
  114. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +954 -0
  115. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +20 -0
  116. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +963 -0
  117. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +20 -0
  118. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +968 -0
  119. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +20 -0
  120. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +981 -0
  121. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +20 -0
  122. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +962 -0
  123. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +20 -0
  124. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +964 -0
  125. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +20 -0
  126. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +959 -0
  127. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +251 -0
  128. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +20 -0
  129. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +965 -0
  130. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +20 -0
  131. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +978 -0
  132. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +20 -0
  133. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +982 -0
  134. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +20 -0
  135. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +958 -0
  136. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +23 -0
  137. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +589 -0
  138. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +964 -0
  139. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +20 -0
  140. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +955 -0
  141. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +20 -0
  142. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +977 -0
  143. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +20 -0
  144. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +950 -0
  145. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +20 -0
  146. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +976 -0
  147. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +20 -0
  148. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +979 -0
  149. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +20 -0
  150. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +955 -0
  151. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +20 -0
  152. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +958 -0
  153. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +20 -0
  154. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +953 -0
  155. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +20 -0
  156. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +904 -0
  157. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +20 -0
  158. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +957 -0
  159. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +20 -0
  160. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +945 -0
  161. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +20 -0
  162. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +960 -0
  163. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +20 -0
  164. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +953 -0
  165. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +20 -0
  166. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +955 -0
  167. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +20 -0
  168. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +958 -0
  169. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +23 -0
  170. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +613 -0
  171. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +968 -0
  172. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +20 -0
  173. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +956 -0
  174. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +20 -0
  175. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +960 -0
  176. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +20 -0
  177. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +958 -0
  178. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +20 -0
  179. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +980 -0
  180. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +20 -0
  181. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +964 -0
  182. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +20 -0
  183. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +957 -0
  184. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +20 -0
  185. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +979 -0
  186. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +20 -0
  187. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +974 -0
  188. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +20 -0
  189. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +973 -0
  190. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +20 -0
  191. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +979 -0
  192. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +20 -0
  193. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +966 -0
  194. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +20 -0
  195. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +961 -0
  196. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +20 -0
  197. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +977 -0
  198. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +20 -0
  199. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +991 -0
  200. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +20 -0
  201. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +966 -0
  202. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +20 -0
  203. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +988 -0
  204. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +23 -0
  205. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +602 -0
  206. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +974 -0
  207. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +20 -0
  208. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +979 -0
  209. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +20 -0
  210. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +960 -0
  211. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +20 -0
  212. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +968 -0
  213. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +20 -0
  214. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +965 -0
  215. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +20 -0
  216. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +988 -0
  217. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +20 -0
  218. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +978 -0
  219. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +1 -1
  220. package/data/harnesses/code/skills/design/references/create.md +14 -9
  221. package/data/harnesses/code/skills/design/references/diagnosis.md +1 -1
  222. package/data/harnesses/code/skills/design/references/hard-rules.md +4 -4
  223. package/data/harnesses/code/skills/design/references/improve.md +11 -9
  224. package/data/harnesses/code/skills/design/references/introspect.md +1 -1
  225. package/data/harnesses/code/skills/design/references/personality.md +337 -413
  226. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
  227. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +596 -296
  228. package/data/harnesses/code/skills/design/scripts/{detector.mjs → lib/checks.mjs} +145 -140
  229. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
  230. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +105 -37
  231. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +60 -73
  232. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +1 -1
  233. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +1 -1
  234. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +205 -37
  235. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +68 -0
  236. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +314 -0
  237. package/data/harnesses/code/skills/documentation/SKILL.md +61 -17
  238. package/data/harnesses/code/skills/documentation/references/examples.md +41 -0
  239. package/data/harnesses/code/skills/documentation/references/style-guide.md +14 -9
  240. package/data/harnesses/code/skills/documentation/references/templates.md +306 -52
  241. package/data/harnesses/etna/CLAUDE.md +3 -3
  242. package/data/harnesses/etna/agents/brainstorm.md +1 -1
  243. package/data/harnesses/etna/agents/maintenance.md +8 -7
  244. package/data/harnesses/etna/harness.json +2 -2
  245. package/data/harnesses/etna/rules/general.md +2 -40
  246. package/data/harnesses/etna/rules/nomenclature.md +1 -8
  247. package/data/harnesses/etna/skills/brainstorm/README.md +4 -4
  248. package/data/harnesses/etna/skills/brainstorm/SKILL.md +5 -3
  249. package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +15 -11
  250. package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +5 -5
  251. package/data/harnesses/etna/skills/documentation/SKILL.md +61 -17
  252. package/data/harnesses/etna/skills/documentation/references/examples.md +41 -0
  253. package/data/harnesses/etna/skills/documentation/references/style-guide.md +14 -9
  254. package/data/harnesses/etna/skills/documentation/references/templates.md +306 -52
  255. package/data/harnesses/mobile/CLAUDE.md +3 -3
  256. package/data/harnesses/mobile/agents/brainstorm.md +1 -1
  257. package/data/harnesses/mobile/agents/maintenance.md +8 -7
  258. package/data/harnesses/mobile/harness.json +2 -2
  259. package/data/harnesses/mobile/rules/database.md +38 -0
  260. package/data/harnesses/mobile/rules/general.md +2 -40
  261. package/data/harnesses/mobile/rules/nomenclature.md +1 -8
  262. package/data/harnesses/mobile/rules/nustack.md +150 -0
  263. package/data/harnesses/mobile/skills/brainstorm/README.md +4 -4
  264. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +5 -3
  265. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +15 -11
  266. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +5 -5
  267. package/data/harnesses/mobile/skills/documentation/SKILL.md +61 -17
  268. package/data/harnesses/mobile/skills/documentation/references/examples.md +41 -0
  269. package/data/harnesses/mobile/skills/documentation/references/style-guide.md +14 -9
  270. package/data/harnesses/mobile/skills/documentation/references/templates.md +306 -52
  271. package/package.json +1 -1
  272. package/data/harnesses/code/skills/design/scripts/hook-config.json +0 -11
@@ -7,14 +7,14 @@ sourced: 2026-07-04
7
7
 
8
8
  # VoltAgent — near-black electric-green developer-console operator design
9
9
 
10
- The *operator* reading of VoltAgent — a near-black IDE dressed as a documentation site: an unrelenting `#101010`
11
- canvas with no light counterpart, one electric-green accent, hairline-bordered cards, code-editor mockups.
12
- **Categorically dark**, like the source: dark is the signature, a valued light daytime mode ships alongside. What
13
- carries — the near-black canvas, the single accent held scarce, hairline-only flat depth, Inter + SF Mono, the 6px
14
- radius, near-black text on green (never white); what stays behind — the 60px hero, the code-editor mockups, the 48px
15
- band rhythm, the green divider band. One green does everything, so `success` is the brand's own deeper emerald
16
- `#10b981` (its inline-link green), never the accent. Both blocks are fully valued; judgments annotated `# derived:`
17
- where the corpus is silent, `# corpus:` where it states the value.
10
+ The *operator* reading of VoltAgent — a near-black IDE dressed as a documentation site: an
11
+ unrelenting `#101010` canvas with no light counterpart, one electric-green accent, hairline-bordered
12
+ cards, code-editor mockups. **Categorically dark**, like the source: dark is the signature, a valued
13
+ light daytime mode ships alongside. What carries — the near-black canvas, the single accent held
14
+ scarce, hairline-only flat depth, Inter + SF Mono, the 6px radius, near-black text on green (never
15
+ white); what stays behind — the 60px hero, the code-editor mockups, the 48px band rhythm, the green
16
+ divider band. One green does everything, so `success` is the brand's own deeper emerald `#10b981`
17
+ (its inline-link green), never the accent.
18
18
 
19
19
  ## 1 Visual Theme
20
20
 
@@ -28,9 +28,9 @@ anchor surface is the near-black canvas beside a hair-darker `sidebar`, separate
28
28
 
29
29
  ## 2 Color Roles
30
30
 
31
- The signature is dark; both themes are valued (light listed first in the manifest). One chromatic
32
- accent — `primary` is the only hue that carries the primary-action meaning; status hues speak only
33
- status; the deeper emerald `success` is deliberately not the accent green.
31
+ The signature is dark; both themes are valued. One chromatic accent — `primary` is the only hue that
32
+ carries the primary-action meaning; status hues speak only status; the deeper emerald `success` is
33
+ deliberately not the accent green.
34
34
 
35
35
  | Role | Light (daytime) | Dark (signature) | Allowed where |
36
36
  | --- | --- | --- | --- |
@@ -128,118 +128,3 @@ Directives the emitting agent follows verbatim:
128
128
  - `success` is the deeper emerald `#10b981`, never the accent green — keep status legible against a brand whose accent is already green.
129
129
  - Render every code, log, terminal, and metric surface in `font-mono` (SF Mono); every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`; section labels wear the uppercase Inter eyebrow at `+0.18em`.
130
130
  - Depth is hairlines and one surface step, never shadow; reach for the overlay lift only for a true modal or popover. Detail and edit go in the side panel, never a modal. The green `ring` focus outline is always visible. Leave behind the 60px hero, the code-editor mockups, the 48px band rhythm, and the green divider.
131
-
132
- ```yaml design-primitives
133
- radius: 6px # corpus: buttons/inputs at rounded.sm (6px); cards step to 8px (md); pill 9999 is badges/live-tags only
134
- shadow-intensity: 0.4 # derived: brand is hairline-first with no card shadows, but its modal lift is heavy — overlays earn a real md shadow while cards stay flat
135
- border-weight: 1px # corpus: 1px hairlines carry all elevation (featured cards use 3px, a variant not the base)
136
- density-gap: 1 # derived: engineered-documentation feel read to an honest standard operator tier; archetypes step denser via the surface catalog
137
- density-inset: 1 # derived: matches density-gap for coherent component insets
138
- font-sans: Inter, system-ui, -apple-system, sans-serif # corpus: Inter carries display, body, UI, buttons, and every uppercase eyebrow
139
- font-mono: SFMono-Regular, Menlo, Monaco, Consolas, monospace # corpus: SF Mono on every code/log/terminal/metric surface (JetBrains Mono or Geist Mono the free substitutes)
140
- font-weight-normal: 400 # corpus: body and UI at 400
141
- font-weight-strong: 600 # corpus: eyebrows, buttons, and strong body at 600 (the 700 display weight is hero-scale and stays behind)
142
- heading-tracking: -0.02em # corpus: negative display tracking (-0.6px at 24px, -0.9px at 36px) is the calm engineered signature; -0.02em at operator heading scale
143
- duration-unit: 50ms # derived: corpus is silent on motion; operator-standard functional base
144
- duration-fast: 100ms # derived: corpus silent on motion
145
- duration-normal: 150ms # derived: corpus silent on motion
146
- duration-slow: 250ms # derived: corpus silent on motion; overlay/panel transition
147
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard functional ease
148
- contrast-boost: 1 # derived: the subtle hairline discipline on near-black is intentional; no boost
149
- icon-stroke: 1.75 # derived: corpus has no icon system; a refined 1.75 stroke suits the precise engineered feel
150
- icon-size-base: 16px # derived: corpus silent on icon size; operator standard
151
- sidebar-width-expanded: 248px # derived: corpus has a marketing top-nav, no app-shell rail; operator standard
152
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
153
- topbar-height: 52px # derived: corpus nav padding (12/32) reads generous; operator tightens to 52px
154
- side-panel-width: 420px # derived: corpus has no shell; operator standard detail width
155
- side-panel-width-rich: 640px # derived: content-heavy detail panel
156
- modal-width-max: 560px # derived: corpus modal is full-bleed marketing; operator confirmation cap
157
- form-max-width: 640px # derived: corpus max content ~1200-1400px is marketing; operator single-column reading caps forms at 640
158
- table-row-height: 40px # derived: standard operator row; the engineered feel wants dense rows
159
- verbosity: default
160
- feedback: subtle # derived: brand is quiet and engineered but ships live pills and copy affordances — gentle present feedback, not austere silence
161
- density-tier: standard # derived: engineered-documentation brand read to an honest operator tier; archetypes step denser, never the whole app
162
- product-traits: [dev-tools, ai-agents, agent-console, dashboard, log-stream]
163
- ```
164
-
165
- ```yaml lever-manifest
166
- version: 1
167
- fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "SFMono-Regular, Menlo, Monaco, Consolas, monospace" }
168
- color-tokens:
169
- light:
170
- background: "#ffffff"
171
- foreground: "#101010" # corpus: the brand near-black carries as daytime ink
172
- card: "#ffffff"
173
- card-foreground: "#101010"
174
- muted: "#f4f4f5" # derived: neutral light fill, inverse of the near-black surface family
175
- muted-foreground: "#6b7280" # derived: neutral-cool gray echoing the corpus mute #8b949e
176
- border: "#e4e4e7" # derived: neutral light hairline (the dark #3d3a39 hairline inverts)
177
- input: "#e4e4e7"
178
- ring: "#00d992"
179
- primary: "#00d992" # corpus: the single electric-green accent
180
- primary-foreground: "#101010" # corpus: near-black text on green, never white
181
- accent: "#ececed" # derived: neutral selection lift; never the accent green
182
- accent-foreground: "#101010"
183
- destructive: "#dc2626" # derived: corpus surfaces no error hue (Docusaurus default); standard operator red
184
- destructive-foreground: "#ffffff"
185
- success: "#10b981" # corpus: primary-deep — the deeper emerald, distinct from the electric accent green
186
- warning: "#d97706" # derived: corpus has no warning hue; standard operator amber
187
- popover: "#ffffff"
188
- popover-foreground: "#101010"
189
- secondary: "#f4f4f5"
190
- secondary-foreground: "#101010"
191
- chart-1: "#00d992" # corpus: brand green anchors the categorical series
192
- chart-2: "#0ea5e9" # derived: sky, spread across a categorical set
193
- chart-3: "#8b5cf6" # derived: violet
194
- chart-4: "#f59e0b" # derived: amber
195
- chart-5: "#f43f5e" # derived: rose
196
- sidebar: "#fafafa" # derived: faint step below the white canvas so the rail reads as chrome
197
- sidebar-foreground: "#101010"
198
- sidebar-primary: "#00d992"
199
- sidebar-primary-foreground: "#101010"
200
- sidebar-accent: "#ececed"
201
- sidebar-accent-foreground: "#101010"
202
- sidebar-border: "#e4e4e7"
203
- sidebar-ring: "#00d992"
204
- dark:
205
- background: "#101010" # corpus: canvas — the only marketing surface
206
- foreground: "#f2f2f2" # corpus: ink, off-white to reduce contrast strain
207
- card: "#1a1a1a" # corpus: canvas-soft — operator panel lift (marketing cards sit on the canvas + hairline; that flatness stays behind)
208
- card-foreground: "#f2f2f2"
209
- muted: "#242424" # derived: neutral hover/fill step above the card, reads on #1a1a1a
210
- muted-foreground: "#8b949e" # corpus: mute
211
- border: "#3d3a39" # corpus: hairline
212
- input: "#3d3a39" # corpus: hairline field edge
213
- ring: "#00d992"
214
- primary: "#00d992"
215
- primary-foreground: "#101010" # corpus: on-primary near-black
216
- accent: "#2e2e2e" # derived: neutral selection lift above hover; never green
217
- accent-foreground: "#f2f2f2"
218
- destructive: "#f04438" # derived: red reads on near-black (corpus semantic is Docusaurus default)
219
- destructive-foreground: "#ffffff"
220
- success: "#10b981" # corpus: primary-deep emerald, distinct from the accent
221
- warning: "#f59e0b" # derived: amber that reads on near-black
222
- popover: "#1a1a1a" # corpus: canvas-soft — overlays match the card
223
- popover-foreground: "#f2f2f2"
224
- secondary: "#242424"
225
- secondary-foreground: "#f2f2f2"
226
- chart-1: "#00d992" # corpus: brand green anchors the series
227
- chart-2: "#38bdf8" # derived: sky, reads on near-black
228
- chart-3: "#a78bfa" # derived: violet
229
- chart-4: "#fbbf24" # derived: amber
230
- chart-5: "#fb7185" # derived: rose
231
- sidebar: "#0c0c0c" # derived: one hair below the canvas so the nav rail recedes as chrome
232
- sidebar-foreground: "#bdbdbd" # corpus: body — the nav-link text color
233
- sidebar-primary: "#00d992"
234
- sidebar-primary-foreground: "#101010"
235
- sidebar-accent: "#2e2e2e"
236
- sidebar-accent-foreground: "#f2f2f2"
237
- sidebar-border: "#3d3a39"
238
- sidebar-ring: "#00d992"
239
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
240
- radius-scale: [0, 4, 6, 8, 9999]
241
- shadow-levels: [none, sm, md]
242
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
243
- icons: { family: lucide, stroke: 1.75 }
244
- accent-count: 1
245
- ```
@@ -17,12 +17,12 @@ every neutral, the extremely tight near-rectangular radius, the Inter + DM Mono
17
17
  **monochrome** system with no chromatic accent. What stays behind: the 64px hero display, the 96px
18
18
  section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
19
19
 
20
- **Warm, light, and monochrome.** Warp's identity is the warmth, not the darkness — `oklch` hue 84.6, a
21
- brown-beige tint on every neutral. This theme keeps that warmth on a **light** paper floor so the
22
- light-default floor holds cleanly; the brand's own warm-charcoal `#2b2622` survives as the code / log /
23
- terminal inlay (Warp is a terminal — that surface is real chrome, not a mockup). With no chromatic
24
- accent, the one operator accent is **ink**: the primary action is a filled warm-charcoal button. Both
25
- machine blocks are fully valued; judgments away from the brand are annotated `# derived:`.
20
+ **Warm, light, and monochrome.** Warp's identity is the warmth, not the darkness — `oklch` hue 84.6,
21
+ a brown-beige tint on every neutral. This theme keeps that warmth on a **light** paper floor so the
22
+ light-default floor holds cleanly; the brand's own warm-charcoal `#2b2622` survives as the code /
23
+ log / terminal inlay (Warp is a terminal — that surface is real chrome, not a mockup). With no
24
+ chromatic accent, the one operator accent is **ink**: the primary action is a filled warm-charcoal
25
+ button.
26
26
 
27
27
  ## 1 Visual Theme
28
28
 
@@ -36,8 +36,8 @@ and near-rectangular radius keep the terminal-dialect tightness.
36
36
 
37
37
  ## 2 Color Roles
38
38
 
39
- Light values (the manifest carries hex — the corpus's native format). No chromatic accent: `primary` is
40
- monochrome ink; the chart series live only in charts (see §7); status hues speak only status.
39
+ Light values. No chromatic accent: `primary` is monochrome ink; the chart series live only in charts
40
+ (see §7); status hues speak only status.
41
41
 
42
42
  | Role | Value | Allowed where |
43
43
  | --- | --- | --- |
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
138
138
  - Render code, log, and terminal panels in `font-mono` (DM Mono) on the warm-charcoal `#2b2622` inlay — show real terminal chrome, not a light mockup of it. Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
139
139
  - Keep the geometry near-rectangular — the button/input radius is 3–4px; pill is badges only. Depth is the paper-to-off-white step and warm hairlines, never shadow; reach for the faint overlay lift only for a true modal or popover. Detail and edit go in the side panel beside the work, never a modal.
140
140
  - Keyboard-first: the charcoal `ring` focus outline is always visible. Leave behind the 64px hero display, the 96px section rhythm, the full-page terminal-mockup imagery, and the always-dark marketing band.
141
-
142
- ```yaml design-primitives
143
- radius: 4px # corpus: --radius base is rounded.md (4px); buttons run tighter at rounded.sm (3px); the brand is near-rectangular, never a generous pill
144
- shadow-intensity: 0.15 # derived: brand is hairline-only ("no drop shadows on cards"); only true overlays earn the faintest lift
145
- border-weight: 1px # corpus: 1px warm hairlines carry all depth
146
- density-gap: 1 # derived: spacious marketing (96px sections) read to an honest standard operator tier; terminal tightness carried by radius/temperature, not the grid
147
- density-inset: 1 # derived: matches density-gap for coherent component insets
148
- font-sans: Inter, system-ui, -apple-system, sans-serif # corpus: Inter carries every display, body, button, and label role (weights 400/500)
149
- font-mono: DM Mono, ui-monospace, SFMono-Regular, Menlo, monospace # corpus: DM Mono on every terminal mockup and code surface
150
- font-weight-normal: 400 # corpus: body and — defining trait — the quiet display both sit at 400
151
- font-weight-strong: 500 # corpus: nav links, buttons, body-strong at 500; the display stays 400 and the brand never goes heavy (700+ forbidden)
152
- heading-tracking: -0.02em # corpus: negative tracking is part of the voice (-1.6px at 64px hero); ~-0.02em at operator heading scale
153
- duration-unit: 50ms # derived: corpus declares no motion system on the marketing surface; operator-standard functional base
154
- duration-fast: 100ms # derived: corpus silent on motion; 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 on motion; standard functional ease
158
- contrast-boost: 1 # derived: the soft warm hairlines are the intended restraint; no boost
159
- icon-stroke: 1.5 # derived: corpus silent on icons; a light refined stroke suits the quiet, minimal 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 nav only); terminal-dialect tightness → a dense rail
162
- sidebar-width-collapsed: 56px # derived: standard operator icon rail
163
- topbar-height: 52px # corpus: nav padding md/xl (10px/24px) resolves to a ~52px bar — the brand's nav height
164
- side-panel-width: 420px # derived: corpus has no shell; dense terminal read holds a tight detail panel
165
- side-panel-width-rich: 640px # derived: content-heavy detail panel
166
- modal-width-max: 560px # derived: corpus's CTA bands are full-bleed marketing; operator confirmation cap
167
- form-max-width: 640px # derived: corpus max content ~1200px is marketing; single-column reading caps forms at 640
168
- table-row-height: 40px # derived: terminal-dialect density → the dense 40px default, not the roomier editorial 44
169
- verbosity: default
170
- feedback: subtle # derived: brand is quietly understated but keeps a visible keyboard focus ring; gentle present feedback, not austere silence
171
- density-tier: standard # derived: spacious marketing read down to an honest operator tier; terminal tightness carried by radius/temperature, not whitespace
172
- product-traits: [terminal, dev-tools, ai-console, agent-ops, dashboard]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "DM Mono, ui-monospace, SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#f2efe8" # derived: warm paper floor one step below Warp's off-white, holding the brown-beige temperature in a light theme
181
- foreground: "#2b2622" # corpus: Warp's warm-charcoal canvas, inverted to ink for the light theme
182
- card: "#f7f5f0" # corpus: Warp off-white — the brand's literal light tone, as the lifted card surface
183
- card-foreground: "#2b2622"
184
- muted: "#eae6dd" # derived: soft warm fill for hover rows and quiet bands, one step below the paper
185
- muted-foreground: "#6b655c" # derived: Warp's light mute (#aea69c reads for dark bg); darkened to a warm gray for light-mode text contrast
186
- border: "#e2ddd2" # derived: warm hairline inverted from Warp's dark hairline (#3f3a36) for a light surface
187
- input: "#e2ddd2"
188
- ring: "#2b2622"
189
- primary: "#2b2622" # corpus: no chromatic accent — the monochrome ink action is Warp's own canvas color
190
- primary-foreground: "#f7f5f0" # corpus: off-white text on the charcoal action (Warp's inverted button-primary)
191
- accent: "#e4dfd4" # derived: warm selection lift one step past muted, so selection reads over hover; never ink-filled
192
- accent-foreground: "#2b2622"
193
- destructive: "#c0392b" # derived: corpus has no error hue; a warm brick-red matching the palette temperature
194
- destructive-foreground: "#f7f5f0" # derived: off-white on the warm red, holding temperature
195
- success: "#5b8a45" # derived: corpus has no success hue; a warm-leaning green
196
- warning: "#b8791f" # derived: corpus has no warning hue; a warm amber matching the brown-beige temperature
197
- popover: "#f7f5f0"
198
- popover-foreground: "#2b2622"
199
- secondary: "#eae6dd"
200
- secondary-foreground: "#2b2622"
201
- chart-1: "#b0724e" # derived: monochrome brand has no chart palette; a warm categorical set (terracotta) holds temperature
202
- chart-2: "#8a8250" # derived: warm olive
203
- chart-3: "#5f7d5a" # derived: muted warm sage green
204
- chart-4: "#a98a3f" # derived: muted warm gold
205
- chart-5: "#6b655c" # derived: warm taupe neutral, echoing the ink for spread
206
- sidebar: "#efece5" # derived: a faint warm step below the paper so the nav rail reads as chrome
207
- sidebar-foreground: "#2b2622"
208
- sidebar-primary: "#2b2622"
209
- sidebar-primary-foreground: "#f7f5f0"
210
- sidebar-accent: "#e4dfd4" # derived: hover/selected nav lift, matches accent
211
- sidebar-accent-foreground: "#2b2622"
212
- sidebar-border: "#e2ddd2"
213
- sidebar-ring: "#2b2622"
214
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 2, 3, 4, 6, 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
- ```
@@ -8,9 +8,9 @@ sourced: 2026-07-04
8
8
  # Webflow — the visual-builder operator reading
9
9
 
10
10
  A deliberate operator reading of the Webflow brand: engineered, near-monochrome, hairline-first. The
11
- marketing site breathes 80px hero display type and full-saturation category cards; an operator surface
12
- keeps the near-black primary, the pure-gray neutrals, and the single crisp blue, and leaves the
13
- display type and chromatic fills behind. Judgments away from the brand are annotated `# derived:`.
11
+ marketing site breathes 80px hero display type and full-saturation category cards; an operator
12
+ surface keeps the near-black primary, the pure-gray neutrals, and the single crisp blue, and leaves
13
+ the display type and chromatic fills behind.
14
14
 
15
15
  ## 1 Visual Theme
16
16
 
@@ -138,83 +138,3 @@ Directives the emitting agent follows verbatim:
138
138
  - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono` (P4).
139
139
  - Every workflow completes from the keyboard; the 2px blue `ring` is always visible (P6). Stay flat —
140
140
  hairline and weight before shadow; reach past a hairline only for a real overlay.
141
-
142
- ```yaml design-primitives
143
- radius: 4px # derived: brand's canonical button/badge radius; cards step to the 8px card radius via the scale
144
- shadow-intensity: 0.5 # derived: brand's signature is layered drop-shadow on featured cards; operator stays hairline-first, mid intensity lifts true overlays only
145
- border-weight: 1px
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: WF Visual Sans Variable, Inter, system-ui, -apple-system, sans-serif
149
- font-mono: WFVisualSans-Mono, Inconsolata, ui-monospace, SFMono-Regular, Menlo, monospace
150
- font-weight-normal: 400
151
- font-weight-strong: 600
152
- heading-tracking: -0.01em # derived: brand display tracking is -0.16px/16px ≈ -0.01em; negative kerning is the voice
153
- duration-unit: 50ms # derived: corpus has no motion spec; standard operator base
154
- duration-fast: 100ms # derived: no corpus motion
155
- duration-normal: 150ms # derived: no corpus motion
156
- duration-slow: 250ms # derived: no corpus motion
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard operator ease
158
- contrast-boost: 1
159
- icon-stroke: 1.75 # derived: one step under lucide's 2 for a refined, engineered operator stroke
160
- icon-size-base: 16px
161
- sidebar-width-expanded: 248px # derived: brand is a website with no app shell; standard operator rail
162
- sidebar-width-collapsed: 56px # derived: no brand shell
163
- topbar-height: 56px # derived: brand nav-bar 16px vertical padding + 22px line ≈ 54, rounded
164
- side-panel-width: 420px # derived: no brand shell
165
- side-panel-width-rich: 640px # derived: no brand shell
166
- modal-width-max: 560px # derived: no brand shell
167
- form-max-width: 640px # derived: no brand shell
168
- table-row-height: 44px # derived: brand's ~44px touch-target rhythm; cell padding 12/16
169
- verbosity: default
170
- feedback: subtle
171
- density-tier: standard # derived: marketing surface is spacious, but a general operator default balances legibility and density; archetypes step denser
172
- product-traits: [cms, dashboard, builder, admin, content-ops]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "WF Visual Sans Variable, Inter, system-ui, -apple-system, sans-serif", mono: "WFVisualSans-Mono, Inconsolata, ui-monospace, SFMono-Regular, Menlo, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#080808"
182
- card: "#ffffff"
183
- card-foreground: "#080808"
184
- muted: "#f4f4f4" # derived: light neutral fill; brand neutrals are pure achromatic
185
- muted-foreground: "#5a5a5a"
186
- border: "#d8d8d8"
187
- input: "#d8d8d8"
188
- ring: "#146ef5" # derived: brand info blue is the interactive/focus accent
189
- primary: "#080808"
190
- primary-foreground: "#ffffff"
191
- accent: "#eaf1fe" # derived: faint tint of the info blue for selection/hover surfaces
192
- accent-foreground: "#146ef5"
193
- destructive: "#ee1d36"
194
- destructive-foreground: "#ffffff"
195
- success: "#00d722"
196
- warning: "#ffae13"
197
- popover: "#ffffff"
198
- popover-foreground: "#080808"
199
- secondary: "#f4f4f4" # derived: matches the secondary-button neutral fill
200
- secondary-foreground: "#080808"
201
- chart-1: "#7a3dff"
202
- chart-2: "#3b89ff"
203
- chart-3: "#00d722"
204
- chart-4: "#ff6b00"
205
- chart-5: "#ed52cb"
206
- sidebar: "#fafafa" # derived: faint neutral to seat the rail against the white canvas
207
- sidebar-foreground: "#080808"
208
- sidebar-primary: "#080808" # derived: brand app-shell active indicator uses the near-black primary
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#eaf1fe" # derived: selected-nav tint matches the content accent
211
- sidebar-accent-foreground: "#146ef5"
212
- sidebar-border: "#d8d8d8"
213
- sidebar-ring: "#146ef5"
214
- spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48, 64]
215
- radius-scale: [0, 2, 4, 8, 9999]
216
- shadow-levels: [none, sm, md]
217
- motion: { durations: [100, 150, 250], easings: ["cubic-bezier(0.4,0,0.2,1)"] }
218
- icons: { family: lucide, stroke: 1.75 }
219
- accent-count: 1
220
- ```
@@ -8,11 +8,11 @@ sourced: 2026-07-04
8
8
  # Wired — the print-editorial, black-on-white operator reading
9
9
 
10
10
  An operator translation of Wired's design language — a flagship technology magazine ported to the
11
- screen. The marketing theatre stays behind: the 64px `WiredDisplay` cover headline, the full-bleed 16:9
12
- hero photography, the magazine story grid. What carries is the chassis underneath — a strict
13
- black-on-white duet with no chromatic accent, square geometry on every control, hairline-only elevation,
14
- and an editorial three-face type voice where a serif carries the page title over the sans that runs the
15
- chrome. Both machine blocks are fully valued; judgments past the corpus are annotated `# derived:`.
11
+ screen. The marketing theatre stays behind: the 64px `WiredDisplay` cover headline, the full-bleed
12
+ 16:9 hero photography, the magazine story grid. What carries is the chassis underneath — a strict
13
+ black-on-white duet with no chromatic accent, square geometry on every control, hairline-only
14
+ elevation, and an editorial three-face type voice where a serif carries the page title over the sans
15
+ that runs the chrome.
16
16
 
17
17
  ## 1 Visual Theme
18
18
 
@@ -26,9 +26,9 @@ a white `sidebar` split by a hairline; density is `standard`, the breathing ridi
26
26
 
27
27
  ## 2 Color Roles
28
28
 
29
- Light values (the manifest carries hex — the corpus's native format). A deliberate black-and-white
30
- duet: `primary` is black, the sole chromatic grace (link blue) is text-links only, and status hues are
31
- derived (the brand ships none), kept deep to sit under the austerity.
29
+ Light values. A deliberate black-and-white duet: `primary` is black, the sole chromatic grace (link
30
+ blue) is text-links only, and status hues are derived (the brand ships none), kept deep to sit under
31
+ the austerity.
32
32
 
33
33
  | Role | Value | Allowed where |
34
34
  | --- | --- | --- |
@@ -65,9 +65,8 @@ substitutes — applied to h1/h2 by hand at operator scale, never the 64px hero.
65
65
  | caption | uppercase eyebrow / category | sans | 12px / 1.3 | `font-weight-strong`, `+0.02em`, uppercase |
66
66
  | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
67
67
 
68
- The machine block carries the sans; the agent applies the serif to h1/h2 by hand. Two weights only:
69
- sans emphasis 700, serif heading 400 — **never** promote the display past 400, its elegance is the
70
- typeface, not the weight.
68
+ Two weights only: sans emphasis 700, serif heading 400 — **never** promote the display past 400, its
69
+ elegance is the typeface, not the weight.
71
70
 
72
71
  ## 4 Component Stylings
73
72
 
@@ -138,83 +137,3 @@ element, put to keyboard work.
138
137
  sans; `tabular-nums` on numeric columns, `font-mono` on IDs / codes / timestamps.
139
138
  - Every workflow completes from the keyboard, the 2px black `ring` always visible; stay flat — hairline
140
139
  and the black border before anything, the brand owns no shadow.
141
-
142
- ```yaml design-primitives
143
- radius: 0px # corpus: rounded.none 0px on every interactive shape — the brand's square-geometry signature
144
- shadow-intensity: 0 # corpus: the brand uses no drop-shadows; hairlines and the 2px black border carry all elevation
145
- border-weight: 1px # corpus: 1px hairline dividers and input borders (the 2px black border is the special standout case)
146
- density-gap: 1
147
- density-inset: 1
148
- font-sans: Apercu, Inter, Helvetica Neue, Helvetica, Arial, sans-serif # corpus: Apercu is the sans for nav/labels/buttons/metadata; Inter the open substitute
149
- font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, monospace # derived: corpus ships no mono; IBM Plex Mono's editorial grotesque suits the austere modern voice
150
- font-weight-normal: 400 # corpus: body/Apercu regular is 400
151
- font-weight-strong: 700 # corpus: Apercu emphasis is 700 (buttons, nav-strong, body-strong) — a two-weight 400/700 sans; the serif heading holds 400
152
- heading-tracking: -0.01em # corpus: WiredDisplay tracks negative (-0.5px@64 down to -0.3px@32); at operator heading sizes that lands near -0.01em
153
- duration-unit: 50ms # derived: corpus silent on motion; operator-standard functional base
154
- duration-fast: 100ms # derived: corpus silent on motion
155
- duration-normal: 150ms # derived: corpus silent on motion
156
- duration-slow: 250ms # derived: corpus silent on motion; a print-restrained brand keeps motion minimal
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: corpus silent; standard operator ease
158
- contrast-boost: 1 # derived: stark black-on-white is already maximal text contrast; the faint hairline is intentional, no boost
159
- icon-stroke: 1.75 # derived: refined operator stroke, one step under lucide's 2, to sit with the high-contrast type
160
- icon-size-base: 16px # derived: corpus silent; operator standard against 14-17px body
161
- sidebar-width-expanded: 248px # derived: corpus has no shell; operator-standard editorial rail
162
- sidebar-width-collapsed: 56px # derived: corpus has no shell; standard icon rail
163
- topbar-height: 52px # derived: corpus masthead is a thin band; the operator topbar stays lean
164
- side-panel-width: 420px # derived: corpus has no shell; operator standard
165
- side-panel-width-rich: 640px # derived: corpus has no shell; content-heavy detail width
166
- modal-width-max: 560px # derived: corpus has no shell; confirmations only
167
- form-max-width: 640px # derived: Wired's narrow single-column forms cap comfortably here
168
- table-row-height: 40px # derived: corpus data-table cell has 12px vertical padding at standard density → 40px rows
169
- verbosity: default # derived: the brand's minimalism is typographic, not label-hiding; keep operator labels present
170
- feedback: subtle # rationale: subtle keeps the 2px ring — which here IS the brand's heavy black border — the keyboard-first austerity still wants unmistakable
171
- density-tier: standard # rationale: an editorial magazine read down to an honest operator tier; breathing carried by type, not widened rows
172
- product-traits: [cms, editorial, content-ops, dashboard, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Apercu, Inter, 'Helvetica Neue', Helvetica, Arial, sans-serif", mono: "IBM Plex Mono, ui-monospace, SFMono-Regular, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#ffffff"
181
- foreground: "#000000" # brand override: pure black ink is intentional (the printed-page duet), not the usual near-black
182
- card: "#ffffff"
183
- card-foreground: "#000000"
184
- muted: "#f5f5f5"
185
- muted-foreground: "#757575"
186
- border: "#e0e0e0"
187
- input: "#000000" # corpus: text-input border is ink black — the square black-bordered field
188
- ring: "#000000" # corpus: black is the heavy-border / standout treatment; the focus ring reuses it
189
- primary: "#000000"
190
- primary-foreground: "#ffffff"
191
- accent: "#f5f5f5"
192
- accent-foreground: "#000000"
193
- destructive: "#c1121f" # derived: brand ships no status palette; a deep red kept under the monochrome austerity
194
- destructive-foreground: "#ffffff"
195
- success: "#1a7f37" # derived: brand ships no status palette; a deep green for status only
196
- warning: "#b45309" # derived: brand ships no status palette; a deep amber for status only
197
- popover: "#ffffff"
198
- popover-foreground: "#000000"
199
- secondary: "#f5f5f5"
200
- secondary-foreground: "#000000"
201
- chart-1: "#000000" # black anchor
202
- chart-2: "#057dbc" # the one chromatic grace: link blue as the single accent series
203
- chart-3: "#757575" # body gray
204
- chart-4: "#b0b0b0" # derived: light gray step for a monochrome spread
205
- chart-5: "#404040" # derived: dark gray step; the brand is monochrome, so the chart ramp is grayscale + one blue
206
- sidebar: "#ffffff" # corpus: the nav-bar / masthead is white (the black footer band stays footer-only)
207
- sidebar-foreground: "#000000"
208
- sidebar-primary: "#000000" # corpus: app-shell active indicator is {colors.primary} = black
209
- sidebar-primary-foreground: "#ffffff"
210
- sidebar-accent: "#f5f5f5"
211
- sidebar-accent-foreground: "#000000"
212
- sidebar-border: "#e0e0e0"
213
- sidebar-ring: "#000000"
214
- spacing-scale: [2, 4, 8, 12, 16, 20, 24, 32, 48]
215
- radius-scale: [0, 9999] # corpus: only 0 (everything) and 9999 (circular icon container) — the strict square scale enforces the no-round-corners rule
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,10 @@ sourced: 2026-07-04
7
7
 
8
8
  # Wise — the operator reading
9
9
 
10
- A global money-transfer brand distilled to one idea for internal tools: a single lime-green action color
11
- against a warm sage surface ladder, near-black olive ink, and generously rounded cards. This is a
12
- deliberate operator reading of Wise — the friendly-fintech temperature carried onto a payments console,
13
- a transfers queue, a settlement dashboard — with the marketing skin left behind. The manifest ships the
14
- light theme (fully valued, no `hint:`); Wise's hero moment (Wise Sans weight 900 at 64–126px, the 24px
15
- pill CTA, the currency-converter widget, the polarity-flipped dark bands) does not translate at operator
16
- scale and stays behind. Judgments away from the marketing surfaces are annotated `# derived:`.
10
+ A global money-transfer brand distilled to one idea for internal tools: a single lime-green action
11
+ color against a warm sage surface ladder, near-black olive ink, and generously rounded cards. This
12
+ is a deliberate operator reading of Wise — the friendly-fintech temperature carried onto a payments
13
+ console, a transfers queue, a settlement dashboard — with the marketing skin left behind.
17
14
 
18
15
  ## 1 Visual Theme
19
16
 
@@ -27,9 +24,9 @@ Density is `standard` — the brand breathes, so the operator read holds an hone
27
24
 
28
25
  ## 2 Color Roles
29
26
 
30
- Light values (the manifest carries hex). One accent: `primary` lime carries brand meaning; the two
31
- greens are disciplined apart (lime is the action, positive green is status), and the tertiary orange
32
- `#ffc091` / cyan `#38c8ff` are illustration graces that survive only as chart hues, never UI accents.
27
+ Light values. One accent: `primary` lime carries brand meaning; the two greens are disciplined apart
28
+ (lime is the action, positive green is status), and the tertiary orange `#ffc091` / cyan `#38c8ff`
29
+ are illustration graces that survive only as chart hues, never UI accents.
33
30
 
34
31
  | Role | Value | Allowed where |
35
32
  | --- | --- | --- |
@@ -138,83 +135,3 @@ The operator sweep is 375 / 768 / 1024 / 1440:
138
135
  the currency-converter widget, the polarity-flipped dark bands, and illustrative SVGs. What carries:
139
136
  the sage/white temperature, the lime accent, the olive ink, the moderate radius, the Inter voice, and
140
137
  the tabular number discipline.
141
-
142
- ```yaml design-primitives
143
- radius: 12px # derived: brand's canonical 24px is marketing-soft; operator tightens to the brand's own form radius (rounded.md 12px), scale still offers 16/24px for cards
144
- shadow-intensity: 0.35 # derived: flat brand; elevation is surface contrast, shadow only faint on true overlays
145
- border-weight: 1px
146
- density-gap: 1 # derived: the brand breathes; an honest standard tier over packing tight
147
- density-inset: 1 # derived: matches the standard tier's component insets
148
- font-sans: Inter, system-ui, -apple-system, sans-serif # the brand's actual second face and full body/UI workhorse; Wise Sans 900 is a hero-only stencil, left behind
149
- font-mono: JetBrains Mono, ui-monospace, monospace # derived: corpus documents no mono; operator IDs/codes/amounts need one
150
- font-weight-normal: 400
151
- font-weight-strong: 600 # corpus: Inter semibold 600 carries buttons/labels/sub-display; the 900 hero weight stays behind
152
- heading-tracking: -0.02em # corpus: derived from the brand's Inter display-xs (-0.48px / 24px ≈ -0.02em)
153
- duration-unit: 50ms # derived: motion out of scope in corpus; functional operator base
154
- duration-fast: 100ms # derived
155
- duration-normal: 150ms # derived
156
- duration-slow: 250ms # derived
157
- ease-default: cubic-bezier(0.4,0,0.2,1) # derived: standard functional ease; timings undocumented
158
- contrast-boost: 1 # derived: the sage/white ladder plus hairlines already carry the grid
159
- icon-stroke: 1.75 # derived: operator line-icon stroke one step under lucide's 2; the friendly brand still reads clean
160
- icon-size-base: 16px # derived: base control icon size
161
- sidebar-width-expanded: 256px # derived: no app shell in corpus; the brand's generous spacing → a touch wider than a dense rail
162
- sidebar-width-collapsed: 56px # derived
163
- topbar-height: 56px # derived: corpus nav-bar padding (12/24) implies a comfortable ~56px bar
164
- side-panel-width: 440px # derived: no shell in corpus; standard nudged up for the brand's breathing
165
- side-panel-width-rich: 640px # derived: content-heavy detail width
166
- modal-width-max: 560px # derived: confirmations only
167
- form-max-width: 640px # derived: the brand's single-column reading caps forms comfortably
168
- table-row-height: 44px # derived: the brand breathes → rows a touch over the dense 40px default; dense archetypes step down via the surface catalog
169
- verbosity: default
170
- feedback: subtle # rationale: the friendly brand voice wants gentle present feedback, not austere silence
171
- density-tier: standard # rationale: a spacious marketing brand read down to an honest operator tier; warmth carried by palette/radius, not whitespace
172
- product-traits: [fintech, payments, money-transfer, dashboard, admin]
173
- ```
174
-
175
- ```yaml lever-manifest
176
- version: 1
177
- fonts: { sans: "Inter, system-ui, -apple-system, sans-serif", mono: "JetBrains Mono, ui-monospace, monospace" }
178
- color-tokens:
179
- light:
180
- background: "#e8ebe6"
181
- foreground: "#0e0f0c"
182
- card: "#ffffff"
183
- card-foreground: "#0e0f0c"
184
- muted: "#eef1ea"
185
- muted-foreground: "#454745"
186
- border: "#d4d8d2"
187
- input: "#0e0f0c" # the Wise signature 1px ink input border — a legitimate brand override of the hairline default
188
- ring: "#163300" # derived: the lime primary is too light for a legible focus outline; the brand's forest ink-deep reads unmistakably
189
- primary: "#9fe870"
190
- primary-foreground: "#0e0f0c"
191
- accent: "#e2f6d5"
192
- accent-foreground: "#0e0f0c"
193
- destructive: "#d03238"
194
- destructive-foreground: "#ffffff"
195
- success: "#2ead4b"
196
- warning: "#b86700" # derived: the brand's bright warning #ffd11a fails as status text on white; its own warning-deep carries caution legibly
197
- popover: "#ffffff"
198
- popover-foreground: "#0e0f0c"
199
- secondary: "#e8ebe6" # corpus: button-secondary fill is canvas-soft (sage)
200
- secondary-foreground: "#0e0f0c"
201
- chart-1: "#2ead4b" # derived: the pale lime primary is too light for a chart mark; the brand's positive green leads the series
202
- chart-2: "#38c8ff" # brand accent cyan, parked as a chart hue
203
- chart-3: "#ffc091" # brand accent orange, parked as a chart hue
204
- chart-4: "#163300" # brand forest ink-deep
205
- chart-5: "#ffd11a" # brand warning yellow, distinct enough for a fifth series
206
- sidebar: "#ffffff" # corpus: nav-bar surface is white canvas — the chrome sits bright beside the sage content
207
- sidebar-foreground: "#0e0f0c"
208
- sidebar-primary: "#9fe870"
209
- sidebar-primary-foreground: "#0e0f0c"
210
- sidebar-accent: "#e2f6d5"
211
- sidebar-accent-foreground: "#0e0f0c"
212
- sidebar-border: "#d4d8d2"
213
- sidebar-ring: "#163300"
214
- spacing-scale: [2, 4, 8, 12, 16, 24, 32, 48, 64]
215
- radius-scale: [0, 8, 12, 16, 24, 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
- ```