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

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 (281) hide show
  1. package/.agents/skills/seven/SKILL.md +24 -13
  2. package/.agents/skills/seven/agents/seven_finish_reviewer.toml +1 -1
  3. package/.agents/skills/seven/reference/audit.md +2 -2
  4. package/.agents/skills/seven/reference/bolder.md +1 -1
  5. package/.agents/skills/seven/reference/clarify.md +1 -1
  6. package/.agents/skills/seven/reference/critique.md +1 -1
  7. package/.agents/skills/seven/reference/doctor.md +4 -2
  8. package/.agents/skills/seven/reference/document.md +2 -2
  9. package/.agents/skills/seven/reference/evaluations.md +6 -0
  10. package/.agents/skills/seven/reference/exceptions.md +2 -2
  11. package/.agents/skills/seven/reference/extract.md +1 -1
  12. package/.agents/skills/seven/reference/harden.md +1 -1
  13. package/.agents/skills/seven/reference/hooks.md +3 -3
  14. package/.agents/skills/seven/reference/init.md +3 -36
  15. package/.agents/skills/seven/reference/live.md +11 -11
  16. package/.agents/skills/seven/reference/polish.md +1 -1
  17. package/.agents/skills/seven/reference/routing.md +1 -1
  18. package/.agents/skills/seven/reference/setup.md +38 -0
  19. package/.agents/skills/seven/reference/typeset.md +1 -1
  20. package/.agents/skills/seven/scripts/context-signals.mjs +2 -1
  21. package/.agents/skills/seven/scripts/load-context.mjs +19 -1
  22. package/.agents/skills/seven/scripts/run-seven.mjs +47 -0
  23. package/.claude/agents/seven-finish-reviewer.md +1 -1
  24. package/.claude/skills/seven/SKILL.md +30 -16
  25. package/.claude/skills/seven/reference/audit.md +2 -2
  26. package/.claude/skills/seven/reference/bolder.md +1 -1
  27. package/.claude/skills/seven/reference/clarify.md +1 -1
  28. package/.claude/skills/seven/reference/critique.md +1 -1
  29. package/.claude/skills/seven/reference/doctor.md +4 -2
  30. package/.claude/skills/seven/reference/document.md +2 -2
  31. package/.claude/skills/seven/reference/evaluations.md +6 -0
  32. package/.claude/skills/seven/reference/exceptions.md +2 -2
  33. package/.claude/skills/seven/reference/extract.md +1 -1
  34. package/.claude/skills/seven/reference/harden.md +1 -1
  35. package/.claude/skills/seven/reference/hooks.md +3 -3
  36. package/.claude/skills/seven/reference/init.md +3 -36
  37. package/.claude/skills/seven/reference/live.md +11 -11
  38. package/.claude/skills/seven/reference/polish.md +1 -1
  39. package/.claude/skills/seven/reference/routing.md +1 -1
  40. package/.claude/skills/seven/reference/setup.md +38 -0
  41. package/.claude/skills/seven/reference/typeset.md +1 -1
  42. package/.claude/skills/seven/scripts/context-signals.mjs +2 -1
  43. package/.claude/skills/seven/scripts/load-context.mjs +19 -1
  44. package/.claude/skills/seven/scripts/run-seven.mjs +47 -0
  45. package/.claude-plugin/marketplace.json +1 -1
  46. package/.claude-plugin/plugin.json +1 -1
  47. package/.cursor/skills/seven/SKILL.md +24 -13
  48. package/.cursor/skills/seven/reference/audit.md +2 -2
  49. package/.cursor/skills/seven/reference/bolder.md +1 -1
  50. package/.cursor/skills/seven/reference/clarify.md +1 -1
  51. package/.cursor/skills/seven/reference/critique.md +1 -1
  52. package/.cursor/skills/seven/reference/doctor.md +4 -2
  53. package/.cursor/skills/seven/reference/document.md +2 -2
  54. package/.cursor/skills/seven/reference/evaluations.md +6 -0
  55. package/.cursor/skills/seven/reference/exceptions.md +2 -2
  56. package/.cursor/skills/seven/reference/extract.md +1 -1
  57. package/.cursor/skills/seven/reference/harden.md +1 -1
  58. package/.cursor/skills/seven/reference/hooks.md +3 -3
  59. package/.cursor/skills/seven/reference/init.md +3 -36
  60. package/.cursor/skills/seven/reference/live.md +11 -11
  61. package/.cursor/skills/seven/reference/polish.md +1 -1
  62. package/.cursor/skills/seven/reference/routing.md +1 -1
  63. package/.cursor/skills/seven/reference/setup.md +38 -0
  64. package/.cursor/skills/seven/reference/typeset.md +1 -1
  65. package/.cursor/skills/seven/scripts/context-signals.mjs +2 -1
  66. package/.cursor/skills/seven/scripts/load-context.mjs +19 -1
  67. package/.cursor/skills/seven/scripts/run-seven.mjs +47 -0
  68. package/.gemini/skills/seven/SKILL.md +24 -13
  69. package/.gemini/skills/seven/reference/audit.md +2 -2
  70. package/.gemini/skills/seven/reference/bolder.md +1 -1
  71. package/.gemini/skills/seven/reference/clarify.md +1 -1
  72. package/.gemini/skills/seven/reference/critique.md +1 -1
  73. package/.gemini/skills/seven/reference/doctor.md +4 -2
  74. package/.gemini/skills/seven/reference/document.md +2 -2
  75. package/.gemini/skills/seven/reference/evaluations.md +6 -0
  76. package/.gemini/skills/seven/reference/exceptions.md +2 -2
  77. package/.gemini/skills/seven/reference/extract.md +1 -1
  78. package/.gemini/skills/seven/reference/harden.md +1 -1
  79. package/.gemini/skills/seven/reference/hooks.md +3 -3
  80. package/.gemini/skills/seven/reference/init.md +3 -36
  81. package/.gemini/skills/seven/reference/live.md +11 -11
  82. package/.gemini/skills/seven/reference/polish.md +1 -1
  83. package/.gemini/skills/seven/reference/routing.md +1 -1
  84. package/.gemini/skills/seven/reference/setup.md +38 -0
  85. package/.gemini/skills/seven/reference/typeset.md +1 -1
  86. package/.gemini/skills/seven/scripts/context-signals.mjs +2 -1
  87. package/.gemini/skills/seven/scripts/load-context.mjs +19 -1
  88. package/.gemini/skills/seven/scripts/run-seven.mjs +47 -0
  89. package/.grok/agents/seven-finish-reviewer.md +1 -1
  90. package/.grok/skills/seven/SKILL.md +25 -16
  91. package/.grok/skills/seven/reference/audit.md +2 -2
  92. package/.grok/skills/seven/reference/bolder.md +1 -1
  93. package/.grok/skills/seven/reference/clarify.md +1 -1
  94. package/.grok/skills/seven/reference/critique.md +1 -1
  95. package/.grok/skills/seven/reference/doctor.md +4 -2
  96. package/.grok/skills/seven/reference/document.md +2 -2
  97. package/.grok/skills/seven/reference/evaluations.md +6 -0
  98. package/.grok/skills/seven/reference/exceptions.md +2 -2
  99. package/.grok/skills/seven/reference/extract.md +1 -1
  100. package/.grok/skills/seven/reference/harden.md +1 -1
  101. package/.grok/skills/seven/reference/hooks.md +3 -3
  102. package/.grok/skills/seven/reference/init.md +3 -36
  103. package/.grok/skills/seven/reference/live.md +11 -11
  104. package/.grok/skills/seven/reference/polish.md +1 -1
  105. package/.grok/skills/seven/reference/routing.md +1 -1
  106. package/.grok/skills/seven/reference/setup.md +38 -0
  107. package/.grok/skills/seven/reference/typeset.md +1 -1
  108. package/.grok/skills/seven/scripts/context-signals.mjs +2 -1
  109. package/.grok/skills/seven/scripts/load-context.mjs +19 -1
  110. package/.grok/skills/seven/scripts/run-seven.mjs +47 -0
  111. package/.kiro/skills/seven/SKILL.md +24 -13
  112. package/.kiro/skills/seven/reference/audit.md +2 -2
  113. package/.kiro/skills/seven/reference/bolder.md +1 -1
  114. package/.kiro/skills/seven/reference/clarify.md +1 -1
  115. package/.kiro/skills/seven/reference/critique.md +1 -1
  116. package/.kiro/skills/seven/reference/doctor.md +4 -2
  117. package/.kiro/skills/seven/reference/document.md +2 -2
  118. package/.kiro/skills/seven/reference/evaluations.md +6 -0
  119. package/.kiro/skills/seven/reference/exceptions.md +2 -2
  120. package/.kiro/skills/seven/reference/extract.md +1 -1
  121. package/.kiro/skills/seven/reference/harden.md +1 -1
  122. package/.kiro/skills/seven/reference/hooks.md +3 -3
  123. package/.kiro/skills/seven/reference/init.md +3 -36
  124. package/.kiro/skills/seven/reference/live.md +11 -11
  125. package/.kiro/skills/seven/reference/polish.md +1 -1
  126. package/.kiro/skills/seven/reference/routing.md +1 -1
  127. package/.kiro/skills/seven/reference/setup.md +38 -0
  128. package/.kiro/skills/seven/reference/typeset.md +1 -1
  129. package/.kiro/skills/seven/scripts/context-signals.mjs +2 -1
  130. package/.kiro/skills/seven/scripts/load-context.mjs +19 -1
  131. package/.kiro/skills/seven/scripts/run-seven.mjs +47 -0
  132. package/.opencode/skills/seven/SKILL.md +25 -16
  133. package/.opencode/skills/seven/reference/audit.md +2 -2
  134. package/.opencode/skills/seven/reference/bolder.md +1 -1
  135. package/.opencode/skills/seven/reference/clarify.md +1 -1
  136. package/.opencode/skills/seven/reference/critique.md +1 -1
  137. package/.opencode/skills/seven/reference/doctor.md +4 -2
  138. package/.opencode/skills/seven/reference/document.md +2 -2
  139. package/.opencode/skills/seven/reference/evaluations.md +6 -0
  140. package/.opencode/skills/seven/reference/exceptions.md +2 -2
  141. package/.opencode/skills/seven/reference/extract.md +1 -1
  142. package/.opencode/skills/seven/reference/harden.md +1 -1
  143. package/.opencode/skills/seven/reference/hooks.md +3 -3
  144. package/.opencode/skills/seven/reference/init.md +3 -36
  145. package/.opencode/skills/seven/reference/live.md +11 -11
  146. package/.opencode/skills/seven/reference/polish.md +1 -1
  147. package/.opencode/skills/seven/reference/routing.md +1 -1
  148. package/.opencode/skills/seven/reference/setup.md +38 -0
  149. package/.opencode/skills/seven/reference/typeset.md +1 -1
  150. package/.opencode/skills/seven/scripts/context-signals.mjs +2 -1
  151. package/.opencode/skills/seven/scripts/load-context.mjs +19 -1
  152. package/.opencode/skills/seven/scripts/run-seven.mjs +47 -0
  153. package/.pi/skills/seven/SKILL.md +24 -15
  154. package/.pi/skills/seven/reference/audit.md +2 -2
  155. package/.pi/skills/seven/reference/bolder.md +1 -1
  156. package/.pi/skills/seven/reference/clarify.md +1 -1
  157. package/.pi/skills/seven/reference/critique.md +1 -1
  158. package/.pi/skills/seven/reference/doctor.md +4 -2
  159. package/.pi/skills/seven/reference/document.md +2 -2
  160. package/.pi/skills/seven/reference/evaluations.md +6 -0
  161. package/.pi/skills/seven/reference/exceptions.md +2 -2
  162. package/.pi/skills/seven/reference/extract.md +1 -1
  163. package/.pi/skills/seven/reference/harden.md +1 -1
  164. package/.pi/skills/seven/reference/hooks.md +3 -3
  165. package/.pi/skills/seven/reference/init.md +3 -36
  166. package/.pi/skills/seven/reference/live.md +11 -11
  167. package/.pi/skills/seven/reference/polish.md +1 -1
  168. package/.pi/skills/seven/reference/routing.md +1 -1
  169. package/.pi/skills/seven/reference/setup.md +38 -0
  170. package/.pi/skills/seven/reference/typeset.md +1 -1
  171. package/.pi/skills/seven/scripts/context-signals.mjs +2 -1
  172. package/.pi/skills/seven/scripts/load-context.mjs +19 -1
  173. package/.pi/skills/seven/scripts/run-seven.mjs +47 -0
  174. package/.qoder/skills/seven/SKILL.md +25 -16
  175. package/.qoder/skills/seven/reference/audit.md +2 -2
  176. package/.qoder/skills/seven/reference/bolder.md +1 -1
  177. package/.qoder/skills/seven/reference/clarify.md +1 -1
  178. package/.qoder/skills/seven/reference/critique.md +1 -1
  179. package/.qoder/skills/seven/reference/doctor.md +4 -2
  180. package/.qoder/skills/seven/reference/document.md +2 -2
  181. package/.qoder/skills/seven/reference/evaluations.md +6 -0
  182. package/.qoder/skills/seven/reference/exceptions.md +2 -2
  183. package/.qoder/skills/seven/reference/extract.md +1 -1
  184. package/.qoder/skills/seven/reference/harden.md +1 -1
  185. package/.qoder/skills/seven/reference/hooks.md +3 -3
  186. package/.qoder/skills/seven/reference/init.md +3 -36
  187. package/.qoder/skills/seven/reference/live.md +11 -11
  188. package/.qoder/skills/seven/reference/polish.md +1 -1
  189. package/.qoder/skills/seven/reference/routing.md +1 -1
  190. package/.qoder/skills/seven/reference/setup.md +38 -0
  191. package/.qoder/skills/seven/reference/typeset.md +1 -1
  192. package/.qoder/skills/seven/scripts/context-signals.mjs +2 -1
  193. package/.qoder/skills/seven/scripts/load-context.mjs +19 -1
  194. package/.qoder/skills/seven/scripts/run-seven.mjs +47 -0
  195. package/.rovodev/skills/seven/SKILL.md +25 -16
  196. package/.rovodev/skills/seven/reference/audit.md +2 -2
  197. package/.rovodev/skills/seven/reference/bolder.md +1 -1
  198. package/.rovodev/skills/seven/reference/clarify.md +1 -1
  199. package/.rovodev/skills/seven/reference/critique.md +1 -1
  200. package/.rovodev/skills/seven/reference/doctor.md +4 -2
  201. package/.rovodev/skills/seven/reference/document.md +2 -2
  202. package/.rovodev/skills/seven/reference/evaluations.md +6 -0
  203. package/.rovodev/skills/seven/reference/exceptions.md +2 -2
  204. package/.rovodev/skills/seven/reference/extract.md +1 -1
  205. package/.rovodev/skills/seven/reference/harden.md +1 -1
  206. package/.rovodev/skills/seven/reference/hooks.md +3 -3
  207. package/.rovodev/skills/seven/reference/init.md +3 -36
  208. package/.rovodev/skills/seven/reference/live.md +11 -11
  209. package/.rovodev/skills/seven/reference/polish.md +1 -1
  210. package/.rovodev/skills/seven/reference/routing.md +1 -1
  211. package/.rovodev/skills/seven/reference/setup.md +38 -0
  212. package/.rovodev/skills/seven/reference/typeset.md +1 -1
  213. package/.rovodev/skills/seven/scripts/context-signals.mjs +2 -1
  214. package/.rovodev/skills/seven/scripts/load-context.mjs +19 -1
  215. package/.rovodev/skills/seven/scripts/run-seven.mjs +47 -0
  216. package/.trae/skills/seven/SKILL.md +25 -14
  217. package/.trae/skills/seven/reference/audit.md +2 -2
  218. package/.trae/skills/seven/reference/bolder.md +1 -1
  219. package/.trae/skills/seven/reference/clarify.md +1 -1
  220. package/.trae/skills/seven/reference/critique.md +1 -1
  221. package/.trae/skills/seven/reference/doctor.md +4 -2
  222. package/.trae/skills/seven/reference/document.md +2 -2
  223. package/.trae/skills/seven/reference/evaluations.md +6 -0
  224. package/.trae/skills/seven/reference/exceptions.md +2 -2
  225. package/.trae/skills/seven/reference/extract.md +1 -1
  226. package/.trae/skills/seven/reference/harden.md +1 -1
  227. package/.trae/skills/seven/reference/hooks.md +3 -3
  228. package/.trae/skills/seven/reference/init.md +3 -36
  229. package/.trae/skills/seven/reference/live.md +11 -11
  230. package/.trae/skills/seven/reference/polish.md +1 -1
  231. package/.trae/skills/seven/reference/routing.md +1 -1
  232. package/.trae/skills/seven/reference/setup.md +38 -0
  233. package/.trae/skills/seven/reference/typeset.md +1 -1
  234. package/.trae/skills/seven/scripts/context-signals.mjs +2 -1
  235. package/.trae/skills/seven/scripts/load-context.mjs +19 -1
  236. package/.trae/skills/seven/scripts/run-seven.mjs +47 -0
  237. package/.trae-cn/skills/seven/SKILL.md +25 -14
  238. package/.trae-cn/skills/seven/reference/audit.md +2 -2
  239. package/.trae-cn/skills/seven/reference/bolder.md +1 -1
  240. package/.trae-cn/skills/seven/reference/clarify.md +1 -1
  241. package/.trae-cn/skills/seven/reference/critique.md +1 -1
  242. package/.trae-cn/skills/seven/reference/doctor.md +4 -2
  243. package/.trae-cn/skills/seven/reference/document.md +2 -2
  244. package/.trae-cn/skills/seven/reference/evaluations.md +6 -0
  245. package/.trae-cn/skills/seven/reference/exceptions.md +2 -2
  246. package/.trae-cn/skills/seven/reference/extract.md +1 -1
  247. package/.trae-cn/skills/seven/reference/harden.md +1 -1
  248. package/.trae-cn/skills/seven/reference/hooks.md +3 -3
  249. package/.trae-cn/skills/seven/reference/init.md +3 -36
  250. package/.trae-cn/skills/seven/reference/live.md +11 -11
  251. package/.trae-cn/skills/seven/reference/polish.md +1 -1
  252. package/.trae-cn/skills/seven/reference/routing.md +1 -1
  253. package/.trae-cn/skills/seven/reference/setup.md +38 -0
  254. package/.trae-cn/skills/seven/reference/typeset.md +1 -1
  255. package/.trae-cn/skills/seven/scripts/context-signals.mjs +2 -1
  256. package/.trae-cn/skills/seven/scripts/load-context.mjs +19 -1
  257. package/.trae-cn/skills/seven/scripts/run-seven.mjs +47 -0
  258. package/.vibe/skills/seven/SKILL.md +24 -15
  259. package/.vibe/skills/seven/reference/audit.md +2 -2
  260. package/.vibe/skills/seven/reference/bolder.md +1 -1
  261. package/.vibe/skills/seven/reference/clarify.md +1 -1
  262. package/.vibe/skills/seven/reference/critique.md +1 -1
  263. package/.vibe/skills/seven/reference/doctor.md +4 -2
  264. package/.vibe/skills/seven/reference/document.md +2 -2
  265. package/.vibe/skills/seven/reference/evaluations.md +6 -0
  266. package/.vibe/skills/seven/reference/exceptions.md +2 -2
  267. package/.vibe/skills/seven/reference/extract.md +1 -1
  268. package/.vibe/skills/seven/reference/harden.md +1 -1
  269. package/.vibe/skills/seven/reference/hooks.md +3 -3
  270. package/.vibe/skills/seven/reference/init.md +3 -36
  271. package/.vibe/skills/seven/reference/live.md +11 -11
  272. package/.vibe/skills/seven/reference/polish.md +1 -1
  273. package/.vibe/skills/seven/reference/routing.md +1 -1
  274. package/.vibe/skills/seven/reference/setup.md +38 -0
  275. package/.vibe/skills/seven/reference/typeset.md +1 -1
  276. package/.vibe/skills/seven/scripts/context-signals.mjs +2 -1
  277. package/.vibe/skills/seven/scripts/load-context.mjs +19 -1
  278. package/.vibe/skills/seven/scripts/run-seven.mjs +47 -0
  279. package/README.md +8 -4
  280. package/extension/manifest.json +1 -1
  281. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: seven
