@stylecrib/cli 0.3.1 → 0.3.3

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 (314) hide show
  1. package/README.md +94 -9
  2. package/agents/MANIFEST.yml +136 -0
  3. package/agents/README.md +75 -0
  4. package/agents/art-director.md +168 -0
  5. package/agents/audacity-director.md +109 -0
  6. package/agents/brand-identity.md +179 -0
  7. package/agents/brand-precedent.md +119 -0
  8. package/agents/brief-enforcer.md +136 -0
  9. package/agents/component-qa.md +167 -0
  10. package/agents/cto.md +49 -0
  11. package/agents/design-director.md +184 -0
  12. package/agents/design-systems-engineer.md +162 -0
  13. package/agents/direction-curator.md +133 -0
  14. package/agents/homogeneity-detector.md +104 -0
  15. package/agents/logo-designer.md +240 -0
  16. package/agents/marketing-designer.md +156 -0
  17. package/agents/media-curator.md +165 -0
  18. package/agents/motion-engineer.md +270 -0
  19. package/agents/qa-conductor.md +143 -0
  20. package/agents/render-qa.md +133 -0
  21. package/agents/upgrade-simulator.md +123 -0
  22. package/agents/vp-architecture.md +49 -0
  23. package/agents/vp-engineering.md +49 -0
  24. package/dist/index.js +1606 -467
  25. package/package.json +12 -4
  26. package/themes/README.md +70 -0
  27. package/themes/acrylic-soft/THEME.md +142 -0
  28. package/themes/acrylic-soft/tokens.ts +180 -0
  29. package/themes/agency-creative/THEME.md +91 -0
  30. package/themes/agency-creative/tokens.ts +202 -0
  31. package/themes/agency-portfolio/THEME.md +109 -0
  32. package/themes/agency-portfolio/tokens.ts +159 -0
  33. package/themes/ai-startup/THEME.md +95 -0
  34. package/themes/ai-startup/tokens.ts +162 -0
  35. package/themes/airline-modern/THEME.md +104 -0
  36. package/themes/airline-modern/tokens.ts +179 -0
  37. package/themes/arc-stack/THEME.md +125 -0
  38. package/themes/arc-stack/tailwind.snippet.ts +17 -0
  39. package/themes/arc-stack/theme.yml +153 -0
  40. package/themes/arc-stack/tokens.ts +29 -0
  41. package/themes/architectural/THEME.md +102 -0
  42. package/themes/architectural/tokens.ts +159 -0
  43. package/themes/atelier-radiance/THEME.md +93 -0
  44. package/themes/atelier-radiance/tailwind.snippet.ts +15 -0
  45. package/themes/atelier-radiance/theme.yml +130 -0
  46. package/themes/atelier-radiance/tokens.ts +29 -0
  47. package/themes/automotive-ev/THEME.md +87 -0
  48. package/themes/automotive-ev/tokens.ts +183 -0
  49. package/themes/automotive-luxury/THEME.md +88 -0
  50. package/themes/automotive-luxury/tokens.ts +175 -0
  51. package/themes/baby-modern/THEME.md +79 -0
  52. package/themes/baby-modern/tokens.ts +184 -0
  53. package/themes/banking-gravity/THEME.md +171 -0
  54. package/themes/banking-gravity/tokens.ts +169 -0
  55. package/themes/beauty-clean/THEME.md +92 -0
  56. package/themes/beauty-clean/tokens.ts +176 -0
  57. package/themes/beauty-luxury/THEME.md +96 -0
  58. package/themes/beauty-luxury/tokens.ts +178 -0
  59. package/themes/bento-modular/BUILD_BRIEF.md +171 -0
  60. package/themes/bento-modular/THEME.md +80 -0
  61. package/themes/bento-modular/tailwind.snippet.ts +17 -0
  62. package/themes/bento-modular/theme.yml +83 -0
  63. package/themes/bento-modular/tokens.ts +27 -0
  64. package/themes/bookstore-indie/THEME.md +78 -0
  65. package/themes/bookstore-indie/tokens.ts +147 -0
  66. package/themes/brutalist/THEME.md +96 -0
  67. package/themes/brutalist/tokens.ts +151 -0
  68. package/themes/business-tiles/THEME.md +141 -0
  69. package/themes/business-tiles/tokens.ts +178 -0
  70. package/themes/cabana-poster/THEME.md +158 -0
  71. package/themes/cabana-poster/tailwind.snippet.ts +16 -0
  72. package/themes/cabana-poster/theme.yml +221 -0
  73. package/themes/cabana-poster/tokens.ts +34 -0
  74. package/themes/case-panel/THEME.md +126 -0
  75. package/themes/case-panel/tailwind.snippet.ts +15 -0
  76. package/themes/case-panel/theme.yml +153 -0
  77. package/themes/case-panel/tokens.ts +28 -0
  78. package/themes/cinematic-dark/THEME.md +97 -0
  79. package/themes/cinematic-dark/tokens.ts +195 -0
  80. package/themes/classic-car/THEME.md +86 -0
  81. package/themes/classic-car/tokens.ts +173 -0
  82. package/themes/cloud-friendly/THEME.md +152 -0
  83. package/themes/cloud-friendly/tokens.ts +181 -0
  84. package/themes/community-niche/THEME.md +102 -0
  85. package/themes/community-niche/tokens.ts +177 -0
  86. package/themes/corporate-grid/THEME.md +154 -0
  87. package/themes/corporate-grid/tokens.ts +182 -0
  88. package/themes/couture-luxury/THEME.md +85 -0
  89. package/themes/couture-luxury/tokens.ts +146 -0
  90. package/themes/creator-social/THEME.md +131 -0
  91. package/themes/creator-social/tokens.ts +249 -0
  92. package/themes/crypto-onchain/THEME.md +100 -0
  93. package/themes/crypto-onchain/tokens.ts +207 -0
  94. package/themes/cycling-brand/THEME.md +78 -0
  95. package/themes/cycling-brand/tokens.ts +185 -0
  96. package/themes/dating-friendly/THEME.md +102 -0
  97. package/themes/dating-friendly/tokens.ts +178 -0
  98. package/themes/dense-utility/THEME.md +85 -0
  99. package/themes/dense-utility/tokens.ts +155 -0
  100. package/themes/devtool-cli/THEME.md +100 -0
  101. package/themes/devtool-cli/tokens.ts +195 -0
  102. package/themes/devtool-docs/THEME.md +105 -0
  103. package/themes/devtool-docs/tokens.ts +177 -0
  104. package/themes/editorial/THEME.md +129 -0
  105. package/themes/editorial/tailwind.snippet.ts +15 -0
  106. package/themes/editorial/theme.yml +173 -0
  107. package/themes/editorial/tokens.ts +29 -0
  108. package/themes/education-formal/THEME.md +154 -0
  109. package/themes/education-formal/tailwind.snippet.ts +15 -0
  110. package/themes/education-formal/theme.yml +186 -0
  111. package/themes/education-formal/tokens.ts +29 -0
  112. package/themes/education-warm/THEME.md +91 -0
  113. package/themes/education-warm/tokens.ts +185 -0
  114. package/themes/ember-poster/README.md +79 -0
  115. package/themes/ember-poster/THEME.md +101 -0
  116. package/themes/ember-poster/package.json +34 -0
  117. package/themes/ember-poster/tailwind.snippet.ts +17 -0
  118. package/themes/ember-poster/theme.yml +109 -0
  119. package/themes/ember-poster/tokens.ts +27 -0
  120. package/themes/enterprise-cloud/THEME.md +139 -0
  121. package/themes/enterprise-cloud/tokens.ts +179 -0
  122. package/themes/enterprise-tech/THEME.md +167 -0
  123. package/themes/enterprise-tech/tailwind.snippet.ts +15 -0
  124. package/themes/enterprise-tech/theme.yml +202 -0
  125. package/themes/enterprise-tech/tokens.ts +29 -0
  126. package/themes/ev-charging/THEME.md +94 -0
  127. package/themes/ev-charging/tokens.ts +185 -0
  128. package/themes/farm-direct/THEME.md +92 -0
  129. package/themes/farm-direct/tokens.ts +180 -0
  130. package/themes/fintech-card/THEME.md +96 -0
  131. package/themes/fintech-card/tokens.ts +191 -0
  132. package/themes/fintech-trust/THEME.md +94 -0
  133. package/themes/fintech-trust/tokens.ts +192 -0
  134. package/themes/food-blog/THEME.md +98 -0
  135. package/themes/food-blog/tokens.ts +183 -0
  136. package/themes/forum-classic/THEME.md +100 -0
  137. package/themes/forum-classic/tokens.ts +168 -0
  138. package/themes/fresh-plate/THEME.md +144 -0
  139. package/themes/fresh-plate/tailwind.snippet.ts +16 -0
  140. package/themes/fresh-plate/theme.yml +189 -0
  141. package/themes/fresh-plate/tokens.ts +30 -0
  142. package/themes/furniture-modern/THEME.md +94 -0
  143. package/themes/furniture-modern/tokens.ts +176 -0
  144. package/themes/gaming-esports/THEME.md +146 -0
  145. package/themes/gaming-esports/tokens.ts +199 -0
  146. package/themes/gaming-streamer/THEME.md +139 -0
  147. package/themes/gaming-streamer/tokens.ts +201 -0
  148. package/themes/glassmorphic-modern/THEME.md +119 -0
  149. package/themes/glassmorphic-modern/tokens.ts +174 -0
  150. package/themes/government-civic/THEME.md +138 -0
  151. package/themes/government-civic/tokens.ts +164 -0
  152. package/themes/gym-chain/THEME.md +79 -0
  153. package/themes/gym-chain/tokens.ts +196 -0
  154. package/themes/healthcare-bright/THEME.md +95 -0
  155. package/themes/healthcare-bright/tokens.ts +184 -0
  156. package/themes/home-decor/THEME.md +94 -0
  157. package/themes/home-decor/tokens.ts +177 -0
  158. package/themes/hotel-boutique/THEME.md +110 -0
  159. package/themes/hotel-boutique/tokens.ts +179 -0
  160. package/themes/hyperminimal-mono/THEME.md +91 -0
  161. package/themes/hyperminimal-mono/tokens.ts +150 -0
  162. package/themes/indie-art-game/THEME.md +107 -0
  163. package/themes/indie-art-game/tokens.ts +216 -0
  164. package/themes/insurance-legacy/THEME.md +101 -0
  165. package/themes/insurance-legacy/tokens.ts +182 -0
  166. package/themes/insurance-modern/THEME.md +103 -0
  167. package/themes/insurance-modern/tokens.ts +192 -0
  168. package/themes/kaiju-reveal/THEME.md +97 -0
  169. package/themes/kaiju-reveal/tokens.ts +185 -0
  170. package/themes/kinetic-data/THEME.md +172 -0
  171. package/themes/kinetic-data/tailwind.snippet.ts +16 -0
  172. package/themes/kinetic-data/theme.yml +207 -0
  173. package/themes/kinetic-data/tokens.ts +30 -0
  174. package/themes/kinetic-headline/BUILD_BRIEF.md +156 -0
  175. package/themes/kinetic-headline/THEME.md +78 -0
  176. package/themes/kinetic-headline/tailwind.snippet.ts +16 -0
  177. package/themes/kinetic-headline/theme.yml +81 -0
  178. package/themes/kinetic-headline/tokens.ts +26 -0
  179. package/themes/law-firm/THEME.md +108 -0
  180. package/themes/law-firm/tokens.ts +158 -0
  181. package/themes/lawtech-modern/THEME.md +107 -0
  182. package/themes/lawtech-modern/tokens.ts +192 -0
  183. package/themes/linkedin-pro/THEME.md +102 -0
  184. package/themes/linkedin-pro/tokens.ts +174 -0
  185. package/themes/logistics-modern/THEME.md +94 -0
  186. package/themes/logistics-modern/tokens.ts +187 -0
  187. package/themes/magazine-glossy/THEME.md +74 -0
  188. package/themes/magazine-glossy/tokens.ts +158 -0
  189. package/themes/marker-mag/THEME.md +128 -0
  190. package/themes/marker-mag/tailwind.snippet.ts +15 -0
  191. package/themes/marker-mag/theme.yml +159 -0
  192. package/themes/marker-mag/tokens.ts +27 -0
  193. package/themes/marketplace-modern/THEME.md +135 -0
  194. package/themes/marketplace-modern/tokens.ts +186 -0
  195. package/themes/marketplace-vintage/THEME.md +110 -0
  196. package/themes/marketplace-vintage/tokens.ts +185 -0
  197. package/themes/maximalist/THEME.md +96 -0
  198. package/themes/maximalist/tokens.ts +168 -0
  199. package/themes/mid-century/THEME.md +109 -0
  200. package/themes/mid-century/tokens.ts +162 -0
  201. package/themes/motorcycle-brand/THEME.md +86 -0
  202. package/themes/motorcycle-brand/tokens.ts +174 -0
  203. package/themes/museum/THEME.md +83 -0
  204. package/themes/museum/tokens.ts +147 -0
  205. package/themes/music-streaming/THEME.md +101 -0
  206. package/themes/music-streaming/tokens.ts +187 -0
  207. package/themes/music-vinyl/THEME.md +98 -0
  208. package/themes/music-vinyl/tokens.ts +167 -0
  209. package/themes/nature-distilled/BUILD_BRIEF.md +158 -0
  210. package/themes/nature-distilled/THEME.md +81 -0
  211. package/themes/nature-distilled/tailwind.snippet.ts +16 -0
  212. package/themes/nature-distilled/theme.yml +91 -0
  213. package/themes/nature-distilled/tokens.ts +26 -0
  214. package/themes/news-tabloid/THEME.md +72 -0
  215. package/themes/news-tabloid/tokens.ts +158 -0
  216. package/themes/news-tech/THEME.md +75 -0
  217. package/themes/news-tech/tokens.ts +149 -0
  218. package/themes/newsletter/THEME.md +82 -0
  219. package/themes/newsletter/tokens.ts +138 -0
  220. package/themes/newspaper-classic/THEME.md +74 -0
  221. package/themes/newspaper-classic/tokens.ts +159 -0
  222. package/themes/nonprofit-arts/THEME.md +78 -0
  223. package/themes/nonprofit-arts/tokens.ts +157 -0
  224. package/themes/nonprofit-warm/THEME.md +105 -0
  225. package/themes/nonprofit-warm/tokens.ts +188 -0
  226. package/themes/outdoor-adventure/THEME.md +113 -0
  227. package/themes/outdoor-adventure/tokens.ts +181 -0
  228. package/themes/overland-broadside/THEME.md +119 -0
  229. package/themes/overland-broadside/tailwind.snippet.ts +17 -0
  230. package/themes/overland-broadside/theme.yml +138 -0
  231. package/themes/overland-broadside/tokens.ts +27 -0
  232. package/themes/performance-engineered/THEME.md +162 -0
  233. package/themes/performance-engineered/tailwind.snippet.ts +15 -0
  234. package/themes/performance-engineered/theme.yml +193 -0
  235. package/themes/performance-engineered/tokens.ts +29 -0
  236. package/themes/pet-food/THEME.md +78 -0
  237. package/themes/pet-food/tokens.ts +185 -0
  238. package/themes/pharma-clinical/THEME.md +164 -0
  239. package/themes/pharma-clinical/tailwind.snippet.ts +15 -0
  240. package/themes/pharma-clinical/theme.yml +201 -0
  241. package/themes/pharma-clinical/tokens.ts +29 -0
  242. package/themes/pill-editorial/THEME.md +125 -0
  243. package/themes/pill-editorial/tailwind.snippet.ts +15 -0
  244. package/themes/pill-editorial/theme.yml +168 -0
  245. package/themes/pill-editorial/tokens.ts +31 -0
  246. package/themes/podcast-warm/THEME.md +103 -0
  247. package/themes/podcast-warm/tokens.ts +192 -0
  248. package/themes/publisher-indie/THEME.md +78 -0
  249. package/themes/publisher-indie/tokens.ts +148 -0
  250. package/themes/raw-concrete/BUILD_BRIEF.md +157 -0
  251. package/themes/raw-concrete/THEME.md +76 -0
  252. package/themes/raw-concrete/tailwind.snippet.ts +16 -0
  253. package/themes/raw-concrete/theme.yml +88 -0
  254. package/themes/raw-concrete/tokens.ts +27 -0
  255. package/themes/realestate-luxury/THEME.md +94 -0
  256. package/themes/realestate-luxury/tokens.ts +169 -0
  257. package/themes/realestate-marketplace/THEME.md +106 -0
  258. package/themes/realestate-marketplace/tokens.ts +183 -0
  259. package/themes/restaurant-modern/THEME.md +109 -0
  260. package/themes/restaurant-modern/tokens.ts +172 -0
  261. package/themes/runway-fashion/THEME.md +99 -0
  262. package/themes/runway-fashion/tokens.ts +167 -0
  263. package/themes/saturday-morning/THEME.md +117 -0
  264. package/themes/saturday-morning/tokens.ts +281 -0
  265. package/themes/schema.ts +235 -0
  266. package/themes/signal-dark/BUILD_BRIEF.md +168 -0
  267. package/themes/signal-dark/THEME.md +107 -0
  268. package/themes/signal-dark/tokens.ts +181 -0
  269. package/themes/soft-modern/THEME.md +91 -0
  270. package/themes/soft-modern/tokens.ts +166 -0
  271. package/themes/solar-residential/THEME.md +92 -0
  272. package/themes/solar-residential/tokens.ts +176 -0
  273. package/themes/sports-league/THEME.md +180 -0
  274. package/themes/sports-league/tailwind.snippet.ts +15 -0
  275. package/themes/sports-league/theme.yml +213 -0
  276. package/themes/sports-league/tokens.ts +32 -0
  277. package/themes/stadium-sport/THEME.md +114 -0
  278. package/themes/stadium-sport/tokens.ts +187 -0
  279. package/themes/streetwear-hype/THEME.md +100 -0
  280. package/themes/streetwear-hype/tokens.ts +174 -0
  281. package/themes/studio-architect/THEME.md +108 -0
  282. package/themes/studio-architect/tokens.ts +162 -0
  283. package/themes/studio-photographer/THEME.md +88 -0
  284. package/themes/studio-photographer/tokens.ts +164 -0
  285. package/themes/team-kanban/THEME.md +167 -0
  286. package/themes/team-kanban/tailwind.snippet.ts +15 -0
  287. package/themes/team-kanban/theme.yml +209 -0
  288. package/themes/team-kanban/tokens.ts +35 -0
  289. package/themes/telehealth-modern/THEME.md +95 -0
  290. package/themes/telehealth-modern/tokens.ts +197 -0
  291. package/themes/tourism-board/THEME.md +111 -0
  292. package/themes/tourism-board/tokens.ts +173 -0
  293. package/themes/toys-modern/THEME.md +79 -0
  294. package/themes/toys-modern/tokens.ts +200 -0
  295. package/themes/travel-luxury/THEME.md +95 -0
  296. package/themes/travel-luxury/tokens.ts +162 -0
  297. package/themes/vacation-rental/THEME.md +105 -0
  298. package/themes/vacation-rental/tokens.ts +174 -0
  299. package/themes/vault-reel/THEME.md +134 -0
  300. package/themes/vault-reel/tailwind.snippet.ts +16 -0
  301. package/themes/vault-reel/theme.yml +167 -0
  302. package/themes/vault-reel/tokens.ts +30 -0
  303. package/themes/vet-modern/THEME.md +79 -0
  304. package/themes/vet-modern/tokens.ts +194 -0
  305. package/themes/web3-restraint/THEME.md +87 -0
  306. package/themes/web3-restraint/tokens.ts +154 -0
  307. package/themes/wellness-active/THEME.md +102 -0
  308. package/themes/wellness-active/tokens.ts +203 -0
  309. package/themes/wellness-spa/THEME.md +93 -0
  310. package/themes/wellness-spa/tokens.ts +173 -0
  311. package/themes/y2k-chrome/THEME.md +118 -0
  312. package/themes/y2k-chrome/tokens.ts +249 -0
  313. package/themes/yoga-studio/THEME.md +76 -0
  314. package/themes/yoga-studio/tokens.ts +163 -0
