summer-engine 3.8.0 → 4.2.0

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 (527) hide show
  1. package/.claude-plugin/marketplace.json +2 -13
  2. package/.claude-plugin/plugin.json +24 -22
  3. package/.codex-plugin/plugin.json +18 -22
  4. package/.cursor-plugin/plugin.json +8 -14
  5. package/.factory-plugin/plugin.json +6 -13
  6. package/AGENTS.md +19 -12
  7. package/CHANGELOG.md +133 -0
  8. package/GEMINI.md +3 -3
  9. package/README.md +118 -37
  10. package/assets/icon.png +0 -0
  11. package/commands/start.md +71 -0
  12. package/commands/summer.md +3 -2
  13. package/dist/cli/banner.js +3 -0
  14. package/dist/cli/commands/config.js +3 -2
  15. package/dist/cli/commands/create.js +12 -3
  16. package/dist/cli/commands/list.d.ts +5 -0
  17. package/dist/cli/commands/list.js +30 -13
  18. package/dist/cli/commands/login.d.ts +27 -0
  19. package/dist/cli/commands/login.js +58 -12
  20. package/dist/cli/commands/memory.js +6 -2
  21. package/dist/cli/commands/ops.d.ts +64 -0
  22. package/dist/cli/commands/ops.js +329 -0
  23. package/dist/cli/commands/setup.d.ts +4 -0
  24. package/dist/cli/commands/setup.js +254 -26
  25. package/dist/cli/commands/skills.js +28 -11
  26. package/dist/cli/commands/status.d.ts +26 -0
  27. package/dist/cli/commands/status.js +36 -21
  28. package/dist/cli/index.js +7 -0
  29. package/dist/core/agent-host.d.ts +65 -0
  30. package/dist/core/agent-host.js +193 -0
  31. package/dist/core/capabilities/agent-playbook.d.ts +3 -0
  32. package/dist/core/capabilities/agent-playbook.js +54 -2
  33. package/dist/core/capabilities/apps.d.ts +33 -10
  34. package/dist/core/capabilities/apps.js +25 -12
  35. package/dist/core/capabilities/audit/args.d.ts +6 -6
  36. package/dist/core/capabilities/doctor.d.ts +3 -0
  37. package/dist/core/capabilities/doctor.js +20 -15
  38. package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
  39. package/dist/core/capabilities/game-task-plan.d.ts +12 -6
  40. package/dist/core/capabilities/game-task-plan.js +80 -5
  41. package/dist/core/capabilities/hdri-import.d.ts +2 -2
  42. package/dist/core/capabilities/motion-generation.d.ts +2 -2
  43. package/dist/core/capabilities/motion-generation.js +2 -2
  44. package/dist/core/capabilities/navigation/open.d.ts +6 -2
  45. package/dist/core/capabilities/navigation/open.js +3 -0
  46. package/dist/core/capabilities/placement.d.ts +23 -23
  47. package/dist/core/capabilities/publish-build.js +2 -0
  48. package/dist/core/capabilities/runtime-control.d.ts +42 -42
  49. package/dist/core/capabilities/scene-script-target.d.ts +17 -0
  50. package/dist/core/capabilities/scene-script-target.js +70 -0
  51. package/dist/core/capabilities/seeing/args.d.ts +16 -16
  52. package/dist/core/capabilities/sfx-choices.d.ts +4 -0
  53. package/dist/core/capabilities/sfx-choices.js +13 -6
  54. package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
  55. package/dist/core/capabilities/tool-dispatch.js +81 -46
  56. package/dist/core/capabilities/ui-control.d.ts +2 -2
  57. package/dist/core/capabilities/world-snapshot.d.ts +4 -4
  58. package/dist/core/embeddings.d.ts +2 -0
  59. package/dist/core/embeddings.js +1 -1
  60. package/dist/core/error-codes.d.ts +62 -0
  61. package/dist/core/error-codes.js +97 -0
  62. package/dist/core/format.d.ts +2 -0
  63. package/dist/core/format.js +2 -1
  64. package/dist/core/hosted-mcp.d.ts +22 -0
  65. package/dist/core/hosted-mcp.js +56 -1
  66. package/dist/core/library-read.js +5 -0
  67. package/dist/core/library-search.d.ts +2 -2
  68. package/dist/core/library-search.js +2 -1
  69. package/dist/core/oauth.js +4 -0
  70. package/dist/core/ops/areas.d.ts +11 -0
  71. package/dist/core/ops/areas.js +24 -0
  72. package/dist/core/ops/catalog.d.ts +45 -0
  73. package/dist/core/ops/catalog.js +157 -0
  74. package/dist/core/ops/cloud.d.ts +64 -0
  75. package/dist/core/ops/cloud.js +198 -0
  76. package/dist/core/ops/contract.d.ts +120 -0
  77. package/dist/core/ops/contract.js +134 -0
  78. package/dist/core/ops/engine-answer.d.ts +25 -0
  79. package/dist/core/ops/engine-answer.js +117 -0
  80. package/dist/core/ops/engine.d.ts +55 -0
  81. package/dist/core/ops/engine.js +649 -0
  82. package/dist/core/ops/public-catalog.d.ts +48 -0
  83. package/dist/core/ops/public-catalog.js +56 -0
  84. package/dist/core/ops/save-files.d.ts +78 -0
  85. package/dist/core/ops/save-files.js +419 -0
  86. package/dist/core/ops/search.d.ts +8 -0
  87. package/dist/core/ops/search.js +187 -0
  88. package/dist/core/skills-registry.d.ts +16 -1
  89. package/dist/core/skills-registry.js +35 -2
  90. package/dist/core/telemetry.d.ts +32 -0
  91. package/dist/core/telemetry.js +38 -10
  92. package/dist/core/tool-profiles.d.ts +25 -0
  93. package/dist/core/tool-profiles.js +41 -0
  94. package/dist/installer/agent-config.d.ts +17 -4
  95. package/dist/installer/agent-config.js +27 -6
  96. package/dist/installer/agent-table.d.ts +12 -0
  97. package/dist/installer/agent-table.js +33 -9
  98. package/dist/installer/cli-permissions.d.ts +65 -0
  99. package/dist/installer/cli-permissions.js +182 -0
  100. package/dist/installer/setup.d.ts +4 -0
  101. package/dist/installer/setup.js +12 -4
  102. package/dist/installer/skills-refresh.d.ts +29 -0
  103. package/dist/installer/skills-refresh.js +261 -0
  104. package/dist/installer/version-check.d.ts +51 -11
  105. package/dist/installer/version-check.js +147 -37
  106. package/dist/mcp/command.js +7 -0
  107. package/dist/mcp/hosted-mount.d.ts +27 -2
  108. package/dist/mcp/hosted-mount.js +53 -23
  109. package/dist/mcp/legacy-toolset.d.ts +27 -0
  110. package/dist/mcp/legacy-toolset.js +43 -0
  111. package/dist/mcp/ops-surface.d.ts +59 -0
  112. package/dist/mcp/ops-surface.js +453 -0
  113. package/dist/mcp/server.d.ts +45 -11
  114. package/dist/mcp/server.js +263 -89
  115. package/dist/mcp/tool-results.d.ts +26 -0
  116. package/dist/mcp/tool-results.js +81 -0
  117. package/dist/mcp/tool-surface.d.ts +65 -0
  118. package/dist/mcp/tool-surface.js +317 -0
  119. package/dist/mcp/tools/app-tools.js +9 -2
  120. package/dist/mcp/tools/asset-tools.js +55 -53
  121. package/dist/mcp/tools/audit-tools.js +21 -21
  122. package/dist/mcp/tools/debug-tools.js +6 -6
  123. package/dist/mcp/tools/fabricate-tools.js +6 -6
  124. package/dist/mcp/tools/generate-tools.js +76 -70
  125. package/dist/mcp/tools/project-tools.d.ts +9 -4
  126. package/dist/mcp/tools/project-tools.js +16 -10
  127. package/dist/mcp/tools/scene-tools.js +12 -23
  128. package/dist/mcp/tools/script-tools.js +9 -5
  129. package/dist/mcp/tools/with-engine.d.ts +6 -0
  130. package/dist/mcp/tools/with-engine.js +19 -0
  131. package/dist/project-memory/agent-instructions.d.ts +47 -0
  132. package/dist/project-memory/agent-instructions.js +226 -0
  133. package/gemini-extension.json +6 -13
  134. package/hooks/pre-commit-doctor.sh +5 -4
  135. package/hooks/session-start.sh +24 -28
  136. package/integrations/README.md +1 -1
  137. package/integrations/claude/README.md +6 -0
  138. package/integrations/claude/manifest-target.json +4 -0
  139. package/integrations/claude-desktop/README.md +1 -1
  140. package/integrations/copilot-jetbrains/README.md +1 -1
  141. package/integrations/gemini/README.md +11 -0
  142. package/integrations/junie/README.md +1 -1
  143. package/integrations/lm-studio/README.md +1 -1
  144. package/integrations/trae/README.md +1 -1
  145. package/integrations/visual-studio/README.md +1 -1
  146. package/integrations/windsurf/README.md +1 -1
  147. package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
  148. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  149. package/library/references/product-map/resource.yaml +2 -2
  150. package/library/skills/3d-lighting/SKILL.md +69 -28
  151. package/library/skills/3d-lighting/resource.yaml +1 -1
  152. package/library/skills/README.md +121 -118
  153. package/library/skills/adaptive-music/SKILL.md +40 -23
  154. package/library/skills/adaptive-music/resource.yaml +1 -1
  155. package/library/skills/agent-playtesting/SKILL.md +23 -1
  156. package/library/skills/agent-playtesting/resource.yaml +1 -1
  157. package/library/skills/ai-characters-in-games/SKILL.md +16 -1
  158. package/library/skills/ai-characters-in-games/resource.yaml +1 -1
  159. package/library/skills/ambient-bed/SKILL.md +38 -13
  160. package/library/skills/ambient-bed/resource.yaml +1 -1
  161. package/library/skills/animated-loop/SKILL.md +60 -32
  162. package/library/skills/animated-loop/resource.yaml +1 -1
  163. package/library/skills/animation-tree/SKILL.md +27 -1
  164. package/library/skills/animation-tree/resource.yaml +1 -1
  165. package/library/skills/art-direction/SKILL.md +17 -3
  166. package/library/skills/art-direction/resource.yaml +1 -1
  167. package/library/skills/asset-strategy/SKILL.md +51 -4
  168. package/library/skills/asset-strategy/resource.yaml +2 -1
  169. package/library/skills/audio-direction/SKILL.md +26 -10
  170. package/library/skills/audio-direction/resource.yaml +1 -1
  171. package/library/skills/auto-fire-targeting/SKILL.md +15 -1
  172. package/library/skills/auto-fire-targeting/resource.yaml +1 -1
  173. package/library/skills/bounded-engine-runs/SKILL.md +1 -1
  174. package/library/skills/bounded-engine-runs/resource.yaml +1 -1
  175. package/library/skills/brainstorm-game/SKILL.md +14 -1
  176. package/library/skills/brainstorm-game/resource.yaml +1 -1
  177. package/library/skills/brainstorming/SKILL.md +1 -1
  178. package/library/skills/brainstorming/resource.yaml +1 -1
  179. package/library/skills/browse-templates/SKILL.md +11 -1
  180. package/library/skills/browse-templates/resource.yaml +1 -1
  181. package/library/skills/camera-rigs/SKILL.md +22 -2
  182. package/library/skills/camera-rigs/resource.yaml +1 -1
  183. package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
  184. package/library/skills/character-animation-wiring/SKILL.md +28 -4
  185. package/library/skills/character-animation-wiring/resource.yaml +1 -1
  186. package/library/skills/character-model/SKILL.md +83 -47
  187. package/library/skills/character-model/resource.yaml +1 -1
  188. package/library/skills/character-movement/SKILL.md +27 -3
  189. package/library/skills/character-movement/resource.yaml +1 -1
  190. package/library/skills/character-portrait/SKILL.md +39 -19
  191. package/library/skills/character-portrait/resource.yaml +1 -1
  192. package/library/skills/cinematic-cutscene/SKILL.md +79 -46
  193. package/library/skills/cinematic-cutscene/resource.yaml +1 -1
  194. package/library/skills/combat-basics/SKILL.md +20 -1
  195. package/library/skills/combat-basics/resource.yaml +1 -1
  196. package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
  197. package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
  198. package/library/skills/concept-art/SKILL.md +29 -12
  199. package/library/skills/concept-art/resource.yaml +1 -1
  200. package/library/skills/concept-to-level/SKILL.md +258 -0
  201. package/library/skills/concept-to-level/references/technical-rules.md +150 -0
  202. package/library/skills/concept-to-level/resource.yaml +44 -0
  203. package/library/skills/create-asset-sheet/SKILL.md +37 -13
  204. package/library/skills/create-asset-sheet/resource.yaml +1 -1
  205. package/library/skills/debug/SKILL.md +34 -2
  206. package/library/skills/debug/resource.yaml +1 -1
  207. package/library/skills/debugging-game-feel/SKILL.md +13 -1
  208. package/library/skills/debugging-game-feel/resource.yaml +1 -1
  209. package/library/skills/design-level/SKILL.md +40 -35
  210. package/library/skills/design-level/resource.yaml +1 -1
  211. package/library/skills/design-mechanic/SKILL.md +18 -1
  212. package/library/skills/design-mechanic/resource.yaml +1 -1
  213. package/library/skills/design-npc/SKILL.md +43 -24
  214. package/library/skills/design-npc/resource.yaml +1 -1
  215. package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
  216. package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
  217. package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
  218. package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
  219. package/library/skills/environment-kit/SKILL.md +43 -16
  220. package/library/skills/environment-kit/resource.yaml +1 -1
  221. package/library/skills/export-and-ship/SKILL.md +29 -6
  222. package/library/skills/export-and-ship/resource.yaml +1 -1
  223. package/library/skills/fabricating-assets/SKILL.md +30 -7
  224. package/library/skills/fabricating-assets/resource.yaml +3 -3
  225. package/library/skills/facial-and-lipsync/SKILL.md +36 -15
  226. package/library/skills/facial-and-lipsync/resource.yaml +1 -1
  227. package/library/skills/fps-controller/SKILL.md +50 -41
  228. package/library/skills/fps-controller/resource.yaml +1 -1
  229. package/library/skills/game-feel/SKILL.md +34 -8
  230. package/library/skills/game-feel/resource.yaml +1 -1
  231. package/library/skills/gameskill/SKILL.md +15 -4
  232. package/library/skills/gameskill/resource.yaml +1 -1
  233. package/library/skills/gdscript-patterns/SKILL.md +16 -1
  234. package/library/skills/gdscript-patterns/resource.yaml +1 -1
  235. package/library/skills/generate-motion/SKILL.md +51 -21
  236. package/library/skills/generate-motion/resource.yaml +1 -1
  237. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
  238. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
  239. package/library/skills/grow-analytics/SKILL.md +13 -3
  240. package/library/skills/grow-analytics/resource.yaml +1 -1
  241. package/library/skills/headless-scripting/SKILL.md +14 -1
  242. package/library/skills/headless-scripting/resource.yaml +1 -1
  243. package/library/skills/in-game-purchases/SKILL.md +12 -1
  244. package/library/skills/in-game-purchases/resource.yaml +1 -1
  245. package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
  246. package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
  247. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
  248. package/library/skills/make-game/SKILL.md +33 -4
  249. package/library/skills/make-game/references/2d-platformer.md +1 -1
  250. package/library/skills/make-game/references/3d-fps.md +1 -1
  251. package/library/skills/make-game/references/3d-horror.md +1 -1
  252. package/library/skills/make-game/references/3d-third-person.md +2 -2
  253. package/library/skills/make-game/resource.yaml +1 -1
  254. package/library/skills/multiplayer/SKILL.md +13 -1
  255. package/library/skills/multiplayer/resource.yaml +1 -1
  256. package/library/skills/multiplayer-movement/SKILL.md +19 -1
  257. package/library/skills/multiplayer-movement/resource.yaml +1 -1
  258. package/library/skills/multiplayer-project/SKILL.md +18 -1
  259. package/library/skills/multiplayer-project/resource.yaml +1 -1
  260. package/library/skills/multiplayer-publish/SKILL.md +25 -7
  261. package/library/skills/multiplayer-publish/resource.yaml +3 -3
  262. package/library/skills/multiplayer-state/SKILL.md +17 -1
  263. package/library/skills/multiplayer-state/resource.yaml +1 -1
  264. package/library/skills/multiplayer-testing/SKILL.md +16 -1
  265. package/library/skills/multiplayer-testing/resource.yaml +1 -1
  266. package/library/skills/music-track/SKILL.md +38 -13
  267. package/library/skills/music-track/resource.yaml +1 -1
  268. package/library/skills/navigate-summer/SKILL.md +26 -9
  269. package/library/skills/navigate-summer/resource.yaml +1 -1
  270. package/library/skills/new-project/SKILL.md +12 -1
  271. package/library/skills/new-project/resource.yaml +1 -1
  272. package/library/skills/organic-model/SKILL.md +48 -18
  273. package/library/skills/organic-model/resource.yaml +1 -1
  274. package/library/skills/pixel-art/SKILL.md +42 -23
  275. package/library/skills/pixel-art/resource.yaml +1 -1
  276. package/library/skills/play/SKILL.md +19 -1
  277. package/library/skills/play/resource.yaml +1 -1
  278. package/library/skills/playtesting-a-feature/SKILL.md +24 -1
  279. package/library/skills/playtesting-a-feature/resource.yaml +1 -1
  280. package/library/skills/procedural-animation/SKILL.md +38 -16
  281. package/library/skills/procedural-animation/resource.yaml +1 -1
  282. package/library/skills/prop-model/SKILL.md +48 -19
  283. package/library/skills/prop-model/resource.yaml +1 -1
  284. package/library/skills/psx-retro-rendering/resource.yaml +1 -0
  285. package/library/skills/publish-your-game/SKILL.md +43 -6
  286. package/library/skills/publish-your-game/resource.yaml +3 -3
  287. package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
  288. package/library/skills/release-readiness/SKILL.md +13 -1
  289. package/library/skills/release-readiness/resource.yaml +1 -1
  290. package/library/skills/remote-deploy/SKILL.md +15 -1
  291. package/library/skills/remote-deploy/resource.yaml +1 -1
  292. package/library/skills/retarget/SKILL.md +43 -20
  293. package/library/skills/retarget/resource.yaml +1 -1
  294. package/library/skills/running-in-the-cloud/SKILL.md +11 -1
  295. package/library/skills/running-in-the-cloud/resource.yaml +1 -1
  296. package/library/skills/save-load/SKILL.md +16 -1
  297. package/library/skills/save-load/resource.yaml +1 -1
  298. package/library/skills/scene-composition/SKILL.md +18 -1
  299. package/library/skills/scene-composition/resource.yaml +1 -1
  300. package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
  301. package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
  302. package/library/skills/scene-scripting/SKILL.md +96 -636
  303. package/library/skills/scene-scripting/references/ctx-api.md +184 -0
  304. package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
  305. package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
  306. package/library/skills/scene-scripting/resource.yaml +4 -4
  307. package/library/skills/scene-to-level/SKILL.md +24 -2
  308. package/library/skills/scene-to-level/resource.yaml +1 -1
  309. package/library/skills/skill-create/resource.yaml +1 -0
  310. package/library/skills/skill-improve/resource.yaml +1 -0
  311. package/library/skills/skill-test/SKILL.md +12 -2
  312. package/library/skills/skill-test/resource.yaml +1 -0
  313. package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
  314. package/library/skills/skybox-panorama/SKILL.md +47 -21
  315. package/library/skills/skybox-panorama/resource.yaml +1 -1
  316. package/library/skills/sound-effect/SKILL.md +52 -20
  317. package/library/skills/sound-effect/resource.yaml +1 -1
  318. package/library/skills/spatial-placement/SKILL.md +44 -9
  319. package/library/skills/spatial-placement/resource.yaml +1 -1
  320. package/library/skills/sprite-sheet/SKILL.md +55 -27
  321. package/library/skills/sprite-sheet/resource.yaml +1 -1
  322. package/library/skills/store-art/SKILL.md +14 -3
  323. package/library/skills/store-art/resource.yaml +2 -2
  324. package/library/skills/store-listing/SKILL.md +13 -3
  325. package/library/skills/store-listing/resource.yaml +2 -2
  326. package/library/skills/summer-analytics/SKILL.md +22 -5
  327. package/library/skills/summer-analytics/resource.yaml +2 -2
  328. package/library/skills/summer-apps/SKILL.md +77 -32
  329. package/library/skills/summer-apps/manifest.md +1 -1
  330. package/library/skills/summer-apps/minimal-app.md +7 -7
  331. package/library/skills/summer-apps/resource.yaml +1 -1
  332. package/library/skills/summer-apps/sdk-reference.md +5 -5
  333. package/library/skills/summer-apps-design/SKILL.md +1 -1
  334. package/library/skills/summer-apps-design/resource.yaml +1 -1
  335. package/library/skills/summer-assets/SKILL.md +86 -0
  336. package/library/skills/summer-assets/resource.yaml +34 -0
  337. package/library/skills/summer-cli/SKILL.md +133 -0
  338. package/library/skills/summer-cli/resource.yaml +31 -0
  339. package/library/skills/summer-friends/SKILL.md +14 -0
  340. package/library/skills/summer-leaderboards/SKILL.md +16 -0
  341. package/library/skills/summer-match-results/SKILL.md +17 -0
  342. package/library/skills/summer-matchmaking/SKILL.md +17 -0
  343. package/library/skills/summer-parties/SKILL.md +14 -0
  344. package/library/skills/summer-player-data/SKILL.md +14 -0
  345. package/library/skills/summer-store/SKILL.md +16 -1
  346. package/library/skills/summer-world-chat/SKILL.md +14 -0
  347. package/library/skills/summer-world-saves/SKILL.md +14 -0
  348. package/library/skills/text-to-motion/SKILL.md +45 -23
  349. package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
  350. package/library/skills/text-to-motion/resource.yaml +1 -1
  351. package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
  352. package/library/skills/tileable-texture/SKILL.md +37 -15
  353. package/library/skills/tileable-texture/resource.yaml +1 -1
  354. package/library/skills/trailer-shot/SKILL.md +46 -24
  355. package/library/skills/trailer-shot/resource.yaml +1 -1
  356. package/library/skills/tune-performance/SKILL.md +32 -6
  357. package/library/skills/tune-performance/resource.yaml +1 -1
  358. package/library/skills/ui-basics/SKILL.md +55 -36
  359. package/library/skills/ui-basics/resource.yaml +1 -1
  360. package/library/skills/ui-graphics/SKILL.md +64 -38
  361. package/library/skills/ui-graphics/resource.yaml +1 -1
  362. package/library/skills/use-widget-asset/SKILL.md +15 -1
  363. package/library/skills/use-widget-asset/resource.yaml +1 -1
  364. package/library/skills/using-summer/SKILL.md +32 -5
  365. package/library/skills/using-summer/resource.yaml +3 -2
  366. package/library/skills/vehicle-model/SKILL.md +92 -57
  367. package/library/skills/vehicle-model/resource.yaml +1 -1
  368. package/library/skills/verification-before-completion/SKILL.md +1 -1
  369. package/library/skills/verification-before-completion/resource.yaml +1 -1
  370. package/library/skills/verifying-scenes/SKILL.md +31 -2
  371. package/library/skills/verifying-scenes/resource.yaml +1 -1
  372. package/library/skills/vfx-dissolve/SKILL.md +21 -2
  373. package/library/skills/vfx-dissolve/resource.yaml +1 -1
  374. package/library/skills/vfx-fire/SKILL.md +41 -41
  375. package/library/skills/vfx-fire/resource.yaml +1 -1
  376. package/library/skills/vfx-hit-spark/SKILL.md +24 -1
  377. package/library/skills/vfx-hit-spark/resource.yaml +1 -1
  378. package/library/skills/vfx-lightning/SKILL.md +30 -16
  379. package/library/skills/vfx-lightning/resource.yaml +1 -1
  380. package/library/skills/vfx-magic-glow/SKILL.md +46 -32
  381. package/library/skills/vfx-magic-glow/resource.yaml +1 -1
  382. package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
  383. package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
  384. package/library/skills/vfx-smoke/SKILL.md +39 -31
  385. package/library/skills/vfx-smoke/resource.yaml +1 -1
  386. package/library/skills/vfx-water-ripple/SKILL.md +35 -31
  387. package/library/skills/vfx-water-ripple/resource.yaml +1 -1
  388. package/library/skills/voice-line/SKILL.md +87 -40
  389. package/library/skills/voice-line/resource.yaml +1 -1
  390. package/library/skills/web-and-touch-input/SKILL.md +20 -1
  391. package/library/skills/web-and-touch-input/resource.yaml +1 -1
  392. package/library/skills/web-compatibility-look/SKILL.md +21 -1
  393. package/library/skills/web-compatibility-look/resource.yaml +1 -1
  394. package/library/skills/world-building-3d/SKILL.md +29 -1
  395. package/library/skills/world-building-3d/resource.yaml +1 -1
  396. package/library/skills/writing-skills/resource.yaml +1 -0
  397. package/library/tools/add-node/GUIDE.md +14 -0
  398. package/library/tools/align-distribute-3d/GUIDE.md +7 -0
  399. package/library/tools/app-call/resource.yaml +1 -1
  400. package/library/tools/app-guide/resource.yaml +2 -2
  401. package/library/tools/app-page/resource.yaml +1 -1
  402. package/library/tools/app-screenshot/resource.yaml +19 -1
  403. package/library/tools/app-tools/resource.yaml +1 -1
  404. package/library/tools/attach-to-surface/GUIDE.md +15 -0
  405. package/library/tools/batch/GUIDE.md +27 -0
  406. package/library/tools/camera-bookmark/GUIDE.md +12 -0
  407. package/library/tools/capture-gameplay/GUIDE.md +3 -0
  408. package/library/tools/capture-gameplay/resource.yaml +3 -3
  409. package/library/tools/check-job/resource.yaml +1 -1
  410. package/library/tools/clear-console/GUIDE.md +3 -0
  411. package/library/tools/connect-ports/GUIDE.md +9 -0
  412. package/library/tools/connect-signal/GUIDE.md +14 -0
  413. package/library/tools/create-debug-report/GUIDE.md +10 -0
  414. package/library/tools/create-scene/GUIDE.md +10 -0
  415. package/library/tools/debug-views/GUIDE.md +7 -0
  416. package/library/tools/enable-plugin/GUIDE.md +3 -0
  417. package/library/tools/export-game/GUIDE.md +3 -0
  418. package/library/tools/export-game/resource.yaml +3 -3
  419. package/library/tools/export-templates/GUIDE.md +3 -0
  420. package/library/tools/fabricate-3d/GUIDE.md +19 -0
  421. package/library/tools/frame-nodes/GUIDE.md +9 -0
  422. package/library/tools/frame-shot/GUIDE.md +9 -0
  423. package/library/tools/game-control/GUIDE.md +9 -0
  424. package/library/tools/game-input/GUIDE.md +9 -0
  425. package/library/tools/game-probe/GUIDE.md +9 -0
  426. package/library/tools/generate-3d/resource.yaml +3 -3
  427. package/library/tools/generate-motion/resource.yaml +2 -2
  428. package/library/tools/get-console/GUIDE.md +9 -0
  429. package/library/tools/get-console/resource.yaml +5 -0
  430. package/library/tools/get-debugger-errors/GUIDE.md +7 -0
  431. package/library/tools/get-debugger-errors/resource.yaml +5 -0
  432. package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
  433. package/library/tools/get-debugger-warnings/resource.yaml +5 -0
  434. package/library/tools/get-diagnostics/GUIDE.md +13 -0
  435. package/library/tools/get-project-context/GUIDE.md +25 -0
  436. package/library/tools/get-runtime-tree/GUIDE.md +7 -0
  437. package/library/tools/get-runtime-tree/resource.yaml +5 -0
  438. package/library/tools/get-scene-tree/GUIDE.md +11 -0
  439. package/library/tools/get-scene-tree/resource.yaml +5 -0
  440. package/library/tools/get-script-errors/GUIDE.md +5 -0
  441. package/library/tools/grep/GUIDE.md +11 -0
  442. package/library/tools/import-asset/GUIDE.md +8 -0
  443. package/library/tools/import-asset-by-id/GUIDE.md +12 -0
  444. package/library/tools/import-from-url/GUIDE.md +10 -0
  445. package/library/tools/import-from-url-batch/GUIDE.md +3 -0
  446. package/library/tools/import-hdri/GUIDE.md +16 -0
  447. package/library/tools/input-map-bind/GUIDE.md +11 -0
  448. package/library/tools/inspect-asset/GUIDE.md +14 -0
  449. package/library/tools/inspect-asset/resource.yaml +5 -0
  450. package/library/tools/inspect-node/GUIDE.md +11 -0
  451. package/library/tools/inspect-node/resource.yaml +5 -0
  452. package/library/tools/inspect-resource/GUIDE.md +7 -0
  453. package/library/tools/inspect-resource/resource.yaml +5 -0
  454. package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
  455. package/library/tools/inspect-runtime-node/resource.yaml +5 -0
  456. package/library/tools/instantiate-scene/GUIDE.md +12 -0
  457. package/library/tools/is-running/GUIDE.md +3 -0
  458. package/library/tools/measure/GUIDE.md +8 -0
  459. package/library/tools/navigation-probe/GUIDE.md +9 -0
  460. package/library/tools/open/resource.yaml +2 -2
  461. package/library/tools/open-main-scene/GUIDE.md +6 -0
  462. package/library/tools/open-scene/GUIDE.md +8 -0
  463. package/library/tools/place-adjacent/GUIDE.md +7 -0
  464. package/library/tools/play/GUIDE.md +13 -0
  465. package/library/tools/project-setting/GUIDE.md +9 -0
  466. package/library/tools/publish-build/resource.yaml +6 -6
  467. package/library/tools/raycast/GUIDE.md +7 -0
  468. package/library/tools/read-file/GUIDE.md +10 -0
  469. package/library/tools/read-library/resource.yaml +5 -0
  470. package/library/tools/recent-events/GUIDE.md +7 -0
  471. package/library/tools/remove-node/GUIDE.md +3 -0
  472. package/library/tools/repeat-along/GUIDE.md +5 -0
  473. package/library/tools/replace-node/GUIDE.md +9 -0
  474. package/library/tools/replace-text/GUIDE.md +5 -0
  475. package/library/tools/run-editor-script/GUIDE.md +16 -0
  476. package/library/tools/run-script/GUIDE.md +30 -0
  477. package/library/tools/run-script/resource.yaml +6 -3
  478. package/library/tools/runtime-animate/GUIDE.md +7 -0
  479. package/library/tools/runtime-call/GUIDE.md +7 -0
  480. package/library/tools/runtime-set/GUIDE.md +9 -0
  481. package/library/tools/runtime-spawn/GUIDE.md +9 -0
  482. package/library/tools/save-scene/GUIDE.md +3 -0
  483. package/library/tools/scene-audit/GUIDE.md +29 -0
  484. package/library/tools/screenshot/GUIDE.md +17 -0
  485. package/library/tools/select-node/GUIDE.md +3 -0
  486. package/library/tools/set-prop/GUIDE.md +23 -0
  487. package/library/tools/set-resource-property/GUIDE.md +8 -0
  488. package/library/tools/shot-sheet/GUIDE.md +7 -0
  489. package/library/tools/snap-to-surface/GUIDE.md +17 -0
  490. package/library/tools/snapshot-diff/GUIDE.md +7 -0
  491. package/library/tools/starcast/GUIDE.md +12 -0
  492. package/library/tools/stop/GUIDE.md +3 -0
  493. package/library/tools/test-placement/GUIDE.md +7 -0
  494. package/library/tools/ui-actions/GUIDE.md +12 -0
  495. package/library/tools/ui-activate/GUIDE.md +11 -0
  496. package/library/tools/ui-screenshot/GUIDE.md +9 -0
  497. package/library/tools/ui-tree/GUIDE.md +10 -0
  498. package/library/tools/wait-for-event/GUIDE.md +11 -0
  499. package/library/tools/world-snapshot/GUIDE.md +9 -0
  500. package/library/tools/write-file/GUIDE.md +5 -0
  501. package/library/tools/zoom/GUIDE.md +5 -0
  502. package/package.json +8 -5
  503. package/registry/generated/counts.json +2 -2
  504. package/registry/generated/gemini-extension.json +6 -13
  505. package/registry/generated/index.json +482 -349
  506. package/registry/generated/marketplace.claude.json +2 -13
  507. package/registry/generated/plugin.claude-directory.json +168 -0
  508. package/registry/generated/plugin.claude.json +24 -22
  509. package/registry/generated/plugin.codex.json +18 -22
  510. package/registry/generated/plugin.cursor.json +8 -14
  511. package/registry/generated/plugin.factory.json +6 -13
  512. package/registry/generated/server.json +43 -0
  513. package/registry/generated/skills-index.md +121 -118
  514. package/registry/generated/skills-registry.json +167 -115
  515. package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
  516. package/registry/operations/fixtures/invalid-name.json +60 -0
  517. package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
  518. package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
  519. package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
  520. package/registry/operations/fixtures/valid-player-facing.json +82 -0
  521. package/registry/operations/fixtures/valid-read.json +60 -0
  522. package/registry/operations/fixtures/valid-spend.json +43 -0
  523. package/registry/operations/legacy-names.json +1241 -0
  524. package/registry/operations/public-catalog.json +33160 -0
  525. package/registry/schemas/operation.schema.json +318 -0
  526. package/registry/schemas/skill.schema.json +4 -0
  527. package/CLAUDE.md +0 -7
