@nurix/etna 0.18.19 → 0.18.21

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 (283) hide show
  1. package/README.md +1 -1
  2. package/data/harness-index.json +1 -1
  3. package/data/harnesses/code/CLAUDE.md +1 -1
  4. package/data/harnesses/code/agents/brainstorm.md +1 -1
  5. package/data/harnesses/code/agents/maintenance.md +2 -2
  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 +1 -1
  14. package/data/harnesses/code/skills/brainstorm/SKILL.md +1 -1
  15. package/data/harnesses/code/skills/brainstorm/exit-artifacts.md +4 -4
  16. package/data/harnesses/code/skills/brainstorm/templates/source-of-truth.md +3 -3
  17. package/data/harnesses/code/skills/design/SKILL.md +68 -0
  18. package/data/harnesses/code/skills/design/data/catalog/rules.csv +132 -0
  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 +106 -0
  31. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +154 -0
  32. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +151 -0
  33. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +139 -0
  34. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +139 -0
  35. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +140 -0
  36. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +140 -0
  37. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +140 -0
  38. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +139 -0
  39. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +139 -0
  40. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +147 -0
  41. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +156 -0
  42. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +138 -0
  43. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +138 -0
  44. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +137 -0
  45. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +148 -0
  46. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +141 -0
  47. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +156 -0
  48. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +140 -0
  49. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +153 -0
  50. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +158 -0
  51. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +156 -0
  52. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +122 -0
  53. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +140 -0
  54. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +139 -0
  55. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +139 -0
  56. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +139 -0
  57. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +153 -0
  58. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +140 -0
  59. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +155 -0
  60. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +140 -0
  61. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +141 -0
  62. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +145 -0
  63. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +142 -0
  64. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +152 -0
  65. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +137 -0
  66. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +140 -0
  67. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +170 -0
  68. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +145 -0
  69. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +137 -0
  70. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +168 -0
  71. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +163 -0
  72. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +147 -0
  73. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +158 -0
  74. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +171 -0
  75. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +166 -0
  76. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +160 -0
  77. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +173 -0
  78. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +145 -0
  79. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +153 -0
  80. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +167 -0
  81. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +140 -0
  82. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +140 -0
  83. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +140 -0
  84. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +130 -0
  85. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +140 -0
  86. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +140 -0
  87. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +139 -0
  88. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +137 -0
  89. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +138 -0
  90. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +158 -0
  91. package/data/harnesses/code/skills/design/data/design-md/nurix.md +134 -0
  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/exemplars/command-center.tsx +249 -0
  220. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +249 -0
  221. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +248 -0
  222. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +245 -0
  223. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +223 -0
  224. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +249 -0
  225. package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +88 -0
  226. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +132 -0
  227. package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +76 -0
  228. package/data/harnesses/code/skills/design/references/create.md +131 -0
  229. package/data/harnesses/code/skills/design/references/diagnosis.md +108 -0
  230. package/data/harnesses/code/skills/design/references/hard-rules.md +155 -0
  231. package/data/harnesses/code/skills/design/references/improve.md +87 -0
  232. package/data/harnesses/code/skills/design/references/interaction.md +77 -0
  233. package/data/harnesses/code/skills/design/references/introspect.md +100 -0
  234. package/data/harnesses/code/skills/design/references/lifecycle.md +73 -0
  235. package/data/harnesses/code/skills/design/references/personality.md +428 -0
  236. package/data/harnesses/code/skills/design/references/structure.md +138 -0
  237. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +1032 -0
  238. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +1006 -0
  239. package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +551 -0
  240. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +903 -0
  241. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +26 -0
  242. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +454 -0
  243. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +267 -0
  244. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +690 -0
  245. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +552 -0
  246. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +600 -0
  247. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +68 -0
  248. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +314 -0
  249. package/data/harnesses/code/skills/documentation/SKILL.md +61 -17
  250. package/data/harnesses/code/skills/documentation/references/examples.md +41 -0
  251. package/data/harnesses/code/skills/documentation/references/style-guide.md +14 -9
  252. package/data/harnesses/code/skills/documentation/references/templates.md +305 -51
  253. package/data/harnesses/etna/CLAUDE.md +1 -1
  254. package/data/harnesses/etna/agents/brainstorm.md +1 -1
  255. package/data/harnesses/etna/agents/maintenance.md +2 -2
  256. package/data/harnesses/etna/harness.json +2 -2
  257. package/data/harnesses/etna/rules/general.md +2 -40
  258. package/data/harnesses/etna/rules/nomenclature.md +1 -8
  259. package/data/harnesses/etna/skills/brainstorm/README.md +1 -1
  260. package/data/harnesses/etna/skills/brainstorm/SKILL.md +1 -1
  261. package/data/harnesses/etna/skills/brainstorm/exit-artifacts.md +4 -4
  262. package/data/harnesses/etna/skills/brainstorm/templates/source-of-truth.md +3 -3
  263. package/data/harnesses/etna/skills/documentation/SKILL.md +61 -17
  264. package/data/harnesses/etna/skills/documentation/references/examples.md +41 -0
  265. package/data/harnesses/etna/skills/documentation/references/style-guide.md +14 -9
  266. package/data/harnesses/etna/skills/documentation/references/templates.md +305 -51
  267. package/data/harnesses/mobile/CLAUDE.md +1 -1
  268. package/data/harnesses/mobile/agents/brainstorm.md +1 -1
  269. package/data/harnesses/mobile/agents/maintenance.md +2 -2
  270. package/data/harnesses/mobile/harness.json +2 -2
  271. package/data/harnesses/mobile/rules/database.md +38 -0
  272. package/data/harnesses/mobile/rules/general.md +2 -40
  273. package/data/harnesses/mobile/rules/nomenclature.md +1 -8
  274. package/data/harnesses/mobile/rules/nustack.md +150 -0
  275. package/data/harnesses/mobile/skills/brainstorm/README.md +1 -1
  276. package/data/harnesses/mobile/skills/brainstorm/SKILL.md +1 -1
  277. package/data/harnesses/mobile/skills/brainstorm/exit-artifacts.md +4 -4
  278. package/data/harnesses/mobile/skills/brainstorm/templates/source-of-truth.md +3 -3
  279. package/data/harnesses/mobile/skills/documentation/SKILL.md +61 -17
  280. package/data/harnesses/mobile/skills/documentation/references/examples.md +41 -0
  281. package/data/harnesses/mobile/skills/documentation/references/style-guide.md +14 -9
  282. package/data/harnesses/mobile/skills/documentation/references/templates.md +305 -51
  283. package/package.json +1 -1