@@ -0,0 +1,235 @@
1
+ // Shared schema for every design direction in this library.
2
+ // The CLI consumes this shape to emit `tailwind.config.ts` and `src/index.css`.
3
+ // Hand-authoring is fine; runtime validation happens at codegen time.
4
+
5
+ export type BrandTrait = {
6
+ brand: string; // "NYT", "Tesla", "Aman"
7
+ trait: string; // "typography", "blackout", "cream paper"
8
+ };
9
+
10
+ export type HSL = `${number} ${number}% ${number}%`;
11
+
12
+ export type ColorToken = {
13
+ hsl: HSL; // raw triple, no hsl() wrapper — feeds opacity modifier syntax
14
+ from: string; // verbatim provenance: "Masters green, restrained" — survives in generated css as a comment
15
+ };
16
+
17
+ export type FontStack = {
18
+ family: string; // primary face the project loads — "EB Garamond", "Manrope"
19
+ fallback: string[]; // system fallbacks in order
20
+ from: string; // brand provenance: "NYT serif feel", "Linear's sans"
21
+ googleFont?: string; // url-safe Google Fonts name; null if self-hosted or system-only
22
+ weights?: number[]; // weights to load (default: [400, 600])
23
+ };
24
+
25
+ export type MotionTier = "reveal" | "loop" | "ambient";
26
+
27
+ export type Direction = {
28
+ // identity
29
+ name:
30
+ | "editorial"
31
+ | "soft-modern"
32
+ | "dense-utility"
33
+ | "brutalist"
34
+ | "cinematic-dark"
35
+ | "mid-century"
36
+ | "maximalist"
37
+ | "outdoor-adventure"
38
+ | "hyperminimal-mono"
39
+ | "newsletter"
40
+ | "y2k-chrome"
41
+ | "glassmorphic-modern"
42
+ | "signal-dark"
43
+ | "couture-luxury"
44
+ | "stadium-sport"
45
+ | "performance-engineered"
46
+ | "saturday-morning"
47
+ | "enterprise-tech"
48
+ | "creator-social"
49
+ | "kaiju-reveal"
50
+ | "runway-fashion"
51
+ | "streetwear-hype"
52
+ | "architectural"
53
+ | "kinetic-data"
54
+ | "indie-art-game"
55
+ | "corporate-grid"
56
+ | "enterprise-cloud"
57
+ | "business-tiles"
58
+ | "acrylic-soft"
59
+ | "cloud-friendly"
60
+ | "team-kanban"
61
+ | "government-civic"
62
+ | "banking-gravity"
63
+ | "pharma-clinical"
64
+ // ──────── Batch 2026-06: 30 new directions across under-covered categories ────────
65
+ | "fintech-trust"
66
+ | "fintech-card"
67
+ | "crypto-onchain"
68
+ | "web3-restraint"
69
+ | "education-warm"
70
+ | "education-formal"
71
+ | "healthcare-bright"
72
+ | "telehealth-modern"
73
+ | "wellness-spa"
74
+ | "music-streaming"
75
+ | "music-vinyl"
76
+ | "podcast-warm"
77
+ | "realestate-luxury"
78
+ | "realestate-marketplace"
79
+ | "marketplace-vintage"
80
+ | "marketplace-modern"
81
+ | "gaming-streamer"
82
+ | "gaming-esports"
83
+ | "devtool-cli"
84
+ | "devtool-docs"
85
+ | "nonprofit-warm"
86
+ | "agency-portfolio"
87
+ | "agency-creative"
88
+ | "studio-photographer"
89
+ | "studio-architect"
90
+ | "restaurant-modern"
91
+ | "hotel-boutique"
92
+ | "wellness-active"
93
+ | "food-blog"
94
+ | "ai-startup"
95
+ // ──────── Batch 2026-06 (B): 40 new directions, push library past 100 ────────
96
+ | "travel-luxury"
97
+ | "vacation-rental"
98
+ | "airline-modern"
99
+ | "tourism-board"
100
+ | "yoga-studio"
101
+ | "gym-chain"
102
+ | "sports-league"
103
+ | "cycling-brand"
104
+ | "linkedin-pro"
105
+ | "dating-friendly"
106
+ | "forum-classic"
107
+ | "community-niche"
108
+ | "newspaper-classic"
109
+ | "magazine-glossy"
110
+ | "news-tabloid"
111
+ | "news-tech"
112
+ | "law-firm"
113
+ | "lawtech-modern"
114
+ | "insurance-modern"
115
+ | "insurance-legacy"
116
+ | "automotive-luxury"
117
+ | "automotive-ev"
118
+ | "motorcycle-brand"
119
+ | "classic-car"
120
+ | "beauty-clean"
121
+ | "beauty-luxury"
122
+ | "furniture-modern"
123
+ | "home-decor"
124
+ | "pet-food"
125
+ | "baby-modern"
126
+ | "toys-modern"
127
+ | "vet-modern"
128
+ | "solar-residential"
129
+ | "ev-charging"
130
+ | "farm-direct"
131
+ | "logistics-modern"
132
+ | "museum"
133
+ | "bookstore-indie"
134
+ | "publisher-indie"
135
+ | "nonprofit-arts"
136
+ | "spotter-bright";
137
+ ethos: string; // one-line brand·trait synthesis
138
+ references: BrandTrait[]; // 4-6 brands max
139
+ feel: string; // 2-3 sentence prose description
140
+
141
+ // typography
142
+ fonts: {
143
+ display: FontStack;
144
+ body: FontStack;
145
+ mono: FontStack;
146
+ };
147
+ typography: {
148
+ headingTracking: string; // e.g. "-0.01em"
149
+ bodyTracking: string; // e.g. "0" or "0.17em" for cinematic
150
+ fontFeatureSettings?: string; // e.g. `"ss01", "cv11"` for Manrope
151
+ h1ScaleClamp: string; // e.g. "clamp(2.5rem, 6vw, 4.5rem)"
152
+ bodyBaseSize: string; // e.g. "1rem", "0.9375rem"
153
+ bodyLineHeight: string; // e.g. "1.6"
154
+ };
155
+
156
+ // colors — every token traces to a brand·trait
157
+ colors: {
158
+ background: ColorToken;
159
+ foreground: ColorToken;
160
+ card: ColorToken;
161
+ popover: ColorToken;
162
+ primary: ColorToken;
163
+ primaryForeground: ColorToken;
164
+ secondary: ColorToken;
165
+ secondaryForeground: ColorToken;
166
+ muted: ColorToken;
167
+ mutedForeground: ColorToken;
168
+ accent: ColorToken;
169
+ accentForeground: ColorToken;
170
+ border: ColorToken;
171
+ input: ColorToken;
172
+ ring: ColorToken;
173
+ destructive: ColorToken;
174
+ destructiveForeground: ColorToken;
175
+ // brand tokens (named, not numbered) — any additional colors the direction calls for
176
+ brand?: Record<string, ColorToken>;
177
+ };
178
+
179
+ // spacing — base unit + the canonical scale
180
+ spacing: {
181
+ base: number; // px, almost always 4
182
+ scale: number[]; // tailwind scale steps actually allowed in this direction
183
+ containerMax: string; // "max-w-6xl", "max-w-2xl" for editorial prose-first
184
+ containerPadding: string; // "px-4 lg:px-8"
185
+ sectionPadding: {
186
+ hero: string; // "pt-20 pb-12 lg:pt-28 lg:pb-16"
187
+ default: string; // "py-16 lg:py-24"
188
+ tight: string; // "py-12"
189
+ };
190
+ };
191
+
192
+ // radius — single source for the rounding language
193
+ radius: {
194
+ base: string; // "0.4rem" (sharp), "0.75rem" (rounded), "0" (editorial)
195
+ pillsAllowed: boolean; // false for editorial/dense-utility; true for soft-modern
196
+ };
197
+
198
+ // shadow language — utilities defined in index.css, named by intent
199
+ shadows: {
200
+ style: "minimal" | "soft" | "glow" | "none";
201
+ utilities: Record<string, string>; // e.g. { "glow-gold": "0 0 0 1px ..., 0 30px 80px ..." }
202
+ };
203
+
204
+ // motion — the project library
205
+ motion: {
206
+ easing: string; // "cubic-bezier(0.22, 1, 0.36, 1)" — universal across directions
207
+ durations: Record<MotionTier, number>; // ms
208
+ keyframes: Record<string, { // every keyframe the direction ships
209
+ css: string; // the @keyframes block body
210
+ defaultDuration: number; // ms
211
+ iteration: "once" | "infinite";
212
+ purpose: string; // why this keyframe exists
213
+ }>;
214
+ respectsReducedMotion: true; // hard-coded; non-negotiable
215
+ };
216
+
217
+ // density — informs spacing scale, line-height, component patterns
218
+ density: "low" | "medium" | "high";
219
+
220
+ // component patterns — declarative rules the Director and QA agents enforce
221
+ patterns: {
222
+ button: string; // e.g. "ghost only; no solid-fill on brand-mark colors"
223
+ card: string; // e.g. "hairline border, no fill differentiation from background"
224
+ input: string; // e.g. "border-bottom only, no full box"
225
+ cta: string; // e.g. "text link with gold-gradient utility; never a filled rect"
226
+ };
227
+
228
+ // selection + scrollbar + focus — small details that signal "built"
229
+ details: {
230
+ selectionBg: string; // "hsl(var(--gold) / 0.3)"
231
+ selectionFg: string; // "hsl(var(--foreground))"
232
+ focusRing: string; // "2px solid hsl(var(--ring))"
233
+ scrollbarStyle: "thin" | "auto" | "none";
234
+ };
235
+ };
@@ -0,0 +1,168 @@
1
+ # Signal-Dark — Build Brief
2
+
3
+ > This file is the CONTRACT the theme ships with. It IS the source of truth
4
+ > the `brief-enforcer` subagent reads at commit time and the payload the
5
+ > `Copy for Claude Code` button on the theme detail page hands out.
6
+ >
7
+ > The contract has three sections:
8
+ > 1. MANDATORY BUILD DIRECTIVE — the `You MUST` list.
9
+ > 2. SLOP-BLOCKLIST — the `You MUST NOT` list.
10
+ > 3. CHROME INVENTORY — the allow-list of ornaments this theme may use.
11
+ >
12
+ > Any UI change that touches this theme's section source (or applies this
13
+ > theme to a project) must pass the enforcer against this file.
14
+
15
+ ---
16
+
17
+ ## MANDATORY BUILD DIRECTIVE — you MUST
18
+
19
+ 1. **Hold the warm-black canvas at `#0F0D0C`** (30° warm-bias). Never pure
20
+ black. On light canvas: cotton-paper `#F7F4F0` (30° warm bias). Never
21
+ pure white. Both canvases share the register; only tokens invert.
22
+ 2. **Use ONE signal color on the page** (the palette variant). No second
23
+ color for "variety." Status signals use mono labels with a signal-hued
24
+ dot, not green / orange / blue chips.
25
+ 3. **Set the hero display at `clamp(3.5rem, 10vw, 9rem)`** with tight
26
+ tracking (-0.04em). Type is the primary design element.
27
+ 4. **Radius 12px on cards.** Pills allowed only on model-card meta chips +
28
+ status badges.
29
+ 5. **Reserve prominent mono (JetBrains Mono) for CODE-shaped things:**
30
+ terminal specimens, model IDs, semver tags, CLI output, at-handles.
31
+ NEVER for decorative eyebrow labels.
32
+ 6. **Real Pexels photos for the marketing hero + product surfaces.** No
33
+ SVG stand-ins for photo-worthy subjects.
34
+
35
+ ---
36
+
37
+ ## SLOP-BLOCKLIST — you MUST NOT
38
+
39
+ Each is a hard fail. If the section source contains any of these, the
40
+ enforcer verdict is BLOCK.
41
+
42
+ - **Mono-caps decorative eyebrows** (`SECTION · X`, `WHAT WE X`). CSS
43
+ fingerprint: `textTransform: uppercase` + `letterSpacing ≥ 0.18em` at
44
+ `fontSize < 20px`. Not on this theme's chrome inventory, so banned.
45
+ - **Dot-separated decorative metadata rows** (`ISSUE 04 · CHAPTER 03`,
46
+ `EST. 2019`, `12 MIN READ`). Content-level `·` (`handle · role`,
47
+ terminal output like `stylecrib qa --ci · 12s · passed`) is fine.
48
+ - **`№` / no. / vol. ornaments.**
49
+ - **`▸ TAG` labels.**
50
+ - **`TRUSTED BY` / `AS SEEN IN` / `COMPOSED BY TEAMS AT`** wordmark strips
51
+ — content-slop under any name.
52
+ - **Ticker bars, auto-advancing hero sliders (< 6s mutation), cycling
53
+ headline words** (`we [design][build][ship]`), `AUTO 4s` helpers.
54
+ - **Warm-radial glow gradients as image FALLBACKS.**
55
+ - **Roman-numeral copyright** (`MMXXVI. ALL RIGHTS RESERVED.`).
56
+ - **3-pillar identical feature-card grids as the marketing spine.**
57
+ - **Vague trust copy:** hand-crafted, thoughtfully-made, considered,
58
+ for-teams-that-care, made-with-love.
59
+ - **Attribution of influence in visible copy** — Tesla, Hugging Face,
60
+ Apple, Vercel, Cybertruck are STUDIED, never NAMED in slug, copy, or UI.
61
+
62
+ ---
63
+
64
+ ## CHROME INVENTORY — the allow-list
65
+
66
+ Every ornament this theme may use. Anything visible in the section source
67
+ that is NOT on this list falls under the SLOP-BLOCKLIST above.
68
+
69
+ - **Full-bleed warm-black hero band** with subtle radial warm+cool mesh
70
+ backdrop (opacity ~0.4, drifts on `gradient-shift 32s` ambient loop; NOT
71
+ a purple/pink slop gradient — warm amber + cool blue only, matching
72
+ `--glow-warm` and `--glow-cool`).
73
+ - **Oversized display h1** in Inter 700 at `clamp(3.5rem, 10vw, 9rem)`,
74
+ tracking -0.04em, one line-break maximum.
75
+ - **ONE primary CTA per page:** filled signal button, radius 12px,
76
+ `glow-signal` outer halo on hover only.
77
+ - **ONE ghost secondary next to the primary:** bordered, foreground
78
+ color, radius 12px, no glow.
79
+ - **Model-card panel:** rounded-xl (12px), 1px border, subtle raised card
80
+ bg, meta row at top in mono (icon dot + slug + status pill),
81
+ display-font title, softInk body copy, no shadow beyond hairline border.
82
+ - **Terminal specimen:** rounded-xl (12px) card with a top window bar
83
+ (err-red · warn-amber · signal dots) + mono CLI title. Body is
84
+ pre-formatted JetBrains Mono at 13px, signal-yellow prompt glyph (`$ `),
85
+ softInk body text, mutedInk system text.
86
+ - **Status pill** (mono, rounded-full, px-2.5 py-1 text-[11px]): dot
87
+ prefix in signal for active, mutedInk otherwise. No colored fills.
88
+ - **Full-bleed marketing hero photograph**, 21:9 or 16:9, warm-shadow
89
+ cool-highlight grade, hero display text OVERLAID (never a caption card).
90
+ - **Table-style live metrics grid:** label / value / status dot in mono,
91
+ tabular figures, one row per metric.
92
+ - **3-tier pricing card row**, ONE primary CTA on the middle recommended
93
+ tier (signal-filled), other tiers use ghost secondary.
94
+ - **Footer:** minimal — brand name, one-line studio note, three columns of
95
+ links max, small copyright line (regular Arabic numerals, no MMXXVI,
96
+ no dot-metadata).
97
+
98
+ ---
99
+
100
+ ## SIGNATURE MOVES — verbs, not adjectives
101
+
102
+ The theme's actual moves you MUST land, not adjectives to gesture at.
103
+
104
+ - **Fill the hero band with a warm-black canvas + oversized display type**
105
+ breaking the baseline; hold the mesh-gradient backdrop under it at 0.4
106
+ opacity, drifting via `gradient-shift 32s` so the horizon never sits
107
+ still.
108
+ - **Place ONE signal-yellow button per page**, at the point of conversion.
109
+ Its `glow-signal` halo appears ONLY on hover — never as a static bloom
110
+ (that's Stripe-Linear-Vercel AI-default slop).
111
+ - **Show a terminal specimen with `$` in signal + real CLI output** — the
112
+ developer-tool signature. The prompt IS the visual accent, not
113
+ decorative chrome.
114
+ - **Model-card grid:** put the meta row at the TOP in mono (like a HF
115
+ model card would show `provider/name · v0.14 · task`); display-font
116
+ title comes SECOND, body copy underneath. Never invert that order.
117
+ - **Marketing hero:** full-bleed photograph, big-quiet display text laid
118
+ OVER the photo (not in a caption card next to it). Warm shadows + cool
119
+ highlights color grade so the yellow signal never competes with the
120
+ image.
121
+ - **Use tabular figures for all metric numbers** so they align in columns.
122
+ Non-tabular metric numerals break the register.
123
+
124
+ ---
125
+
126
+ ## COLOR TOKENS (measured)
127
+
128
+ **Dark canvas**
129
+ - `bg`: `#0F0D0C` `card`: `#1A1614` `border`: `#2A231F`
130
+ - `ink`: `#F7F4F0` `softInk`: `#E4DFD8` `mutedInk`: `#9F958A`
131
+
132
+ **Light canvas**
133
+ - `bg`: `#F7F4F0` `card`: `#FFFFFF` `border`: `#DED6CB`
134
+ - `ink`: `#0F0D0C` `softInk`: `#2A231F` `mutedInk`: `#6C6259`
135
+
136
+ **Signal** (default `hazard`)
137
+ - Dark canvas: `#FFDF29` Light canvas: `#B58900`
138
+
139
+ ---
140
+
141
+ ## TYPOGRAPHY
142
+
143
+ - **Display:** Inter (SF Pro Display approximation), 500 / 600 / 700 / 800.
144
+ Hero h1 at `clamp(3.5rem, 10vw, 9rem)`, tracking -0.04em (loosens to
145
+ -0.005em at body).
146
+ - **Body:** Inter, 17px, line-height 1.55, tracking -0.005em.
147
+ - **Mono:** JetBrains Mono — for code / terminal / metric values /
148
+ @handles ONLY.
149
+
150
+ ---
151
+
152
+ ## SECTION SKELETON (top → bottom)
153
+
154
+ 1. Sticky palette + canvas picker strip (meta-UI, not theme composition).
155
+ 2. Masthead nav — brand + 4 nav items + one signal CTA.
156
+ 3. Hero — mesh-gradient backdrop, oversized display, one signal CTA +
157
+ ghost secondary, one paragraph of body copy.
158
+ 4. Product surface photograph — full-bleed 21:9, warm-shadow grade, no
159
+ caption card.
160
+ 5. Terminal specimen — rounded-xl card with `$` prompt, real CLI output.
161
+ 6. Model-card feature grid (2×2 or 4×1) — mono meta at top, display
162
+ title, body, status pill.
163
+ 7. Marketing hero — full-bleed photograph with oversized display overlay
164
+ + one signal CTA.
165
+ 8. Live metrics table — 4 rows, tabular figures, status dots.
166
+ 9. Pricing — 3 tiers, ONE signal CTA on the recommended tier.
167
+ 10. Footer — brand + one-line note + three link columns + small
168
+ copyright.
@@ -0,0 +1,107 @@
1
+ # Design Direction — Signal-Dark
2
+
3
+ ## Ethos
4
+ Tesla blackout · Hugging Face yellow signal · Apple display type · Cybertruck engineered restraint · Vercel typographic discipline
5
+
6
+ ## Feel
7
+ Warm-black backdrop with one bright yellow signal color and oversized display type. Hugging-Face-style model-card grids carry technical content; Tesla-style hero moments carry marketing. Reads as a premium developer tool — serious, friendly, expensive without being noisy. The opposite of generic AI-startup purple.
8
+
9
+ ## Reference brands
10
+ - **Tesla** → warm-black blackout marketing surfaces. Photography is the lead; UI gets out of the way.
11
+ - **Hugging Face** → yellow signal accent (#FFD21E) and model-card chrome. Code prominence; technical-but-friendly voice.
12
+ - **Apple** → oversized SF Pro display type at 80-140px, generous tracking refinement, hero whitespace.
13
+ - **Cybertruck** → engineered angular restraint, raw materiality. Hairline borders that *suggest* without enforcing.
14
+ - **Vercel** → developer-tool typographic discipline. Body type that's neutral; mono type that's prominent.
15
+
16
+ ## Tokens
17
+ HSL triples in `src/index.css`. The warm bias on dark surfaces (`30°` hue) is deliberate — it keeps photography from looking dead. Tesla cinematic uses cool 220° blue-black; signal-dark uses warm 30°. Same pitch-black at first glance, different feeling underneath.
18
+
19
+ Brand tokens: `signal` (= primary), `signal-glow`, `ice` (Vercel cyan, used sparingly for info states), `carbon` (Cybertruck steel for contrast panels), `platinum` (warm silver for sub-headings), `glow-warm` + `glow-cool` (radial-gradient stops for hero backdrops).
20
+
21
+ The yellow `signal` is the **only allowed accent color** on a page. No second color for "variety." If you need a status signal (success/warning/info), use mono labels with the signal-yellow dot prefix, not green/orange/blue chips. The single-color rule is what makes the yellow read as *the signal*.
22
+
23
+ ## Typography
24
+ - **Display:** Inter (Apple SF Pro Display approximation). Weights 500/600/700/800. h1-h4. Hero h1 uses `clamp(3.5rem, 10vw, 9rem)` — Apple/Vercel hero scale. Tracking `-0.04em` (very tight at display sizes; loosens to `-0.005em` at body).
25
+ - **Body:** Inter, 17px, line-height 1.55. Negative tracking `-0.005em`.
26
+ - **Mono:** JetBrains Mono. **Prominent.** Used for eyebrow labels (small-caps mono), code, model IDs, CLI output, status meta. Hugging-Face-style code-first surfaces.
27
+
28
+ Font features: `"cv11", "ss01", "ss03", "tnum"` — Inter stylistic sets + tabular figures. Numbers use `font-mono` or `.tabular`.
29
+
30
+ ## Spacing
31
+ - **Container:** `max-w-7xl px-6 lg:px-12` (1280px wide — Apple/Tesla claim the screen).
32
+ - **Section padding tiers:**
33
+ - Hero: `pt-24 pb-32 lg:pt-32 lg:pb-48` — oversized
34
+ - Default: `py-20 lg:py-32`
35
+ - Tight: `py-12 lg:py-20`
36
+ - **Allowed scale:** 4 6 8 12 16 20 24 32 40 48 64 80 96 128.
37
+
38
+ ## Color
39
+ No hex anywhere. All color via tokens. Opacity via `/N` modifier on a token. **Pure black is forbidden** (`--background` is `30 8% 5%`, never `0 0% 0%`). **Pure white is forbidden** (`--foreground` is `30 15% 96%`, never `0 0% 100%`). The warm bias is structural; abandoning it makes everything look like every other dark-mode site.
40
+
41
+ ## Radius
42
+ `--radius: 0.75rem` (12px). Apple-iOS card radius — rounded but not pillowy. **Pills are allowed** (`pillsAllowed: true`) for status badges, tags, model-card meta chips. Pure right angles read as a Vercel-dashboard surface (off-direction); pure pills read as a chip toggle (also off-direction).
43
+
44
+ ## Shadows
45
+ Style is **"glow"**. Signature utility: `.glow-signal` (yellow halo + soft drop) on primary CTAs and active states. Cards use `.glow-card` (border + subtle drop + ambient backdrop shadow). The glow is the depth language — drop-shadows alone read as 2018 SaaS.
46
+
47
+ Three utilities:
48
+ - `.glow-signal` — yellow halo for the one primary action per page
49
+ - `.glow-card` — default card lift with border + subtle dark drop
50
+ - `.glow-subtle` — minimal hairline + small drop for secondary surfaces
51
+
52
+ ## Motion
53
+ - **Easing:** `cubic-bezier(0.22, 1, 0.36, 1)`
54
+ - **Duration tiers:** reveal (700ms), loop (3s), ambient (32s)
55
+ - **Keyframes:**
56
+ - `fade-rise` — standard content reveal
57
+ - `glow-pulse` — primary CTA breathes slowly (3s loop on the main action)
58
+ - `gradient-shift` — hero backdrop drifts slowly (32s ambient, no visible loop point)
59
+ - `terminal-type` — staggered slide-in for terminal-demo lines
60
+
61
+ `prefers-reduced-motion` honored throughout. Transform-only animations on loops; never animate `top/left/width/height`.
62
+
63
+ ## Component patterns
64
+ - **Buttons:** primary = solid yellow signal (`bg-signal text-primary-foreground rounded-xl font-medium`), `glow-signal` shadow on hover. Secondary = ghost (border + foreground). Tertiary = mono text-link with signal underline. **One primary per page.**
65
+ - **Cards:** `rounded-xl border bg-card`, `glow-card` shadow. Padding `p-6 lg:p-8`. Title in display font; meta in mono. Hover lifts with `translate-y-[-2px]` and the glow strengthens. **Model-card-style** — HF influence: meta lives at the top in mono, content lives below.
66
+ - **Inputs:** rounded-lg box, border, `bg-secondary`. Focus ring `2px solid signal at 60% opacity`. Label above; helper below in `mutedForeground`.
67
+ - **CTAs:** primary action is *the* yellow button — always. There is ONE primary CTA per page maximum. Secondary actions are ghost buttons or text-links. Marketing-heavy "free trial / sign up" double-CTAs are forbidden — pick one.
68
+
69
+ ## Component families
70
+ **Model-card** (`*Card`, `*ModelCard`): rounded-xl, border, bg-card, glow-card; meta row in mono at top (icon + slug + version pill); display-font title; mono description; hover lifts. **Status pill** (`*Pill`, `*Badge`): rounded-full, text-xs, px-2 py-0.5, mono, signal-yellow dot prefix for active/success; never colored fills. **Hero block** (`*Hero`): full-bleed gradient backdrop, oversized h1, mono eyebrow, single yellow CTA + ghost secondary.
71
+
72
+ ## Recommended rich media
73
+
74
+ Signal-dark is **photography-rich** in the Tesla / Apple-marketing tradition, but **screenshot-rich** in the Hugging Face / Vercel developer-tool tradition. The mix is the direction.
75
+
76
+ **Hero media:** widescreen photography (21:9 or 16:9), color-graded toward warm shadows + cool highlights (Tesla-cinematic), or product photography on warm-black seamless. **CSS mesh-gradient backdrops** are also permitted as the hero — radial gradients of `--glow-warm` and `--glow-cool` over `--background`, animated subtly via `gradient-shift`. The gradient backdrop is the cheapest hero option that still reads premium.
77
+
78
+ **Code / terminal demo:** the signature signal-dark element. Show the product running — CLI output, code snippets, model-card examples — in a styled `<pre>` with terminal chrome (window dots, title bar). HF leans into this hard; signal-dark should too. Use **JetBrains Mono**, signal-yellow for the prompt and accents, off-white body, dimmed muted-foreground for system text.
79
+
80
+ **AI tool recommendations:**
81
+ - **Midjourney / Flux** with prompts like *"Tesla marketing site photography, warm shadows, cool highlights, 21:9 cinematic, slight film grain, anamorphic lens flare suppressed"* for hero photography
82
+ - **Sora / Runway / Veo** for hero video loops (cinematic atmosphere, slow motion, max 8 MB)
83
+ - **Spline** for hero 3D — premium product objects, glass/chrome surfaces with warm rim lighting
84
+ - **mesh-gradient.com** for the CSS-only gradient backdrop (no AI needed)
85
+ - **Carbon (carbon.now.sh)** or **Ray.so** for static code-snippet images in warm-black theme
86
+
87
+ **Aspect ratios:** 21:9 or 16:9 for hero photography; 4:3 or 1:1 for product shots; gradient backdrops are full-bleed (no aspect constraint).
88
+
89
+ **Performance:** hero photo ≤200 KB AVIF at 1920w; hero video ≤6 MB H.265 with poster fallback; mesh-gradient is ~0 KB CSS. LCP target <2s on 4G.
90
+
91
+ **Avoid:** pure black photography backgrounds (kills the warm bias), saturated chrome 3D (that's Y2K), gradient backdrops in the wrong hue (no purple, no pink — warm amber + cool blue only), generic stock photography with watermarks, autoplay video with sound, photography that competes with the yellow signal (no yellow-dominant images — the signal must remain the unique yellow on the page).
92
+
93
+ **Accessibility:** WCAG AA for text on warm-black requires foreground at ≥`30 15% 88%` minimum (we use `30 15% 96%`, well above). Yellow signal on warm-black passes AA at large size; for small body text on yellow, the foreground must be the near-black `--primary-foreground`, never off-white.
94
+
95
+ ## Component families (when projects add them)
96
+ Document each family here as it emerges. Initial expected families: `*Card` (model-card pattern), `*Pill` (status/tag), `*Hero` (full-bleed gradient + oversized type).
97
+
98
+ ## Details
99
+ - **Selection:** `hsl(var(--signal) / 0.3)` background, foreground text.
100
+ - **Focus ring:** `2px solid hsl(var(--signal) / 0.6)` — visible and on-brand.
101
+ - **Scrollbar:** thin, warm-toned.
102
+
103
+ ## Exceptions
104
+ None yet. When an intentional violation lands (e.g. a Tesla cinematic-dark *blue* hue used for a single hero moment), add it here with the reason.
105
+
106
+ ## Revisions
107
+ - Initial direction, generated at install time. Authored as the 13th canonical direction to dogfood the synthesis Tesla + Hugging Face + Apple — and to provide a premium-developer-tool aesthetic the original twelve didn't cover.