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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: debugging-game-feel
3
- description: "Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers."
3
+ description: "Debug features that work but feel wrong: floaty jumps, mushy combat, sluggish camera."
4
4
  ---
5
5
 
6
6
  # Debugging Game Feel
@@ -189,3 +189,15 @@ After diagnosis pins down which variable(s) are wrong, the tuning is done — bu
189
189
  - `investigating-bugs` — for logical bugs with concrete repros, not feel.
190
190
  - `playtesting-a-feature` — the playtest discipline this skill plugs into.
191
191
  - `debug` — when the feel investigation surfaces an actual error.
192
+
193
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
194
+ ## From a shell
195
+
196
+ 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.
197
+
198
+ | In this skill | Command |
199
+ |---|---|
200
+ | `summer_batch` | `summer engine batch` |
201
+ | `summer_inspect_node` | `summer engine inspect-node` |
202
+ | `summer_play` | `summer engine play` |
203
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/debugging-game-feel
2
2
  kind: skill
3
3
  version: 1.0.3
4
- summary: Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers.
4
+ summary: "Debug features that work but feel wrong: floaty jumps, mushy combat, sluggish camera."
5
5
  use_when:
6
6
  - a gameplay feature works correctly but feels wrong — floaty jumps, mushy combat, sluggish camera, weightless impacts
7
7
  - tuning jump height, gravity, camera lag, hit-stop, or impact feedback until controls feel right
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: design-level
3
- description: "Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene."
3
+ description: "Design one level (layout, pacing, encounters, secrets) as a design doc plus a node-tree skeleton."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: level-design
7
7
  user-invocable: true
8
- allowed-tools: Read Grep Glob Write Edit summer_get_scene_tree summer_create_scene summer_open_scene summer_add_node summer_set_prop summer_save_scene summer_get_script_errors
8
+ allowed-tools: Read Grep Glob Write Edit summer_get_scene_tree summer_create_scene summer_open_scene summer_run_script summer_add_node summer_set_prop summer_save_scene summer_get_script_errors
9
9
  paths: ["**/*.tscn", "**/*.gd", ".summer/**", "levels/**"]
10
10
  ---
11
11
 
@@ -148,44 +148,32 @@ Show the skeleton. Ask:
148
148
 
149
149
  ### 8. Scaffold via MCP
150
150
 
151
- **Preferred (Summer MCP):**
151
+ **Preferred (Summer MCP):** create the scene, then build the whole skeleton in one script.
152
152
 