@@ -284,3 +284,20 @@ clients stay connected until they leave.
284
284
  - `summer-leaderboards` — ratings and `authority_v1` rating moves
285
285
  - `summer-world-saves` — persistent Worlds that outlive a match
286
286
  - `multiplayer-testing` — running bots through a whole match
287
+
288
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
289
+ ## From a shell
290
+
291
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
292
+
293
+ | In this skill | Command |
294
+ |---|---|
295
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
296
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
297
+ | `summer_play` | `summer engine play` |
298
+ | `summer_project_setting` | `summer engine project-setting` |
299
+ | `summer_read_file` | `summer engine read-file` |
300
+ | `summer_replace_text` | `summer engine replace-text` |
301
+ | `summer_stop` | `summer engine stop` |
302
+ | `summer_write_file` | `summer engine write-file` |
303
+ <!-- /shell-commands -->
@@ -299,3 +299,20 @@ Test the accept prompt and rating-based grouping on a hosted staging build.
299
299
  - `summer-leaderboards` — ratings and leaderboards for rated queues
300
300
  - `summer-parties` — friends entering a queue together
301
301
  - `multiplayer-testing` — Local Play options and bots
302
+
303
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
304
+ ## From a shell
305
+
306
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
307
+
308
+ | In this skill | Command |
309
+ |---|---|
310
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
311
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
312
+ | `summer_play` | `summer engine play` |
313
+ | `summer_project_setting` | `summer engine project-setting` |
314
+ | `summer_read_file` | `summer engine read-file` |
315
+ | `summer_replace_text` | `summer engine replace-text` |
316
+ | `summer_stop` | `summer engine stop` |
317
+ | `summer_write_file` | `summer engine write-file` |
318
+ <!-- /shell-commands -->
@@ -251,3 +251,17 @@ summer_stop
251
251
  - `summer-friends`: friends list, profiles and messages
