@etus/seven-skill 0.1.0-beta.3 → 0.1.0-beta.4

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 (570) hide show
  1. package/.agents/skills/seven/SKILL.md +161 -0
  2. package/.agents/skills/seven/agents/seven_asset_producer.toml +37 -0
  3. package/.agents/skills/seven/agents/seven_finish_reviewer.toml +33 -0
  4. package/.agents/skills/seven/agents/seven_manual_edit_applier.toml +43 -0
  5. package/.agents/skills/seven/reference/adapt.md +34 -0
  6. package/.agents/skills/seven/reference/animate.md +31 -0
  7. package/.agents/skills/seven/reference/app-shell.md +152 -0
  8. package/.agents/skills/seven/reference/audit.md +122 -0
  9. package/.agents/skills/seven/reference/bolder.md +34 -0
  10. package/.agents/skills/seven/reference/brand.md +31 -0
  11. package/.agents/skills/seven/reference/clarify.md +76 -0
  12. package/.agents/skills/seven/reference/color-and-contrast.md +84 -0
  13. package/.agents/skills/seven/reference/colorize.md +31 -0
  14. package/.agents/skills/seven/reference/critique.md +53 -0
  15. package/.agents/skills/seven/reference/delight.md +30 -0
  16. package/.agents/skills/seven/reference/distill.md +30 -0
  17. package/.agents/skills/seven/reference/doctor.md +7 -0
  18. package/.agents/skills/seven/reference/document.md +36 -0
  19. package/.agents/skills/seven/reference/evaluations.md +38 -0
  20. package/.agents/skills/seven/reference/exceptions.md +7 -0
  21. package/.agents/skills/seven/reference/extract.md +42 -0
  22. package/.agents/skills/seven/reference/harden.md +36 -0
  23. package/.agents/skills/seven/reference/hooks.md +11 -0
  24. package/.agents/skills/seven/reference/init.md +38 -0
  25. package/.agents/skills/seven/reference/layout.md +33 -0
  26. package/.agents/skills/seven/reference/live.md +106 -0
  27. package/.agents/skills/seven/reference/motion-design.md +71 -0
  28. package/.agents/skills/seven/reference/onboard.md +35 -0
  29. package/.agents/skills/seven/reference/optimize.md +34 -0
  30. package/.agents/skills/seven/reference/overdrive.md +32 -0
  31. package/.agents/skills/seven/reference/polish.md +55 -0
  32. package/.agents/skills/seven/reference/product.md +43 -0
  33. package/.agents/skills/seven/reference/quieter.md +31 -0
  34. package/.agents/skills/seven/reference/routing.md +28 -0
  35. package/.agents/skills/seven/reference/shape.md +85 -0
  36. package/.agents/skills/seven/reference/spatial-design.md +60 -0
  37. package/.agents/skills/seven/reference/typeset.md +28 -0
  38. package/.agents/skills/seven/reference/typography.md +43 -0
  39. package/.agents/skills/seven/reference/ux-writing.md +47 -0
  40. package/.agents/skills/seven/reference/visual-probes.md +36 -0
  41. package/.agents/skills/seven/scripts/context-signals.mjs +94 -0
  42. package/.agents/skills/seven/scripts/critique-storage.mjs +155 -0
  43. package/.agents/skills/seven/scripts/load-context.mjs +93 -0
  44. package/.agents/skills/seven/scripts/update-check.mjs +120 -0
  45. package/.claude/agents/seven-asset-producer.md +40 -0
  46. package/.claude/agents/seven-finish-reviewer.md +36 -0
  47. package/.claude/agents/seven-manual-edit-applier.md +46 -0
  48. package/.claude/skills/seven/SKILL.md +127 -130
  49. package/.claude/skills/seven/reference/adapt.md +34 -0
  50. package/.claude/skills/seven/reference/animate.md +31 -0
  51. package/.claude/skills/seven/reference/app-shell.md +100 -18
  52. package/.claude/skills/seven/reference/audit.md +6 -4
  53. package/.claude/skills/seven/reference/bolder.md +34 -0
  54. package/.claude/skills/seven/reference/brand.md +21 -14
  55. package/.claude/skills/seven/reference/clarify.md +2 -2
  56. package/.claude/skills/seven/reference/colorize.md +31 -0
  57. package/.claude/skills/seven/reference/critique.md +53 -0
  58. package/.claude/skills/seven/reference/delight.md +30 -0
  59. package/.claude/skills/seven/reference/distill.md +30 -0
  60. package/.claude/skills/seven/reference/doctor.md +7 -0
  61. package/.claude/skills/seven/reference/document.md +36 -0
  62. package/.claude/skills/seven/reference/evaluations.md +38 -0
  63. package/.claude/skills/seven/reference/exceptions.md +7 -0
  64. package/.claude/skills/seven/reference/extract.md +42 -0
  65. package/.claude/skills/seven/reference/harden.md +36 -0
  66. package/.claude/skills/seven/reference/hooks.md +11 -0
  67. package/.claude/skills/seven/reference/init.md +38 -0
  68. package/.claude/skills/seven/reference/layout.md +33 -0
  69. package/.claude/skills/seven/reference/live.md +106 -0
  70. package/.claude/skills/seven/reference/motion-design.md +1 -1
  71. package/.claude/skills/seven/reference/onboard.md +35 -0
  72. package/.claude/skills/seven/reference/optimize.md +34 -0
  73. package/.claude/skills/seven/reference/overdrive.md +32 -0
  74. package/.claude/skills/seven/reference/polish.md +5 -5
  75. package/.claude/skills/seven/reference/product.md +2 -4
  76. package/.claude/skills/seven/reference/quieter.md +31 -0
  77. package/.claude/skills/seven/reference/routing.md +28 -0
  78. package/.claude/skills/seven/reference/shape.md +5 -5
  79. package/.claude/skills/seven/reference/spatial-design.md +3 -3
  80. package/.claude/skills/seven/reference/typeset.md +28 -0
  81. package/.claude/skills/seven/reference/typography.md +1 -1
  82. package/.claude/skills/seven/reference/visual-probes.md +36 -0
  83. package/.claude/skills/seven/scripts/context-signals.mjs +94 -0
  84. package/.claude/skills/seven/scripts/critique-storage.mjs +155 -0
  85. package/.claude/skills/seven/scripts/load-context.mjs +68 -59
  86. package/.claude/skills/seven/scripts/update-check.mjs +120 -0
  87. package/.claude-plugin/marketplace.json +2 -2
  88. package/.claude-plugin/plugin.json +8 -3
  89. package/.cursor/skills/seven/SKILL.md +161 -0
  90. package/.cursor/skills/seven/reference/adapt.md +34 -0
  91. package/.cursor/skills/seven/reference/animate.md +31 -0
  92. package/.cursor/skills/seven/reference/app-shell.md +152 -0
  93. package/.cursor/skills/seven/reference/audit.md +122 -0
  94. package/.cursor/skills/seven/reference/bolder.md +34 -0
  95. package/.cursor/skills/seven/reference/brand.md +31 -0
  96. package/.cursor/skills/seven/reference/clarify.md +76 -0
  97. package/.cursor/skills/seven/reference/color-and-contrast.md +84 -0
  98. package/.cursor/skills/seven/reference/colorize.md +31 -0
  99. package/.cursor/skills/seven/reference/critique.md +53 -0
  100. package/.cursor/skills/seven/reference/delight.md +30 -0
  101. package/.cursor/skills/seven/reference/distill.md +30 -0
  102. package/.cursor/skills/seven/reference/doctor.md +7 -0
  103. package/.cursor/skills/seven/reference/document.md +36 -0
  104. package/.cursor/skills/seven/reference/evaluations.md +38 -0
  105. package/.cursor/skills/seven/reference/exceptions.md +7 -0
  106. package/.cursor/skills/seven/reference/extract.md +42 -0
  107. package/.cursor/skills/seven/reference/harden.md +36 -0
  108. package/.cursor/skills/seven/reference/hooks.md +11 -0
  109. package/.cursor/skills/seven/reference/init.md +38 -0
  110. package/.cursor/skills/seven/reference/layout.md +33 -0
  111. package/.cursor/skills/seven/reference/live.md +106 -0
  112. package/.cursor/skills/seven/reference/motion-design.md +71 -0
  113. package/.cursor/skills/seven/reference/onboard.md +35 -0
  114. package/.cursor/skills/seven/reference/optimize.md +34 -0
  115. package/.cursor/skills/seven/reference/overdrive.md +32 -0
  116. package/.cursor/skills/seven/reference/polish.md +55 -0
  117. package/.cursor/skills/seven/reference/product.md +43 -0
  118. package/.cursor/skills/seven/reference/quieter.md +31 -0
  119. package/.cursor/skills/seven/reference/routing.md +28 -0
  120. package/.cursor/skills/seven/reference/shape.md +85 -0
  121. package/.cursor/skills/seven/reference/spatial-design.md +60 -0
  122. package/.cursor/skills/seven/reference/typeset.md +28 -0
  123. package/.cursor/skills/seven/reference/typography.md +43 -0
  124. package/.cursor/skills/seven/reference/ux-writing.md +47 -0
  125. package/.cursor/skills/seven/reference/visual-probes.md +36 -0
  126. package/.cursor/skills/seven/scripts/context-signals.mjs +94 -0
  127. package/.cursor/skills/seven/scripts/critique-storage.mjs +155 -0
  128. package/.cursor/skills/seven/scripts/load-context.mjs +93 -0
  129. package/.cursor/skills/seven/scripts/update-check.mjs +120 -0
  130. package/.gemini/skills/seven/SKILL.md +160 -0
  131. package/.gemini/skills/seven/reference/adapt.md +34 -0
  132. package/.gemini/skills/seven/reference/animate.md +31 -0
  133. package/.gemini/skills/seven/reference/app-shell.md +152 -0
  134. package/.gemini/skills/seven/reference/audit.md +122 -0
  135. package/.gemini/skills/seven/reference/bolder.md +34 -0
  136. package/.gemini/skills/seven/reference/brand.md +31 -0
  137. package/.gemini/skills/seven/reference/clarify.md +76 -0
  138. package/.gemini/skills/seven/reference/color-and-contrast.md +84 -0
  139. package/.gemini/skills/seven/reference/colorize.md +31 -0
  140. package/.gemini/skills/seven/reference/critique.md +53 -0
  141. package/.gemini/skills/seven/reference/delight.md +30 -0
  142. package/.gemini/skills/seven/reference/distill.md +30 -0
  143. package/.gemini/skills/seven/reference/doctor.md +7 -0
  144. package/.gemini/skills/seven/reference/document.md +36 -0
  145. package/.gemini/skills/seven/reference/evaluations.md +38 -0
  146. package/.gemini/skills/seven/reference/exceptions.md +7 -0
  147. package/.gemini/skills/seven/reference/extract.md +42 -0
  148. package/.gemini/skills/seven/reference/harden.md +36 -0
  149. package/.gemini/skills/seven/reference/hooks.md +11 -0
  150. package/.gemini/skills/seven/reference/init.md +38 -0
  151. package/.gemini/skills/seven/reference/layout.md +33 -0
  152. package/.gemini/skills/seven/reference/live.md +106 -0
  153. package/.gemini/skills/seven/reference/motion-design.md +71 -0
  154. package/.gemini/skills/seven/reference/onboard.md +35 -0
  155. package/.gemini/skills/seven/reference/optimize.md +34 -0
  156. package/.gemini/skills/seven/reference/overdrive.md +32 -0
  157. package/.gemini/skills/seven/reference/polish.md +55 -0
  158. package/.gemini/skills/seven/reference/product.md +43 -0
  159. package/.gemini/skills/seven/reference/quieter.md +31 -0
  160. package/.gemini/skills/seven/reference/routing.md +28 -0
  161. package/.gemini/skills/seven/reference/shape.md +85 -0
  162. package/.gemini/skills/seven/reference/spatial-design.md +60 -0
  163. package/.gemini/skills/seven/reference/typeset.md +28 -0
  164. package/.gemini/skills/seven/reference/typography.md +43 -0
  165. package/.gemini/skills/seven/reference/ux-writing.md +47 -0
  166. package/.gemini/skills/seven/reference/visual-probes.md +36 -0
  167. package/.gemini/skills/seven/scripts/context-signals.mjs +94 -0
  168. package/.gemini/skills/seven/scripts/critique-storage.mjs +155 -0
  169. package/.gemini/skills/seven/scripts/load-context.mjs +93 -0
  170. package/.gemini/skills/seven/scripts/update-check.mjs +120 -0
  171. package/.grok/agents/seven-asset-producer.md +40 -0
  172. package/.grok/agents/seven-finish-reviewer.md +36 -0
  173. package/.grok/agents/seven-manual-edit-applier.md +46 -0
  174. package/.grok/skills/seven/SKILL.md +167 -0
  175. package/.grok/skills/seven/reference/adapt.md +34 -0
  176. package/.grok/skills/seven/reference/animate.md +31 -0
  177. package/.grok/skills/seven/reference/app-shell.md +152 -0
  178. package/.grok/skills/seven/reference/audit.md +122 -0
  179. package/.grok/skills/seven/reference/bolder.md +34 -0
  180. package/.grok/skills/seven/reference/brand.md +31 -0
  181. package/.grok/skills/seven/reference/clarify.md +76 -0
  182. package/.grok/skills/seven/reference/color-and-contrast.md +84 -0
  183. package/.grok/skills/seven/reference/colorize.md +31 -0
  184. package/.grok/skills/seven/reference/critique.md +53 -0
  185. package/.grok/skills/seven/reference/delight.md +30 -0
  186. package/.grok/skills/seven/reference/distill.md +30 -0
  187. package/.grok/skills/seven/reference/doctor.md +7 -0
  188. package/.grok/skills/seven/reference/document.md +36 -0
  189. package/.grok/skills/seven/reference/evaluations.md +38 -0
  190. package/.grok/skills/seven/reference/exceptions.md +7 -0
  191. package/.grok/skills/seven/reference/extract.md +42 -0
  192. package/.grok/skills/seven/reference/harden.md +36 -0
  193. package/.grok/skills/seven/reference/hooks.md +11 -0
  194. package/.grok/skills/seven/reference/init.md +38 -0
  195. package/.grok/skills/seven/reference/layout.md +33 -0
  196. package/.grok/skills/seven/reference/live.md +106 -0
  197. package/.grok/skills/seven/reference/motion-design.md +71 -0
  198. package/.grok/skills/seven/reference/onboard.md +35 -0
  199. package/.grok/skills/seven/reference/optimize.md +34 -0
  200. package/.grok/skills/seven/reference/overdrive.md +32 -0
  201. package/.grok/skills/seven/reference/polish.md +55 -0
  202. package/.grok/skills/seven/reference/product.md +43 -0
  203. package/.grok/skills/seven/reference/quieter.md +31 -0
  204. package/.grok/skills/seven/reference/routing.md +28 -0
  205. package/.grok/skills/seven/reference/shape.md +85 -0
  206. package/.grok/skills/seven/reference/spatial-design.md +60 -0
  207. package/.grok/skills/seven/reference/typeset.md +28 -0
  208. package/.grok/skills/seven/reference/typography.md +43 -0
  209. package/.grok/skills/seven/reference/ux-writing.md +47 -0
  210. package/.grok/skills/seven/reference/visual-probes.md +36 -0
  211. package/.grok/skills/seven/scripts/context-signals.mjs +94 -0
  212. package/.grok/skills/seven/scripts/critique-storage.mjs +155 -0
  213. package/.grok/skills/seven/scripts/load-context.mjs +93 -0
  214. package/.grok/skills/seven/scripts/update-check.mjs +120 -0
  215. package/.kiro/skills/seven/SKILL.md +161 -0
  216. package/.kiro/skills/seven/reference/adapt.md +34 -0
  217. package/.kiro/skills/seven/reference/animate.md +31 -0
  218. package/.kiro/skills/seven/reference/app-shell.md +152 -0
  219. package/.kiro/skills/seven/reference/audit.md +122 -0
  220. package/.kiro/skills/seven/reference/bolder.md +34 -0
  221. package/.kiro/skills/seven/reference/brand.md +31 -0
  222. package/.kiro/skills/seven/reference/clarify.md +76 -0
  223. package/.kiro/skills/seven/reference/color-and-contrast.md +84 -0
  224. package/.kiro/skills/seven/reference/colorize.md +31 -0
  225. package/.kiro/skills/seven/reference/critique.md +53 -0
  226. package/.kiro/skills/seven/reference/delight.md +30 -0
  227. package/.kiro/skills/seven/reference/distill.md +30 -0
  228. package/.kiro/skills/seven/reference/doctor.md +7 -0
  229. package/.kiro/skills/seven/reference/document.md +36 -0
  230. package/.kiro/skills/seven/reference/evaluations.md +38 -0
  231. package/.kiro/skills/seven/reference/exceptions.md +7 -0
  232. package/.kiro/skills/seven/reference/extract.md +42 -0
  233. package/.kiro/skills/seven/reference/harden.md +36 -0
  234. package/.kiro/skills/seven/reference/hooks.md +11 -0
  235. package/.kiro/skills/seven/reference/init.md +38 -0
  236. package/.kiro/skills/seven/reference/layout.md +33 -0
  237. package/.kiro/skills/seven/reference/live.md +106 -0
  238. package/.kiro/skills/seven/reference/motion-design.md +71 -0
  239. package/.kiro/skills/seven/reference/onboard.md +35 -0
  240. package/.kiro/skills/seven/reference/optimize.md +34 -0
  241. package/.kiro/skills/seven/reference/overdrive.md +32 -0
  242. package/.kiro/skills/seven/reference/polish.md +55 -0
  243. package/.kiro/skills/seven/reference/product.md +43 -0
  244. package/.kiro/skills/seven/reference/quieter.md +31 -0
  245. package/.kiro/skills/seven/reference/routing.md +28 -0
  246. package/.kiro/skills/seven/reference/shape.md +85 -0
  247. package/.kiro/skills/seven/reference/spatial-design.md +60 -0
  248. package/.kiro/skills/seven/reference/typeset.md +28 -0
  249. package/.kiro/skills/seven/reference/typography.md +43 -0
  250. package/.kiro/skills/seven/reference/ux-writing.md +47 -0
  251. package/.kiro/skills/seven/reference/visual-probes.md +36 -0
  252. package/.kiro/skills/seven/scripts/context-signals.mjs +94 -0
  253. package/.kiro/skills/seven/scripts/critique-storage.mjs +155 -0
  254. package/.kiro/skills/seven/scripts/load-context.mjs +93 -0
  255. package/.kiro/skills/seven/scripts/update-check.mjs +120 -0
  256. package/.opencode/skills/seven/SKILL.md +167 -0
  257. package/.opencode/skills/seven/reference/adapt.md +34 -0
  258. package/.opencode/skills/seven/reference/animate.md +31 -0
  259. package/.opencode/skills/seven/reference/app-shell.md +152 -0
  260. package/.opencode/skills/seven/reference/audit.md +122 -0
  261. package/.opencode/skills/seven/reference/bolder.md +34 -0
  262. package/.opencode/skills/seven/reference/brand.md +31 -0
  263. package/.opencode/skills/seven/reference/clarify.md +76 -0
  264. package/.opencode/skills/seven/reference/color-and-contrast.md +84 -0
  265. package/.opencode/skills/seven/reference/colorize.md +31 -0
  266. package/.opencode/skills/seven/reference/critique.md +53 -0
  267. package/.opencode/skills/seven/reference/delight.md +30 -0
  268. package/.opencode/skills/seven/reference/distill.md +30 -0
  269. package/.opencode/skills/seven/reference/doctor.md +7 -0
  270. package/.opencode/skills/seven/reference/document.md +36 -0
  271. package/.opencode/skills/seven/reference/evaluations.md +38 -0
  272. package/.opencode/skills/seven/reference/exceptions.md +7 -0
  273. package/.opencode/skills/seven/reference/extract.md +42 -0
  274. package/.opencode/skills/seven/reference/harden.md +36 -0
  275. package/.opencode/skills/seven/reference/hooks.md +11 -0
  276. package/.opencode/skills/seven/reference/init.md +38 -0
  277. package/.opencode/skills/seven/reference/layout.md +33 -0
  278. package/.opencode/skills/seven/reference/live.md +106 -0
  279. package/.opencode/skills/seven/reference/motion-design.md +71 -0
  280. package/.opencode/skills/seven/reference/onboard.md +35 -0
  281. package/.opencode/skills/seven/reference/optimize.md +34 -0
  282. package/.opencode/skills/seven/reference/overdrive.md +32 -0
  283. package/.opencode/skills/seven/reference/polish.md +55 -0
  284. package/.opencode/skills/seven/reference/product.md +43 -0
  285. package/.opencode/skills/seven/reference/quieter.md +31 -0
  286. package/.opencode/skills/seven/reference/routing.md +28 -0
  287. package/.opencode/skills/seven/reference/shape.md +85 -0
  288. package/.opencode/skills/seven/reference/spatial-design.md +60 -0
  289. package/.opencode/skills/seven/reference/typeset.md +28 -0
  290. package/.opencode/skills/seven/reference/typography.md +43 -0
  291. package/.opencode/skills/seven/reference/ux-writing.md +47 -0
  292. package/.opencode/skills/seven/reference/visual-probes.md +36 -0
  293. package/.opencode/skills/seven/scripts/context-signals.mjs +94 -0
  294. package/.opencode/skills/seven/scripts/critique-storage.mjs +155 -0
  295. package/.opencode/skills/seven/scripts/load-context.mjs +93 -0
  296. package/.opencode/skills/seven/scripts/update-check.mjs +120 -0
  297. package/.pi/skills/seven/SKILL.md +165 -0
  298. package/.pi/skills/seven/reference/adapt.md +34 -0
  299. package/.pi/skills/seven/reference/animate.md +31 -0
  300. package/.pi/skills/seven/reference/app-shell.md +152 -0
  301. package/.pi/skills/seven/reference/audit.md +122 -0
  302. package/.pi/skills/seven/reference/bolder.md +34 -0
  303. package/.pi/skills/seven/reference/brand.md +31 -0
  304. package/.pi/skills/seven/reference/clarify.md +76 -0
  305. package/.pi/skills/seven/reference/color-and-contrast.md +84 -0
  306. package/.pi/skills/seven/reference/colorize.md +31 -0
  307. package/.pi/skills/seven/reference/critique.md +53 -0
  308. package/.pi/skills/seven/reference/delight.md +30 -0
  309. package/.pi/skills/seven/reference/distill.md +30 -0
  310. package/.pi/skills/seven/reference/doctor.md +7 -0
  311. package/.pi/skills/seven/reference/document.md +36 -0
  312. package/.pi/skills/seven/reference/evaluations.md +38 -0
  313. package/.pi/skills/seven/reference/exceptions.md +7 -0
  314. package/.pi/skills/seven/reference/extract.md +42 -0
  315. package/.pi/skills/seven/reference/harden.md +36 -0
  316. package/.pi/skills/seven/reference/hooks.md +11 -0
  317. package/.pi/skills/seven/reference/init.md +38 -0
  318. package/.pi/skills/seven/reference/layout.md +33 -0
  319. package/.pi/skills/seven/reference/live.md +106 -0
  320. package/.pi/skills/seven/reference/motion-design.md +71 -0
  321. package/.pi/skills/seven/reference/onboard.md +35 -0
  322. package/.pi/skills/seven/reference/optimize.md +34 -0
  323. package/.pi/skills/seven/reference/overdrive.md +32 -0
  324. package/.pi/skills/seven/reference/polish.md +55 -0
  325. package/.pi/skills/seven/reference/product.md +43 -0
  326. package/.pi/skills/seven/reference/quieter.md +31 -0
  327. package/.pi/skills/seven/reference/routing.md +28 -0
  328. package/.pi/skills/seven/reference/shape.md +85 -0
  329. package/.pi/skills/seven/reference/spatial-design.md +60 -0
  330. package/.pi/skills/seven/reference/typeset.md +28 -0
  331. package/.pi/skills/seven/reference/typography.md +43 -0
  332. package/.pi/skills/seven/reference/ux-writing.md +47 -0
  333. package/.pi/skills/seven/reference/visual-probes.md +36 -0
  334. package/.pi/skills/seven/scripts/context-signals.mjs +94 -0
  335. package/.pi/skills/seven/scripts/critique-storage.mjs +155 -0
  336. package/.pi/skills/seven/scripts/load-context.mjs +93 -0
  337. package/.pi/skills/seven/scripts/update-check.mjs +120 -0
  338. package/.qoder/skills/seven/SKILL.md +167 -0
  339. package/.qoder/skills/seven/reference/adapt.md +34 -0
  340. package/.qoder/skills/seven/reference/animate.md +31 -0
  341. package/.qoder/skills/seven/reference/app-shell.md +152 -0
  342. package/.qoder/skills/seven/reference/audit.md +122 -0
  343. package/.qoder/skills/seven/reference/bolder.md +34 -0
  344. package/.qoder/skills/seven/reference/brand.md +31 -0
  345. package/.qoder/skills/seven/reference/clarify.md +76 -0
  346. package/.qoder/skills/seven/reference/color-and-contrast.md +84 -0
  347. package/.qoder/skills/seven/reference/colorize.md +31 -0
  348. package/.qoder/skills/seven/reference/critique.md +53 -0
  349. package/.qoder/skills/seven/reference/delight.md +30 -0
  350. package/.qoder/skills/seven/reference/distill.md +30 -0
  351. package/.qoder/skills/seven/reference/doctor.md +7 -0
  352. package/.qoder/skills/seven/reference/document.md +36 -0
  353. package/.qoder/skills/seven/reference/evaluations.md +38 -0
  354. package/.qoder/skills/seven/reference/exceptions.md +7 -0
  355. package/.qoder/skills/seven/reference/extract.md +42 -0
  356. package/.qoder/skills/seven/reference/harden.md +36 -0
  357. package/.qoder/skills/seven/reference/hooks.md +11 -0
  358. package/.qoder/skills/seven/reference/init.md +38 -0
  359. package/.qoder/skills/seven/reference/layout.md +33 -0
  360. package/.qoder/skills/seven/reference/live.md +106 -0
  361. package/.qoder/skills/seven/reference/motion-design.md +71 -0
  362. package/.qoder/skills/seven/reference/onboard.md +35 -0
  363. package/.qoder/skills/seven/reference/optimize.md +34 -0
  364. package/.qoder/skills/seven/reference/overdrive.md +32 -0
  365. package/.qoder/skills/seven/reference/polish.md +55 -0
  366. package/.qoder/skills/seven/reference/product.md +43 -0
  367. package/.qoder/skills/seven/reference/quieter.md +31 -0
  368. package/.qoder/skills/seven/reference/routing.md +28 -0
  369. package/.qoder/skills/seven/reference/shape.md +85 -0
  370. package/.qoder/skills/seven/reference/spatial-design.md +60 -0
  371. package/.qoder/skills/seven/reference/typeset.md +28 -0
  372. package/.qoder/skills/seven/reference/typography.md +43 -0
  373. package/.qoder/skills/seven/reference/ux-writing.md +47 -0
  374. package/.qoder/skills/seven/reference/visual-probes.md +36 -0
  375. package/.qoder/skills/seven/scripts/context-signals.mjs +94 -0
  376. package/.qoder/skills/seven/scripts/critique-storage.mjs +155 -0
  377. package/.qoder/skills/seven/scripts/load-context.mjs +93 -0
  378. package/.qoder/skills/seven/scripts/update-check.mjs +120 -0
  379. package/.rovodev/skills/seven/SKILL.md +167 -0
  380. package/.rovodev/skills/seven/reference/adapt.md +34 -0
  381. package/.rovodev/skills/seven/reference/animate.md +31 -0
  382. package/.rovodev/skills/seven/reference/app-shell.md +152 -0
  383. package/.rovodev/skills/seven/reference/audit.md +122 -0
  384. package/.rovodev/skills/seven/reference/bolder.md +34 -0
  385. package/.rovodev/skills/seven/reference/brand.md +31 -0
  386. package/.rovodev/skills/seven/reference/clarify.md +76 -0
  387. package/.rovodev/skills/seven/reference/color-and-contrast.md +84 -0
  388. package/.rovodev/skills/seven/reference/colorize.md +31 -0
  389. package/.rovodev/skills/seven/reference/critique.md +53 -0
  390. package/.rovodev/skills/seven/reference/delight.md +30 -0
  391. package/.rovodev/skills/seven/reference/distill.md +30 -0
  392. package/.rovodev/skills/seven/reference/doctor.md +7 -0
  393. package/.rovodev/skills/seven/reference/document.md +36 -0
  394. package/.rovodev/skills/seven/reference/evaluations.md +38 -0
  395. package/.rovodev/skills/seven/reference/exceptions.md +7 -0
  396. package/.rovodev/skills/seven/reference/extract.md +42 -0
  397. package/.rovodev/skills/seven/reference/harden.md +36 -0
  398. package/.rovodev/skills/seven/reference/hooks.md +11 -0
  399. package/.rovodev/skills/seven/reference/init.md +38 -0
  400. package/.rovodev/skills/seven/reference/layout.md +33 -0
  401. package/.rovodev/skills/seven/reference/live.md +106 -0
  402. package/.rovodev/skills/seven/reference/motion-design.md +71 -0
  403. package/.rovodev/skills/seven/reference/onboard.md +35 -0
  404. package/.rovodev/skills/seven/reference/optimize.md +34 -0
  405. package/.rovodev/skills/seven/reference/overdrive.md +32 -0
  406. package/.rovodev/skills/seven/reference/polish.md +55 -0
  407. package/.rovodev/skills/seven/reference/product.md +43 -0
  408. package/.rovodev/skills/seven/reference/quieter.md +31 -0
  409. package/.rovodev/skills/seven/reference/routing.md +28 -0
  410. package/.rovodev/skills/seven/reference/shape.md +85 -0
  411. package/.rovodev/skills/seven/reference/spatial-design.md +60 -0
  412. package/.rovodev/skills/seven/reference/typeset.md +28 -0
  413. package/.rovodev/skills/seven/reference/typography.md +43 -0
  414. package/.rovodev/skills/seven/reference/ux-writing.md +47 -0
  415. package/.rovodev/skills/seven/reference/visual-probes.md +36 -0
  416. package/.rovodev/skills/seven/scripts/context-signals.mjs +94 -0
  417. package/.rovodev/skills/seven/scripts/critique-storage.mjs +155 -0
  418. package/.rovodev/skills/seven/scripts/load-context.mjs +93 -0
  419. package/.rovodev/skills/seven/scripts/update-check.mjs +120 -0
  420. package/.trae/skills/seven/SKILL.md +163 -0
  421. package/.trae/skills/seven/reference/adapt.md +34 -0
  422. package/.trae/skills/seven/reference/animate.md +31 -0
  423. package/.trae/skills/seven/reference/app-shell.md +152 -0
  424. package/.trae/skills/seven/reference/audit.md +122 -0
  425. package/.trae/skills/seven/reference/bolder.md +34 -0
  426. package/.trae/skills/seven/reference/brand.md +31 -0
  427. package/.trae/skills/seven/reference/clarify.md +76 -0
  428. package/.trae/skills/seven/reference/color-and-contrast.md +84 -0
  429. package/.trae/skills/seven/reference/colorize.md +31 -0
  430. package/.trae/skills/seven/reference/critique.md +53 -0
  431. package/.trae/skills/seven/reference/delight.md +30 -0
  432. package/.trae/skills/seven/reference/distill.md +30 -0
  433. package/.trae/skills/seven/reference/doctor.md +7 -0
  434. package/.trae/skills/seven/reference/document.md +36 -0
  435. package/.trae/skills/seven/reference/evaluations.md +38 -0
  436. package/.trae/skills/seven/reference/exceptions.md +7 -0
  437. package/.trae/skills/seven/reference/extract.md +42 -0
  438. package/.trae/skills/seven/reference/harden.md +36 -0
  439. package/.trae/skills/seven/reference/hooks.md +11 -0
  440. package/.trae/skills/seven/reference/init.md +38 -0
  441. package/.trae/skills/seven/reference/layout.md +33 -0
  442. package/.trae/skills/seven/reference/live.md +106 -0
  443. package/.trae/skills/seven/reference/motion-design.md +71 -0
  444. package/.trae/skills/seven/reference/onboard.md +35 -0
  445. package/.trae/skills/seven/reference/optimize.md +34 -0
  446. package/.trae/skills/seven/reference/overdrive.md +32 -0
  447. package/.trae/skills/seven/reference/polish.md +55 -0
  448. package/.trae/skills/seven/reference/product.md +43 -0
  449. package/.trae/skills/seven/reference/quieter.md +31 -0
  450. package/.trae/skills/seven/reference/routing.md +28 -0
  451. package/.trae/skills/seven/reference/shape.md +85 -0
  452. package/.trae/skills/seven/reference/spatial-design.md +60 -0
  453. package/.trae/skills/seven/reference/typeset.md +28 -0
  454. package/.trae/skills/seven/reference/typography.md +43 -0
  455. package/.trae/skills/seven/reference/ux-writing.md +47 -0
  456. package/.trae/skills/seven/reference/visual-probes.md +36 -0
  457. package/.trae/skills/seven/scripts/context-signals.mjs +94 -0
  458. package/.trae/skills/seven/scripts/critique-storage.mjs +155 -0
  459. package/.trae/skills/seven/scripts/load-context.mjs +93 -0
  460. package/.trae/skills/seven/scripts/update-check.mjs +120 -0
  461. package/.trae-cn/skills/seven/SKILL.md +163 -0
  462. package/.trae-cn/skills/seven/reference/adapt.md +34 -0
  463. package/.trae-cn/skills/seven/reference/animate.md +31 -0
  464. package/.trae-cn/skills/seven/reference/app-shell.md +152 -0
  465. package/.trae-cn/skills/seven/reference/audit.md +122 -0
  466. package/.trae-cn/skills/seven/reference/bolder.md +34 -0
  467. package/.trae-cn/skills/seven/reference/brand.md +31 -0
  468. package/.trae-cn/skills/seven/reference/clarify.md +76 -0
  469. package/.trae-cn/skills/seven/reference/color-and-contrast.md +84 -0
  470. package/.trae-cn/skills/seven/reference/colorize.md +31 -0
  471. package/.trae-cn/skills/seven/reference/critique.md +53 -0
  472. package/.trae-cn/skills/seven/reference/delight.md +30 -0
  473. package/.trae-cn/skills/seven/reference/distill.md +30 -0
  474. package/.trae-cn/skills/seven/reference/doctor.md +7 -0
  475. package/.trae-cn/skills/seven/reference/document.md +36 -0
  476. package/.trae-cn/skills/seven/reference/evaluations.md +38 -0
  477. package/.trae-cn/skills/seven/reference/exceptions.md +7 -0
  478. package/.trae-cn/skills/seven/reference/extract.md +42 -0
  479. package/.trae-cn/skills/seven/reference/harden.md +36 -0
  480. package/.trae-cn/skills/seven/reference/hooks.md +11 -0
  481. package/.trae-cn/skills/seven/reference/init.md +38 -0
  482. package/.trae-cn/skills/seven/reference/layout.md +33 -0
  483. package/.trae-cn/skills/seven/reference/live.md +106 -0
  484. package/.trae-cn/skills/seven/reference/motion-design.md +71 -0
  485. package/.trae-cn/skills/seven/reference/onboard.md +35 -0
  486. package/.trae-cn/skills/seven/reference/optimize.md +34 -0
  487. package/.trae-cn/skills/seven/reference/overdrive.md +32 -0
  488. package/.trae-cn/skills/seven/reference/polish.md +55 -0
  489. package/.trae-cn/skills/seven/reference/product.md +43 -0
  490. package/.trae-cn/skills/seven/reference/quieter.md +31 -0
  491. package/.trae-cn/skills/seven/reference/routing.md +28 -0
  492. package/.trae-cn/skills/seven/reference/shape.md +85 -0
  493. package/.trae-cn/skills/seven/reference/spatial-design.md +60 -0
  494. package/.trae-cn/skills/seven/reference/typeset.md +28 -0
  495. package/.trae-cn/skills/seven/reference/typography.md +43 -0
  496. package/.trae-cn/skills/seven/reference/ux-writing.md +47 -0
  497. package/.trae-cn/skills/seven/reference/visual-probes.md +36 -0
  498. package/.trae-cn/skills/seven/scripts/context-signals.mjs +94 -0
  499. package/.trae-cn/skills/seven/scripts/critique-storage.mjs +155 -0
  500. package/.trae-cn/skills/seven/scripts/load-context.mjs +93 -0
  501. package/.trae-cn/skills/seven/scripts/update-check.mjs +120 -0
  502. package/.vibe/skills/seven/SKILL.md +166 -0
  503. package/.vibe/skills/seven/reference/adapt.md +34 -0
  504. package/.vibe/skills/seven/reference/animate.md +31 -0
  505. package/.vibe/skills/seven/reference/app-shell.md +152 -0
  506. package/.vibe/skills/seven/reference/audit.md +122 -0
  507. package/.vibe/skills/seven/reference/bolder.md +34 -0
  508. package/.vibe/skills/seven/reference/brand.md +31 -0
  509. package/.vibe/skills/seven/reference/clarify.md +76 -0
  510. package/.vibe/skills/seven/reference/color-and-contrast.md +84 -0
  511. package/.vibe/skills/seven/reference/colorize.md +31 -0
  512. package/.vibe/skills/seven/reference/critique.md +53 -0
  513. package/.vibe/skills/seven/reference/delight.md +30 -0
  514. package/.vibe/skills/seven/reference/distill.md +30 -0
  515. package/.vibe/skills/seven/reference/doctor.md +7 -0
  516. package/.vibe/skills/seven/reference/document.md +36 -0
  517. package/.vibe/skills/seven/reference/evaluations.md +38 -0
  518. package/.vibe/skills/seven/reference/exceptions.md +7 -0
  519. package/.vibe/skills/seven/reference/extract.md +42 -0
  520. package/.vibe/skills/seven/reference/harden.md +36 -0
  521. package/.vibe/skills/seven/reference/hooks.md +11 -0
  522. package/.vibe/skills/seven/reference/init.md +38 -0
  523. package/.vibe/skills/seven/reference/layout.md +33 -0
  524. package/.vibe/skills/seven/reference/live.md +106 -0
  525. package/.vibe/skills/seven/reference/motion-design.md +71 -0
  526. package/.vibe/skills/seven/reference/onboard.md +35 -0
  527. package/.vibe/skills/seven/reference/optimize.md +34 -0
  528. package/.vibe/skills/seven/reference/overdrive.md +32 -0
  529. package/.vibe/skills/seven/reference/polish.md +55 -0
  530. package/.vibe/skills/seven/reference/product.md +43 -0
  531. package/.vibe/skills/seven/reference/quieter.md +31 -0
  532. package/.vibe/skills/seven/reference/routing.md +28 -0
  533. package/.vibe/skills/seven/reference/shape.md +85 -0
  534. package/.vibe/skills/seven/reference/spatial-design.md +60 -0
  535. package/.vibe/skills/seven/reference/typeset.md +28 -0
  536. package/.vibe/skills/seven/reference/typography.md +43 -0
  537. package/.vibe/skills/seven/reference/ux-writing.md +47 -0
  538. package/.vibe/skills/seven/reference/visual-probes.md +36 -0
  539. package/.vibe/skills/seven/scripts/context-signals.mjs +94 -0
  540. package/.vibe/skills/seven/scripts/critique-storage.mjs +155 -0
  541. package/.vibe/skills/seven/scripts/load-context.mjs +93 -0
  542. package/.vibe/skills/seven/scripts/update-check.mjs +120 -0
  543. package/README.md +51 -90
  544. package/cli/bin/seven.mjs +0 -0
  545. package/cli/engine/browser/injected/index.mjs +62 -13
  546. package/cli/engine/detect-antipatterns-browser.js +4739 -19
  547. package/cli/engine/detect-antipatterns.mjs +1 -0
  548. package/cli/engine/engines/browser/detect-url.mjs +366 -3
  549. package/cli/engine/engines/regex/detect-text.mjs +469 -1
  550. package/cli/engine/engines/static-html/detect-html.mjs +131 -0
  551. package/cli/engine/registry/seven-antipatterns.mjs +379 -4
  552. package/cli/engine/rules/checks.mjs +360 -1
  553. package/cli/engine/shared/tokens.mjs +19 -0
  554. package/cli/engine/token-data.generated.mjs +4025 -0
  555. package/docs/detector-rules.md +277 -38
  556. package/docs/upstream-parity.json +242 -0
  557. package/extension/README.md +5 -0
  558. package/extension/background/service-worker.js +134 -0
  559. package/extension/content/content-script.js +340 -0
  560. package/extension/detector/detect.js +7816 -0
  561. package/extension/devtools/devtools.html +1 -0
  562. package/extension/devtools/devtools.js +3 -0
  563. package/extension/devtools/panel.css +66 -0
  564. package/extension/devtools/panel.html +3 -0
  565. package/extension/devtools/panel.js +37 -0
  566. package/extension/manifest.json +22 -0
  567. package/extension/popup/popup.css +106 -0
  568. package/extension/popup/popup.html +27 -0
  569. package/extension/popup/popup.js +74 -0
  570. package/package.json +19 -8