3
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
- argument-hint: "[intent] [target]"
4
+ version: 0.1.0-beta.5
5
+ argument-hint: "[setup|workflow] [target]"
6
6
  user-invocable: true
7
7
  license: Apache-2.0
8
8
  ---
@@ -11,24 +11,34 @@ license: Apache-2.0
11
11
 
12
12
  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.
13
13
 
14
+ ## Invocation contract
15
+
16
+ Interpret explicit invocations as `/seven <intent> [target]`: the first token selects a workflow and the remaining text scopes it. `setup` is the canonical skill workflow for capturing product, app, and surface context; `init` is retained only as a backward-compatible alias. The CLI subcommand `seven init` is different: it installs the Seven release and consumer governance.
17
+
18
+
19
+
20
+ With no intent, use the no-argument router below. If the first token is not a known intent, show the valid workflows and ask for a choice; never silently substitute a different workflow.
21
+
22
+ Always execute the project-pinned CLI as `node .trae-cn/skills/seven/scripts/run-seven.mjs ...`. The runner resolves the local `@etus/seven` package without depending on npm, pnpm, Yarn, Bun, `npx`, or a global binary.
23
+
14
24
  ## Mandatory loop for every UI task
15
25
 
16
26
  Before reading broadly or editing any UI file:
17
27
 