252
252
  - `multiplayer-project`: the client entry scene this extends
253
253
  - `multiplayer-testing`: Local Play, and what needs staging
254
+
255
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
256
+ ## From a shell
257
+
258
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
259
+
260
+ | In this skill | Command |
261
+ |---|---|
262
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
263
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
264
+ | `summer_play` | `summer engine play` |
265
+ | `summer_project_setting` | `summer engine project-setting` |
266
+ | `summer_stop` | `summer engine stop` |
267
+ <!-- /shell-commands -->
@@ -320,3 +320,17 @@ folder to start over.
320
320
  - `summer-world-saves` — saving a whole persistent World instead of one player
321
321
  - `multiplayer-testing` — bots and repeated Local Play runs
322
322
  - `summer-leaderboards` — scores other players can see
323
+
324
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
325
+ ## From a shell
326
+
327
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
328
+
329
+ | In this skill | Command |
330
+ |---|---|
331
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
332
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
333
+ | `summer_play` | `summer engine play` |
334
+ | `summer_project_setting` | `summer engine project-setting` |
335
+ | `summer_stop` | `summer engine stop` |
336
+ <!-- /shell-commands -->
@@ -42,7 +42,7 @@ proves nothing.
42
42
  | Local Play | `unavailable` | Works from a fixture: empty unless `.summer/test-users.json` lists item templates (step 5) |
