@etus/seven-skill 0.1.0-beta.2 → 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 +128 -123
  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 +152 -0
  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 +4743 -23
  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 +4029 -4
  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 +18 -7
@@ -1,84 +1,93 @@
1
1
  #!/usr/bin/env node
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- // ETUS Digital — Seven Design System. Loader shape adapted from impeccable.
3
+ // ETUS Digital — Seven consumer context adapter.
4
4
 
5
5
  import fs from 'node:fs'
6
6
  import path from 'node:path'
7
+ import { createRequire } from 'node:module'
8
+ import { fileURLToPath, pathToFileURL } from 'node:url'
7
9
 
8
- const PRODUCT_NAMES = ['PRODUCT.md', 'Product.md', 'product.md']
9
- const DESIGN_NAMES = ['DESIGN.md', 'Design.md', 'design.md']
10
- const FALLBACK_DIRS = ['.agents/context', 'docs']
10
+ import { checkForUpdate } from './update-check.mjs'
11
11
 
12
- function firstExisting(dir, names) {
13
- for (const name of names) {
14
- const abs = path.join(dir, name)
15
- if (fs.existsSync(abs)) return abs
16
- }
17
- return null
12
+ export function argValue(name, argv = process.argv) {
13
+ const direct = argv.find((arg) => arg.startsWith(`${name}=`))
14
+ if (direct) return direct.slice(name.length + 1)
15
+ const index = argv.indexOf(name)
16
+ return index >= 0 ? argv[index + 1] : null
18
17
  }
19
18
 
20
- function safeRead(filePath) {
19
+ export function findRoot(start) {
20
+ let current = path.resolve(start)
21
21
  try {
22
- return fs.readFileSync(filePath, 'utf8')
23
- } catch {
24
- return null
22
+ if (fs.statSync(current).isFile()) current = path.dirname(current)
23
+ } catch {}
24
+ const fallbackRoot = current
25
+ while (true) {
26
+ if (fs.existsSync(path.join(current, '.seven', 'project.yml'))) return current
27
+ if (fs.existsSync(path.join(current, 'seven.json'))) return current
28
+ const parent = path.dirname(current)
29
+ if (parent === current) break
30
+ current = parent
25
31
  }
32
+ return fallbackRoot
26
33
  }
27
34
 
28
- function resolveMaybeRelative(cwd, value) {
29
- const trimmed = value.trim()
30
- return path.isAbsolute(trimmed) ? trimmed : path.resolve(cwd, trimmed)
35
+ export async function loadFromInstalledRuntime(root, target) {
36
+ try {
37
+ const require = createRequire(path.join(root, 'package.json'))
38
+ const manifest = require.resolve('@etus/seven/package.json')
39
+ const moduleUrl = pathToFileURL(path.join(path.dirname(manifest), 'lib', 'context.mjs')).href
40
+ const runtime = await import(moduleUrl)
41
+ return runtime.loadConsumerContext(root, { target })
42
+ } catch (error) {
43
+ return { runtimeError: error instanceof Error ? error.message : String(error) }
44
+ }
31
45
  }
32
46
 
33
- export function resolveContextDir(cwd = process.cwd()) {
34
- const envDir = process.env.SEVEN_CONTEXT_DIR
35
- if (envDir?.trim()) return resolveMaybeRelative(cwd, envDir)
36
-
37
- if (firstExisting(cwd, [...PRODUCT_NAMES, ...DESIGN_NAMES])) return cwd
38
-
39
- for (const rel of FALLBACK_DIRS) {
40
- const candidate = path.resolve(cwd, rel)
41
- if (firstExisting(candidate, [...PRODUCT_NAMES, ...DESIGN_NAMES])) return candidate
47
+ export function fallback(root, target, runtimeError) {
48
+ const productPath = path.join(root, 'PRODUCT.md')
49
+ const product = fs.existsSync(productPath) ? fs.readFileSync(productPath, 'utf8') : null
50
+ let release = null
51
+ try {
52
+ release = JSON.parse(fs.readFileSync(path.join(root, '.seven', 'release.lock.json'), 'utf8'))
53
+ } catch {}
54
+ return {
55
+ schemaVersion: 1,
56
+ projectRoot: root,
57
+ target: path.resolve(target),
58
+ hasProduct: Boolean(product),
59
+ product,
60
+ productPath: product ? 'PRODUCT.md' : null,
61
+ productPlaceholder: !product || product.trim().length < 200 || /\b(?:TODO|TBD|placeholder)\b/i.test(product),
62
+ register: null,
63
+ project: null,
64
+ release,
65
+ surface: null,
66
+ runtimeAvailable: false,
67
+ runtimeError,
42
68
  }
43
-
44
- return cwd
45
69
  }
46
70
 
47
- function extractRegister(product) {
48
- if (!product) return null
49
- const heading = product.match(/^##\s+Register\s*\n+([\s\S]*?)(?=\n##\s+|\s*$)/im)
50
- const value = heading?.[1]?.split('\n').map((line) => line.trim()).find(Boolean)
51
- if (!value) return null
52
- return value.replace(/^[-*]\s*/, '').toLowerCase()
71
+ export async function loadContext(start = process.cwd(), { target = start } = {}) {
72
+ const root = findRoot(start)
73
+ const loaded = await loadFromInstalledRuntime(root, target)
74
+ return loaded.runtimeError ? fallback(root, target, loaded.runtimeError) : loaded
53
75
  }
54
76
 
55
- function isPlaceholderProduct(product) {
56
- if (!product) return false
57
- return product.trim().length < 200 || /\b(?:todo|tbd|placeholder|\[todo\])\b/i.test(product)
77
+ export async function main(argv = process.argv) {
78
+ const target = argValue('--target', argv) || process.env.SEVEN_TARGET || process.cwd()
79
+ const context = await loadContext(target, { target })
80
+ const update = await checkForUpdate(context.release?.sevenVersion || null)
81
+ process.stdout.write(`${JSON.stringify({ ...context, update }, null, 2)}\n`)
58
82
  }
59
83
 
60
- export function loadContext(cwd = process.cwd()) {
61
- const contextDir = resolveContextDir(cwd)
62
- const productPath = firstExisting(contextDir, PRODUCT_NAMES)
63
- const designPath = firstExisting(contextDir, DESIGN_NAMES)
64
- const product = productPath ? safeRead(productPath) : null
65
- const design = designPath ? safeRead(designPath) : null
66
-
67
- return {
68
- hasProduct: !!product,
69
- product,
70
- productPath: productPath ? path.relative(cwd, productPath) : null,
71
- productPlaceholder: isPlaceholderProduct(product),
72
- register: extractRegister(product),
73
- hasDesign: !!design,
74
- design,
75
- designPath: designPath ? path.relative(cwd, designPath) : null,
76
- contextDir,
84
+ function isCliEntry() {
85
+ if (!process.argv[1]) return false
86
+ try {
87
+ return fs.realpathSync(fileURLToPath(import.meta.url)) === fs.realpathSync(process.argv[1])
88
+ } catch {
89
+ return false
77
90
  }
78
91
  }
79
92
 
80
- function cli() {
81
- process.stdout.write(`${JSON.stringify(loadContext(process.cwd()), null, 2)}\n`)
82
- }
83
-
84
- if (process.argv[1]?.endsWith('load-context.mjs')) cli()
93
+ if (isCliEntry()) await main()
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import fs from 'node:fs'
5
+ import os from 'node:os'
6
+ import path from 'node:path'
7
+
8
+ const DAY_MS = 24 * 60 * 60 * 1000
9
+ const WEEK_MS = 7 * DAY_MS
10
+
11
+ function cachePath(env = process.env) {
12
+ return env.SEVEN_UPDATE_CACHE || path.join(os.homedir(), '.seven', 'update-check.json')
13
+ }
14
+
15
+ function readCache(env) {
16
+ try {
17
+ const parsed = JSON.parse(fs.readFileSync(cachePath(env), 'utf8'))
18
+ return parsed && typeof parsed === 'object' ? parsed : {}
19
+ } catch {
20
+ return {}
21
+ }
22
+ }
23
+
24
+ function writeCache(cache, env) {
25
+ try {
26
+ const destination = cachePath(env)
27
+ fs.mkdirSync(path.dirname(destination), { recursive: true })
28
+ fs.writeFileSync(destination, `${JSON.stringify(cache, null, 2)}\n`)
29
+ } catch {
30
+ // Update discovery is best-effort and must never block the UI workflow.
31
+ }
32
+ }
33
+
34
+ function semverParts(value) {
35
+ const match = String(value || '').trim().match(/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/)
36
+ if (!match) return null
37
+ return {
38
+ core: [Number(match[1]), Number(match[2]), Number(match[3])],
39
+ prerelease: match[4] ? match[4].split('.') : [],
40
+ }
41
+ }
42
+
43
+ function compareIdentifier(left, right) {
44
+ const leftNumber = /^\d+$/.test(left) ? Number(left) : null
45
+ const rightNumber = /^\d+$/.test(right) ? Number(right) : null
46
+ if (leftNumber != null && rightNumber != null) return Math.sign(leftNumber - rightNumber)
47
+ if (leftNumber != null) return -1
48
+ if (rightNumber != null) return 1
49
+ return left.localeCompare(right)
50
+ }
51
+
52
+ export function compareSemver(left, right) {
53
+ const a = semverParts(left)
54
+ const b = semverParts(right)
55
+ if (!a || !b) return 0
56
+ for (let index = 0; index < 3; index++) {
57
+ if (a.core[index] !== b.core[index]) return Math.sign(a.core[index] - b.core[index])
58
+ }
59
+ if (a.prerelease.length === 0 && b.prerelease.length > 0) return 1
60
+ if (b.prerelease.length === 0 && a.prerelease.length > 0) return -1
61
+ for (let index = 0; index < Math.max(a.prerelease.length, b.prerelease.length); index++) {
62
+ if (a.prerelease[index] == null) return -1
63
+ if (b.prerelease[index] == null) return 1
64
+ const compared = compareIdentifier(a.prerelease[index], b.prerelease[index])
65
+ if (compared !== 0) return compared
66
+ }
67
+ return 0
68
+ }
69
+
70
+ async function fetchLatest(env) {
71
+ const registry = (env.SEVEN_UPDATE_REGISTRY || 'https://registry.npmjs.org').replace(/\/$/, '')
72
+ const controller = new AbortController()
73
+ const timeout = setTimeout(() => controller.abort(), 1500)
74
+ try {
75
+ const response = await fetch(`${registry}/%40etus%2Fseven/latest`, {
76
+ headers: { accept: 'application/json' },
77
+ signal: controller.signal,
78
+ })
79
+ if (!response.ok) return null
80
+ const payload = await response.json()
81
+ return typeof payload?.version === 'string' ? payload.version : null
82
+ } catch {
83
+ return null
84
+ } finally {
85
+ clearTimeout(timeout)
86
+ }
87
+ }
88
+
89
+ export async function checkForUpdate(currentVersion, { env = process.env, now = Date.now() } = {}) {
90
+ if (!currentVersion || env.SEVEN_NO_UPDATE_CHECK) return null
91
+ const cache = readCache(env)
92
+ const fresh = typeof cache.checkedAt === 'number' && now - cache.checkedAt < DAY_MS
93
+ let latestVersion = fresh ? cache.latestVersion : await fetchLatest(env)
94
+ if (!latestVersion) latestVersion = cache.latestVersion || null
95
+ if (!fresh && latestVersion) {
96
+ cache.checkedAt = now
97
+ cache.latestVersion = latestVersion
98
+ }
99
+ if (!latestVersion) return null
100
+
101
+ const available = compareSemver(latestVersion, currentVersion) > 0
102
+ const notify = available && (
103
+ cache.notifiedVersion !== latestVersion ||
104
+ typeof cache.notifiedAt !== 'number' ||
105
+ now - cache.notifiedAt >= WEEK_MS
106
+ )
107
+ if (notify) {
108
+ cache.notifiedVersion = latestVersion
109
+ cache.notifiedAt = now
110
+ }
111
+ writeCache(cache, env)
112
+ return {
113
+ package: '@etus/seven',
114
+ currentVersion,
115
+ latestVersion,
116
+ available,
117
+ notify,
118
+ command: `pnpm add -D @etus/seven@${latestVersion} && pnpm exec seven update`,
119
+ }
120
+ }
@@ -11,8 +11,8 @@
11
11
  "plugins": [
12
12
  {
13
13
  "name": "seven",
14
- "description": "Seven Design System skill, plugin, and CLI detector for AI coding agents — ETUS Digital",
15
- "version": "0.1.0-beta.2",
14
+ "description": "Provider-native Seven Design System skills and deterministic UI detector runtime for @etus/seven consumers — ETUS Digital",
15
+ "version": "0.1.0-beta.4",
16
16
  "author": {
17
17
  "name": "ETUS Digital",
18
18
  "url": "https://github.com/etusdigital"
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "name": "seven",
3
- "description": "Seven Design System skill, plugin, and CLI detector for AI coding agents — ETUS Digital",
4
- "version": "0.1.0-beta.2",
3
+ "description": "Provider-native Seven Design System skills and deterministic UI detector runtime for @etus/seven consumers — ETUS Digital",
4
+ "version": "0.1.0-beta.4",
5
5
  "author": {
6
6
  "name": "ETUS Digital",
7
7
  "url": "https://github.com/etusdigital"
8
8
  },
9
9
  "homepage": "https://github.com/etusdigital/seven#readme",
10
10
  "repository": "https://github.com/etusdigital/seven.git",
11
- "skills": "./.claude/skills/"
11
+ "skills": "./.claude/skills/",
12
+ "agents": [
13
+ "./.claude/agents/seven-asset-producer.md",
14
+ "./.claude/agents/seven-finish-reviewer.md",
15
+ "./.claude/agents/seven-manual-edit-applier.md"
16
+ ]
12
17
  }
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: seven
3
+ description: "Use for every UI task in a project governed by the Seven Design System: creating or editing React 19 components, pages, flows, layouts, styles, UX copy, responsive behavior, accessibility, visual critique, performance, hardening, documentation, reusable compositions, browser iteration, or final polish. Requires Seven context before edits, reuse of installed Seven components and declared variants, @etus/tokens-only visual values, pt-BR product voice, and deterministic Seven validation. Routes the complete Seven workflow catalog plus doctor, hooks, pins, and exceptions. Do not trigger for backend-only or infrastructure-only work."
4
+ version: 0.1.0-beta.4
5
+ license: Apache-2.0
6
+ ---
7
+
8
+ # Seven UI governance
9
+
10
+ Builds production interfaces that stay inside the installed Seven release. This is not a visual inspiration prompt: Seven components, variants, tokens, interaction behavior, accessibility rules, and pt-BR voice are hard product constraints.
11
+
12
+ ## Mandatory loop for every UI task
13
+
14
+ Before reading broadly or editing any UI file:
15
+
16
+ 1. Identify the exact target file, application, and surface.
17
+ 2. Load the consumer context once, in full:
18
+
19
+ ```bash
20
+ node .cursor/skills/seven/scripts/load-context.mjs --target path/to/target
21
+ ```
22
+
23
+ 3. Read the returned `PRODUCT.md`, matched `.seven/project.yml` integration, release lock, and surface brief. If product context is missing or placeholder, ask the user directly for the missing product decision before editing UI. Do not invent users, workflow, tone, or product priorities.
24
+ If the result contains `update.notify: true`, finish the requested work first and then mention the exact update command once. Never update the pinned Seven release implicitly.
25
+ 4. Run `seven doctor --quick --target path/to/target`. If the Seven release, provider artifacts, or policy is inconsistent, surface that drift before producing UI.
26
+ 5. Search the installed Seven registry before creating a primitive: `seven list <need>` and `seven info <component>`. Import or install the existing component. Do not rebuild it with raw HTML.
27
+ 6. Inspect the selected component's public props and variants. If a required variant is absent, stop and surface a design-system gap. Seven allows no variants in code that do not exist in the shipped component contract.
28
+ 7. Make the smallest scoped change that satisfies the product job and all Seven rules.
29
+ 8. Run `seven check --file path/to/changed-file` for each UI file changed. Resolve errors and warnings. Advisory findings are design review input, not permission to silently redesign adjacent surfaces.
30
+
31
+ Never create or edit `.github/**` as part of this workflow. Seven governance is local to the consumer project; GitHub CI is outside this skill's scope.
32
+
33
+ ## Context model
34
+
35
+ - `PRODUCT.md` owns product facts: users, jobs, voice, accessibility needs, constraints, and non-goals.
36
+ - `.seven/project.yml` owns integration facts: project/app roots, source roots, surface mapping, and policy profile.
37
+ - `.seven/surfaces/*.md` owns a surface-specific brief and known states.
38
+ - `.seven/release.lock.json` and `.seven/policy.json` identify the exact Seven release and deterministic policy installed in this project.
39
+ - Consumer context cannot override Seven visual values. Do not create or consult a project `DESIGN.md` as a visual override.
40
+
41
+ If context conflicts, surface the conflict. Product facts may specialize the workflow and copy, but they cannot invent colors, typefaces, radii, shadows, variants, or component APIs.
42
+
43
+ ## Source-of-truth ladder
44
+
45
+ For a consumer project, use this order:
46
+
47
+ ```text
48
+ installed Seven component API + installed Seven CSS/token artifacts
49
+ > exact release policy and registry metadata
50
+ > Seven reference material in this skill
51
+ > surface brief
52
+ > PRODUCT.md
53
+ > task prose and other project docs
54
+ ```
55
+
56
+ The canonical Seven release is derived from the Seven Figma source of truth. Do not reach past the installed, locked release to copy a newer Figma value into one consumer project.
57
+
58
+ ## Seven design laws
59
+
60
+ ### Components and composition
61
+
62
+ - Prefer an installed `@etus/ui` or Seven registry component over raw interactive HTML and local reimplementation.
63
+ - Raw `<button>`, `<input>`, `<select>`, `<textarea>`, and `<dialog>` belong only inside the configured Seven component directory.
64
+ - Keep page components as composition. Do not fork a primitive to achieve one screen-specific appearance.
65
+ - Never invent a prop or variant. If Seven lacks one, report the gap with the component, desired behavior, and affected surface.
66
+
67
+ ### Color and tokens
68
+
69
+ - Use declared Seven CSS variables only. Never invent a `var(--token)` name or define a consumer visual token that shadows Seven.
70
+ - OKLCH is the token source format; runtime UI consumes `var(--token)`.
71
+ - Mint and lime are the brand colors. Fuchsia is chart-only, never UI chrome.
72
+ - Pure `#000` and `#fff` are banned. Use Seven's true grey neutral and semantic status ramps.
73
+ - Tailwind v4 arbitrary color values require `color:`: `bg-[color:var(--primary)]`.
74
+ - Tailwind v4 font-size and other ambiguous lengths require `length:`: `text-[length:var(--text-sm)]`.
75
+ - Do not use raw Tailwind palette colors such as `bg-green-500`.
76
+
77
+ See [reference/color-and-contrast.md](reference/color-and-contrast.md).
78
+
79
+ ### Typography and copy
80
+
81
+ - Inter is the only sans face. JetBrains Mono is the only mono face.
82
+ - Space Grotesk and Geist are legacy exploration and must not ship.
83
+ - Product chrome is Brazilian Portuguese, sentence case, with imperative action labels and no trailing periods.
84
+ - Never introduce European Portuguese vocabulary in pt-BR surfaces.
85
+ - Use clear heading hierarchy and readable line length/leading.
86
+
87
+ See [reference/typography.md](reference/typography.md) and [reference/ux-writing.md](reference/ux-writing.md).
88
+
89
+ ### Shape, elevation, and shell
90
+
91
+ - Use the component radius scale (4/8/12) for controls and the surface scale (16/20/24/32) for containers. Never mix the two radius stacks.
92
+ - Pill radius is for badges, tags, avatar triggers, and status indicators — never on buttons.
93
+ - Borders carry hierarchy; shadows are reserved for overlays.
94
+ - Sidebar and topbar use `var(--surface)` with no border and no shadow. The secondary panel owns the only shell divider.
95
+ - The app shell is L-shaped: `Sidebar` and `SidebarInset` are siblings under one `SidebarProvider`; `Topbar` is inside `SidebarInset`, and every collapsible mobile shell exposes `SidebarTrigger` in `TopbarLeading`. Below `md`, collapse long breadcrumbs/actions so `TopbarLeading` cannot overflow under the trailing chrome. Never build a full-width T-shaped header or offset content manually.
96
+ - Sidebar has exactly three state owners: `open` for the desktop panel, `openMobile` for the Sheet, and transient `railExpanded` for the dual Rail overlay. Default to `mode="single"` + icon collapse. In dual mode, every `SidebarRailButton` has `label`, links use `asChild`, hover OR focus keeps the 64→200px overlay open, and the mobile panel remains full-width regardless of desktop collapse.
97
+
98
+ See [reference/spatial-design.md](reference/spatial-design.md) and [reference/app-shell.md](reference/app-shell.md).
99
+
100
+ ### Motion and accessibility
101
+
102
+ - Default motion is 200 ms with `var(--ease-default)`. No bounce or spring in chrome.
103
+ - Every clickable affordance uses the system-wide tactile micro-press and visible focus treatment.
104
+ - Preserve semantic elements, accessible names, keyboard operation, logical focus, reduced motion, and WCAG AA contrast.
105
+ - Images need real sources, dimensions, useful alternative text, and a non-broken fallback.
106
+
107
+ See [reference/motion-design.md](reference/motion-design.md).
108
+
109
+ ## Exceptions and baselines
110
+
111
+ Do not add, broaden, renew, or suppress an exception on your own. Explain the exact rule, file/value, tradeoff, owner, issue, and expiry; then obtain explicit user authorization before running `seven exceptions add` or replacing a baseline.
112
+
113
+ Local hook ignores only reduce machine-local agent noise. They do not change the shared `seven check` result. A migration baseline can shrink but must never grow implicitly.
114
+
115
+ ## Intent routing
116
+
117
+ When invoked without an intent, read [reference/routing.md](reference/routing.md) and recommend rather than auto-running a workflow.
118
+
119
+ | Intent | Required reference | Outcome |
120
+ | ------------------------------------ | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
121
+ | `/seven init` | [reference/init.md](reference/init.md) | Capture product/app/surface context required by every later workflow |
122
+ | `/seven shape` | [reference/shape.md](reference/shape.md) | Resolve product job, information architecture, component choices, states, and responsive behavior before code |
123
+ | `/seven document` | [reference/document.md](reference/document.md) | Document how the project uses its exact Seven release without creating a competing visual authority |
124
+ | `/seven extract` | [reference/extract.md](reference/extract.md) | Extract repeated compositions while preserving Seven primitives, tokens, and public contracts |
125
+ | `/seven critique` | [reference/critique.md](reference/critique.md) | Produce and persist a prioritized visual/product critique; do not edit by default |
126
+ | `/seven audit` | [reference/audit.md](reference/audit.md) | Evidence-only technical audit across accessibility, performance, theming, responsiveness, and Seven drift |
127
+ | `/seven polish` | [reference/polish.md](reference/polish.md) | Scoped final pass that fixes root-cause drift and reruns checks |
128
+ | `/seven bolder` | [reference/bolder.md](reference/bolder.md) | Increase one target's hierarchy using only existing Seven roles and variants |
129
+ | `/seven quieter` | [reference/quieter.md](reference/quieter.md) | Reduce visual noise without erasing hierarchy or Seven identity |
130
+ | `/seven distill` | [reference/distill.md](reference/distill.md) | Remove unnecessary UI, states, and decisions while preserving the core job |
131
+ | `/seven harden` | [reference/harden.md](reference/harden.md) | Complete accessibility, error, loading, empty, content-stress, and recovery behavior |
132
+ | `/seven onboard` | [reference/onboard.md](reference/onboard.md) | Design first-run, setup, empty, and activation experiences; context capture belongs to `init` |
133
+ | `/seven animate` | [reference/animate.md](reference/animate.md) | Add only motion that explains feedback, state, or spatial continuity using Seven motion tokens |
134
+ | `/seven colorize` | [reference/colorize.md](reference/colorize.md) | Improve semantic color hierarchy using the installed Seven token roles only |
135
+ | `/seven typeset` | [reference/typeset.md](reference/typeset.md) | Refine typography with Seven Text roles, Inter, JetBrains Mono, measure, and content stress |
136
+ | `/seven layout` | [reference/layout.md](reference/layout.md) | Improve composition, density, alignment, responsive reflow, and reading order |
137
+ | `/seven delight` | [reference/delight.md](reference/delight.md) | Add restrained, product-specific moments that improve confidence or comprehension |
138
+ | `/seven clarify` | [reference/clarify.md](reference/clarify.md) | Rewrite UX copy in Brazilian Portuguese without changing product meaning |
139
+ | `/seven adapt` | [reference/adapt.md](reference/adapt.md) | Rethink an existing React web surface for another viewport, input mode, or usage context |
140
+ | `/seven optimize` | [reference/optimize.md](reference/optimize.md) | Measure and improve loading, rendering, assets, responsiveness, and perceived performance |
141
+ | `/seven overdrive` | [reference/overdrive.md](reference/overdrive.md) | Apply one justified high-ambition enhancement with fallbacks and a measured budget |
142
+ | `/seven live` | [reference/live.md](reference/live.md) | Run a local browser-edit session whose accepted changes become validated source edits |
143
+ | `/seven doctor` | [reference/doctor.md](reference/doctor.md) | Diagnose release, provider, hook, context, exception, dependency, pin, and local pre-commit health |
144
+ | `/seven hooks` | [reference/hooks.md](reference/hooks.md) | Inspect or manage local consumer agent hooks and machine-local noise controls |
145
+ | `/seven exceptions` | [reference/exceptions.md](reference/exceptions.md) | Manage explicit, owned, expiring shared waivers |
146
+
147
+ When an intent is invoked, read its reference completely before acting. `audit` reports; it does not silently fix. `polish` may edit only the agreed target.
148
+
149
+ Use `seven pin <workflow>` to install a provider-native standalone shortcut and `seven unpin <workflow>` to remove only Seven-owned shortcuts. Pins never change policy and never create `.github/**`.
150
+
151
+ ## Completion evidence
152
+
153
+ A UI task is complete only when the response names:
154
+
155
+ - the product/surface context used;
156
+ - the existing Seven components and declared variants chosen;
157
+ - the changed UI files;
158
+ - the exact `seven check` scope and result;
159
+ - any unresolved warning, advisory, missing contract, or user-authorized exception.
160
+
161
+ Do not claim strict Seven compliance from visual resemblance, compilation alone, or a downloaded skill alone.
@@ -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.