@@ -0,0 +1,34 @@
1
+ # Adapt — rethink for another web context
2
+
3
+ Adapt an existing React 19 interface to another viewport, input mode, orientation, density, connection, or usage context. This workflow is web-only; native iOS, Android, Svelte, and other framework adapters are intentionally outside Seven's contract.
4
+
5
+ ## Compare contexts
6
+
7
+ Document the source and target for:
8
+
9
+ - user job and urgency;
10
+ - available width/height and orientation;
11
+ - pointer, touch, keyboard, and hover capabilities;
12
+ - information density and content extremes;
13
+ - connectivity and device performance;
14
+ - which behaviors must remain identical.
15
+
16
+ Adaptation is not proportional scaling. Preserve information architecture unless product evidence requires a change, but recompose how it is exposed.
17
+
18
+ ## Apply with Seven
19
+
20
+ - Start from narrow, content-driven layout rules and add complexity with container or `min-width` queries.
21
+ - Use existing responsive behavior and props on Seven components before custom CSS.
22
+ - Reflow side-by-side regions, keep reading and DOM order logical, and prevent horizontal page scroll.
23
+ - Keep primary functionality available on every supported width; use disclosure, not deletion.
24
+ - Provide at least 44×44 CSS px touch targets for coarse pointers without forcing all desktop density to match.
25
+ - Never rely on hover for meaning or access. Use `(hover: hover)` only for enhancements.
26
+ - Bound wide desktop content; do not stretch forms or prose across a 4K canvas.
27
+ - Handle safe areas and the on-screen keyboard when the target includes mobile web.
28
+ - Use responsive images with correct dimensions, `srcset`/`sizes`, and art direction only when crops genuinely differ.
29
+
30
+ Do not hardcode device names or fork separate mobile/desktop component trees without a demonstrated semantic need.
31
+
32
+ ## Verify
33
+
34
+ Test the actual supported breakpoint boundaries, 320 px, zoomed desktop, portrait/landscape, keyboard-only, coarse/fine pointer, long pt-BR strings, reduced motion, and at least one real lower-performance device when risk warrants it. Run Seven checks on all changed files and browser checks against the rendered target.
@@ -0,0 +1,31 @@
1
+ # Animate — motion with a job
2
+
3
+ Add motion only when it explains feedback, state, hierarchy, or spatial continuity. Read [motion-design.md](motion-design.md) completely before editing.
4
+
5
+ ## Motion thesis
6
+
7
+ Before implementation, identify:
8
+
9
+ - the state or relationship that is currently hard to understand;
10
+ - the smallest motion that would clarify it;
11
+ - frequency, interruption behavior, and performance budget;
12
+ - reduced-motion equivalent;
13
+ - the existing Seven component or motion token that owns the behavior.
14
+
15
+ If removing the animation would lose no meaning or confidence, do not add it.
16
+
17
+ ## Seven constraints
18
+
19
+ - Routine feedback uses `var(--duration-fast)`; normal transitions use `var(--duration-normal)`; bounded surface entries may use `var(--duration-slow)`.
20
+ - Use `var(--ease-default)` or the documented Seven exit/entry easing. No bounce, spring, elastic, wiggle, marquee, pulsing chrome, or decorative looping.
21
+ - Animate transform and opacity by default. Do not animate width, height, top, left, margin, or other layout-driving properties.
22
+ - Preserve content visibility in the non-enhanced state.
23
+ - Use the existing tactile micro-press. Do not layer a second hover-lift language over it.
24
+ - Loading is a Seven Skeleton or Spinner appropriate to the region, not a bespoke animation.
25
+ - Reduced motion must keep state changes perceivable with near-instant transitions.
26
+
27
+ Do not add a motion dependency for behavior the current stack or Seven component already provides. Any new dependency or browser API with partial support requires explicit user approval and a functional fallback.
28
+
29
+ ## Verify
30
+
31
+ Exercise repeated triggers, interruption, rapid reversal, keyboard activation, reduced motion, background-tab behavior, and a representative mid-range device. Confirm no layout shift, hidden-at-rest content, or long-task illusion. Run Seven checks and relevant interaction tests.
@@ -0,0 +1,152 @@
1
+ # App shell — Sidebar + Topbar (Figma-faithful)
2
+
3
+ The Seven application shell. Source of truth: Figma "Core Components — Seven", Sidebar set `2472:372` and Topbar set `1403:15038`. When the project has `@etus/ui`, compose `<Sidebar>` / `<Topbar>` from the package — never reimplement. When prototyping without the package, reproduce the nominal values below exactly.
4
+
5
+ ## The three laws that kill most drift
6
+
7
+ 1. **Chrome has no outline.** Sidebar and topbar have **no border and no shadow** — they sit on the same `var(--surface)` (#fafafa) plane. The ONLY divider in the shell is the **`border-left` of the secondary panel** (1 px `var(--border)`), owned by the panel, not the rail. Never add `border-r` to the sidebar or `border-b` to the topbar.
8
+ 2. **Chrome is surface, controls are white cards.** The shell background is `var(--surface)`, never white. Interactive controls INSIDE the chrome (selects, search, account switch, toggles) are white cards: `bg-[color:var(--background)]` + 1 px `var(--input)`/`var(--border)` + `rounded-[var(--radius-md)]` (8 px). That contrast — flat grey chrome, bordered white controls — is the Seven shell signature.
9
+ 3. **The shell is L-shaped, never T-shaped.** `Sidebar` and `SidebarInset` are siblings inside one `SidebarProvider`; `Topbar` is the first chrome child inside `SidebarInset`, so it starts at the sidebar's right edge instead of spanning above it. Never place `Topbar` outside the provider/inset, wrap it above both columns, or recreate the sidebar offset with `ml-*`, `pl-*`, `left-*`, `width: calc(...)`, or duplicated layout state.
10
+
11
+ ```text
12
+ ┌──────────┬──────────────────────────────┐
13
+ │ Sidebar │ Topbar │
14
+ │ full ├──────────────────────────────┤
15
+ │ height │ Content │
16
+ └──────────┴──────────────────────────────┘
17
+ ```
18
+
19
+ ## Sidebar state model
20
+
21
+ All states: `bg-[color:var(--surface)]`, padding `12px` horizontal / `24px` vertical, column layout with `justify-between` (top group / bottom group). No border, no shadow.
22
+
23
+ The provider has three independent state owners. Do not mirror or derive one
24
+ from another:
25
+
26
+ | State | Owns | Required behavior |
27
+ | -------------- | ----------------- | ---------------------------------------------------------------------------------------------------- |
28
+ | `open` | Desktop panel | `single`: 200↔64px by default. `dual`: shows/hides only the 216px secondary panel. |
29
+ | `openMobile` | Sheet below 768px | Starts closed. `SidebarTrigger.aria-expanded` must read this state on mobile, never `open`. |
30
+ | `railExpanded` | Dual Rail overlay | Transient. Effective state is hover **OR** focus-within; Escape dismisses it. It is never persisted. |
31
+
32
+ `mode` defaults to `single`. `collapsible` defaults to `icon`; `offcanvas` is
33
+ explicit opt-in and `none` is static. There is no undefined "legacy" third mode.
34
+
35
+ | State | Width | Notes |
36
+ | -------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------ |
37
+ | Collapsed (rail) | **64 px** | icons only |
38
+ | Expanded | **200 px** | labels visible |
39
+ | Secondary | **280 px** total | rail 64 + panel 216, panel carries `border-l` |
40
+ | Expanded + Secondary | rail expands 64→200 **as an overlay** | panel does not move (footprint stays 280); the expanded rail covers the panel's `border-l` |
41
+
42
+ Rail contents (top→bottom): Logo 32×32 (icon 24) · AccountSwitch · nav items (gap 20) · … · color-mode toggle (pill 36×24, track `var(--muted)`, white 20 px knob, 12 px icon) · settings item · Avatar 32.
43
+
44
+ - **Rail item**: 36×36 (20 px Lucide icon + 8 px padding), radius **4 px** (component `sm`). Active/hover colors come from `--sidebar-rail-item-bg-hover` and `--sidebar-rail-item-fg-active`. Expanded item fills the rail width (176 px inside the 200 px rail).
45
+ - Every `SidebarRailButton` has a non-empty `label`. The primitive emits it as
46
+ `aria-label` + `data-label`, shows it as text only while expanded, and hides
47
+ the tooltip while expanded. An icon-only button without `label` is invalid.
48
+ - Navigation is one interactive element:
49
+ `<SidebarRailButton asChild label="Relatórios"><Link … /></SidebarRailButton>`.
50
+ Never render `<Link><SidebarRailButton /></Link>`.
51
+ - Hover and keyboard focus are simultaneous sources. `mouseleave` does not
52
+ collapse while focus remains inside; `focusout` does not collapse while the
53
+ pointer remains over the Rail.
54
+ - `SidebarRail` (without `Content`) is the thin click target that toggles the
55
+ panel. It is not draggable and does not resize.
56
+ - **AccountSwitch**: white card, 1 px `var(--input)`, radius 8; brand logo 24×24 radius 4. Collapsed: logo only (px 8). Expanded: logo + account name (16 px, `var(--muted-foreground)`) + ChevronsUpDown 16.
57
+
58
+ ### Secondary panel (216 px)
59
+
60
+ `bg-[color:var(--surface)]` + **`border-l` 1 px `var(--border)`** + padding top 28 / bottom 80 / x 8.
61
+
62
+ - Page title: 16 px Inter Bold, `var(--foreground)`.
63
+ - Group label: 12 px `var(--muted-foreground)` + 12 px chevron (collapsible). Groups separated by 1 px dividers.
64
+ - **Panel item**: height **30 px**, radius 4, text 14 px. Active: `bg-[color:var(--primary-subtle)]` (#d1faeb) with `#052e1f` foreground — NOT full mint (mint fill is rail-only).
65
+ - Indent by level: primary `px-8` · secondary `pl-28` · tertiary `pl-48`. Dropdown items lead with a 12 px chevron.
66
+
67
+ ## Topbar (3 states)
68
+
69
+ Root: `bg-[color:var(--surface)]`, padding `32px` horizontal / `8px` vertical, full width, items centered with space-between. **No border, no radius, no shadow on the root.**
70
+
71
+ - **Leading**: Breadcrumb — Home icon 15 px, ChevronRight separators, items 14 px `var(--muted-foreground)`, current page 14 px `var(--foreground)`.
72
+ - **Trailing** (gap 16): DatePicker + Selects as white inputs (1 px `var(--input)`, radius 8, `px-12 py-8`, 14 px text) · Search and Bell as **36×36 outline toggles**: white bg, 1 px `var(--border)`, radius 8, 16 px icon. These bordered rounded controls are what makes the topbar read correctly — a borderless ghost icon row is off-system.
73
+ - **Scrolled** state: adds a 1×17 divider + ghost refresh chip ("Atualizado há 1 min", disabled foreground, RefreshCw 16).
74
+ - **Search focused**: search expands to a 208 px input with mint focus ring (`var(--ring)` border + 4 px `rgba(25,230,153,0.3)` shadow); filters compact to fixed 208 px.
75
+
76
+ ## Content area
77
+
78
+ The page content sits next to/below the chrome as **cards on the canvas** — white `var(--background)` surfaces with the workhorse 1 px `var(--border)` (see [product.md](product.md)). The shell never separates itself from content with its own border; the content cards' borders do that work.
79
+
80
+ ## @etus/ui mapping
81
+
82
+ ```tsx
83
+ import { LayoutDashboard } from "lucide-react";
84
+ import {
85
+ Sidebar,
86
+ SidebarProvider,
87
+ SidebarRailContent,
88
+ SidebarRailButton,
89
+ SidebarPanelContent,
90
+ SidebarPanelItem,
91
+ SidebarPanelGroup,
92
+ SidebarInset,
93
+ SidebarTrigger,
94
+ Topbar,
95
+ TopbarLeading,
96
+ TopbarTrailing,
97
+ } from "@etus/ui";
98
+
99
+ <SidebarProvider mode="dual">
100
+ {" "}
101
+ {/* rail + secondary panel */}
102
+ <Sidebar>
103
+ <SidebarRailContent>
104
+ {" "}
105
+ {/* borderless; expands on hover/focus as overlay */}
106
+ <SidebarRailButton asChild label="Visão geral" tooltip="Visão geral">
107
+ <a href="/">
108
+ <LayoutDashboard />
109
+ </a>
110
+ </SidebarRailButton>
111
+ </SidebarRailContent>
112
+ <SidebarPanelContent>…</SidebarPanelContent>{" "}
113
+ {/* carries the border-l divider */}
114
+ </Sidebar>
115
+ <SidebarInset>
116
+ <Topbar variant="default">
117
+ {" "}
118
+ {/* or "filters"; never border/shadow */}
119
+ <TopbarLeading>
120
+ <SidebarTrigger className="md:hidden" />{" "}
121
+ {/* opens the Sheet below 768px */}
122
+ {/* Breadcrumb */}
123
+ </TopbarLeading>
124
+ <TopbarTrailing>{/* filters + search/bell toggles */}</TopbarTrailing>
125
+ </Topbar>
126
+ <main>{/* bordered/rounded content surface */}</main>
127
+ </SidebarInset>
128
+ </SidebarProvider>;
129
+ ```
130
+
131
+ `mode="single"` renders the classic one-panel sidebar (also borderless), and is
132
+ the runtime default. Its default collapse is `icon` (200→64px).
133
+ `collapsible="none"` is the only case that does not need a trigger because the
134
+ sidebar never becomes hidden. In every collapsible shell, the mobile trigger
135
+ belongs in `TopbarLeading`; a trigger trapped inside the closed mobile Sheet
136
+ cannot open it.
137
+
138
+ Below 768 px, keep the trigger visible and collapse long breadcrumbs/actions to
139
+ a current-page label or responsive menu. In `dual`, hide
140
+ `SidebarRailContent`; render `SidebarPanelContent` expanded at 100% of the
141
+ Sheet width regardless of desktop `open`. `TopbarLeading` must not overflow
142
+ underneath `TopbarTrailing`; hiding the Sidebar while leaving desktop-only
143
+ chrome wider than its slot still produces a broken mobile shell.
144
+
145
+ The local detector rule `sidebar-topbar-shell` rejects a Topbar outside
146
+ `SidebarInset`, a bordered/shadowed shell Topbar, the T-shaped rendered
147
+ geometry, a collapsible mobile shell with no visible Topbar trigger, and
148
+ overflowing mobile leading chrome. `sidebar-rail-behavior` rejects unlabeled
149
+ Rail buttons, nested Link/button markup, mobile ARIA drift, and a collapsed or
150
+ narrow panel inside an open mobile Sheet.
151
+
152
+ Copy in pt-BR: `Visão Geral`, `Configurações`, `Buscar...`, `Tema Claro`.
@@ -0,0 +1,122 @@
1
+ # Audit
2
+
3
+ Run systematic technical quality checks on a Seven surface or component and generate a report. The audit documents issues; it does not fix them. Hand findings to `polish` or to direct implementation.
4
+
5
+ ## Scope
6
+
7
+ Code-level audit, not design critique. Check what is measurable and verifiable against `@etus/ui`, `@etus/tokens`, and Seven's documented rules.
8
+
9
+ ## Five-dimension diagnostic scan
10
+
11
+ Score each dimension 0-4 using the criteria below. The detector ships rule IDs you can cite directly.
12
+
13
+ ### 1. Accessibility (a11y)
14
+
15
+ Check for:
16
+
17
+ - Text contrast ratios below 4.5:1 (or 3:1 for large text). Verify against the OKLCH math from `@etus/tokens`, not eyeballed.
18
+ - Missing ARIA roles, labels, or states on interactive elements built from non-semantic primitives.
19
+ - Keyboard traps, missing focus indicators, illogical tab order.
20
+ - Improper heading hierarchy, missing landmarks, `<div onClick>` instead of `<button>`.
21
+ - Image and icon-only buttons without accessible names.
22
+ - Forms with inputs missing labels, error messages missing `aria-describedby`, required state not announced.
23
+ - `prefers-reduced-motion` not honored.
24
+
25
+ Scoring: 0 = fails WCAG A, 1 = major gaps, 2 = partial, 3 = WCAG AA mostly met, 4 = AA fully met and approaching AAA.
26
+
27
+ ### 2. Performance
28
+
29
+ Check for:
30
+
31
+ - Layout thrashing in loops.
32
+ - Animation on CSS layout properties (`width`, `height`, `top`, `left`). Transform and opacity only.
33
+ - Unbounded blur, filter, shadow effects that visibly drop frames.
34
+ - Images without `loading="lazy"`, unoptimized assets, missing dimensions.
35
+ - Unnecessary re-renders, missing `useMemo` or `React.memo` where measurement shows benefit (do not memoize speculatively).
36
+ - Heavy imports pulled in eagerly when a dynamic import would do.
37
+
38
+ Scoring: 0 = severe issues, 1 = major problems, 2 = partial optimization, 3 = mostly optimized, 4 = lean and fast.
39
+
40
+ ### 3. Theming
41
+
42
+ Check for:
43
+
44
+ - Hardcoded color literals in runtime code. Hex inside `packages/tokens/sources/` is fine; anywhere else is drift. Detector rule: `hardcoded-color-not-token`.
45
+ - Pure `#000` and `#fff`. Detector rule: `pure-black-or-white`.
46
+ - Tailwind v4 arbitrary values referencing color tokens without the `color:` hint. Detector rule: `missing-color-type-hint`.
47
+ - Font-size or line-height arbitrary values without `length:`. Detector rule: `missing-length-type-hint`.
48
+ - `leading-none` combined with a typed length-variable text utility. Detector rule: `leading-none-with-length-var`.
49
+ - Wrong token used: `var(--background)` where `var(--muted)` would have read better; mixing token families.
50
+ - Dark mode visually broken: tokens that look fine in light fail at AAA contrast in dark, or vice versa.
51
+
52
+ Scoring: 0 = no token usage, 1 = minimal tokens, 2 = partial token coverage with gaps, 3 = good token usage with minor literals, 4 = full token system with verified dark mode.
53
+
54
+ ### 4. Responsive design
55
+
56
+ Check for:
57
+
58
+ - Fixed widths that break on narrow viewports.
59
+ - Touch targets below 44 x 44.
60
+ - Horizontal scroll on mobile.
61
+ - Text scaling: layout breaks when the user bumps base font size.
62
+ - Missing or wrong-direction breakpoints (mobile-first vs desktop-first inconsistency in the same component).
63
+
64
+ Scoring: 0 = desktop-only, 1 = major issues, 2 = partial, 3 = good with minor issues, 4 = fluid across viewports.
65
+
66
+ ### 5. Anti-patterns
67
+
68
+ Run the deterministic detector against the surface or component:
69
+
70
+ ```bash
71
+ seven check --file <path>
72
+ ```
73
+
74
+ Then check the report against the Seven rule set:
75
+
76
+ | Detector rule ID | Catches |
77
+ | ------------------------------ | ----------------------------------------------------------------------- |
78
+ | `non-inter-font` | Font family other than Inter or JetBrains Mono in consumer code |
79
+ | `hardcoded-color-not-token` | Hex, rgb, hsl, OKLCH literal where a token exists |
80
+ | `missing-color-type-hint` | Tailwind v4 arbitrary color value missing the `color:` hint |
81
+ | `missing-length-type-hint` | Tailwind v4 arbitrary length value missing the `length:` hint |
82
+ | `leading-none-with-length-var` | `leading-none` combined with a typed length-variable text utility |
83
+ | `fuchsia-in-ui-chrome` | Fuchsia color on UI chrome (allowed on `data-role="chart"` and `<svg>`) |
84
+ | `pt-pt-vocab` | European Portuguese vocabulary in pt-BR surfaces |
85
+ | `pure-black-or-white` | `#000`, `#fff`, `rgb(0,0,0)`, `rgb(255,255,255)` in consumer code |
86
+
87
+ Deep detector rules also include `missing-tactile-press`, `radius-mixed-scales`, `pill-on-button`, `forbidden-em-dash`, `gradient-text-decorative`, `side-stripe-border`, `non-lucide-icon`, `emoji-in-chrome`, `sidebar-topbar-shell`, and `sidebar-rail-behavior`.
88
+
89
+ Scoring: 0 = five or more findings, 1 = three or four findings, 2 = one or two findings, 3 = clean detector pass, 4 = clean detector pass plus no additional manual issues evident in review.
90
+
91
+ When a trusted development page is available, add rendered evidence with `seven check <url>`. URL checks require the optional Puppeteer dependency and a compatible Chrome binary. If the package manager blocked Puppeteer's browser install script, report that activation requirement instead of pretending the rendered audit ran. Static file checks and the local pre-commit gate remain available without a browser.
92
+
93
+ ## Report shape
94
+
95
+ For each dimension, write:
96
+
97
+ ```
98
+ ### <Dimension> — <score>/4
99
+
100
+ **Findings**
101
+ - <Finding 1 with file:line reference and detector rule ID when available>
102
+ - <Finding 2>
103
+
104
+ **Suggested fixes**
105
+ - <Concrete next step keyed to the finding>
106
+ ```
107
+
108
+ End with:
109
+
110
+ ```
111
+ ### Overall — <average>/4
112
+
113
+ Top 3 actions:
114
+ 1. ...
115
+ 2. ...
116
+ 3. ...
117
+ ```
118
+
119
+ ## Refusals
120
+
121
+ - "Just fix the issues you find" — Audit documents, polish fixes. Surface this boundary and offer to invoke `polish` after the audit closes.
122
+ - "Skip the anti-patterns dimension, it always fires" — If anti-patterns always fire on a surface, the surface needs polish, not a softer audit. Run the dimension; record the findings.
@@ -0,0 +1,34 @@
1
+ # Bolder — stronger hierarchy, same Seven
2
+
3
+ Increase the conviction of one named target without redesigning its neighbors or adding a visual language the installed Seven release does not own.
4
+
5
+ ## Diagnose first
6
+
7
+ Identify why the target reads weak:
8
+
9
+ - competing primary actions;
10
+ - every element using the same text role, surface, or density;
11
+ - the target using a weaker variant than its job requires;
12
+ - insufficient contrast between section, content, and supporting metadata;
13
+ - the strongest Seven composition already used elsewhere but omitted here.
14
+
15
+ State what must remain unchanged. If the scope is ambiguous, ask before editing.
16
+
17
+ ## Amplify with existing authority
18
+
19
+ - Promote one element through an existing component variant, Text role, semantic token, or spatial role.
20
+ - Reduce surrounding competition instead of making everything louder.
21
+ - Use mint primary only for the true primary action or selected state; do not spread brand fill across unrelated surfaces.
22
+ - Strengthen structure with grouping, alignment, scale, weight, and deliberate whitespace before adding decoration.
23
+ - Preserve copy claims, interactions, accessible names, and state behavior.
24
+
25
+ Never add a new color, font, shadow, radius, illustration style, variant, or arbitrary scale value. If the current Seven contract cannot express the needed hierarchy, stop and report the precise design-system gap.
26
+
27
+ ## Verification
28
+
29
+ - Everything outside the agreed target is byte-for-byte or visually unchanged.
30
+ - The primary job is recognizable in five seconds and keyboard order remains logical.
31
+ - The target is unmistakably Seven, not a new visual identity.
32
+ - `seven check --file` passes for every changed UI file.
33
+
34
+ Finish with `polish` only when the user asks for the broader final pass.
@@ -0,0 +1,31 @@
1
+ # Brand register
2
+
3
+ Use for public-facing ETUS/Seven marketing, launch, campaign, and storytelling surfaces. The installed Seven release remains the visual authority; this register changes composition and emphasis, not tokens or component contracts.
4
+
5
+ ## Bar
6
+
7
+ The surface should feel recognizably ETUS before the logo is read: direct, technically confident, energetic through mint/lime contrast, and disciplined enough that the product remains credible. Avoid the generic AI-marketing formula of eyebrow chip, oversized slogan, radial glow, gradient text, three equal feature cards, and repeated centered sections.
8
+
9
+ ## Composition
10
+
11
+ - Build a specific narrative: problem, concrete evidence, product mechanism, proof, action.
12
+ - Use asymmetry or editorial pacing only when it improves the story and responsive reading order.
13
+ - One focal visual idea is enough. Repeat a structural motif deliberately instead of adding unrelated decoration per section.
14
+ - Use real product UI, data, customer evidence, or authored imagery. Do not ship placeholder browser mockups, abstract orb gradients, or icon-tile stacks as proof.
15
+ - Keep calls to action scarce and hierarchical. One primary action per decision region.
16
+
17
+ ## Seven identity
18
+
19
+ - Mint and lime are the brand pair. Use semantic Seven token roles; never hardcode the swatches or create campaign-local ramps.
20
+ - Inter remains the typeface. Use the shipped display/heading roles where they exist; a campaign does not justify a new font.
21
+ - Product screenshots and embedded controls retain product component styling. Do not repaint Seven UI to match a hero effect.
22
+ - Motion may author one focal moment, but it obeys Seven tokens, reduced motion, performance budgets, and no bounce/looping-chrome rules.
23
+ - Generated or third-party assets require provenance, appropriate license, alt text, responsive sizes, and explicit user approval before being added.
24
+
25
+ ## Copy
26
+
27
+ Lead with concrete outcomes and evidence. Avoid vague superlatives, aphoristic sentence fragments, marketing buzzwords, theater phrases, and unsupported claims. Public copy may be more expressive than product chrome but remains Brazilian Portuguese unless product context says otherwise.
28
+
29
+ ## Verification
30
+
31
+ Critique the narrative and rendered composition separately from the deterministic scan. Test mobile reading order, real content, dark/light behavior where supported, reduced motion, asset loading, SEO semantics, and conversion actions. Any needed visual primitive missing from Seven is a design-system proposal, not a local override.
@@ -0,0 +1,76 @@
1
+ # Clarify
2
+
3
+ Improve UX copy in Seven surfaces. Brazilian Portuguese, sentence case, no trailing periods, imperative leads, plain language. The voice is direct, decisive, brazilian.
4
+
5
+ ## Scope
6
+
7
+ Clarify rewrites chrome copy: button text, labels, empty states, validation errors, toast messages, menu items, navigation, table column headers, breadcrumbs, tabs, badges, tooltips, dialog titles and descriptions.
8
+
9
+ Clarify does not rewrite body prose, long-form content, or marketing copy unless the user explicitly includes them. Public-facing copy must also load the brand register.
10
+
11
+ ## Rewrite rules
12
+
13
+ ### Voice
14
+
15
+ - Direct. The label says what the action does. `Adicionar conta`, not `Clique aqui para adicionar uma nova conta`.
16
+ - Decisive. No `talvez`, `poderia`, `seria possível`. If the system suggests an action, it commits.
17
+ - Concrete. Specific over abstract. `Salvo às 14:32` beats `Alterações salvas com sucesso`.
18
+
19
+ ### Case
20
+
21
+ Sentence case across every chrome surface. Capitalize only the first word and proper nouns. Acronyms (KPI, OTP, OAuth, SSO) stay uppercase.
22
+
23
+ ### Punctuation
24
+
25
+ - No trailing periods on chrome labels (buttons, menu items, breadcrumbs, table headers, badges, tabs, captions).
26
+ - Periods stay in body prose inside paragraphs.
27
+ - No em-dashes in prose voice. Use periods, commas, or restructure the sentence.
28
+
29
+ ### Language
30
+
31
+ - Pt-BR for chrome. No pt-PT vocabulary (`ficheiro`, `telemóvel`, `ecrã`, `tu` as pronoun).
32
+ - English only for code identifiers, file paths, API names, and developer-facing technical docs.
33
+
34
+ ## Pattern library
35
+
36
+ | Surface | Before (drift) | After (Seven) |
37
+ | ------------------- | --------------------------------------- | -------------------------------------------------- |
38
+ | Primary button | `Clique aqui para salvar.` | `Salvar` |
39
+ | Primary button | `Adicionar nova conta` | `Adicionar conta` |
40
+ | Destructive button | `Por favor, excluir esta conta` | `Excluir conta` |
41
+ | Cancel button | `Cancelar operação` | `Cancelar` |
42
+ | Toast (success) | `Alterações salvas com sucesso!` | `Conta atualizada` |
43
+ | Toast (error) | `Algo deu errado` | `Não foi possível salvar. Tente novamente.` |
44
+ | Empty state | `Nenhum dado disponível no momento` | `Nenhuma conta. Adicione a primeira para começar.` |
45
+ | Placeholder | `Digite o seu email aqui` | `nome@email.com` |
46
+ | Validation error | `O campo email é um campo obrigatório.` | `Email obrigatório` |
47
+ | Menu item | `Editar este item.` | `Editar` |
48
+ | Table column header | `Nome do usuário.` | `Nome` |
49
+ | Tab | `Configurações gerais` | `Geral` |
50
+ | Badge (status) | `Ativo no momento` | `Ativo` |
51
+ | Breadcrumb | `Página inicial > Contas` | `Início › Contas` |
52
+
53
+ ## Numbers, dates, currency
54
+
55
+ - Numbers: `1.234,56` (Brazilian convention).
56
+ - Dates: `dd/mm/yyyy` in chrome (`12/03/2026`). ISO `2026-03-12` in data tables and logs.
57
+ - Currency: `R$ 1.234,56` with non-breaking space.
58
+ - Relative time for recent events: `há 2 minutos`, `há 1 hora`. Absolute date past 24 hours.
59
+
60
+ ## Workflow
61
+
62
+ 1. List the chrome surfaces in scope (buttons, labels, empty states, errors, toasts).
63
+ 2. For each surface, apply the pattern library. Surface anything that does not fit the pattern.
64
+ 3. Verify the rewrites against the detector's `pt-pt-vocab` rule:
65
+
66
+ ```bash
67
+ seven check --file <path>
68
+ ```
69
+
70
+ 4. Write the rewrites as a diff or table; do not commit until the user confirms.
71
+
72
+ ## Refusals
73
+
74
+ - "Add 'por favor' to every button to be polite" — Seven voice is direct. Politeness reads as hedging. Buttons are imperatives. Decline politely and explain.
75
+ - "Use English buttons because the team is bilingual" — Pt-BR is the default for chrome. Surface this as a register-layer decision; do not silently switch languages.
76
+ - "Add an em-dash for emphasis in the empty state" — No em-dashes in Seven prose. Restructure the sentence.
@@ -0,0 +1,84 @@
1
+ # Color and contrast
2
+
3
+ Seven's color truth lives in `packages/tokens/dist/tokens.css`. Every runtime value is a CSS custom property derived from OKLCH math, never a hex literal.
4
+
5
+ ## Brand colors
6
+
7
+ - **Mint** — `var(--brand-primary-500)`. The primary brand. Used for primary buttons, active states, focus rings, brand surfaces.
8
+ - **Lime** — `var(--brand-secondary-500)`. The secondary brand. Used for secondary buttons, highlight bars, supporting accents.
9
+
10
+ Mint and lime are the only brand colors. Do not introduce a third, do not substitute, do not blend.
11
+
12
+ ## Status ramps
13
+
14
+ Status colors come from the semantic ramps only:
15
+
16
+ - `var(--destructive)` for errors, destructive actions, deletion confirmations.
17
+ - `var(--warning)` for caution, expiring tokens, soft warnings.
18
+ - `var(--success)` for confirmation, completion, healthy state.
19
+ - `var(--info)` for neutral information.
20
+
21
+ Do not improvise red, yellow, green, blue values outside these tokens.
22
+
23
+ ## Fuchsia
24
+
25
+ `#d946ef` style fuchsia is reserved for charts. Never UI chrome. The detector flags fuchsia chroma on buttons, inputs, borders, and other chrome elements; the only allowed habitat is inside `<svg>` and elements tagged `data-role="chart"`.
26
+
27
+ ## Neutrals
28
+
29
+ Seven neutrals are true grey on the OKLCH ramp. No warm tint, no cool tint, no `oklch(... 0.005 280)` blue-shifted greys that ship as default in some libraries. The ramp goes from `var(--background)` at the top to `var(--foreground)` at the bottom; `var(--muted)`, `var(--muted-foreground)`, `var(--border)` populate the middle.
30
+
31
+ Pure `#000` and `#fff` are banned. Use the tinted tokens.
32
+
33
+ ## Raw Tailwind palette utilities
34
+
35
+ Do not use raw Tailwind color utilities in runtime UI (`text-neutral-900`, `bg-green-500`, `border-red-200`, `ring-blue-500`). They bypass the semantic token layer exactly like hex literals do. Use Seven semantic variables instead:
36
+
37
+ ```tsx
38
+ // Correct
39
+ bg-[color:var(--primary)]
40
+ text-[color:var(--primary-foreground)]
41
+ border-[color:var(--border)]
42
+ ring-[color:var(--ring)]
43
+ ```
44
+
45
+ ## Tailwind v4 type hints (mandatory)
46
+
47
+ Tailwind v4 uses Lightning CSS. Lightning requires type hints for ambiguous arbitrary values referencing CSS custom properties. OKLCH colors look like function calls; without a hint, Lightning drops them silently.
48
+
49
+ ```tsx
50
+ // Correct: color: hint on color tokens
51
+ bg-[color:var(--primary)]
52
+ text-[color:var(--primary-foreground)]
53
+ border-[color:var(--border)]
54
+ ring-[color:var(--ring)]
55
+
56
+ // Correct: length: hint on font-size and line-height tokens
57
+ text-[length:var(--tabs-trigger-base-text)]
58
+
59
+ // Correct: dimensions, radius, spacing need no hint
60
+ rounded-[var(--radius-md)]
61
+ h-[var(--button-size-md-h)]
62
+ p-[var(--spacing-4)]
63
+
64
+ // Wrong: no hint, hsl wrapper, or color literal — all drift back to no-op
65
+ bg-[var(--primary)]
66
+ bg-[hsl(var(--primary))]
67
+ bg-[#19e699]
68
+ ```
69
+
70
+ The detector ships `missing-color-type-hint` and `missing-length-type-hint` rules to catch these at scan time.
71
+
72
+ ## Contrast
73
+
74
+ WCAG 2.1 AA on every component is the baseline. Body text against background hits 4.5:1 minimum; large text 3:1. Verify against the OKLCH math, not by eyeballing the rendered swatch. Pairs to double-check:
75
+
76
+ - `var(--muted-foreground)` on `var(--background)` — sits on the edge; never use for body copy.
77
+ - `var(--primary-foreground)` on `var(--primary)` — passes for default Seven mint; verify for any brand-layer override.
78
+ - Focus ring color on canvas — must hit 3:1.
79
+
80
+ ## Refusals
81
+
82
+ - "Make this button orange to draw attention" — Orange is not in the Seven palette. Suggest emphasizing via primary mint plus surrounding lower-contrast siblings, or using `var(--warning)` if the intent is caution.
83
+ - "Use a fuchsia primary for this admin panel" — Fuchsia is chart-only in Seven. Surface the conflict and recommend mint.
84
+ - "Hardcode `#19e699` here because the variable is not loaded" — Variables are always loaded in the consumer; the failure is upstream. Resolve the missing import rather than working around it.
@@ -0,0 +1,31 @@
1
+ # Colorize — semantic color, not a new palette
2
+
3
+ Improve hierarchy and meaning with the semantic roles already shipped in the installed Seven release. Read [color-and-contrast.md](color-and-contrast.md) first.
4
+
5
+ ## Audit roles
6
+
7
+ Map the target's current uses to:
8
+
9
+ - canvas, surface, elevated surface, and muted regions;
10
+ - primary/secondary foreground and border;
11
+ - action, focus, selection, and active navigation;
12
+ - destructive, warning, success, and information states;
13
+ - chart-only series colors.
14
+
15
+ Identify where grayscale obscures state, color has no meaning, status relies on color alone, or raw literals bypass Seven.
16
+
17
+ ## Apply
18
+
19
+ - Use only known Seven CSS variables and declared component variants.
20
+ - Reserve mint primary for the true action/selection hierarchy and lime for the existing secondary brand role.
21
+ - Use semantic status tokens only for their meaning; do not use warning as decoration or destructive to manufacture urgency.
22
+ - Pair color with text, icon, pattern, or accessible state where meaning would otherwise be color-only.
23
+ - Keep body contrast at 4.5:1 and non-text/focus indicators at 3:1 in every supported theme.
24
+ - Treat fuchsia as chart-only and keep chart color out of chrome.
25
+ - Validate dark mode through computed values rather than copying a light-mode token into a local override.
26
+
27
+ Never create a project palette, hardcode a Seven swatch, redefine a token, introduce a gradient, or use raw Tailwind palette utilities. If a semantic role is absent, report a Seven token gap.
28
+
29
+ ## Verify
30
+
31
+ Run checks, inspect computed light/dark values, simulate common color-vision deficiencies where status is dense, and confirm all meaning remains available without color. Report which semantic roles changed and why.