18
28
  1. Identify the exact target file, application, and surface.
19
- 2. Load the consumer context once, in full:
29
+ 2. Load the resolved consumer context once:
20
30
 
21
31
  ```bash
22
32
  node .trae-cn/skills/seven/scripts/load-context.mjs --target path/to/target
23
33
  ```
24
34
 
25
- 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.
35
+ 3. Read the returned `PRODUCT.md`, matched `.seven/project.yml` integration, compact release summary, and surface brief. The returned `artifactDigest` plus `artifactSummary` are sufficient when doctor is healthy; do not open the raw release lock or its per-file hashes unless doctor reports release drift or the active intent is `doctor`. 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.
26
36
  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.
27
- 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.
28
- 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.
37
+ 4. Run `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor --quick --target path/to/target`. If the Seven release, provider artifacts, or policy is inconsistent, surface that drift before producing UI.
38
+ 5. Search the installed Seven registry before creating a primitive: `node .trae-cn/skills/seven/scripts/run-seven.mjs list <need>` and `node .trae-cn/skills/seven/scripts/run-seven.mjs info <component>`. Import or install the existing component. Do not rebuild it with raw HTML.
29
39
  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.
30
40
  7. Make the smallest scoped change that satisfies the product job and all Seven rules.
31
- 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.
41
+ 8. Run `node .trae-cn/skills/seven/scripts/run-seven.mjs 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.
32
42
 
33
43
  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.
34
44
 
@@ -110,9 +120,9 @@ See [reference/motion-design.md](reference/motion-design.md).
110
120
 
111
121
  ## Exceptions and baselines
112
122
 
113
- 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.
123
+ 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 `node .trae-cn/skills/seven/scripts/run-seven.mjs exceptions add` or replacing a baseline.
114
124
 
115
- 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.
125
+ Local hook ignores only reduce machine-local agent noise. They do not change the shared `run-seven.mjs check` result. A migration baseline can shrink but must never grow implicitly.
116
126
 
117
127
  ## Intent routing
118
128
 
@@ -120,7 +130,8 @@ When invoked without an intent, read [reference/routing.md](reference/routing.md
120
130
 
121
131
  | Intent | Required reference | Outcome |
122
132
  | ------------------------------------ | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
123
- | `/seven init` | [reference/init.md](reference/init.md) | Capture product/app/surface context required by every later workflow |
133
+ | `/seven setup` | [reference/setup.md](reference/setup.md) | Capture product/app/surface context required by every later workflow |
134
+ | `/seven init` | [reference/init.md](reference/init.md) | Backward-compatible alias for the canonical `setup` skill workflow |
124
135
  | `/seven shape` | [reference/shape.md](reference/shape.md) | Resolve product job, information architecture, component choices, states, and responsive behavior before code |
125
136
  | `/seven document` | [reference/document.md](reference/document.md) | Document how the project uses its exact Seven release without creating a competing visual authority |
126
137
  | `/seven extract` | [reference/extract.md](reference/extract.md) | Extract repeated compositions while preserving Seven primitives, tokens, and public contracts |
@@ -131,7 +142,7 @@ When invoked without an intent, read [reference/routing.md](reference/routing.md
131
142
  | `/seven quieter` | [reference/quieter.md](reference/quieter.md) | Reduce visual noise without erasing hierarchy or Seven identity |
132
143
  | `/seven distill` | [reference/distill.md](reference/distill.md) | Remove unnecessary UI, states, and decisions while preserving the core job |
133
144
  | `/seven harden` | [reference/harden.md](reference/harden.md) | Complete accessibility, error, loading, empty, content-stress, and recovery behavior |
134
- | `/seven onboard` | [reference/onboard.md](reference/onboard.md) | Design first-run, setup, empty, and activation experiences; context capture belongs to `init` |
145
+ | `/seven onboard` | [reference/onboard.md](reference/onboard.md) | Design first-run, setup, empty, and activation experiences; context capture belongs to the skill `setup` |
135
146
  | `/seven animate` | [reference/animate.md](reference/animate.md) | Add only motion that explains feedback, state, or spatial continuity using Seven motion tokens |
136
147
  | `/seven colorize` | [reference/colorize.md](reference/colorize.md) | Improve semantic color hierarchy using the installed Seven token roles only |
137
148
  | `/seven typeset` | [reference/typeset.md](reference/typeset.md) | Refine typography with Seven Text roles, Inter, JetBrains Mono, measure, and content stress |
@@ -146,9 +157,9 @@ When invoked without an intent, read [reference/routing.md](reference/routing.md
146
157
  | `/seven hooks` | [reference/hooks.md](reference/hooks.md) | Inspect or manage local consumer agent hooks and machine-local noise controls |
147
158
  | `/seven exceptions` | [reference/exceptions.md](reference/exceptions.md) | Manage explicit, owned, expiring shared waivers |
148
159
 
149
- 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.
160
+ When an intent is invoked, read its reference completely before acting. `setup` is canonical and `init` must delegate to it. `audit` reports; it does not silently fix. `polish` may edit only the agreed target.
150
161
 
151
- 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/**`.
162
+ Use `node .trae-cn/skills/seven/scripts/run-seven.mjs pin <workflow>` to install a provider-native standalone shortcut and `node .trae-cn/skills/seven/scripts/run-seven.mjs unpin <workflow>` to remove only Seven-owned shortcuts. Pins never change policy and never create `.github/**`.
152
163
 