43
43
  | Guests, older Summer apps | Readiness reports `unavailable` | Readiness reports `unavailable` |
44
44
 
45
- Items and offers are created in your game's Studio pages (`summer_open` target
45
+ Items and offers are created in your game's Studio pages (`studio.open` target
46
46
  `game`). Code never creates items.
47
47
 
48
48
  This skill extends the Courtyard game from `multiplayer-project` and
@@ -269,3 +269,18 @@ Walk through every outcome:
269
269
  - `multiplayer-testing`: Local Play fixtures and personas
270
270
  - `summer-player-data`: saving a player's loadout between matches
271
271
  - `summer-analytics`: measuring the shop
272
+
273
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
274
+ ## From a shell
275
+
276
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
277
+
278
+ | In this skill | Command |
279
+ |---|---|
280
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
281
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
282
+ | `summer_play` | `summer engine play` |
283
+ | `summer_project_setting` | `summer engine project-setting` |
284
+ | `summer_stop` | `summer engine stop` |
285
+ | `studio.open` | `summer studio open` |
286
+ <!-- /shell-commands -->
@@ -193,3 +193,17 @@ Then test real chat on Summer staging with two accounts in one match.
193
193
  - `summer-friends`: direct messages with friends
194
194
  - `summer-parties`: party chat lives in the Summer app