@@ -0,0 +1,154 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Airbnb
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Airbnb — the operator reading
9
+
10
+ The warm marketplace brand rendered for internal tools. Airbnb's public surfaces are photography-led
11
+ and generous; an operator surface wearing this brand keeps the palette, the single warm voltage, the
12
+ soft corners, and the modest type voice, but leaves the marketing chrome behind — the pill search
13
+ bar, the 64px rating hero, the 80px nav, and the hand-illustrated product glyphs do not follow the
14
+ brand into a queue or a console. What carries is the feel: pure-white canvas, near-black ink (never
15
+ pure black), one Rausch accent used scarcely, flat depth with a single soft shadow tier, and rounded
16
+ everything.
17
+
18
+ ## 1 Visual Theme
19
+
20
+ Light only — Airbnb ships no dark mode on the public web, so light is the default and dark is a
21
+ foreign opt-in, not a native mode. Flat: depth comes from white-on-white surface separation, hairline
22
+ `border`, and rounded-corner clipping, not from layered shadows (there is exactly one soft shadow
23
+ tier). A single accent, Rausch (`primary`, brand `#ff385c`), carries the one action that matters on a
24
+ surface and nothing else. Ink is a deep near-black slate (`foreground`, brand `#222222`), never pure
25
+ `#000000`. The anchor surface is a pure-white content canvas beside a faintly warm-gray `sidebar`.
26
+ Corners are soft throughout — `radius` on buttons and inputs, a larger step on cards, pill on badges —
27
+ there is no hard corner except the body grid. Density is `standard` with a generous per-dimension lean:
28
+ the brand breathes, but marketplace pages already run tighter than SaaS marketing, so the operator
29
+ reading holds standard rather than airy.
30
+
31
+ ## 2 Color Roles
32
+
33
+ Light values. One accent: Rausch is the only chromatic hue that carries meaning; status hues speak
34
+ only status.
35
+
36
+ | Role | Value | Allowed where |
37
+ | --- | --- | --- |
38
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
39
+ | `foreground` | ink `#222222` | all primary ink; never pure black |
40
+ | `muted` | soft gray `#f7f7f7` | hover rows, disabled fields, subtle fills |
41
+ | `muted-foreground` | mid gray `#6a6a6a` | labels, captions, secondary text, inactive tabs |
42
+ | `secondary` | stronger gray `#f2f2f2` | secondary buttons, circular icon-button surfaces |
43
+ | `border` / `input` | hairline `#dddddd` | every separator, grid line, and field edge |
44
+ | `primary` | Rausch `#ff385c` | the one primary action; active nav; the single warm voltage |
45
+ | `accent` | pale Rausch `#ffe8ec` | selected/hovered rows and nav — a whisper of brand warmth |
46
+ | `ring` | ink `#222222` | the focus outline — Airbnb focuses with ink, not a colored glow |
47
+ | `destructive` | error red `#c13515` | destructive actions and error text only — distinct from Rausch |
48
+ | `success` / `warning` | green / amber | status signalling only, never chrome |
49
+
50
+ Luxe purple (`#460479`), Plus magenta (`#92174d`), and the legal-link blue (`#428bff`) are sub-brand
51
+ graces — they carry no operator role and never become a second accent (see §7). Star ratings render in
52
+ ink, not gold, and that carries over: numbers are ink, not a yellow accent.
53
+
54
+ ## 3 Typography
55
+
56
+ One sans, one mono. `font-sans` is Airbnb Cereal VF (with Circular and Inter as the licensed/open
57
+ fallbacks — Inter is the closest open substitute); the whole ramp rides it, display voice carried by
58
+ size and modest weight, not a second family. Airbnb runs deliberately modest weights — `font-weight-strong`
59
+ stops at 600, never the 700+ that fintech and enterprise systems lean on. `font-mono` is derived: Airbnb
60
+ ships no monospace, but operator IDs, codes, and timestamps need one. Numeric columns render
61
+ `tabular-nums` so figures align down a column.
62
+
63
+ | Step | Role | Size · line | Weight · tracking |
64
+ | --- | --- | --- | --- |
65
+ | h1 | page title | 22px / 1.2 | `font-weight-strong` · `heading-tracking` |
66
+ | h2 | section head | 18px / 1.3 | `font-weight-strong` · `heading-tracking` |
67
+ | h3 | card / group head | 16px / 1.35 | `font-weight-strong` |
68
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` |
69
+ | small | labels, meta, dense table | 13px / 1.3 | `font-weight-normal` |
70
+ | caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.02em`, uppercase |
71
+
72
+ The 64px rating display and the 28px marketing hero stay behind — that peak-scale typographic moment is
73
+ a marketing trust signal, not operator chrome. Bump weight one step for emphasis; never reach past 600.
74
+
75
+ ## 4 Component Stylings
76
+
77
+ Every recurring operator component composes from the primitives — no literal values.
78
+
79
+ - **Button** — `primary`: filled `primary` on `primary-foreground`, `radius`, no pill (the pill CTA is a
80
+ marketing form and stays behind). Secondary: `card` fill, 1px `border`, `foreground`. Ghost:
81
+ transparent, `accent` on hover.
82
+ - **Input** — `card` fill, 1px `border` (`border-weight`), `radius`; on focus the border thickens toward
83
+ 2px and flips to `ring` (ink) — no glow, no colored ring, the signature Airbnb focus.
84
+ - **Card** — `card` surface, 1px `border`, a larger corner step from the radius scale, one soft shadow
85
+ only when floated (`shadow-intensity`); inset by `density-inset`.
86
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
87
+ numeric columns; row selection tints `accent`.
88
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
89
+ for content-heavy), beside the work, not over it.
90
+ - **Badge** — pill (the largest radius step), hairline `border`, `muted`/status fill, uppercase caption;
91
+ status badges take `success` / `warning` / `destructive`, never `primary`.
92
+
93
+ ## 5 Layout
94
+
95
+ Base spacing unit 4px (with a 2px micro-step); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48
96
+ · 64`. Shell dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` /
97
+ `sidebar-width-collapsed`, topbar `topbar-height`, side panel `side-panel-width` /
98
+ `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables full-width. Card
99
+ internal padding runs generous (24px on rich cards, 16px on meta blocks). Density is governed globally
100
+ by `density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
101
+
102
+ ## 6 Depth
103
+
104
+ Flat. Hierarchy comes from the surface ladder, hairlines, and rounded-corner clipping — not shadow:
105
+
106
+ - **0 — canvas** `background`, no border.
107
+ - **1 — panel / card** `card` on a 1px `border`; the one soft shadow tier only when a card must float off
108
+ the canvas.
109
+ - **2 — overlay** `popover` / side panel / modal — the same single soft shadow, over a black scrim at 50%
110
+ opacity for modals. No level stacks a heavier shadow to signal rank; rank is border and position.
111
+
112
+ Focus is a 2px `ring` outline in ink (never a glow, never a colored ring), visible on every interactive
113
+ element. Three z-levels: content, sticky chrome, overlay.
114
+
115
+ ## 7 Do's & Don'ts
116
+
117
+ - **Do** reserve `primary` (Rausch) for the single most important action on a surface; everything else is
118
+ neutral or status. Most surfaces are 90% white + ink with one Rausch moment.
119
+ - **Do** keep corners soft — `radius` on interactive elements, the larger step on cards, pill on badges.
120
+ - **Do** render numbers and ratings in ink, and apply `tabular-nums` to every numeric column; use
121
+ `font-mono` for IDs, codes, and timestamps.
122
+ - **Don't** promote a second chromatic accent. Luxe purple, Plus magenta, and the legal-link blue stay
123
+ sub-brand-decorative; status uses `success` / `warning` / `destructive`.
124
+ - **Don't** focus with a colored ring or a glow — Airbnb focuses by thickening the border to ink.
125
+ - **Don't** use pure black `#000000` for ink; ink is `#222222`.
126
+ - **Don't** pull the pill search bar, the 64px rating hero, or the 80px marketing nav into operator chrome.
127
+
128
+ ## 8 Responsive
129
+
130
+ The operator sweep is 375 / 768 / 1024 / 1440. Grids reduce column counts cleanly at each step — never
131
+ reflow rows.
132
+
133
+ | Breakpoint | What changes |
134
+ | --- | --- |
135
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; sticky detail collapses to a bottom bar carrying the primary action |
136
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; card grids drop to 2-up |
137
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side; card grids 3-up |
138
+ | 1440 | content caps for forms at `form-max-width`; tables and dashboards use the full width; card grids 4-up |
139
+
140
+ ## 9 Agent Prompt Guide
141
+
142
+ Directives the emitting agent follows verbatim. This brand is warm and generous; keep it restrained for
143
+ operator work.
144
+
145
+ - Lead every list surface with its table; lead every entity with its primary read, not its chrome.
146
+ - Accent only the primary action with Rausch (`primary`). If two things want the accent, one is not primary.
147
+ - Stay flat — surface separation, hairlines, and rounded clipping before shadow. Reach for the one soft
148
+ shadow tier only for a real float or overlay.
149
+ - Focus with ink (`ring`), not a colored glow. Render numbers and ratings in ink, never gold.
150
+ - Keep corners soft: `radius` on buttons and inputs, the larger step on cards, pill on badges. No hard corners.
151
+ - Type stays modest — Cereal/Inter, `font-weight-strong` at 600, never 700+. Mono for IDs, codes, timestamps.
152
+ - One accent. Luxe, Plus, and legal-blue are not operator colors here.
153
+ - Leave marketing behind: the pill search bar, the 64px rating hero, the 80px nav, hand-illustrated
154
+ glyphs, and gradients do not follow the brand into a console. Light only — dark is a foreign opt-in.
@@ -0,0 +1,151 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Airtable
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Airtable — operator reading
9
+
10
+ A sober, editorial operator design: white canvas, dark-ink type, hairline separation, and a
11
+ distinctive move at its center — the primary action is **near-black**, not a color. Black *is* the
12
+ brand action here; blue is only the link and the focus ring. This entry is the operator reading of
13
+ Airtable's marketing brand: the temperature, the ink-primary discipline, the moderate radii and the
14
+ never-bold type voice carry; the hero-scale display sizes, the full-bleed signature cards, and the
15
+ 96px marketing section rhythm stay behind.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Light by default; dark is opt-in. Flat and editorial: hierarchy is carried by hairline `border`
20
+ (`#dddddd`), type weight, and whitespace — the brand is emphatically shadow-light, color-block first.
21
+ A single brand action, `primary`, is near-black ink (`#181d26`, a cool navy-black) reserved for the
22
+ one action that matters on a surface; it reads confident and final, never decorative. The neutral ramp
23
+ is a cool near-white, and the one chromatic interactive signal is a link blue (`#1b61c9`) that appears
24
+ only as links and the focus `ring`. The anchor surface is a white content canvas beside a faintly cool
25
+ `sidebar`. Density is `standard` and leans editorial-roomy — calm, not cramped, and never terminal-dense.
26
+
27
+ ## 2 Color Roles
28
+
29
+ Light values first. One brand action — `primary` (near-black) is the only fill that means "act"; the
30
+ blue is functional (links, focus) and status hues speak only status. The warm signature palette
31
+ (coral, forest, cream, peach, mint, mustard) is marketing chrome — it survives here only as chart
32
+ categoricals, never as UI chrome or a second accent.
33
+
34
+ | Role | Value | Allowed where |
35
+ | --- | --- | --- |
36
+ | `background` / `card` / `popover` | white `#ffffff` | page, cards, overlays — the dominant surface |
37
+ | `foreground` | near-black ink `#181d26` | all primary ink |
38
+ | `muted` / `secondary` | cool near-white `#f8fafc` | hover rows, subtle fills, secondary buttons |
39
+ | `muted-foreground` | mid slate `#41454d` | labels, captions, secondary text |
40
+ | `border` / `input` | hairline `#dddddd` | every separator, grid line, and field edge |
41
+ | `primary` | near-black `#181d26` | the one primary action; filled, white text — never the link blue |
42
+ | `accent` | pale blue tint `#eef3fb` | selected/hovered rows and active nav, on-accent surfaces only |
43
+ | `ring` | link blue `#1b61c9` | the focus outline — blue by brand rule, unmistakable, keyboard-first |
44
+ | `destructive` | warm red `#c0301c` | destructive actions and error state only |
45
+ | `success` / `warning` | green `#006400` / amber `#b45309` | status signalling only, never chrome |
46
+
47
+ The blue is the link and focus color, not the brand action; the most common misread is treating
48
+ link-blue as `primary`. Reserve `primary` for near-black.
49
+
50
+ ## 3 Typography
51
+
52
+ One sans, one mono. `font-sans` is Inter — the open substitute the licensed Haas Grotesk resolves to;
53
+ the UI, body, and headings all ride it, with weight and size (never a second family) carrying the
54
+ display voice. `font-mono` is IBM Plex Mono for record IDs, keys, timestamps, and log lines. Numeric
55
+ columns render `tabular-nums` so figures align down a column.
56
+
57
+ | Step | Role | Size · line | Weight · tracking |
58
+ | --- | --- | --- | --- |
59
+ | h1 | page title | 24px / 1.35 | `font-weight-strong` · `heading-tracking` |
60
+ | h2 | section head | 18px / 1.4 | `font-weight-strong` · `heading-tracking` |
61
+ | h3 | card / group head | 16px / 1.4 | `font-weight-strong` · `heading-tracking` |
62
+ | body | UI + prose | 14px / 1.45 | `font-weight-normal` |
63
+ | small | labels, meta, dense table | 13px / 1.4 | `font-weight-normal` |
64
+ | caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.02em`, uppercase |
65
+
66
+ The Airtable trait: never bold for its own sake. Emphasis bumps weight one step to `font-weight-strong`
67
+ (500) — never 600/700 in the running UI. True bold is reserved, as in the brand, for legal surfaces.
68
+ Bump weight to emphasize; never change size.
69
+
70
+ ## 4 Component Stylings
71
+
72
+ Every recurring operator component composes from the primitives — no literal values.
73
+
74
+ - **Button** — `primary`: filled near-black `primary` on `primary-foreground`, `radius`, no pill.
75
+ Secondary: `secondary` fill, 1px `border`, `foreground` — the white-outline pair to the near-black CTA.
76
+ Ghost: transparent, `accent` on hover.
77
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the blue `ring`
78
+ at 2px, no glow.
79
+ - **Card** — `card` surface, 1px `border`, `radius`, shadow only when lifted (`shadow-intensity`);
80
+ inset by `density-inset`.
81
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
82
+ numeric columns; row selection tints `accent`.
83
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
84
+ for content-heavy), beside the work, not over it.
85
+ - **Badge** — hairline `border`, `muted`/status fill, uppercase caption; status badges take
86
+ `success` / `warning` / `destructive`, never `primary`.
87
+
88
+ ## 5 Layout
89
+
90
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the marketing
91
+ 96px section rhythm stays behind). Shell dimensions map one-to-one to the layout primitives: sidebar
92
+ `sidebar-width-expanded` (240px, the brand's filter-rail width) / `sidebar-width-collapsed`, topbar
93
+ `topbar-height` (64px, the brand nav height), side panel `side-panel-width` / `side-panel-width-rich`,
94
+ modal cap `modal-width-max`, forms `form-max-width`, tables full-width. Rows are a roomy 44px — the
95
+ editorial reading, not a dense grid. Density is governed globally by `density-tier` and stepped per
96
+ archetype by the surface catalog, never by absolute overrides.
97
+
98
+ ## 6 Depth
99
+
100
+ Flat — color-block first, shadow second. Hierarchy comes from the surface ladder and hairlines:
101
+
102
+ - **0 — canvas** `background`, no border.
103
+ - **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
104
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md`
105
+ shadow. No level stacks a heavier shadow to signal rank; rank is border and position.
106
+
107
+ Focus is a 2px blue `ring` outline (never a glow), visible on every interactive element. Three
108
+ z-levels: content, sticky chrome, overlay.
109
+
110
+ ## 7 Do's & Don'ts
111
+
112
+ - **Do** keep `primary` near-black. The brand action is `#181d26`, not the link blue — mixing them
113
+ turns a confident surface into a confused one.
114
+ - **Do** reserve `primary` for the single most important action on a surface; everything else is
115
+ neutral or status.
116
+ - **Do** carry hierarchy with hairlines, weight, and whitespace — the brand is predominantly flat.
117
+ - **Do** apply `tabular-nums` to numeric columns and `font-mono` to IDs, keys, and timestamps.
118
+ - **Don't** bold the UI. Emphasis tops out at `font-weight-strong` (500); 600/700 read as a template.
119
+ - **Don't** promote a second chromatic accent. The signature warm palette (coral/forest/cream/mustard)
120
+ is marketing chrome; here it lives only in `chart-*`.
121
+ - **Don't** pill the CTA or reach for a radius outside `radius-scale`; the marketing pill is a pricing
122
+ sub-system signal, not an operator option.
123
+ - **Don't** open detail or edit in a modal when the side panel fits — modals are for confirmations.
124
+
125
+ ## 8 Responsive
126
+
127
+ The operator sweep is 375 / 768 / 1024 / 1440.
128
+
129
+ | Breakpoint | What changes |
130
+ | --- | --- |
131
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
132
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
133
+ | 1024 | sidebar expands; two-pane list+detail holds side by side |
134
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width, capped with outer margin |
135
+
136
+ ## 9 Agent Prompt Guide
137
+
138
+ Directives the emitting agent follows verbatim:
139
+
140
+ - Lead every list surface with its table; lead every entity with its primary read, not its chrome.
141
+ - Accent only the primary action, and make it near-black `primary` — never the blue. Blue is links and
142
+ the focus `ring` only. If two things want the accent, one is not primary.
143
+ - Keep type modest: `font-weight-strong` is 500, never 600/700 in the UI; emphasize by weight, not size.
144
+ - Detail and edit go in the side panel; a modal is a confirmation, not a workspace.
145
+ - Every numeric column is `tabular-nums`; every ID / key / timestamp is `font-mono`.
146
+ - Every workflow completes from the keyboard; the blue `ring` outline is always visible.
147
+ - Stay flat and editorial — hairline and whitespace before shadow. A single near-black band is the
148
+ brand's one voltage moment; use it sparingly for a summary or hero card, never as routine chrome.
149
+ - The warm signature palette (coral, forest, cream, peach, mint, mustard) stays behind as marketing;
150
+ it survives only as chart categoricals. Hero-scale display type (48/40/32) and the 96px section
151
+ rhythm are marketing — do not carry them into operator surfaces.
@@ -0,0 +1,139 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Claude
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Claude — the warm editorial operator design
9
+
10
+ The operator reading of Anthropic's Claude brand. Claude's own surfaces are marketing-editorial —
11
+ hero-scale slab-serif display, full-bleed coral callout bands, a cream-to-dark pacing rhythm. This
12
+ entry keeps what survives at operator scale: the warm cream canvas, the single coral accent, the
13
+ warm-neutral temperature, the moderate radius, the editorial type voice. The 64px display, the coral
14
+ bands, and the 96px rhythm stay behind. The result is unmistakably Claude — warm where every other
15
+ tool is cool — but it earns its density and reserves its one accent.
16
+
17
+ ## 1 Visual Theme
18
+
19
+ Warm by default; dark is opt-in. The canvas is Claude's tinted cream `background` (`#faf9f5`) — a
20
+ deliberate warm off-white, never the cool gray-white the category defaults to (it reads light, so the
21
+ light-default floor holds — it is simply warm). Flat: hierarchy comes from warm hairline `border`,
22
+ type weight, and the cream surface ladder, never heavy shadow. A single accent — Claude coral
23
+ `primary` (`#cc785c`) — is reserved for the one action that matters; ink is warm near-black
24
+ `foreground` (`#141413`). The type voice is editorial — a serif carries the page-title voice over a
25
+ humanist sans body. Density is `standard`; the anchor surface is a cream canvas beside a softer cream `sidebar`.
26
+
27
+ ## 2 Color Roles
28
+
29
+ Light values. One accent: `primary` is the only chromatic hue that carries meaning; teal and amber
30
+ are chart/status graces, status speaks status.
31
+
32
+ | Role | Value | Allowed where |
33
+ | --- | --- | --- |
34
+ | `background` / `card` / `popover` | warm cream `#faf9f5` | page, cards, and overlays — the dominant surface, differentiated by border not brightness |
35
+ | `foreground` | warm near-black `#141413` | all primary ink and headlines |
36
+ | `muted` | soft cream `#f5f0e8` | hover rows, subtle fills, quiet panel bands |
37
+ | `secondary` | cream card `#efe9de` | secondary button fill, one step darker than canvas |
38
+ | `muted-foreground` | warm gray `#6c6a64` | labels, captions, secondary text |
39
+ | `border` / `input` | warm hairline `#e6dfd8` | every separator, grid line, and field edge — one elevation step, not an ink line |
40
+ | `primary` | Claude coral `#cc785c` | the one primary action; active nav; the coral text-link |
41
+ | `accent` | strong cream `#e8e0d2` | selected/hovered rows and nav — selection warms the cream, it does not colour it |
42
+ | `ring` | `primary` coral | the focus outline — unmistakable, because keyboard-first |
43
+ | `destructive` | warm red `#c64545` | destructive actions and error state only |
44
+ | `success` / `warning` | green `#5db872` / gold `#d4a017` | status signalling only, never chrome |
45
+
46
+ The dark navy `#181715` is not a page surface here — it is the inlay for code, log, and terminal
47
+ panels (see §6). Coral stays scarce; teal and amber live only in charts and status.
48
+
49
+ ## 3 Typography
50
+
51
+ Two families carry Claude's voice. `font-sans` is the humanist sans (Styrene B, Inter fallback) — the
52
+ body, UI, table, and label workhorse. Page titles wear the editorial **serif** (Copernicus / Tiempos
53
+ Headline; Cormorant Garamond at `-0.02em` the open substitute) at operator heading scale — the 64px
54
+ display stays behind, but the serif voice is the brand's irreducible signature and carries. `font-mono`
55
+ is JetBrains Mono for IDs, codes, timestamps, log lines; numeric columns render `tabular-nums`.
56
+ Emphasis is weight 500 or a larger serif — the brand **never bolds** (serif at 400; sans to 500).
57
+
58
+ | Step | Role | Family | Size · line | Weight · tracking |
59
+ | --- | --- | --- | --- | --- |
60
+ | h1 | page title | serif | 28px / 1.2 | 400 · `heading-tracking` |
61
+ | h2 | section head | serif | 22px / 1.3 | 400 · -0.01em |
62
+ | h3 | card / group head | sans | 16px / 1.4 | `font-weight-strong` · 0 |
63
+ | body | UI + prose | sans | 14px / 1.55 | `font-weight-normal` |
64
+ | small | labels, meta, dense table | sans | 13px / 1.4 | `font-weight-normal` |
65
+ | caption | uppercase eyebrow | sans | 12px / 1.4 | `font-weight-strong`, +0.12em, uppercase |
66
+ | code | IDs, logs, amounts | mono | 13px / 1.5 | `font-weight-normal` |
67
+
68
+ Negative tracking on the serif is non-negotiable; it is what reads as Claude.
69
+
70
+ ## 4 Component Stylings
71
+
72
+ Every recurring operator component composes from the primitives — no literal values.
73
+ - **Button** — `primary`: filled coral on `primary-foreground`, `radius` (8px), no pill. Secondary:
74
+ `secondary` cream fill, 1px `border`, `foreground`. Ghost: transparent, `accent` on hover.
75
+ - **Input** — `background` fill, 1px `border` (`border-weight`), `radius`; focus draws the coral `ring` at 2px, no glow.
76
+ - **Card** — `card` surface on a 1px `border`; panels read by their hairline, not brightness (nothing sits lighter than cream but off-brand white); shadow only when lifted.
77
+ - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on numeric columns; row selection warms to `accent`.
78
+ - **Side panel** — detail and edit open in the panel (`side-panel-width`, `side-panel-width-rich` for content-heavy), beside the work, not over it.
79
+ - **Badge** — pill radius, `muted`/status fill, uppercase caption; status badges take `success` / `warning` / `destructive`, never `primary`.
80
+
81
+ ## 5 Layout
82
+
83
+ Base spacing unit 4px; the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64` (the marketing
84
+ 96px rhythm stays behind). Shell dimensions map one-to-one to the layout primitives: sidebar
85
+ `sidebar-width-expanded` (256px) / `sidebar-width-collapsed` (56px), topbar `topbar-height` (56px),
86
+ side panel `side-panel-width` (440px) / `side-panel-width-rich` (640px), modal `modal-width-max`, forms
87
+ `form-max-width`, tables full-width — a hair more generous than a dense console. Density is governed
88
+ globally by `density-tier` and stepped per archetype by the surface catalog.
89
+
90
+ ## 6 Depth
91
+
92
+ Flat, color-block-first. Hierarchy comes from the cream ladder and warm hairlines, not shadow:
93
+
94
+ - **0 — canvas** `background` (`#faf9f5`), no border.
95
+ - **1 — panel / card** `card` on a 1px `border`; shadow only when it must lift off the canvas.
96
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns a soft `md` shadow. Rank is border and position, never a heavier shadow.
97
+ - **inlay — code / log / terminal** dark navy `#181715` with cream `on-dark` text and `font-mono` — Claude's product-chrome carried in even a light UI (echoes Claude Code's editor chrome).
98
+
99
+ Focus is a coral `ring` outline (never a glow), visible on every interactive element. Three z-levels:
100
+ content, sticky chrome, overlay.
101
+
102
+ ## 7 Do's & Don'ts
103
+
104
+ - **Do** anchor on the warm cream canvas — pure white reads as any-other-AI-tool; the tint is the brand.
105
+ - **Do** reserve coral `primary` for the single most important action; everything else is neutral or status.
106
+ - **Do** wear the editorial serif with negative tracking on page titles; keep body, tables, and labels on the humanist sans.
107
+ - **Do** dress code, log, and terminal panels in the dark navy inlay (`#181715`, `font-mono`).
108
+ - **Don't** bold the serif — Copernicus at 700 reads bombastic; emphasise by weight 500 or a larger size.
109
+ - **Don't** promote a second chromatic accent — teal and amber are chart/status graces, not UI accents.
110
+ - **Don't** pill the primary CTA (buttons are 8px `radius`); pill radius is for badges only.
111
+ - **Don't** signal elevation with heavy drop shadows, or open detail in a modal when the panel fits.
112
+
113
+ ## 8 Responsive
114
+
115
+ The operator sweep is 375 / 768 / 1024 / 1440.
116
+
117
+ | Breakpoint | What changes |
118
+ | --- | --- |
119
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; density holds |
120
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
121
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
122
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width; breathing widens |
123
+
124
+ Code and log inlays keep mono legibility at every breakpoint by scrolling horizontally, not wrapping.
125
+
126
+ ## 9 Agent Prompt Guide
127
+
128
+ Directives the emitting agent follows verbatim:
129
+
130
+ - Reach for the warm cream canvas first — never pure white; the warm tint is Claude.
131
+ - Accent only the primary action in coral. If two things want the accent, one of them is not primary.
132
+ - Page titles wear the editorial serif at reduced scale with negative tracking; everything else is the
133
+ humanist sans. Never bold — emphasise by weight 500 or a larger serif.
134
+ - Dress code, log, and terminal panels in the dark navy inlay (`#181715`) — show real product chrome,
135
+ never a light mockup of it.
136
+ - Every numeric column is `tabular-nums`; every ID / code / timestamp is `font-mono`.
137
+ - Every workflow completes from the keyboard; the coral `ring` focus outline is always visible.
138
+ - Stay flat — warm hairline and the cream ladder before shadow; reach past a hairline only for a real
139
+ overlay. Leave behind the hero display, the coral callout bands, and the 96px rhythm.
@@ -0,0 +1,139 @@
1
+ ---
2
+ schema: design-md/v1
3
+ product: Apple
4
+ provenance: library
5
+ sourced: 2026-07-04
6
+ ---
7
+
8
+ # Apple — the reverent, photography-first operator reading
9
+
10
+ An operator translation of Apple's web design language. The marketing theatre stays behind:
11
+ full-bleed product tiles, hero display type, and photography carrying the one drop-shadow in the
12
+ system. What carries is the quiet chassis underneath — a parchment canvas with white cards that lift
13
+ by surface change rather than shadow, near-black ink that reads photographic, a single Action Blue
14
+ accent doing every "click me" job, SF Pro's tight-tracked voice, and the 17px reading pace.
15
+
16
+ ## 1 Visual Theme
17
+
18
+ Light by default; dark is opt-in. Flat, but not gray-flat — elevation comes from a surface ladder
19
+ (parchment `background` → white `card` → near-black chrome), never from a shadow on chrome. A single
20
+ accent, Action Blue `primary` (#0066cc), is the only chromatic hue that carries meaning; status hues
21
+ speak only status. Ink is near-black `foreground` (#1d1d1f), chosen over pure black so the page reads
22
+ photographic rather than printed. The anchor surface is a white content canvas resting on the signature
23
+ Apple parchment. Density is `spacious` on purpose: Apple runs airier than contemporary SaaS, and the
24
+ operator reading keeps that pace.
25
+
26
+ ## 2 Color Roles
27
+
28
+ Light values first. One accent — Action Blue is reserved for interactive; a second chromatic accent never appears.
29
+
30
+ | Role | Value | Allowed where |
31
+ | --- | --- | --- |
32
+ | `background` | parchment `#f5f5f7` | the page canvas — the signature Apple off-white |
33
+ | `card` / `popover` | white `#ffffff` | cards and overlays lift off parchment by surface change alone |
34
+ | `foreground` | near-black ink `#1d1d1f` | all primary ink — photographic, never pure black |
35
+ | `muted` | `#f0f0f0` (Apple divider-soft) | hover rows, subtle fills |
36
+ | `muted-foreground` | mid gray `#6e6e73` | labels, captions, secondary text |
37
+ | `border` / `input` | hairline `#e0e0e0` / control gray `#d2d2d7` | separators and card edges; fields take the firmer `input` tone |
38
+ | `primary` | Action Blue `#0066cc` | the one primary action; links; active interactive detail |
39
+ | `ring` | Focus Blue `#0071e3` | the 2px solid focus outline — Apple's exact ring hue |
40
+ | `accent` | Action-Blue tint `#e8f1fb` | selected / hovered rows and nav on light surfaces |
41
+ | `destructive` | `#d70015` | destructive actions and error state only |
42
+ | `success` / `warning` | `#248a3d` / `#b25000` | status signalling only, never chrome |
43
+
44
+ Sky Link Blue `#2997ff` is the dark-surface-only sibling of Action Blue: it carries links and actives on
45
+ the near-black sidebar, where Action Blue would disappear. It never appears on light.
46
+
47
+ ## 3 Typography
48
+
49
+ One sans, one mono. `font-sans` leads with `-apple-system` / `system-ui` so it resolves to real SF Pro on
50
+ Apple platforms and falls back to Inter elsewhere (the corpus's own substitution). Hero display sizes
51
+ (56 / 40px) stay behind; the operator ramp keeps SF Pro's voice — negative tracking, the 17px body — at
52
+ working sizes. `font-mono` is SF Mono for IDs, codes, and timestamps; numeric columns render `tabular-nums`.
53
+
54
+ | Step | Role | Size · line | Weight · tracking |
55
+ | --- | --- | --- | --- |
56
+ | h1 | page title | 28px / 1.14 | `font-weight-strong` · `heading-tracking` |
57
+ | h2 | section head | 21px / 1.2 | `font-weight-strong` · `heading-tracking` |
58
+ | h3 | card / group head | 17px / 1.24 | `font-weight-strong` · `heading-tracking` |
59
+ | body | UI + prose | 17px / 1.47 | `font-weight-normal` |
60
+ | small | labels, meta, dense table | 14px / 1.43 | `font-weight-normal` |
61
+ | caption | eyebrow / nav | 12px / 1.3 | `font-weight-normal` · `-0.01em` |
62
+
63
+ The weight ladder is 300 / 400 / 600 / 700 — **500 is deliberately absent**; headings sit at 600, not
64
+ 700. Body runs at 17px, not 16px: the extra pixel is the brand's reading pace. Emphasise by weight, never size.
65
+
66
+ ## 4 Component Stylings
67
+
68
+ Every recurring operator component composes from the primitives — no literal values.
69
+
70
+ - **Button** — `primary`: filled Action Blue on `primary-foreground`, `radius` (soft rect), no pill by
71
+ default; press is `transform: scale(0.95)`. Secondary: `secondary` fill, `border`. Ghost: `muted` on hover.
72
+ - **Input** — `background` fill, 1px `border` (`input` tone), `radius`; focus draws the `ring` as a full
73
+ 2px solid outline, no glow.
74
+ - **Card** — white `card` on the parchment `background`, 1px `border` hairline, `radius`; elevation is the
75
+ surface change, not a shadow. Inset by `density-inset`.
76
+ - **Table row** — `table-row-height`; hairline `border` grid lines; `muted` on hover; selection tints
77
+ `accent`; `tabular-nums` on numeric columns.
78
+ - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`),
79
+ beside the work, never over it.
80
+ - **Badge** — hairline `border`, `muted` / status fill, uppercase caption; status badges take
81
+ `success` / `warning` / `destructive`, never `primary`.
82
+
83
+ ## 5 Layout
84
+
85
+ Base spacing unit 8px (Apple's grid); the on-scale ramp is `4 · 8 · 12 · 17 · 24 · 32 · 48 · 80` — note
86
+ the signature 17px step and the generous 80px section rhythm. Shell dimensions map one-to-one to the
87
+ layout primitives: sidebar `sidebar-width-expanded` / `sidebar-width-collapsed`, topbar `topbar-height`,
88
+ side panel `side-panel-width` / `side-panel-width-rich`, modal `modal-width-max`, forms `form-max-width`,
89
+ tables full-width. Density is `spacious`, governed globally by `density-tier` and stepped per archetype.
90
+
91
+ ## 6 Depth
92
+
93
+ Flat. Hierarchy comes from the surface ladder and hairlines, not shadow:
94
+
95
+ - **0 — canvas** parchment `background`, no border.
96
+ - **1 — panel / card** white `card` lifting off parchment by surface change alone; 1px `border` hairline.
97
+ - **2 — overlay** `popover` / side panel / modal — the one place `shadow-intensity` earns the faintest `md` lift, or a backdrop-blur floats sticky chrome.
98
+
99
+ Apple puts **exactly one** shadow in its whole system, and it belongs to product photography — never a
100
+ card, button, or text. Operator chrome has no imagery, so it carries zero shadow; only true overlays lift.
101
+ Focus is a 2px solid `ring` outline (Focus Blue), never a glow. Three z-levels: content, chrome, overlay.
102
+
103
+ ## 7 Do's & Don'ts
104
+
105
+ - **Do** reserve Action Blue (`primary`) for the single most important action and every link; the one
106
+ accent is non-negotiable.
107
+ - **Do** elevate by surface change — parchment ↔ white ↔ near-black — before a shadow; the color change is the divider.
108
+ - **Do** keep ink near-black (`foreground` #1d1d1f), never pure black text.
109
+ - **Do** run body at 17px, `tabular-nums` on numeric columns, `font-mono` on IDs / codes / timestamps.
110
+ - **Do** use `transform: scale(0.95)` as the press state, system-wide.
111
+ - **Don't** introduce a second chromatic accent; every "click me" signal is Action Blue.
112
+ - **Don't** put a shadow on a card, button, or text — shadow is reserved for imagery this UI does not have.
113
+ - **Don't** use weight 500; the ladder is 300 / 400 / 600 / 700, and headings are 600, not 700.
114
+ - **Don't** pill every control — the full pill is a marketing-hero signal; operator controls take the soft
115
+ `radius` rect, the pill (`9999`) reserved for at most one hero action.
116
+ - **Don't** use Sky Link Blue (#2997ff) on a light surface — it is the dark-surface-only variant.
117
+
118
+ ## 8 Responsive
119
+
120
+ The operator sweep is 375 / 768 / 1024 / 1440.
121
+
122
+ | Breakpoint | What changes |
123
+ | --- | --- |
124
+ | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; h1 steps 28 → 24 |
125
+ | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow |
126
+ | 1024 | sidebar expands; two-pane queue+detail holds side by side |
127
+ | 1440 | forms cap at `form-max-width`; tables and dashboards use the full width |
128
+
129
+ ## 9 Agent Prompt Guide
130
+
131
+ - **Carries:** the parchment `background` + white `card` surface ladder; near-black ink; the single
132
+ Action Blue accent; SF Pro's voice (via `-apple-system` → Inter fallback) with tight tracking; the 17px
133
+ reading pace; soft radii; surface-change elevation; the `scale(0.95)` press.
134
+ - **Stays behind:** hero display type (56 / 40px); full-bleed marketing tiles; product photography and
135
+ its lone drop-shadow; the pill-everything CTA grammar; the museum-gallery whitespace.
136
+ - Lead every surface with its content — the table on a list, the primary read on an entity — not chrome.
137
+ - Accent only the primary action; if two things want Action Blue, one of them is not primary.
138
+ - Keep the sidebar recessive and near-black, with Sky Link Blue actives; the light canvas does the talking.
139
+ - Every workflow completes from the keyboard; the 2px Focus Blue `ring` is always visible.