153
164
  ## Completion evidence
154
165
 
@@ -157,7 +168,7 @@ A UI task is complete only when the response names:
157
168
  - the product/surface context used;
158
169
  - the existing Seven components and declared variants chosen;
159
170
  - the changed UI files;
160
- - the exact `seven check` scope and result;
171
+ - the exact `run-seven.mjs check` scope and result;
161
172
  - any unresolved warning, advisory, missing contract, or user-authorized exception.
162
173
 
163
174
  Do not claim strict Seven compliance from visual resemblance, compilation alone, or a downloaded skill alone.
@@ -68,7 +68,7 @@ Scoring: 0 = desktop-only, 1 = major issues, 2 = partial, 3 = good with minor is
68
68
  Run the deterministic detector against the surface or component:
69
69
 
70
70
  ```bash
71
- seven check --file <path>
71
+ node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <path>
72
72
  ```
73
73
 
74
74
  Then check the report against the Seven rule set:
@@ -88,7 +88,7 @@ Deep detector rules also include `missing-tactile-press`, `radius-mixed-scales`,
88
88
 
89
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
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.
91
+ When a trusted development page is available, add rendered evidence with `node .trae-cn/skills/seven/scripts/run-seven.mjs 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
92
 
93
93
  ## Report shape
94
94
 
@@ -29,6 +29,6 @@ Never add a new color, font, shadow, radius, illustration style, variant, or arb
29
29
  - Everything outside the agreed target is byte-for-byte or visually unchanged.
30
30
  - The primary job is recognizable in five seconds and keyboard order remains logical.
31
31
  - The target is unmistakably Seven, not a new visual identity.
32
- - `seven check --file` passes for every changed UI file.
32
+ - `node .trae-cn/skills/seven/scripts/run-seven.mjs check --file` passes for every changed UI file.
33
33
 
34
34
  Finish with `polish` only when the user asks for the broader final pass.
@@ -64,7 +64,7 @@ Sentence case across every chrome surface. Capitalize only the first word and pr
64
64
  3. Verify the rewrites against the detector's `pt-pt-vocab` rule:
65
65
 
66
66
  ```bash