195
195
  - `multiplayer-testing`: what Local Play can and can't test
196
+
197
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
198
+ ## From a shell
199
+
200
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
201
+
202
+ | In this skill | Command |
203
+ |---|---|
204
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
205
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
206
+ | `summer_play` | `summer engine play` |
207
+ | `summer_project_setting` | `summer engine project-setting` |
208
+ | `summer_stop` | `summer engine stop` |
209
+ <!-- /shell-commands -->
@@ -282,3 +282,17 @@ Restoring after a real restart can only be proven hosted.
282
282
  - `multiplayer-state` — the shared document this skill saves
283
283
  - `multiplayer-project` — `world.json` and the authority scene
284
284
  - `multiplayer-testing` — Local Play runs and markers
285
+
286
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
287
+ ## From a shell
288
+
289
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
290
+
291
+ | In this skill | Command |
292
+ |---|---|
293
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
294
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
295
+ | `summer_play` | `summer engine play` |
296
+ | `summer_project_setting` | `summer engine project-setting` |
297
+ | `summer_stop` | `summer engine stop` |
298
+ <!-- /shell-commands -->
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: text-to-motion
3
- description: "Custom 2-second animation clips from text prompts on any of the user's own rigged models — humanoids, animals, creatures, cartoon plants, props."
3
+ description: "Make custom 2-second animation clips from text on the user's own rigged models: people, animals, props."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: animation
7
7
  user-invocable: false
8
- allowed-tools: Read summer_list_my_assets summer_generate_motion summer_check_job summer_get_asset summer_import_asset_by_id
8
+ allowed-tools: Read summer_assets_search summer_assets_generate_motion summer_jobs_wait summer_assets_get summer_import_asset_by_id summer_call
9
9
  ---
10
10
 
11
11
  # Text to Motion
@@ -14,8 +14,8 @@ Summer-hosted text-to-motion turns a text prompt into a 2-second (60 frames) ske
14
14
  clip for the user's **own** rigged model. One model covers every skeleton with 5-70 bones:
15
15
  humanoids, animals, creatures, cartoon plants, turrets, props.
16
16
 
17
- The tool is `summer_generate_motion` with `backend: "text-to-motion"`. It returns a
18
- `jobId`; poll `summer_check_job`. The finished job's `result.assets` lists one `animation`
17
+ The operation is `assets.generate_motion` with `backend: "text-to-motion"`. It answers at
18
+ once with a job; `jobs.wait` follows it. The finished job's `result.assets` lists one `animation`
19
19
  asset per prompt x take (`id`, `fileUrl`, `animationName`, `prompt`, `take`); each is a GLB
20
20
  of the whole model carrying one animation named after its prompt.
21
21
 
@@ -37,28 +37,28 @@ doesn't have that move", any animation request for a non-humanoid rig.
37
37
  ## The order
38
38
 
39
39
  1. **Confirm the rig.** The asset must be the user's own `3d_model` GLB/FBX with one
40
- skinned armature and 5-70 bones (`summer_list_my_assets` / `summer_get_asset`). If it
40
+ skinned armature and 5-70 bones (`assets.search({ scope: "mine", assetType: "3d_model" })` / `assets.get`). If it
41
41
  is unrigged or has odd bone names, read `rigging-for-text-motion.md` in this directory.
42
- 2. **Agree the clip list and cost.** Each prompt x take is one billed clip. Show the list
43
- and the estimated cost and wait for the user's OK before submitting.
42
+ 2. **Agree the clip list and cost.** Each prompt x take is one billed clip. Run the call
43
+ below with `dryRun: true` first: it checks the rig and returns `estimate.credits`. Show
44
+ the list and the credits and wait for the user's OK before submitting.
44
45
  3. **Submit once.** Up to 8 prompts per call, `takes` 1-4. For rooted characters pass
45
46
  `lockJoints` with the base bones:
46
47
 
47
48
  ```
48
- summer_generate_motion(
49
+ assets.generate_motion({
49
50
  rigAssetId: "<id>",
50
51
  backend: "text-to-motion",
51
52
  prompts: ["nods happily", "waves hello with the right leaf"],
52
53
  lockJoints: ["Hips", "Spine"], // rooted flower; omit for characters that move
53
- cfgScale: 5, // default 3; 5 for clearer gestures on stylized rigs
54
- wait: false
55
- )
54
+ cfgScale: 5 // default 3; 5 for clearer gestures on stylized rigs
55
+ })
56
56
  ```
57
57
 
58
58
  Pass a stable `idempotencyKey` if you might retry the same request. Prompt writing and
59
59
  every control: `prompts-and-controls.md` in this directory.
60
- 4. **Poll to completion.** `summer_check_job(jobId)`. A job takes about 1-2 minutes. Do not
61
- resubmit while it runs. (With the default `wait: true` the tool polls for you.)
60
+ 4. **Wait for the job.** `jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 })`, again until
61
+ `finished` is true. A job takes about 1-2 minutes. Do not resubmit while it runs.
62
62
  5. **Review, then import.** Import the chosen clip assets with