153
- `summer_create_scene` takes `path`, `rootName`, and a mandatory safety gate.
154
- There is no `root_type` or `root_name` argument. The tool refuses to run unless
155
- `allow_temporary_scene_mutation` is explicitly true, because of how it works: it
156
- opens the currently-open scene (or the project's main scene) as a template,
157
- removes every child, renames the root, saves-as to the new path, then reopens
158
- the original. Ask the user before setting the flag.
159
-
160
- The consequence to plan around: **the new scene's root node type is copied from
161
- the template's root**, not chosen by you. Create levels from a scene whose root
162
- is already `Node3D`, or fix the root afterwards in the editor.
153
+ `summer_create_scene` takes `path`, `rootName` and `rootType` (default `Node3D`) and writes the new scene to disk without opening it. `summer_run_script` with that `scenePath` opens it, runs, and gives the user their tab back; the run is one undo step, so one Ctrl+Z removes the skeleton.
163
154
 
164
155
  ```
165
- summer_create_scene(path="res://levels/level_01.tscn", rootName="World", allow_temporary_scene_mutation=true)
166
- summer_add_node(scenePath="res://levels/level_01.tscn", parent="./World", type="Node3D", name="Geometry")
167
- summer_add_node(parent="./World/Geometry", type="Node3D", name="IntroAtrium")
168
- summer_add_node(parent="./World/Geometry", type="Node3D", name="Corridor")
169
- summer_add_node(parent="./World/Geometry", type="Node3D", name="PeakArena")
170
- summer_add_node(parent="./World/Geometry", type="Node3D", name="BossChamber")
171
- summer_add_node(parent="./World", type="Node3D", name="Spawns")
172
- summer_add_node(parent="./World/Spawns", type="Node3D", name="PlayerSpawn")
173
- summer_add_node(parent="./World/Spawns", type="Node3D", name="E1_Spawn")
174
- # ... and so on
175
- summer_add_node(parent="./World", type="Node3D", name="Triggers")
176
- summer_add_node(parent="./World/Triggers", type="Area3D", name="E2_GateTrigger")
177
- # ... etc.
178
- summer_add_node(parent="./World", type="Node3D", name="Lighting")
179
- summer_add_node(parent="./World/Lighting", type="WorldEnvironment", name="WorldEnvironment")
180
- summer_add_node(parent="./World/Lighting", type="DirectionalLight3D", name="Sun")
181
- summer_save_scene(scenePath="res://levels/level_01.tscn")
156
+ summer_create_scene(path="res://levels/level_01.tscn", rootName="World", rootType="Node3D")
157
+ summer_run_script(scenePath="res://levels/level_01.tscn", source="""
158
+ func run(ctx):
159
+ var skeleton = {
160
+ "Geometry": [["Node3D", "IntroAtrium"], ["Node3D", "Corridor"], ["Node3D", "PeakArena"], ["Node3D", "BossChamber"]],
161
+ "Spawns": [["Node3D", "PlayerSpawn"], ["Node3D", "E1_Spawn"], ["Node3D", "E2_Spawn"], ["Node3D", "E3_Wave_Spawns"], ["Node3D", "MiniBoss_Spawn"]],
162
+ "Triggers": [["Area3D", "E2_GateTrigger"], ["Area3D", "PeakWaveTrigger"], ["Area3D", "BossDoorTrigger"]],
163
+ "Pickups": [["Node3D", "HealAfterE2"], ["Node3D", "CurrencyS1"]],
164
+ "Secrets": [["StaticBody3D", "S1_BreakableWall"], ["StaticBody3D", "S2_ParryLedge"], ["StaticBody3D", "S3_LockedDoor"]],
165
+ "Lighting": [["WorldEnvironment", "WorldEnvironment"], ["DirectionalLight3D", "Sun"]],
166
+ }
167
+ for group in skeleton:
168
+ var parent = ctx.add_node("Node3D", group)
169
+ for child in skeleton[group]:
170
+ ctx.add_node(child[0], child[1], parent)
171
+ ctx.report("skeleton", ctx.summary())
172
+ ctx.save_scene()
173
+ """)
182
174
  ```
183
175
 
184
- Every `summer_add_node` above takes the same required
185
- `scenePath="res://levels/level_01.tscn"`; it is elided after the first line only
186
- to keep the tree readable. A call without `scenePath` is rejected by the tool
187
- schema. Better still, send the whole block as one `summer_batch(scenePath=...,
188
- ops=[...])` so the user can undo the skeleton with a single Ctrl+Z.
176
+ Compare the `skeleton` report (node counts by class) with the tree you showed the user, then `summer_get_scene_tree` on the new scene.
189
177
 
190
178
  This is a **skeleton, not playable geometry**. Markers and Area3Ds, no meshes, no enemy scripts. Implementation in subsequent sessions / templates.
191
179
 
@@ -278,3 +266,20 @@ The skeleton this skill produces is meant to be filled in via `/design-mechanic`
278
266
  - `design-npc` — designs the enemies the encounters reference
279
267
  - `3d-lighting` — sets the lighting in `WorldEnvironment` + lights
280
268
  - `art-direction` — defines the visual style the level expresses
269
+
270
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
271
+ ## From a shell
272
+
273
+ 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.
274
+
275
+ | In this skill | Command |
276
+ |---|---|
277
+ | `summer_add_node` | `summer engine add-node` |
278
+ | `summer_create_scene` | `summer engine create-scene` |
279
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
280
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
281
+ | `summer_open_scene` | `summer engine open-scene` |
282
+ | `summer_run_script` | `summer engine run-script` |
283
+ | `summer_save_scene` | `summer engine save-scene` |
284
+ | `summer_set_prop` | `summer engine set-prop` |
285
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/design-level
2
2
  kind: skill
3
3
  version: 1.0.3
4
- summary: Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene.
4
+ summary: "Design one level (layout, pacing, encounters, secrets) as a design doc plus a node-tree skeleton."
5
5
  use_when:
6
6
  - designing a single level — layout, pacing, encounters, secrets, reward gating
7
7
  - turning a level idea into a layout with a critical path, encounters, secrets, and pacing beats
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: design-mechanic
3
- description: "Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub."
3
+ description: "Design one mechanic in detail (input, feedback, failure modes, tunables) as a doc plus a script stub."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: gameplay-mechanics
@@ -271,3 +271,20 @@ This skill is a workflow that designs and scaffolds — the templates are runnab
271
271
  - `fps-controller` — FPS movement scaffolding
272
272
  - `gdscript-patterns` — state machines and other script patterns for complex mechanics
273
273
  - `audio-direction` — defines the SFX vocabulary the mechanic draws from
274
+
275
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
276
+ ## From a shell
277
+
278
+ 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.
279
+
280
+ | In this skill | Command |
281
+ |---|---|
282
+ | `summer_add_node` | `summer engine add-node` |
283
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
284
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
285
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
286
+ | `summer_input_map_bind` | `summer engine input-map-bind` |
287
+ | `summer_inspect_node` | `summer engine inspect-node` |
288
+ | `summer_save_scene` | `summer engine save-scene` |
289
+ | `summer_set_prop` | `summer engine set-prop` |
290
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/design-mechanic
2
2
  kind: skill
3
3
  version: 1.0.2
4
- summary: Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub.
4
+ summary: "Design one mechanic in detail (input, feedback, failure modes, tunables) as a doc plus a script stub."
5
5
  use_when:
6
6
  - designing one specific game mechanic in detail — input, response, feedback, failure modes, depth, tunables
7
7
  - add a grappling hook, dash, double jump, wall run, or parry
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: design-npc
3
- description: "Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree."
3
+ description: "Design enemy, NPC, boss or companion behavior: perception, state machine, telegraphs, script stub."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: ai-and-npcs
7
7
  user-invocable: true
8
- allowed-tools: Read Grep Edit Write summer_get_scene_tree summer_inspect_node summer_add_node summer_set_prop summer_set_resource_property summer_connect_signal summer_save_scene summer_get_script_errors summer_input_map_bind
8
+ allowed-tools: Read Grep Edit Write summer_get_scene_tree summer_inspect_node summer_run_script summer_add_node summer_set_prop summer_set_resource_property summer_connect_signal summer_save_scene summer_get_script_errors summer_input_map_bind
9
9
  paths: ["**/*.gd", "**/*.tscn"]
10
10
  ---
11
11
 
@@ -179,31 +179,31 @@ Identify where the NPC will live (an `Enemies` parent, or directly under World).
179
179
 
180
180
  **Preferred (Summer MCP):**
181
181
 
182
- Every tool below takes a required `scenePath` naming the exact `res://` scene;
183
- it is written out on the first line and elided after for readability. Better
184
- still, send the whole block as one `summer_batch(scenePath=..., ops=[...])` so
185
- the user can undo the enemy with a single Ctrl+Z.
182
+ One script builds the whole enemy; `scenePath` names the exact `res://` scene,
183
+ and the run is one undo step, so one Ctrl+Z removes the enemy:
186
184
 
187
185
  ```
188
- summer_add_node(scenePath="res://main.tscn", parent="./World/Enemies", type="CharacterBody3D", name="Enemy")
189
- summer_add_node(parent="./World/Enemies/Enemy", type="CollisionShape3D", name="Body")
190
- summer_add_node(parent="./World/Enemies/Enemy", type="MeshInstance3D", name="Mesh")
191
- summer_add_node(parent="./World/Enemies/Enemy", type="Area3D", name="Vision")
192
- summer_add_node(parent="./World/Enemies/Enemy/Vision", type="CollisionShape3D", name="VisionShape")
193
- summer_add_node(parent="./World/Enemies/Enemy", type="RayCast3D", name="Sight")
194
- summer_set_prop(path="./World/Enemies/Enemy/Sight", key="enabled", value="true")
195
- summer_set_prop(path="./World/Enemies/Enemy/Sight", key="target_position", value="Vector3(0, 0, -12)")
186
+ summer_run_script(scenePath="res://main.tscn", source="""
187
+ func run(ctx):
188
+ var enemy = ctx.add_node("CharacterBody3D", "Enemy", ctx.find("Enemies"))
189
+ ctx.add_node("CollisionShape3D", "Body", enemy, {"shape": CapsuleShape3D.new()})
190
+ ctx.add_node("MeshInstance3D", "Mesh", enemy, {"mesh": CapsuleMesh.new()})
191
+ var vision = ctx.add_node("Area3D", "Vision", enemy)
192
+ var sight_sphere = SphereShape3D.new()
193
+ sight_sphere.radius = 12.0
194
+ ctx.add_node("CollisionShape3D", "VisionShape", vision, {"shape": sight_sphere})
195
+ ctx.add_node("RayCast3D", "Sight", enemy, {"enabled": true, "target_position": Vector3(0, 0, -12)})
196
+ ctx.save_scene()
197
+ """)
196
198
  ```
197
199
 
198
- Give the Vision area its sphere. Either form works — a class-name string embeds
199
- the resource in the scene, a `res://` path reuses a shared one. Prefer the shared
200
- `.tres` when several enemy archetypes want the same sight radius:
200
+ The script embeds the sight sphere in the scene. When several enemy archetypes
201
+ want the same sight radius, share one file instead:
202
+ `{"shape": load("res://shapes/vision_sphere.tres")}`. Tuning one value later is
203
+ one call:
201
204
 
202
205
  ```
203
- summer_set_prop(scenePath="res://main.tscn", path="./World/Enemies/Enemy/Vision/VisionShape", key="shape", value="res://shapes/vision_sphere.tres")
204
- # or, embedded, then tune it:
205
- summer_set_prop(scenePath="res://main.tscn", path="./World/Enemies/Enemy/Vision/VisionShape", key="shape", value="SphereShape3D")
206
- summer_set_resource_property(scenePath="res://main.tscn", nodePath="./World/Enemies/Enemy/Vision/VisionShape", resourceProperty="shape", subProperty="radius", value="12.0")
206
+ summer_set_resource_property(scenePath="res://main.tscn", nodePath="./World/Enemies/Enemy/Vision/VisionShape", resourceProperty="shape", subProperty="radius", value="14.0")
207
207
  ```
208
208
 
209
209
  `summer_set_resource_property` works against scene-embedded (`[sub_resource]`)
@@ -224,9 +224,7 @@ summer_connect_signal(scenePath="res://main.tscn", emitter="./World/Enemies/Enem
224
224
  ```
225
225
 
226
226
  The parameters are `scenePath`, `emitter`, `signal`, `receiver`, `method`. There
227
- is no `from` / `to`; those spellings fail schema validation. The same required
228
- `scenePath` applies to `summer_add_node`, `summer_set_prop` and
229
- `summer_save_scene` in the block above.
227
+ is no `from` / `to`; those spellings fail schema validation.
230
228
 
231
229
  **Fallback (no MCP):** write the scene as `.tscn` text. Ask the user to paste their existing scene first, then propose a unified diff.
232
230
 
@@ -500,3 +498,24 @@ For an animated NPC in a runnable project: `summer create 3d-fps-simple-animated
500
498
  - `vfx-dissolve` — death dissolve recipe
501
499
  - `game-feel` — screen-feel discipline (camera shake, hit-stop)
502
500
  - `gdscript-patterns` — generic state machine and script patterns
501
+
502
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
503
+ ## From a shell
504
+
505
+ 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.
506
+
507
+ | In this skill | Command |
508
+ |---|---|
509
+ | `summer_add_node` | `summer engine add-node` |
510
+ | `summer_connect_signal` | `summer engine connect-signal` |
511
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
512
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
513
+ | `summer_input_map_bind` | `summer engine input-map-bind` |
514
+ | `summer_inspect_node` | `summer engine inspect-node` |
515
+ | `summer_play` | `summer engine play` |
516
+ | `summer_run_script` | `summer engine run-script` |
517
+ | `summer_save_scene` | `summer engine save-scene` |
518
+ | `summer_set_prop` | `summer engine set-prop` |
519
+ | `summer_set_resource_property` | `summer engine set-resource-property` |
520
+ | `summer_stop` | `summer engine stop` |
521
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/design-npc
2
2
  kind: skill
3
3
  version: 1.0.2
4
- summary: Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree.
4
+ summary: "Design enemy, NPC, boss or companion behavior: perception, state machine, telegraphs, script stub."
5
5
  use_when:
6
6
  - designing an enemy, NPC, boss, companion, civilian, or wave-spawned mob's behavior — perception, intent, state machine, telegraphs, defeat handling
7
7
  - enemies that patrol, chase, attack, or flee when they see the player (line of sight)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: diagnosing-perf-regressions
3
- description: "Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning."
3
+ description: "Find why frame rate, frame time or load time got worse since a known-good state."
4
4
  ---
5
5
 
6
6
  # Diagnosing Performance Regressions
@@ -208,3 +208,15 @@ If the MCP tools report the engine isn't running:
208
208
  - `investigating-bugs` — when the slow path turns out to be a logic bug (errors in a tight loop).
209
209
  - `debug` — when the perf issue is actually a crash or freeze.
210
210
  - `verification-before-completion` — to claim the fix worked, with numbers.
211
+
212
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
213
+ ## From a shell
214
+
215
+ 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.
216
+
217
+ | In this skill | Command |
218
+ |---|---|
219
+ | `summer_batch` | `summer engine batch` |
220
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
221
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
222
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/diagnosing-perf-regressions
2
2
  kind: skill
3
3
  version: 1.0.3
4
- summary: Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning.
4
+ summary: "Find why frame rate, frame time or load time got worse since a known-good state."
5
5
  use_when:
6
6
  - frame rate, frame time, or load time has gotten worse since a known-good state — 'it used to run at 60, now it's at 30'
7
7
  - bisecting recent scene, script, or asset changes to find which one slowed frame time or loading
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: driving-the-editor-ui
3
- description: "Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead."
3
+ description: "Drive the editor UI by name: run actions, clear blocking dialogs, switch screens, read a dock."
4
4
  ---
5
5
 
6
6
  # Driving the Editor UI
@@ -83,3 +83,26 @@ The engine refuses, with `denied_action`, anything that ends or replaces the ses
83
83
  | `no_renderer` | headless editor, no pixels | `summer_ui_tree`; pixels need a display |
84
84
 
85
85
  **Related skills:** `scene-scripting` and `verifying-scenes` own the scene loop this skill deliberately stays out of; `verification-before-completion` carries the done-claiming rules; `headless-scripting` is the route when there is no editor UI at all.
86
+
87
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
88
+ ## From a shell
89
+
90
+ 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.
91
+
92
+ | In this skill | Command |
93
+ |---|---|
94
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
95
+ | `summer_ui_actions` | `summer engine list-ui-actions`, `summer engine invoke-ui-action` |
96
+ | `summer_open_scene` | `summer engine open-scene` |
97
+ | `summer_project_setting` | `summer engine project-setting` |
98
+ | `summer_run_script` | `summer engine run-script` |
99
+ | `summer_save_scene` | `summer engine save-scene` |
100
+ | `summer_screenshot` | `summer engine screenshot` |
101
+ | `summer_select_node` | `summer engine select-node` |
102
+ | `summer_set_prop` | `summer engine set-prop` |
103
+ | `summer_snapshot_diff` | `summer engine snapshot-diff` |
104
+ | `summer_ui_activate` | `summer engine ui-activate` |
105
+ | `summer_ui_screenshot` | `summer engine ui-screenshot` |
106
+ | `summer_ui_tree` | `summer engine ui-tree` |
107
+ | `summer_world_snapshot` | `summer engine world-snapshot` |
108
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/driving-the-editor-ui
2
2
  kind: skill
3
3
  version: 1.0.0
4
- summary: "Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead."
4
+ summary: "Drive the editor UI by name: run actions, clear blocking dialogs, switch screens, read a dock."
5
5
  use_when:
6
6
  - an editor-workflow step a human would do with the mouse — open the Import dock, switch the 2D/3D/Script main screen, toggle a bottom panel, open an editor dialog by name
7
7
  - a dialog or popup is blocking the editor and tool calls come back modal_open — see it (summer_ui_tree root dialogs) and clear it (summer_ui_activate action dismiss_dialog)
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: environment-kit
3
- description: "Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style."
3
+ description: "Generate a modular environment kit: walls, floor tiles, pillars, doors, arches in one visual style."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: 3d-assets
7
7
  user-invocable: true
8
- allowed-tools: Read Grep summer_search_assets summer_list_my_assets summer_get_asset summer_import_asset_by_id summer_generate_3d summer_generate_image summer_import_from_url summer_add_node summer_set_prop summer_inspect_node summer_get_scene_tree summer_save_scene
8
+ allowed-tools: Read Grep summer_assets_search summer_assets_get summer_import_asset_by_id summer_assets_generate_3d summer_assets_generate_image summer_import_from_url summer_add_node summer_set_prop summer_inspect_node summer_get_scene_tree summer_save_scene summer_jobs_wait summer_call
9
9
  paths: ["assets/kits/**", "assets/models/**", "**/*.tscn", "**/*.gd"]
10
10
  ---
11
11
 
@@ -13,7 +13,7 @@ paths: ["assets/kits/**", "assets/models/**", "**/*.tscn", "**/*.gd"]
13
13
 
14
14
  A kit is a *family* of meshes — wall, floor, door, pillar, corner, arch — that the level designer snaps together to build interiors and exteriors. The skill exists to solve **one specific failure mode**: generating each piece with a fresh prompt produces six pieces that look like they came from six different games. The fix is the **style anchor pattern** — generate one piece first, lock its prompt suffix, and reuse that exact suffix for every subsequent piece.
15
15
 
16
- The backing tool is `summer_generate_3d`, called once per piece. A 6-piece kit is six generations and about 5 minutes. Generation uses credits, so confirm scope before starting.
16
+ The backing operation is `assets.generate_3d`, called once per piece; each call answers with a job that `jobs.wait` follows. A 6-piece kit is six generations and about 5 minutes. Generation uses credits, so confirm scope before starting (`dryRun: true` on one piece's call gives its credits).
17
17
 
18
18
  ## When to use
19
19
 
@@ -63,7 +63,7 @@ Kit pieces only feel modular if they snap to a fixed grid. Pick the grid before
63
63
  | **2m** | Standard interiors (homes, taverns, offices) | Wall = 2×3×0.3m. Floor = 2×2m. Halves piece count. |
64
64
  | **4m** | Exteriors and large halls (temples, warehouses, throne rooms) | Wall = 4×4×0.4m. Floor = 4×4m. Quarter the piece count for the same area. |
65
65
 
66
- **Critical:** include the dimensions in the prompt. `summer_generate_3d` doesn't enforce them, but Hunyuan respects scale cues — `2 meter tall wall section` produces a mesh that imports near 2m tall. Then verify with `summer_inspect_resource` and scale-correct in the editor if needed.
66
+ **Critical:** include the dimensions in the prompt. `assets.generate_3d` doesn't enforce them, but Hunyuan respects scale cues — `2 meter tall wall section` produces a mesh that imports near 2m tall. Then verify with `summer_inspect_resource` and scale-correct in the editor if needed.
67
67
 
68
68
  ## Steps
69
69
 
@@ -76,13 +76,13 @@ Kit pieces only feel modular if they snap to a fixed grid. Pick the grid before
76
76
  Use the prop-style prompt with explicit dimensions:
77
77
 
78
78
  ```
79
- summer_generate_3d(
80
- prompt="A 2 meter wide by 3 meter tall stone dungeon wall section, mossy granite blocks with iron reinforcements, torch-bracket sconce, weathered surface. Game asset, centered, stylized low-poly game art, warm torchlight palette, white background, isolated object.",
81
- model="hunyuan",
82
- options={ target_polycount: 1500 },
83
- wait=true
84
- )
85
- summer_get_asset(assetId="<assetId>")
79
+ assets.generate_3d({
80
+ prompt: "A 2 meter wide by 3 meter tall stone dungeon wall section, mossy granite blocks with iron reinforcements, torch-bracket sconce, weathered surface. Game asset, centered, stylized low-poly game art, warm torchlight palette, white background, isolated object.",
81
+ model: "hunyuan",
82
+ targetPolycount: 1500
83
+ })
84
+ jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 }) // again until finished; result.assetId
85
+ assets.get({ assetId: "<assetId>" })
86
86
  summer_import_asset_by_id(assetId="<assetId>", path="res://assets/kits/dungeon/wall.glb")
87
87
  ```
88
88
 
@@ -90,19 +90,19 @@ Show the result to the user. **Iterate the anchor until approved** — every oth
90
90
 
91
91
  ### 3. Lock the suffix and generate the remaining pieces
92
92
 
93
- Once the user says "yes, that's the look", store the locked suffix and crank through the rest. Same model, same polycount, same `options`. Only the object description changes.
93
+ Once the user says "yes, that's the look", store the locked suffix and crank through the rest. Same model, same `targetPolycount` scale. Only the object description changes. Start every piece first, then wait on the jobs: they run side by side.
94
94
 
95
95
  ```
96
96
  # Floor
97
- summer_generate_3d(prompt="A 2 by 2 meter square stone dungeon floor tile, mossy granite blocks with iron reinforcements, weathered surface. Game asset, centered, stylized low-poly game art, warm torchlight palette, white background, isolated object.", model="hunyuan", options={ target_polycount: 800 })
97
+ assets.generate_3d({ prompt: "A 2 by 2 meter square stone dungeon floor tile, mossy granite blocks with iron reinforcements, weathered surface. Game asset, centered, stylized low-poly game art, warm torchlight palette, white background, isolated object.", model: "hunyuan", targetPolycount: 800 })
98
98
 
99
99
  # Pillar
100
- summer_generate_3d(prompt="A 3 meter tall stone dungeon pillar, square base, fluted shaft, mossy granite blocks with iron reinforcements, weathered surface. Game asset, ...", model="hunyuan", options={ target_polycount: 1500 })
100
+ assets.generate_3d({ prompt: "A 3 meter tall stone dungeon pillar, square base, fluted shaft, mossy granite blocks with iron reinforcements, weathered surface. Game asset, ...", model: "hunyuan", targetPolycount: 1500 })
101
101
 
102
- # Door, Corner, Arch — same pattern.
102
+ # Door, Corner, Arch — same pattern. Then jobs.wait on each job id.
103
103
  ```
104
104
 
105
- For each completed generation, capture the returned `assetId`, then import that
105
+ For each finished job, capture the returned `assetId`, then import that
106
106
  exact ID with `summer_import_asset_by_id`. Do not search for generated pieces by
107
107
  name after creating them; exact IDs are the production path.
108
108
 
@@ -149,6 +149,10 @@ Check the AABB. If the wall is 1.85m tall when you asked for 3m, scale it in the
149
149
  - **Sci-fi kit (corridors, doors, terminals).** The style suffix becomes critical — `clean panels, soft cyan emissive trim, brushed metal, white background, isolated object`. Hard surfaces drift more than organic ones; review every piece.
150
150
  - **The user wants to add a piece later.** The locked suffix lives in the kit's notes (drop it in `assets/kits/dungeon/STYLE.md` if the user wants persistence). Reuse it verbatim for any addition — never re-derive.
151
151
 
152
+ ## Without Summer Engine
153
+
154
+ In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-3 and skip steps 4-5 (staging in a kit scene). Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. Tell the person the grid from step 1, so they can check scale and pivots in their own engine.
155
+
152
156
  ## Fallback (no MCP)
153
157
 
154
158
  1. Run each prompt at the Summer dashboard (or Hunyuan / Trellis web UIs), keeping the locked suffix.
@@ -173,3 +177,26 @@ After the kit is staged:
173
177
  - `asset-strategy` — Pipeline 2 (textures + CSG) is the cheaper alternative when pieces are flat.
174
178
  - `scene-composition` — how to organize the kit scene and the level scenes that consume it.
175
179
  - `3d-lighting` — interior kit pieces typically need warm point lights at sconce positions.
180
+
181
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
182
+ ## From a shell
183
+
184
+ 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.
185
+
186
+ | In this skill | Command |
187
+ |---|---|
188
+ | `assets.generate_3d`, `summer_assets_generate_3d` | `summer assets generate-3d` |
189
+ | `summer_assets_generate_image` | `summer assets generate-image` |
190
+ | `summer_assets_get` | `summer assets get` |
191
+ | `summer_assets_search` | `summer assets search` |
192
+ | `summer_add_node` | `summer engine add-node` |
193
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
194
+ | `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
195
+ | `summer_import_from_url` | `summer engine import-from-url` |
196
+ | `summer_inspect_node` | `summer engine inspect-node` |
197
+ | `summer_inspect_resource` | `summer engine inspect-resource` |
198
+ | `summer_instantiate_scene` | `summer engine instantiate-scene` |
199
+ | `summer_save_scene` | `summer engine save-scene` |
200
+ | `summer_set_prop` | `summer engine set-prop` |
201
+ | `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
202
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/environment-kit
2
2
  kind: skill
3
3
  version: 1.0.3
4
- summary: Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style.
4
+ summary: "Generate a modular environment kit: walls, floor tiles, pillars, doors, arches in one visual style."
5
5
  use_when:
6
6
  - generating a modular environment kit of snap-together pieces that form a level — dungeon kit, modular walls, interior pieces
7
7
  - building a dungeon, interior, or town kit from repeatable pieces that snap together in one style
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: export-and-ship
3
- description: "Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval."
3
+ description: "Prepare a game export: check templates and targets, validate release assets, build after approval."
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: deployment
@@ -295,7 +295,7 @@ For each build:
295
295
 
296
296
  Per platform, point the user at the correct upload path:
297
297
 
298
- - **summer.games:** `summer_export_game` writes the summer.games `.zip`; `summer_publish_build` uploads it to the game's store listing after the user confirms the exact game, file and version (needs `summer login --store`). If it answers `store_auth_refused`, the user uploads the `.zip` in Studio instead.
298
+ - **summer.games:** `summer_export_game` writes the summer.games `.zip`; `store.upload_file` uploads it to the game's store listing after the user confirms the exact game, file and version (needs `summer login --store`; through `summer_call` when your client does not list it). If the store refuses this machine's sign-in, the user uploads the `.zip` in Studio instead. The `publish-your-game` skill takes it from there to `store.publish`.
299
299
  - Per platform, the store takes: iPhone, Android, macOS and Windows in the Summer apps = one summer.games bundle (`summer_export_game` `targets`, format `bundle`; no template, no signing; a game without a server targets `ios`/`android` only). Web = an HTML5 `.zip` on Summer's WebGPU Forward+ template (`targets:["web"]`; the project must render with Forward+ or Mobile). A macOS or Windows download for the store page = `targets:["macos"]` or `["windows"]` with format `download`. Download exports need the template: `summer_export_templates` `install` fetches it from Summer's CDN.
300
300
  - Hosted games: if `summer_export_game` fails with "… is in the source graph's authority_engine domain, which the client pack leaves out", an authority root in `source-domains.json` holds a file the client loads (often the composition `.tres`). Narrow that root to the server-only files, or move the shared file under a `shared` path, then export again. Every exporter message is in the `multiplayer-publish` skill's export-errors.md; the folder rules are in `multiplayer-project`.
301
301
  - Every summer.games bundle: export with the released Summer editor from the download page, never a development build, and export again after updating Summer. Otherwise its scripts can fail to compile on players' devices and the game opens to an empty window, though every upload check passes. `release-readiness` check 7 proves it.
@@ -358,7 +358,7 @@ Use this as a one-shot grep before any export:
358
358
 
359
359
  ## Collaborative protocol
360
360
 
361
- This skill produces release artifacts. Always ask before each build is invoked. Group platforms — "I'm about to build Windows + Mac + Linux release configs into `build/`. OK?". See `../../references/collaborative-protocol/collaborative-protocol.md`.
361
+ This skill produces release artifacts. Always ask before each build is invoked. Group platforms — "I'm about to build Windows + Mac + Linux release configs into `build/`. OK?". See `summer_docs_read` id `reference/collaborative-protocol`.
362
362
 
363
363
  ## Want a working starter?
364
364
 
@@ -366,9 +366,32 @@ No template — this is a workflow. Each project's export config and store asset
366
366
 
367
367
  ## See also
368
368
 
369
- - `../../references/mcp-tools-reference/mcp-tools-reference.md` — full MCP tool list
370
- - `../../references/godot-version/godot-version.md` — Summer compatibility and
369
+ - `summer_docs_read` id `reference/mcp-tools-reference` — full MCP tool list
370
+ - `summer_docs_read` id `reference/godot-version` — Summer compatibility and
371
371
  export-template versioning
372
- - `../../references/collaborative-protocol/collaborative-protocol.md` — "May I write" pattern
372
+ - `summer_docs_read` id `reference/collaborative-protocol` — "May I write" pattern
373
373
  - `headless-scripting` — the headless CLI pattern the export command follows
374
374
  - `tune-performance` — pre-ship performance pass
375
+
376
+ <!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
377
+ ## From a shell
378
+
379
+ 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.
380
+
381
+ | In this skill | Command |
382
+ |---|---|
383
+ | `summer_docs_read` | `summer docs read` |
384
+ | `summer_capture_gameplay` | `summer engine capture-gameplay` |
385
+ | `summer_export_game` | `summer engine export-game` |
386
+ | `summer_export_templates` | `summer engine export-templates` |
387
+ | `summer_get_console` | `summer engine get-console` |
388
+ | `summer_get_diagnostics` | `summer engine get-diagnostics` |
389
+ | `summer_get_project_context` | `summer engine get-project-context` |
390
+ | `summer_get_scene_tree` | `summer engine get-scene-tree` |
391
+ | `summer_get_script_errors` | `summer engine get-script-errors` |
392
+ | `summer_inspect_node` | `summer engine inspect-node` |
393
+ | `summer_project_setting` | `summer engine project-setting` |
394
+ | `summer_screenshot` | `summer engine screenshot` |
395
+ | `store.publish` | `summer store publish` |
396
+ | `store.upload_file` | `summer store upload-file` |
397
+ <!-- /shell-commands -->
@@ -1,7 +1,7 @@
1
1
  id: skill/export-and-ship
2
2
  kind: skill
3
3
  version: 1.0.3
4
- summary: "Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval."
4
+ summary: "Prepare a game export: check templates and targets, validate release assets, build after approval."
5
5
  use_when:
6
6
  - the user wants to assess or prepare a Summer game export — Steam, itch, HTML5, iOS, Android targets as available in the installed build
7
7
  - the user says 'publish my game', 'release it', or 'ship a build to players' — produce the build they will upload