67
- seven check --file <path>
67
+ node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <path>
68
68
  ```
69
69
 
70
70
  4. Write the rewrites as a diff or table; do not commit until the user confirms.
@@ -21,7 +21,7 @@ Inspect the real target at representative desktop and mobile widths, plus dark m
21
21
 
22
22
  ### Lane B — mechanical evidence
23
23
 
24
- Run `seven check --file <target>` or `seven check <url>` and relevant tests. Record rule IDs, files, lines, browser errors, and reproducible steps. A clean scan is a floor, not a visual endorsement.
24
+ Run `node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <target>` or `node .trae-cn/skills/seven/scripts/run-seven.mjs check <url>` and relevant tests. Record rule IDs, files, lines, browser errors, and reproducible steps. A clean scan is a floor, not a visual endorsement.
25
25
 
26
26
  Only after both lanes are complete should you synthesize them.
27
27
 
@@ -1,7 +1,9 @@
1
1
  # Doctor
2
2
 
3
- Run `seven doctor` to diagnose the consumer installation. Treat its checks as evidence, not a request to rewrite unrelated files.
3
+ Run `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor` to diagnose the consumer installation. Treat its checks as evidence, not a request to rewrite unrelated files.
4
4
 
5
5
  Inspect the exact release lock and hashes, generated policy, project config, React/Tailwind/tailwind-merge compatibility, package scripts, provider-native skill payloads, hook manifests, product/surface context freshness, exceptions, baseline, and forbidden `.github` artifacts attributable to Seven.
6
6
 
7
- `seven doctor --quick` is the pre-edit health check. The full doctor is the handoff check. Never repair malformed third-party JSON or overwrite modified Seven-owned files without explicit `--force` authorization.
7
+ `node .trae-cn/skills/seven/scripts/run-seven.mjs add` refuses before any component write or dependency installation when initialization is incomplete or this release contract has drifted. Its `--force`, `--overwrite`, `--install`, and `--dry-run` flags never bypass that preflight. Diagnose first, repair release-owned artifacts with `node .trae-cn/skills/seven/scripts/run-seven.mjs update` after review, then retry `add`.
8
+
9
+ `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor --quick` is the pre-edit health check. The full doctor is the handoff check. Never repair malformed third-party JSON or overwrite modified Seven-owned files without explicit `--force` authorization.
@@ -5,7 +5,7 @@ Document how an existing product surface consumes the exact installed Seven rele
5
5
  ## Read first
6
6
 
7
7
  - `.seven/release.lock.json`, `.seven/project.yml`, `PRODUCT.md`, and the matched surface brief;
8
- - `seven list` / `seven info` for every referenced component;
8
+ - `node .trae-cn/skills/seven/scripts/run-seven.mjs list` / `node .trae-cn/skills/seven/scripts/run-seven.mjs info` for every referenced component;
9
9
  - representative source, tests, stories, and rendered states;
10
10
  - active exceptions and baseline entries.
11
11
 
@@ -22,7 +22,7 @@ Unless the user supplies a path, write under `docs/seven/`. Include:
22
22
  7. Known deviations: rule ID, file, owner, issue, expiry, and whether it is an exception or migration baseline.
23
23
  8. Verification commands and the date they last passed.
24
24
 
25
- Every example must compile against the current component API and pass `seven check --file`. Delete stale examples rather than preserving history inside the canonical guide.
25
+ Every example must compile against the current component API and pass `node .trae-cn/skills/seven/scripts/run-seven.mjs check --file`. Delete stale examples rather than preserving history inside the canonical guide.
26
26
 
27
27
  ## Prohibitions
28
28
 
@@ -36,3 +36,9 @@ Use these scenarios in fresh consumer projects to verify routing and behavior af
36
36
 
37
37
  - Query: "Crie o shell do dashboard com Sidebar e Topbar e garanta que funcione no mobile."
38
38
  - Expected: composes the L-shaped tree `SidebarProvider > Sidebar + SidebarInset > Topbar + content`; keeps Sidebar/Topbar borderless; places a visible mobile `SidebarTrigger` in `TopbarLeading`; collapses long breadcrumbs/actions below `md` without leading-slot overflow; keeps `open`, `openMobile`, and `railExpanded` independent; defaults single collapse to icons; labels every dual Rail item and uses `asChild` for links; preserves the 280px footprint while Rail hover or focus expands 64→200px in overlay; renders the mobile panel full-width even after desktop collapse; rejects a full-width T-shaped Topbar, manual offsets, a trigger trapped inside the closed Sheet, Link > button nesting, or an empty expanded Rail; validates with `sidebar-topbar-shell` and `sidebar-rail-behavior` in source and rendered geometry.
39
+
40
+ ## 8. Explicit setup invocation
41
+
42
+ - Claude Code query: `/seven setup "apps/dashboard"`.
43
+ - Codex query: `$seven setup "apps/dashboard"`.
44
+ - Expected: routes to `reference/setup.md`; treats `setup` as the canonical skill workflow and `init` only as an alias; distinguishes both from the shell installer `seven init`; preserves `apps/dashboard` as the target; asks for missing product facts; does not edit UI or create `.github/**`.
@@ -2,6 +2,6 @@
2
2
 
3
3
  A shared exception is an explicit, reviewable debt record, not a convenient suppression. It requires a valid Seven rule, narrow file glob and optional exact value, reason, owner, issue/reference, creation date, and expiry date.
4
4
 
5
- Before running `seven exceptions add`, show the proposed record and obtain explicit user authorization. Never silently renew an expired exception or broaden its file glob. Local hook ignores are not shared exceptions.
5
+ Before running `node .trae-cn/skills/seven/scripts/run-seven.mjs exceptions add`, show the proposed record and obtain explicit user authorization. Never silently renew an expired exception or broaden its file glob. Local hook ignores are not shared exceptions.
6
6
 
7
- Run `seven exceptions validate` and `seven doctor` after changes. Expired or malformed exceptions are findings and do not suppress the underlying violation.
7
+ Run `node .trae-cn/skills/seven/scripts/run-seven.mjs exceptions validate` and `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor` after changes. Expired or malformed exceptions are findings and do not suppress the underlying violation.
@@ -28,7 +28,7 @@ Do not extract merely because markup looks similar. Similar cards with different
28
28
  3. Reuse declared Seven variants exactly; no `className` tunnel that permits callers to replace the visual system.
29
29
  4. Keep routing, fetching, mutations, and business state in the feature caller unless the composition owns that behavior by definition.
30
30
  5. Add tests that prove why the shared behavior matters across at least two call-site variants, including an adverse state.
31
- 6. Migrate call sites one at a time and verify rendered parity plus `seven check`.
31
+ 6. Migrate call sites one at a time and verify rendered parity plus `node .trae-cn/skills/seven/scripts/run-seven.mjs check`.
32
32
 
33
33
  ## Refuse
34
34
 
@@ -31,6 +31,6 @@ Use the matched surface brief as the contract. Ask when a business outcome is un
31
31
 
32
32
  ## Verification
33
33
 
34
- Tests must encode why each adverse state matters. Include at least one keyboard path, one assistive-name assertion, one long-content case, one network/error recovery case, and one repeated-action case when applicable. Run `seven check`, unit/integration tests, and rendered browser validation for the target.
34
+ Tests must encode why each adverse state matters. Include at least one keyboard path, one assistive-name assertion, one long-content case, one network/error recovery case, and one repeated-action case when applicable. Run `node .trae-cn/skills/seven/scripts/run-seven.mjs check`, unit/integration tests, and rendered browser validation for the target.
35
35
 
36
36
  Finish with a residual-risk list. “Works on the happy path” is never a hardened result.
@@ -2,10 +2,10 @@
2
2
 
3
3
  Seven consumer hooks are project-local guardrails. Claude uses `.claude/settings.json`; Codex uses `.codex/hooks.json` and requires the user to review/trust the exact definition; Cursor uses `.cursor/hooks.json`; Grok uses `.grok/hooks/seven.json` and requires project hook trust. Seven merges only its own entries and preserves every third-party hook. Hosts without a compatible project hook API still receive the skill and are covered by the provider-independent local Git pre-commit gate.
4
4
 
5
- `PreToolUse` injects product and release context before UI writes. `PostToolUse` runs the immediate deterministic tier on touched UI files. `Stop` runs the full pass over the UI files touched in the session plus every staged, unstaged, or untracked UI path in the Git working tree. That final union also catches files created through shell commands that bypass the provider's structured edit tools. Active errors or warnings return the provider-native structured continuation decision, asking the agent to correct the UI before it stops. Claude Code re-entry with `stop_hook_active: true` exits silently because the prior response already surfaced the findings; providers without that signal use a three-attempt cap for an unchanged finding set. The authoritative `seven check --all` result remains blocking after either loop guard. Advisories are surfaced without blocking.
5
+ `PreToolUse` injects product and release context before UI writes. `PostToolUse` runs the immediate deterministic tier on touched UI files. `Stop` runs the full pass over the UI files touched in the session plus every staged, unstaged, or untracked UI path in the Git working tree. That final union also catches files created through shell commands that bypass the provider's structured edit tools. Active errors or warnings return the provider-native structured continuation decision, asking the agent to correct the UI before it stops. Claude Code re-entry with `stop_hook_active: true` exits silently because the prior response already surfaced the findings; providers without that signal use a three-attempt cap for an unchanged finding set. The authoritative `node .trae-cn/skills/seven/scripts/run-seven.mjs check --all` result remains blocking after either loop guard. Advisories are surfaced without blocking.
6
6
 
7
7
  Parser, dependency, and runtime failures fail open and exit zero so a broken local hook never traps the agent. A valid Seven finding is not a hook failure: it uses the host's supported JSON protocol to continue the task.
8
8
 
9
- Use `seven hooks status|on|off`. Machine-local `ignore-file` and `ignore-rule` controls affect hook noise only, never the shared `seven check` result. Never edit `.github/**` to enable Seven hooks.
9
+ Use `node .trae-cn/skills/seven/scripts/run-seven.mjs hooks status|on|off`. Machine-local `ignore-file` and `ignore-rule` controls affect hook noise only, never the shared `node .trae-cn/skills/seven/scripts/run-seven.mjs check` result. Never edit `.github/**` to enable Seven hooks.
10
10
 
11
- Host discovery may require a one-time action that npm cannot perform: enable Agent Skills in Cursor/Gemini, review project hooks in Codex with `/hooks`, trust Grok hooks with `/hooks-trust` (or `--trust`), and restart Trae after installation. Treat the corresponding `seven doctor` information item as an activation checklist, not as proof that the host's private setting was changed.
11
+ Host discovery may require a one-time action that npm cannot perform: enable Agent Skills in Cursor/Gemini, review project hooks in Codex with `/hooks`, trust Grok hooks with `/hooks-trust` (or `--trust`), and restart Trae after installation. Treat the corresponding `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor` information item as an activation checklist, not as proof that the host's private setting was changed.
@@ -1,38 +1,5 @@
1
- # Init — capture UI context
1
+ # Init — compatibility alias
2
2
 
3
- Capture the facts later Seven workflows need. This is the skill-level setup workflow; the CLI command `seven init` installs Seven, while context is written with `seven onboard` for backward compatibility.
3
+ `init` is retained for projects and prompts created before `setup` became the canonical skill workflow.
4
4
 
5
- ## Boundaries
6
-
7
- - Product context owns users, jobs, critical workflows, voice, accessibility needs, constraints, and non-goals.
8
- - Surface briefs own behavior, states, data ranges, responsive constraints, and known risks for one target.
9
- - Neither file may define colors, fonts, radii, shadows, spacing scales, component variants, or alternate UI primitives.
10
- - Never create a consumer `DESIGN.md`. The installed Seven release is the visual authority.
11
-
12
- ## Workflow
13
-
14
- 1. Run `seven doctor --quick`. If Seven is not installed, instruct the user to install the exact desired `@etus/seven` release and run CLI `seven init`.
15
- 2. Read existing product/project/surface context. Preserve confirmed facts; do not overwrite mature context without `--force` and explicit review.
16
- 3. Ask only for facts that remain unknown. At minimum establish:
17
- - product name and primary users;
18
- - job to be done and critical workflows;
19
- - product voice and domain vocabulary;
20
- - product-specific accessibility needs;
21
- - technical/business constraints and explicit non-goals;
22
- - owner responsible for freshness.
23
- 4. For a monorepo, identify the app root and its product context. For a surface, identify target paths and complete the state matrix: idle, loading, empty, error, success, disabled, permission-limited, and content extremes.
24
- 5. Write through the CLI:
25
-
26
- ```bash
27
- seven onboard --name "..." --users "..." --job "..." --workflows "..." \
28
- --voice "..." --accessibility "..." --constraints "..." --owner "..."
29
- seven onboard --surface <id> --target <path-or-glob> --purpose "..." \
30
- --states "..." --data "..." --responsive "..." --accessibility "..." \
31
- --primary-action "..." --owner "..."
32
- ```
33
-
34
- 6. Reload context for the target and prove the expected app and surface resolve.
35
-
36
- ## Completion
37
-
38
- Report which facts came from the user, which existing files were retained, which context paths changed, and any unresolved product decision. Do not start a UI implementation while a material product decision is still being guessed.
5
+ Read [setup.md](setup.md) completely and follow it without changing its behavior. Do not confuse the skill invocation `/seven init` with the `seven init` CLI subcommand: the former delegates to context setup; the latter installs the Seven release and consumer governance through the local runner.
@@ -1,16 +1,16 @@
1
1
  # Live — reversible browser iteration
2
2
 
3
- Run an interactive Seven session against a rendered React 19 surface. The browser may preview inert HTML/CSS directions, but accepted previews become production only after a source edit using installed Seven components, declared variants, tokens, focused tests, and `seven check`.
3
+ Run an interactive Seven session against a rendered React 19 surface. The browser may preview inert HTML/CSS directions, but accepted previews become production only after a source edit using installed Seven components, declared variants, tokens, focused tests, and `run-seven.mjs check`.
4
4
 
5
5
  ## Phase 0 — prerequisites
6
6
 
7
- 1. Load the normal Seven context and run `seven doctor --quick --target <source>`.
7
+ 1. Load the normal Seven context and run `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor --quick --target <source>`.
8
8
  2. Confirm the app is a local or explicitly trusted development origin and its dev server is already running.
9
9
  3. Resolve the smallest source target inside the consumer project. Native and Svelte adapters are intentionally unsupported.
10
10
  4. Confirm the packaged extension is available:
11
11
 
12
12
  ```bash
13
- seven extension path
13
+ node .trae-cn/skills/seven/scripts/run-seven.mjs extension path
14
14
  ```
15
15
 
16
16
  npm cannot activate a browser extension without browser/user consent. On first use, load that directory unpacked from `chrome://extensions`; this is the only manual installation step.
@@ -20,7 +20,7 @@ Run an interactive Seven session against a rendered React 19 surface. The browse
20
20
  Start the loopback bridge in a persistent/background terminal:
21
21
 
22
22
  ```bash
23
- seven live start --url http://127.0.0.1:5173/route --target src/path/Surface.tsx
23
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live start --url http://127.0.0.1:5173/route --target src/path/Surface.tsx
24
24
  ```
25
25
 
26
26
  The command prints a `serverUrl` and random session `token`. Treat the token as ephemeral capability data: paste it into Seven UI Guardian, do not put it in chat transcripts, source, screenshots, shell history snippets, or commits. The extension retains it only in memory.
@@ -32,7 +32,7 @@ The bridge binds to `127.0.0.1`, validates extension/local origins, restricts pa
32
32
  Keep a one-shot foreground poll active whenever the user can interact with the Live panel:
33
33
 
34
34
  ```bash
35
- seven live poll
35
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live poll
36
36
  ```
37
37
 
38
38
  Dispatch the returned event, reply, then poll again immediately.
@@ -62,8 +62,8 @@ The event contains the action, optional prompt, target selector, bounded outer H
62
62
  ```
63
63
 
64
64
  ```bash
65
- seven live reply --id <event-id> --file .seven/live/reply-<event-id>.json
66
- seven live poll
65
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live reply --id <event-id> --file .seven/live/reply-<event-id>.json
66
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live poll
67
67
  ```
68
68
 
69
69
  Preview CSS is disposable evidence. Do not copy it mechanically into the source.
@@ -78,7 +78,7 @@ Acceptance identifies the chosen direction and current preview evidence. It auth
78
78
 
79
79
  1. Re-resolve the real React component and any shared composition.
80
80
  2. Apply the smallest source edit using existing Seven components, variants, tokens, semantics, and pt-BR copy.
81
- 3. Run focused tests and `seven check --file <changed-file>`.
81
+ 3. Run focused tests and `node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <changed-file>`.
82
82
  4. Refresh/reinspect the rendered surface. If source and preview conflict, source truth wins and the difference is reported.
83
83
  5. Reply `done` to the accept event and poll again.
84
84
 
@@ -93,14 +93,14 @@ The extension restores the original DOM snapshot. Reply `done`; make no source e
93
93
  The append-only journal and session metadata live under ignored `.seven/live/` state:
94
94
 
95
95
  ```bash
96
- seven live status
97
- seven live start --resume --url <same-url> --target <same-target>
96
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live status
97
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live start --resume --url <same-url> --target <same-target>
98
98
  ```
99
99
 
100
100
  An unanswered event is replayed after bridge restart. A replied event is not reissued. Stop explicitly when the user exits:
101
101
 
102
102
  ```bash
103
- seven live stop
103
+ node .trae-cn/skills/seven/scripts/run-seven.mjs live stop
104
104
  ```
105
105
 
106
106
  Report accepted/discarded directions, source files changed, Seven components/variants/tokens used, checks run, unresolved conflicts, and confirmation that the temporary browser layer was disconnected. Never create `.github/**` or persist the token.
@@ -19,7 +19,7 @@ Every polish finding falls into one of three buckets. Name the bucket in your fi
19
19
  1. **Run the detector first**:
20
20
 
21
21
  ```bash
22
- seven check --file <path>
22
+ node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <path>
23
23
  ```
24
24
 
25
25
  The deterministic findings cover token drift and identity-level violations. Address them before manual review.
@@ -13,7 +13,7 @@ Use this workflow when Seven is invoked without an intent. Do not dump a generic
13
13
 
14
14
  Route by current evidence:
15
15
 
16
- - Missing or placeholder product context: lead with `/seven init`.
16
+ - Missing or placeholder product context: lead with `/seven setup`.
17
17
  - A new feature with unresolved job, states, or architecture: `shape`.
18
18
  - Repetition across two or more real surfaces: `extract`.
19
19
  - No persisted critique for a rendered surface: `critique`.
@@ -0,0 +1,38 @@
1
+ # Setup — capture UI context
2
+
3
+ Capture the facts later Seven workflows need. This is the skill-level setup workflow; the CLI subcommand `seven init` installs Seven, while product and surface context are written with `seven onboard`. Execute CLI subcommands through the installed `run-seven.mjs` path shown below.
4
+
5
+ ## Boundaries
6
+
7
+ - Product context owns users, jobs, critical workflows, voice, accessibility needs, constraints, and non-goals.
8
+ - Surface briefs own behavior, states, data ranges, responsive constraints, and known risks for one target.
9
+ - Neither file may define colors, fonts, radii, shadows, spacing scales, component variants, or alternate UI primitives.
10
+ - Never create a consumer `DESIGN.md`. The installed Seven release is the visual authority.
11
+
12
+ ## Workflow
13
+
14
+ 1. Run `node .trae-cn/skills/seven/scripts/run-seven.mjs doctor --quick`. If Seven is not installed, instruct the user to install the exact desired `@etus/seven` release and invoke its `seven init` CLI subcommand.
15
+ 2. Read existing product/project/surface context. Preserve confirmed facts; do not overwrite mature context without `--force` and explicit review.
16
+ 3. Ask only for facts that remain unknown. At minimum establish:
17
+ - product name and primary users;
18
+ - job to be done and critical workflows;
19
+ - product voice and domain vocabulary;
20
+ - product-specific accessibility needs;
21
+ - technical/business constraints and explicit non-goals;
22
+ - owner responsible for freshness.
23
+ 4. For a monorepo, identify the app root and its product context. For a surface, identify target paths and complete the state matrix: idle, loading, empty, error, success, disabled, permission-limited, and content extremes.
24
+ 5. Write through the CLI:
25
+
26
+ ```bash
27
+ node .trae-cn/skills/seven/scripts/run-seven.mjs onboard --name "..." --users "..." --job "..." --workflows "..." \
28
+ --voice "..." --accessibility "..." --constraints "..." --owner "..."
29
+ node .trae-cn/skills/seven/scripts/run-seven.mjs onboard --surface <id> --target <path-or-glob> --purpose "..." \
30
+ --states "..." --data "..." --responsive "..." --accessibility "..." \
31
+ --primary-action "..." --owner "..."
32
+ ```
33
+
34
+ 6. Reload context for the target and prove the expected app and surface resolve.
35
+
36
+ ## Completion
37
+
38
+ Report which facts came from the user, which existing files were retained, which context paths changed, and any unresolved product decision. Do not start a UI implementation while a material product decision is still being guessed.
@@ -7,7 +7,7 @@ Refine hierarchy, readability, and delivery using the installed Seven Text compo
7
7
  Keep these passes separate before synthesizing:
8
8
 
9
9
  1. Rendered typography: identify roles, hierarchy, reading measure, density, line breaks, numeric alignment, long pt-BR copy, zoom, and fallback behavior.
10
- 2. Mechanical scan: run `seven check --file <target>` and inspect arbitrary/dynamic styles the detector cannot resolve.
10
+ 2. Mechanical scan: run `node .trae-cn/skills/seven/scripts/run-seven.mjs check --file <target>` and inspect arbitrary/dynamic styles the detector cannot resolve.
11
11
 
12
12
  For every claim, cite a component, selector, computed value, or screenshot state.
13
13
 
@@ -9,6 +9,7 @@ import { fileURLToPath } from 'node:url'
9
9
  import { argValue, loadContext } from './load-context.mjs'
10
10
 
11
11
  const UI_EXTENSIONS = new Set(['.css', '.html', '.js', '.jsx', '.less', '.mdx', '.scss', '.ts', '.tsx'])
12
+ const scriptsDirectory = path.dirname(fileURLToPath(import.meta.url))
12
13
 
13
14
  function gitNames(root, args) {
14
15
  const result = spawnSync('git', args, { cwd: root, encoding: 'utf8' })
@@ -80,7 +81,7 @@ export async function collectContextSignals(start = process.cwd(), { target = st
80
81
  live: {
81
82
  session: fs.existsSync(path.join(context.projectRoot, '.seven', 'live', 'session.json')),
82
83
  journal: fs.existsSync(path.join(context.projectRoot, '.seven', 'live', 'journal.ndjson')),
83
- extensionPathCommand: 'seven extension path',
84
+ extensionPathCommand: `node ${JSON.stringify(path.join(scriptsDirectory, 'run-seven.mjs'))} extension path`,
84
85
  },
85
86
  }
86
87
  }
@@ -74,11 +74,29 @@ export async function loadContext(start = process.cwd(), { target = start } = {}
74
74
  return loaded.runtimeError ? fallback(root, target, loaded.runtimeError) : loaded
75
75
  }
76
76
 
77
+ export function contextForAgent(context) {
78
+ const artifacts = context.release?.artifacts
79
+ if (!artifacts || typeof artifacts !== 'object') return context
80
+ const { artifacts: _artifacts, ...release } = context.release
81
+ const entries = Object.values(artifacts)
82
+ return {
83
+ ...context,
84
+ release: {
85
+ ...release,
86
+ artifactSummary: {
87
+ total: entries.length,
88
+ managed: entries.filter((entry) => entry?.kind === 'managed').length,
89
+ scaffold: entries.filter((entry) => entry?.kind === 'scaffold').length,
90
+ },
91
+ },
92
+ }
93
+ }
94
+
77
95
  export async function main(argv = process.argv) {
78
96
  const target = argValue('--target', argv) || process.env.SEVEN_TARGET || process.cwd()
79
97
  const context = await loadContext(target, { target })
80
98
  const update = await checkForUpdate(context.release?.sevenVersion || null)
81
- process.stdout.write(`${JSON.stringify({ ...context, update }, null, 2)}\n`)
99
+ process.stdout.write(`${JSON.stringify({ ...contextForAgent(context), update }, null, 2)}\n`)
82
100
  }
83
101
 
84
102
  function isCliEntry() {
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // ETUS Digital — package-manager-independent Seven CLI runner.
4
+
5
+ import fs from 'node:fs'
6
+ import path from 'node:path'
7
+ import { spawnSync } from 'node:child_process'
8
+ import { createRequire } from 'node:module'
9
+ import { fileURLToPath } from 'node:url'
10
+
11
+ import { findRoot } from './load-context.mjs'
12
+
13
+ export function resolveSevenCli(start = process.cwd()) {
14
+ const root = findRoot(start)
15
+ const require = createRequire(path.join(root, 'package.json'))
16
+ const manifestPath = require.resolve('@etus/seven/package.json')
17
+ const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'))
18
+ const bin = typeof manifest.bin === 'string' ? manifest.bin : manifest.bin?.seven
19
+ if (!bin) throw new Error(`@etus/seven at ${manifestPath} does not declare the seven binary`)
20
+ return {
21
+ binPath: path.resolve(path.dirname(manifestPath), bin),
22
+ root,
23
+ }
24
+ }
25
+
26
+ export function runSeven(argv = process.argv.slice(2), start = process.cwd()) {
27
+ if (argv.length === 0) throw new Error('usage: run-seven.mjs <seven-command> [arguments]')
28
+ const { binPath, root } = resolveSevenCli(start)
29
+ const result = spawnSync(process.execPath, [binPath, ...argv], {
30
+ cwd: root,
31
+ env: process.env,
32
+ stdio: 'inherit',
33
+ })
34
+ if (result.error) throw result.error
35
+ return result.status ?? 1
36
+ }
37
+
38
+ function isCliEntry() {
39
+ if (!process.argv[1]) return false
40
+ try {
41
+ return fs.realpathSync(fileURLToPath(import.meta.url)) === fs.realpathSync(process.argv[1])
42
+ } catch {
43
+ return false
44
+ }
45
+ }
46
+
47
+ if (isCliEntry()) process.exitCode = runSeven()