63
63
  `summer_import_asset_by_id(assetId, parent, scenePath)`. Offer to regenerate weak takes
64
64
  with a rephrased prompt or a higher `cfgScale`; keep the good ones.
@@ -74,26 +74,48 @@ doesn't have that move", any animation request for a non-humanoid rig.
74
74
  - **Report failures with their code.** Job failures starting `text_motion:` (no skinned
75
75
  armature, too many or too few joints, multiple armatures, unknown lock joint) are input
76
76
  problems and the charge is refunded. Fix the rig or the request; do not retry unchanged.
77
- - **`backend_unavailable` means text-to-motion is not enabled on this server yet.** Fall
77
+ - **A `backend` without `text-to-motion` means it is not enabled on this server yet.** Fall
78
78
  back to `generate-motion` (meshy-library) for humanoid clips and say so; do not retry.
79
79
  - **Do not promise facial animation, finger detail or lip sync.** The model animates the
80
80
  skeleton only; blendshapes stay untouched (`facial-and-lipsync` covers faces).
81
81
 
82
82
  ## Request errors
83
83
 
84
- | Code | Meaning | Do |
84
+ Refusals answer the one error shape: `error.code` with one `next` step, and
85
+ `error.details.was` naming the reason below.
86
+
87
+ | `code` / `details.was` | Meaning | Do |
85
88
  | --- | --- | --- |
86
- | `backend_unavailable` | Server flag off | Use `generate-motion`; do not retry |
87
- | `prompt_required` | No prompt | Pass `prompt` or `prompts` (1-8, each 1-300 chars) |
88
- | `invalid_takes` | `takes` outside 1-4 | Fix and resubmit |
89
- | `invalid_cfg_scale` | `cfgScale` outside 1.5-8 | Fix and resubmit |
90
- | `invalid_lock_joints` | Bone names wrong | Use bone names that exist in the rig |
91
- | `rig_asset_not_found` | Not the caller's asset | Find the user's own asset id |
92
- | `rig_asset_invalid` | Not a rigged GLB/FBX `3d_model` | Rig it first |
93
- | `insufficient_credits` (402) | Not enough credits | Fewer prompts/takes, or the user tops up |
89
+ | `invalid_input` on `backend` | Text-to-motion is off on this server (`backend` lists only `meshy-library`) | Use `generate-motion`; do not retry |
90
+ | `invalid_input` on `prompts` | No prompt | Pass `prompts` (1-8, each 1-300 chars) |
91
+ | `invalid_input` / `invalid_takes` | `takes` outside 1-4 | Fix and resubmit |
92
+ | `invalid_input` / `invalid_cfg_scale` | `cfgScale` outside 1.5-8 | Fix and resubmit |
93
+ | `invalid_input` / `invalid_lock_joints` | Bone names wrong | Use bone names that exist in the rig |
94
+ | `not_found` / `rig_asset_not_found` | Not the caller's asset | Find the user's own asset id |
95
+ | `invalid_input` / `rig_asset_invalid` | Not a rigged GLB/FBX `3d_model` | Rig it first |
96
+ | `no_credits` | Not enough credits | Fewer prompts/takes, or the person adds credits (`next` has the link) |
97
+
98
+ ## Without Summer Engine
99
+
100
+ In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), follow the order up to the review in step 5 and skip the import. Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. Keep the good takes and name each file after its prompt.
94
101
 
95
102
  ## Do not stop early
96
103
 
97
104
  Done means the chosen clips are imported and playing on the model in the scene. For a
98
105
  playable character continue with `character-animation-wiring`; for state machines,
99
106
  `animation-tree`.
107
+
108
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
109
+ ## From a shell
110
+
111
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
112
+
113
+ | In this skill | Command |
114
+ |---|---|
115
+ | `assets.generate_3d` | `summer assets generate-3d` |
116
+ | `assets.generate_motion`, `summer_assets_generate_motion` | `summer assets generate-motion` |
117
+ | `assets.get`, `summer_assets_get` | `summer assets get` |
118
+ | `assets.search`, `summer_assets_search` | `summer assets search` |
119
+ | `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
120
+ | `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
121
+ <!-- /shell-commands -->
@@ -11,19 +11,19 @@
11
11
  - Style words that map to motion work ("happily", "slowly", "tiredly"); story or
12
12
  appearance words do not.
13
13
 
14
- ## Controls (`summer_generate_motion`, `backend: "text-to-motion"`)
14
+ ## Controls (`assets.generate_motion`, `backend: "text-to-motion"`)
15
15
 
16
16
  | Field | Default | Use |
17
17
  | --- | --- | --- |
18
- | `prompt` / `prompts` | - | One action, or 1-8 actions (each 1-300 chars); one clip each. Pass one of the two, not both |
18
+ | `prompts` | - | 1-8 actions (each 1-300 chars); one clip each |
19
19
  | `takes` | 1 | 1-4; 2-3 when choosing a hero clip. Every take is billed |
20
20
  | `cfgScale` | 3 | 1.5-8; 5 for bigger, clearer gestures on stylized rigs; above 6 gets unstable |
21
21
  | `lockJoints` | none | Base bones of rooted characters (plants, turrets, statues), e.g. `["Hips","Spine"]` |
22
22
  | `idempotencyKey` | none | Stable key so a retried request is not billed twice |
23
- | `wait` | true | `false` returns the `jobId` at once; poll `summer_check_job` |
23
+ | `dryRun` | false | `true` checks the rig and returns the `estimate` (credits) without making anything |
24
24
 
25
- Clip count = prompts x takes; each clip is billed. The queued response reports
26
- `clipCount` and `estimatedCost`.
25
+ Clip count = prompts x takes; each clip is billed. The call answers with a job at once;
26
+ `jobs.wait` follows it to the finished clips.
27
27
 
28
28
  ## Judging results
29
29
 
@@ -1,7 +1,7 @@
1
1
  id: skill/text-to-motion
2
2
  kind: skill
3
3
  version: 1.0.0
4
- summary: "Custom 2-second animation clips from text prompts on any of the user's own rigged models — humanoids, animals, creatures, cartoon plants, props."
4
+ summary: "Make custom 2-second animation clips from text on the user's own rigged models: people, animals, props."
5
5
  use_when:
6
6
  - a custom action the curated motion library lacks — nod, bow, shrug, wave with a specific arm, an emotional gesture
7
7
  - animating a non-humanoid rig — a talking flower, animal, creature, turret or prop
@@ -43,8 +43,8 @@ clips; keep the package's canonical idle/walk/run/jump from `generate-motion`.
43
43
 
44
44
  ## Rigging an unrigged mesh
45
45
 
46
- - Humanoid: the Summer auto-rig (`character-model`, `summer_generate_3d` with
47
- `options.rig: true`).
46
+ - Humanoid: the Summer auto-rig (`character-model`, `assets.generate_3d` with
47
+ `rig: true`).
48
48
  - Other body plans: rig in the user's own Blender (`fabricating-assets`) or offline
49
49
  (`skintokens-auto-rigging`), using the human bone names above where the body plan allows
50
50
  (stem as spine, leaves as arms).
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: tileable-texture
3
- description: "Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo."
3
+ description: "Generate a seamless tileable texture for walls, floors or terrain, wired as a StandardMaterial3D albedo."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: 2d-assets
7
7
  user-invocable: true
8
- allowed-tools: Read Grep Glob Write Edit summer_generate_image summer_search_assets summer_import_from_url summer_set_resource_property summer_add_node summer_set_prop summer_inspect_node
8
+ allowed-tools: Read Grep Glob Write Edit summer_assets_generate_image summer_assets_search summer_import_from_url summer_set_resource_property summer_add_node summer_set_prop summer_inspect_node summer_call
9
9
  paths: ["assets/**", "art/textures/**", "materials/**"]
10
10
  ---
11
11
 
@@ -35,7 +35,7 @@ The hard part is "seamless." Most diffusion models violate edge continuity by de
35
35
  ### 1. Search for an existing texture
36
36
 
37
37
  ```
38
- summer_search_assets(query="<material> tileable", assetType="2d_image", source="all")
38
+ assets.search({ query: "<material> tileable", assetType: "2d_image", scope: "all" })
39
39
  ```
40
40
 
41
41
  Texture libraries (AmbientCG, Polyhaven) often have free PBR sets that beat AI generation for realism. If the user wants photorealistic tiling, pause and suggest those.
@@ -59,16 +59,16 @@ The load-bearing phrases are:
59
59
  ### 3. Generate
60
60
 
61
61
  ```
62
- summer_generate_image(
63
- prompt="weathered red brick wall, seamless tileable texture, top-down view, uniform lighting, no perspective, no shadows, no specific objects, square format, photographic detail. No vanishing point, no directional shadow, no vignette, no single standout feature, no scene context, no sky, no sun.",
64
- model="nano-banana-2",
65
- style="realistic"
66
- )
62
+ assets.generate_image({
63
+ prompt: "weathered red brick wall, seamless tileable texture, top-down view, uniform lighting, no perspective, no shadows, no specific objects, square format, photographic detail. No vanishing point, no directional shadow, no vignette, no single standout feature, no scene context, no sky, no sun.",
64
+ model: "nano-banana-2",
65
+ style: "realistic"
66
+ })
67
67
  ```
68
68
 
69
69
  Two things about the arguments:
70
70
 
71
- - **There is no `image_size` and no `negative_prompt`.** `summer_generate_image` takes only `prompt`, `model`, `style`, `referenceImageUrl`, `removeBackground` and `options`, and `options` only recognizes Nano Banana provider keys (`seed`, `outputFormat`, `safetyTolerance`, `syncMode`, `systemPrompt`, `limitGenerations`, `thinkingLevel`). Anything else is dropped without an error, so the call looks like it worked. Put the negations in the prompt text. Square is what you get regardless — MCP images come back at the server's 1:1 default, which is exactly what a tileable texture wants.
71
+ - **There is no `image_size` and no `negative_prompt`.** `assets.generate_image` takes `prompt`, `model`, `style`, `aspectRatio`, `width`, `height`, `numImages`, `referenceImageUrl`, `removeBackground`, `seed` and `title`; a field it does not list does nothing, so the call looks like it worked. Put the negations in the prompt text. Leave `aspectRatio` at its `1:1` default, which is exactly what a tileable texture wants; for a larger tile, leave `model` out and pass `width` and `height`: a model that reaches the size is picked, or the answer names the models that can.
72
72
  - **`style: "realistic"` is a no-op.** Only `cartoon` and `anime` append anything to the prompt; `realistic` and `none` append nothing, and any other value is coerced to `none`. The photographic look has to come from the prompt (`photographic detail`). Switching to `"none"` for stylized work likewise changes nothing on its own — change the prompt.
73
73
 
74
74
  ### 4. Import to project
@@ -178,16 +178,20 @@ Then attach the same material with `uv1_scale` tuned to wall dimensions.
178
178
  - **User wants animated water / lava texture.** Generate a still tileable texture and use a `ShaderMaterial` with UV scrolling to animate. Don't try to generate frames.
179
179
  - **Visible seam after generation.** Run through GIMP `Filters → Map → Make Seamless` or open in Aseprite, set Tiled mode, paint over the seam manually. AI-generated tileables often need a 5-minute touch-up.
180
180
 
181
+ ## Without Summer Engine
182
+
183
+ In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-3 and the seam check in step 5 by eye on the image (tile it 2x2 in an image viewer); skip step 4 and step 6 (import, wiring onto geometry). Pass `out` with the person's folder so the PNG lands there (the `summer-assets` skill says how), and tell them to set the texture to repeat.
184
+
181
185
  ## Fallback (no MCP)
182
186
 
183
187
  Print the call:
184
188
 
185
189
  ```
186
- summer_generate_image(
187
- prompt="<material> seamless tileable texture, top-down view, uniform lighting, no perspective, no shadows, no specific objects, square. No directional shadow, no single standout feature, no scene context.",
188
- model="nano-banana-2",
189
- style="realistic"
190
- )
190
+ assets.generate_image({
191
+ prompt: "<material> seamless tileable texture, top-down view, uniform lighting, no perspective, no shadows, no specific objects, square. No directional shadow, no single standout feature, no scene context.",
192
+ model: "nano-banana-2",
193
+ style: "realistic"
194
+ })
191
195
  ```
192
196
 
193
197
  Tell the user to run via the Summer dashboard, then `summer_import_from_url` to `res://art/textures/<name>.png`, set `Repeat: Enabled`, and tune `uv1_scale` to physical size.
@@ -208,4 +212,22 @@ After the texture is wired:
208
212
  - `asset-strategy` — meta-router and 3D pipeline.
209
213
  - `skybox-panorama` — sky/environment counterpart.
210
214
  - `scene-composition` — applying textures to CSG and MeshInstance3D.
211
- - `../../references/mcp-tools-reference/mcp-tools-reference.md` — `summer_generate_image` schema.
215
+ - `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_image`.
216
+
217
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
218
+ ## From a shell
219
+
220
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
221
+
222
+ | In this skill | Command |
223
+ |---|---|
224
+ | `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
225
+ | `summer_assets_search` | `summer assets search` |
226
+ | `summer_docs_read` | `summer docs read` |
227
+ | `summer_add_node` | `summer engine add-node` |
228
+ | `summer_import_from_url` | `summer engine import-from-url` |
229
+ | `summer_inspect_node` | `summer engine inspect-node` |
230
+ | `summer_save_scene` | `summer engine save-scene` |
231
+ | `summer_set_prop` | `summer engine set-prop` |
232
+ | `summer_set_resource_property` | `summer engine set-resource-property` |
233
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/tileable-texture
2
2
  kind: skill
3
3
  version: 1.0.4
4
- summary: Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo.
4
+ summary: "Generate a seamless tileable texture for walls, floors or terrain, wired as a StandardMaterial3D albedo."
5
5
  use_when:
6
6
  - generating a seamless tileable texture for walls, floors, terrain, or ceilings — a square tile that repeats cleanly on all four edges
7
7
  - a wall, floor, or terrain material shows visible seams or repetition and needs a texture that tiles cleanly
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: trailer-shot
3
- description: "Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds."
3
+ description: "Generate trailer footage: slow-mo combat, establishing shots, hero beats, splash screens, 5-10 seconds."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: video
7
7
  user-invocable: true
8
- allowed-tools: Read Grep Glob Write Edit summer_generate_video summer_check_job summer_generate_image summer_search_assets summer_import_from_url summer_add_node summer_set_prop
8
+ allowed-tools: Read Grep Glob Write Edit summer_assets_generate_video summer_jobs_wait summer_assets_generate_image summer_assets_search summer_import_from_url summer_add_node summer_set_prop summer_call
9
9
  paths: ["assets/video/**", "trailers/**", "marketing/**"]
10
10
  ---
11
11
 
@@ -55,25 +55,25 @@ State the archetype and composition out loud before generating: "I'll do a low-a
55
55
  For shots featuring a specific character, weapon, or environment, generate a reference still first and pass it as `imageUrl`. Without it, the boss in your trailer looks different from the boss in the game.
56
56
 
57
57
  ```
58
- summer_generate_image(
59
- prompt="<subject>, <archetype-driven framing>, cinematic, dramatic lighting, film still, wide 16:9 framing",
60
- model="nano-banana-2"
61
- )
58
+ assets.generate_image({
59
+ prompt: "<subject>, <archetype-driven framing>, cinematic, dramatic lighting, film still, wide framing",
60
+ model: "nano-banana-2",
61
+ aspectRatio: "16:9"
62
+ })
62
63
  ```
63
64
 
64
- `summer_generate_image` has no size or aspect argument — `options.image_size` is dropped without an error and every MCP image comes back at the server's 1:1 default. Ask for the framing in the prompt, or build the reference in the Summer dashboard (which exposes aspect ratio) and pass its URL. Since image-to-video inherits the reference's framing, a square reference gives you a square trailer shot.
65
+ Set `aspectRatio` to the platform's framing (`16:9`, `9:16` for vertical social, `1:1` for square). Since image-to-video inherits the reference's framing, a square reference gives you a square trailer shot.
65
66
 
66
67
  For pure environment / abstract / VFX shots, you can skip this and prompt text-to-video directly — that also unlocks `aspectRatio`, `kling-turbo`, and `veo3`.
67
68
 
68
69
  ### 3. Pick the model
69
70
 
70
- The available models depend on whether you pass `imageUrl`. With a reference image (step 2) the call goes to the image-to-video route, which accepts only `ltx`, `kling`, and `minimax`; `kling-turbo` and `veo3` exist on the text-to-video route only, and pairing either with an `imageUrl` is a 400 `invalid_model`.
71
+ The available models depend on whether you pass `imageUrl`. With a reference image (step 2) the call goes to the image-to-video route; `kling-turbo` and `veo3` exist on the text-to-video route only, and pairing either with an `imageUrl` is a 400 `invalid_model`.
71
72
 
72
73
  | Model | Text-to-video | Image-to-video | Speed | When |
73
74
  |---|---|---|---|---|
74
75
  | `kling` | yes | yes | 2-4 min | Default for trailer hero shots — best motion + composition |
75
76
  | `ltx` | yes | yes | ~30s | Cheapest. B-roll, throwaway tests, blocking the composition before committing |
76
- | `minimax` | yes | yes | 2-3 min | Anime / stylized trailer looks |
77
77
  | `kling-turbo` | yes | **no** | 1-2 min | Same look as kling, faster, slight quality dip — but you lose `imageUrl` |
78
78
  | `veo3` | yes | **no** | 3-5 min | Most expensive. Pitch deck for investors, the one shot that has to be perfect — but you lose `imageUrl` |
79
79
 
@@ -82,20 +82,20 @@ Default: **`ltx` first to block the composition, then `kling` for the final**. F
82
82
  ### 4. Generate the shot
83
83
 
84
84
  ```
85
- summer_generate_video(
86
- prompt="<archetype framing>, <subject>, <action>, <camera move>, <lighting>, <film grain / lens / stylistic anchor>",
87
- model="kling",
88
- imageUrl="<optional reference URL from step 2>",
89
- duration=5,
90
- aspectRatio="16:9"
91
- )
85
+ assets.generate_video({
86
+ prompt: "<archetype framing>, <subject>, <action>, <camera move>, <lighting>, <film grain / lens / stylistic anchor>",
87
+ model: "kling",
88
+ imageUrl: "<optional reference URL from step 2>",
89
+ duration: 5,
90
+ aspectRatio: "16:9"
91
+ })
92
92
  ```
93
93
 
94
- `duration` accepts **only 5 or 10** — anything else is coerced to 5.
94
+ On `ltx` and `kling`, `duration` is 5 or 10 — anything else renders 5. `dryRun: true` returns the shot's `estimate` (credits, balance, enough) without rendering.
95
95
 
96
- The call is **asynchronous**: it returns `{ success, queued: true, jobId, model, resolvedModel, estimatedCost, duration }` and **no URL**. Poll `summer_check_job(jobId="<jobId>")` until it reports `completed` before showing the user anything or claiming the shot is done.
96
+ The call answers at once with `{ status: "running", job: { id } }` and **no URL**. Call `jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 })` until `finished` is true, before showing the user anything or claiming the shot is done.
97
97
 
98
- `aspectRatio` (`16:9`, `9:16`, `1:1`, ...) is applied on the **text-to-video path only**. The moment you pass `imageUrl` it is ignored and the clip inherits the reference image's framing — so vertical social needs a genuinely 9:16 reference, and square needs a square one. MCP image generation is square-only, so build non-square references in the Summer dashboard (which exposes aspect ratio) or crop them before use.
98
+ `aspectRatio` (`16:9`, `9:16`, `1:1`, ...) is applied on the **text-to-video path only**. The moment you pass `imageUrl` it is ignored and the clip inherits the reference image's framing — so vertical social needs a genuinely 9:16 reference, and square needs a square one: generate the reference with that `aspectRatio`.
99
99
 
100
100
  ### 5. Review against trailer logic
101
101
 
@@ -150,7 +150,7 @@ Pattern: `<archetype framing> + <subject> + <action verb> + <camera move> + <lig
150
150
  | Vertical social hero | `kling` | `vertical close-up of a young witch raising hands, magical wind, hair flowing, candle-warm key, cinematic, framed for 9:16` | 5s |
151
151
  | Pitch-deck premium shot | `veo3` | `wide cinematic of a fleet of airships emerging through cloud cover at dawn, slow truck forward, golden god-rays, soaring orchestral cinematic` | 5s |
152
152
  | Cheap B-roll iteration | `ltx` | `mid shot of a knight walking through fog, slow truck backward, dawn light, cinematic` | 5s |
153
- | Anime style hero | `minimax` | `anime-style hero girl draws a katana in slow motion, sakura petals swirling, dramatic side-light, dynamic camera, Ghibli painterly` | 5s |
153
+ | Anime style hero | `kling` | `anime-style hero girl draws a katana in slow motion, sakura petals swirling, dramatic side-light, dynamic camera, Ghibli painterly` | 5s |
154
154
 
155
155
  ### Bad prompts and why
156
156
 
@@ -169,7 +169,7 @@ Pattern: `<archetype framing> + <subject> + <action verb> + <camera move> + <lig
169
169
  - **Using `veo3` for B-roll.** Use `ltx` for blocking and B-roll; reserve `veo3` for the one shot that has to be perfect.
170
170
  - **Generating shots without composing the trailer first.** Make a 6-shot list before generating shot 1. Otherwise you'll generate shots that don't intercut.
171
171
  - **Assuming `aspectRatio="9:16"` reframed an image-to-video call.** It is ignored whenever `imageUrl` is set — the reference image decides the framing. Pillarboxed 16:9 on TikTok / Reels / Shorts reads as a desktop YouTube embed and gets demoted by the algorithm, so fix the reference, not the argument.
172
- - **Treating `summer_generate_video` as synchronous.** It returns `{ queued: true, jobId }` and no URL. Poll `summer_check_job` before handing the user a link.
172
+ - **Treating `assets.generate_video` as finished.** It answers `{ status: "running", job }` and no URL. Wait with `jobs.wait` before handing the user a link.
173
173
  - **Forgetting that Studio doesn't cut video.** The user has to take the shots into an NLE. Tell them, don't pretend Studio can stitch.
174
174
  - **Asking for "the camera does X then Y then Z".** Pick one camera move per shot.
175
175
 
@@ -178,8 +178,12 @@ Pattern: `<archetype framing> + <subject> + <action verb> + <camera move> + <lig
178
178
  - **Steam capsule animated header (Steam asset).** Steam wants `.webm` at 616x353 or 1920x1080, ≤6s, 30fps, no audio, ≤4MB. Generate at 16:9, transcode in DaVinci, export `.webm` with VP9. The video model gives you the source; format conversion is on you.
179
179
  - **Pitch deck for investors.** One shot, `veo3`, money composition (low-angle hero or wide establishing).
180
180
  - **Vertical for TikTok / Shorts.** The reference image must genuinely be portrait — `aspectRatio` is ignored once `imageUrl` is set. Frame the subject in the upper-middle so titles can sit at the bottom.
181
- - **Subject is a UGC environment the player built.** Take a screenshot of the in-engine view, run it through `summer_generate_image` as `referenceImageUrl` to "upgrade" the look, then use that as the video reference. The model can stylize a screenshot; it can't invent the user's level.
182
- - **Logo splash with motion graphics.** Generate a static logo card in `summer_generate_image` (or use the user's existing logo PNG), then prompt video as `static composition of <logo>, only background particles drifting, cinematic, room for title text` — keep the foreground motionless.
181
+ - **Subject is a UGC environment the player built.** Take a screenshot of the in-engine view, run it through `assets.generate_image` as `referenceImageUrl` to "upgrade" the look, then use that as the video reference. The model can stylize a screenshot; it can't invent the user's level.
182
+ - **Logo splash with motion graphics.** Generate a static logo card with `assets.generate_image` (or use the user's existing logo PNG), then prompt video as `static composition of <logo>, only background particles drifting, cinematic, room for title text` — keep the foreground motionless.
183
+
184
+ ## Without Summer Engine
185
+
186
+ In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-5 and 7 and skip step 6 (import for archive). Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. The MP4 goes straight into the person's video editor.
183
187
 
184
188
  ## Fallback (no MCP)
185
189
 
@@ -209,4 +213,22 @@ Once the shots are generated:
209
213
  - `music-track` — trailer score.
210
214
  - `sound-effect` — cut SFX (whooshes, impacts, stingers).
211
215
  - `concept-art` — generate the reference image axis when no asset exists yet.
212
- - `../../references/mcp-tools-reference/mcp-tools-reference.md` — `summer_generate_video` parameter schema and error codes.
216
+ - `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_video`; `summer_search` returns its exact input.
217
+
218
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
219
+ ## From a shell
220
+
221
+ No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
222
+
223
+ | In this skill | Command |
224
+ |---|---|
225
+ | `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
226
+ | `assets.generate_video`, `summer_assets_generate_video` | `summer assets generate-video` |
227
+ | `summer_assets_search` | `summer assets search` |
228
+ | `summer_docs_read` | `summer docs read` |
229
+ | `summer_add_node` | `summer engine add-node` |
230
+ | `summer_import_from_url` | `summer engine import-from-url` |
231
+ | `summer_set_prop` | `summer engine set-prop` |
232
+ | `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
233
+ | `summer_search` | `summer ops search "<what you want>"` |
234
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/trailer-shot
2
2
  kind: skill
3
3
  version: 1.0.4
4
- summary: Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds.
4
+ summary: "Generate trailer footage: slow-mo combat, establishing shots, hero beats, splash screens, 5-10 seconds."
5
5
  use_when:
6
6
  - generating marketing or trailer footage — slow-mo combat, dramatic establishing shots, hero beats, splash screens, pitch-deck B-roll
7
7
  - producing a store page, pitch deck, or social clip that shows the game at its most dramatic in seconds