summer-engine 2.8.2 → 3.1.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 (790) hide show
  1. package/.claude-plugin/marketplace.json +27 -7
  2. package/.claude-plugin/plugin.json +99 -83
  3. package/.codex-plugin/plugin.json +112 -82
  4. package/.cursor-plugin/plugin.json +119 -83
  5. package/.factory-plugin/plugin.json +100 -3
  6. package/.mcp.json +6 -1
  7. package/.opencode/INSTALL.md +7 -4
  8. package/.opencode/plugins/summer.js +31 -18
  9. package/AGENTS.md +107 -34
  10. package/CHANGELOG.md +149 -44
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +161 -393
  15. package/assets/api-docs.json.gz +0 -0
  16. package/assets/autopilot/README.md +20 -6
  17. package/assets/autopilot/autopilot.gd +80 -26
  18. package/assets/autopilot/run.sh +132 -7
  19. package/assets/navigation/web-routes.json +719 -0
  20. package/commands/gameskill.md +10 -108
  21. package/commands/summer.md +72 -4
  22. package/dist/bin/summer.js +6 -87
  23. package/dist/cli/banner.d.ts +1 -0
  24. package/dist/cli/banner.js +33 -0
  25. package/dist/{commands → cli/commands}/config.js +1 -1
  26. package/dist/cli/commands/create.d.ts +30 -0
  27. package/dist/cli/commands/create.js +212 -0
  28. package/dist/{commands → cli/commands}/debug.js +2 -2
  29. package/dist/cli/commands/doctor.d.ts +2 -0
  30. package/dist/cli/commands/doctor.js +18 -0
  31. package/dist/cli/commands/events.d.ts +57 -0
  32. package/dist/cli/commands/events.js +158 -0
  33. package/dist/cli/commands/install.d.ts +50 -0
  34. package/dist/cli/commands/install.js +447 -0
  35. package/dist/cli/commands/list.js +72 -0
  36. package/dist/{commands → cli/commands}/login.js +33 -17
  37. package/dist/{commands → cli/commands}/logout.d.ts +1 -0
  38. package/dist/cli/commands/logout.js +19 -0
  39. package/dist/{commands → cli/commands}/memory.d.ts +1 -8
  40. package/dist/{commands → cli/commands}/memory.js +20 -11
  41. package/dist/cli/commands/open.d.ts +45 -0
  42. package/dist/cli/commands/open.js +216 -0
  43. package/dist/{commands → cli/commands}/plan.js +2 -2
  44. package/dist/{commands → cli/commands}/publish.js +1 -1
  45. package/dist/{commands → cli/commands}/releases.js +1 -1
  46. package/dist/cli/commands/run.d.ts +19 -0
  47. package/dist/cli/commands/run.js +255 -0
  48. package/dist/cli/commands/setup.js +158 -0
  49. package/dist/{commands → cli/commands}/skills.js +121 -251
  50. package/dist/{commands → cli/commands}/status.d.ts +1 -0
  51. package/dist/cli/commands/status.js +62 -0
  52. package/dist/cli/commands/tool.d.ts +11 -0
  53. package/dist/cli/commands/tool.js +121 -0
  54. package/dist/cli/index.d.ts +6 -0
  55. package/dist/cli/index.js +89 -0
  56. package/dist/cli/root-action.d.ts +7 -0
  57. package/dist/cli/root-action.js +15 -0
  58. package/dist/{lib → core}/api-client.d.ts +106 -15
  59. package/dist/{lib → core}/api-client.js +267 -75
  60. package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
  61. package/dist/{lib → core}/async-op-lifecycle.js +3 -4
  62. package/dist/{lib → core}/auth.d.ts +14 -6
  63. package/dist/{lib → core}/auth.js +56 -40
  64. package/dist/core/capabilities/agent-playbook.d.ts +20 -0
  65. package/dist/core/capabilities/agent-playbook.js +218 -0
  66. package/dist/core/capabilities/api-docs.d.ts +36 -0
  67. package/dist/core/capabilities/api-docs.js +118 -0
  68. package/dist/core/capabilities/asset-import.d.ts +49 -0
  69. package/dist/core/capabilities/asset-import.js +134 -0
  70. package/dist/core/capabilities/camera-view.d.ts +98 -0
  71. package/dist/core/capabilities/camera-view.js +222 -0
  72. package/dist/core/capabilities/capture.d.ts +63 -0
  73. package/dist/core/capabilities/capture.js +67 -0
  74. package/dist/core/capabilities/console-read.d.ts +17 -0
  75. package/dist/core/capabilities/console-read.js +21 -0
  76. package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
  77. package/dist/{lib → core/capabilities}/creator.js +14 -33
  78. package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
  79. package/dist/{lib → core/capabilities}/debug-report.js +12 -31
  80. package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
  81. package/dist/{commands → core/capabilities}/doctor.js +47 -73
  82. package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
  83. package/dist/core/capabilities/engine-fallbacks.js +36 -0
  84. package/dist/core/capabilities/engine-ops.d.ts +33 -0
  85. package/dist/core/capabilities/engine-ops.js +145 -0
  86. package/dist/core/capabilities/engine-receipt.d.ts +53 -0
  87. package/dist/core/capabilities/engine-receipt.js +134 -0
  88. package/dist/core/capabilities/events.d.ts +200 -0
  89. package/dist/core/capabilities/events.js +383 -0
  90. package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
  91. package/dist/core/capabilities/fabricate-mesh.js +165 -0
  92. package/dist/core/capabilities/frame-quality.d.ts +71 -0
  93. package/dist/core/capabilities/frame-quality.js +449 -0
  94. package/dist/core/capabilities/game-task-plan.d.ts +66 -0
  95. package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
  96. package/dist/core/capabilities/hdri-import.d.ts +90 -0
  97. package/dist/core/capabilities/hdri-import.js +250 -0
  98. package/dist/core/capabilities/image-generation.d.ts +24 -0
  99. package/dist/core/capabilities/image-generation.js +22 -0
  100. package/dist/core/capabilities/navigation/open.d.ts +156 -0
  101. package/dist/core/capabilities/navigation/open.js +567 -0
  102. package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
  103. package/dist/core/capabilities/navigation/render-product-map.js +84 -0
  104. package/dist/core/capabilities/navigation/targets.d.ts +87 -0
  105. package/dist/core/capabilities/navigation/targets.js +250 -0
  106. package/dist/core/capabilities/play-determinism.d.ts +35 -0
  107. package/dist/core/capabilities/play-determinism.js +86 -0
  108. package/dist/core/capabilities/project-context.d.ts +114 -0
  109. package/dist/core/capabilities/project-context.js +249 -0
  110. package/dist/core/capabilities/runtime-control.d.ts +540 -0
  111. package/dist/core/capabilities/runtime-control.js +1011 -0
  112. package/dist/core/capabilities/scene-kind.d.ts +19 -0
  113. package/dist/core/capabilities/scene-kind.js +137 -0
  114. package/dist/core/capabilities/scene-script.d.ts +38 -0
  115. package/dist/core/capabilities/scene-script.js +45 -0
  116. package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
  117. package/dist/core/capabilities/tool-dispatch.js +1490 -0
  118. package/dist/core/capabilities/ui-control.d.ts +179 -0
  119. package/dist/core/capabilities/ui-control.js +423 -0
  120. package/dist/core/capabilities/variant-types.d.ts +22 -0
  121. package/dist/core/capabilities/variant-types.js +101 -0
  122. package/dist/core/capability-skew.d.ts +205 -0
  123. package/dist/core/capability-skew.js +386 -0
  124. package/dist/{lib → core}/config.d.ts +11 -1
  125. package/dist/{lib → core}/config.js +13 -2
  126. package/dist/core/embeddings.d.ts +78 -0
  127. package/dist/core/embeddings.js +166 -0
  128. package/dist/core/engine-install.d.ts +105 -0
  129. package/dist/core/engine-install.js +190 -0
  130. package/dist/core/engine.d.ts +94 -0
  131. package/dist/{lib → core}/engine.js +74 -28
  132. package/dist/core/feedback/client.d.ts +88 -0
  133. package/dist/core/feedback/client.js +182 -0
  134. package/dist/{lib → core}/format.d.ts +0 -1
  135. package/dist/{lib → core}/format.js +1 -1
  136. package/dist/core/headless/connection.d.ts +86 -0
  137. package/dist/core/headless/connection.js +97 -0
  138. package/dist/core/headless/editor-connection.d.ts +26 -0
  139. package/dist/core/headless/editor-connection.js +81 -0
  140. package/dist/core/headless/mcp-routing.d.ts +38 -0
  141. package/dist/core/headless/mcp-routing.js +83 -0
  142. package/dist/core/headless/registry.d.ts +91 -0
  143. package/dist/core/headless/registry.js +226 -0
  144. package/dist/core/headless/resolve.d.ts +46 -0
  145. package/dist/core/headless/resolve.js +75 -0
  146. package/dist/core/headless/spawn.d.ts +46 -0
  147. package/dist/core/headless/spawn.js +205 -0
  148. package/dist/core/headless/worker-connection.d.ts +96 -0
  149. package/dist/core/headless/worker-connection.js +353 -0
  150. package/dist/core/headless/worker-engine-client.d.ts +58 -0
  151. package/dist/core/headless/worker-engine-client.js +246 -0
  152. package/dist/core/launch-posture.d.ts +170 -0
  153. package/dist/core/launch-posture.js +317 -0
  154. package/dist/core/library-read.d.ts +73 -0
  155. package/dist/core/library-read.js +279 -0
  156. package/dist/core/library-search.d.ts +143 -0
  157. package/dist/core/library-search.js +301 -0
  158. package/dist/{lib → core}/log-filters.js +4 -2
  159. package/dist/{lib → core}/mcp-log.js +2 -17
  160. package/dist/core/package-root.d.ts +9 -0
  161. package/dist/core/package-root.js +11 -0
  162. package/dist/core/redact.d.ts +20 -0
  163. package/dist/core/redact.js +64 -0
  164. package/dist/core/registry-search.d.ts +167 -0
  165. package/dist/core/registry-search.js +358 -0
  166. package/dist/core/skills-registry.d.ts +55 -0
  167. package/dist/core/skills-registry.js +106 -0
  168. package/dist/{lib → core}/store.js +11 -7
  169. package/dist/{lib → core}/summer-compatibility.js +3 -3
  170. package/dist/{lib → core}/telemetry.js +5 -2
  171. package/dist/core/templates.d.ts +98 -0
  172. package/dist/core/templates.js +241 -0
  173. package/dist/core/tool-errors.d.ts +30 -0
  174. package/dist/core/tool-errors.js +40 -0
  175. package/dist/core/trajectory.d.ts +80 -0
  176. package/dist/core/trajectory.js +307 -0
  177. package/dist/core/util/http.d.ts +13 -0
  178. package/dist/core/util/http.js +28 -0
  179. package/dist/core/util/json.d.ts +12 -0
  180. package/dist/core/util/json.js +21 -0
  181. package/dist/core/util/process.d.ts +3 -0
  182. package/dist/core/util/process.js +13 -0
  183. package/dist/core/util/sleep.d.ts +1 -0
  184. package/dist/core/util/sleep.js +3 -0
  185. package/dist/core/version.d.ts +3 -0
  186. package/dist/core/version.js +5 -0
  187. package/dist/installer/agent-config.d.ts +63 -0
  188. package/dist/installer/agent-config.js +540 -0
  189. package/dist/installer/agent-table.d.ts +103 -0
  190. package/dist/installer/agent-table.js +584 -0
  191. package/dist/installer/legacy-skills.d.ts +26 -0
  192. package/dist/installer/legacy-skills.js +53 -0
  193. package/dist/installer/setup.d.ts +76 -0
  194. package/dist/installer/setup.js +148 -0
  195. package/dist/installer/skill-locations.d.ts +36 -0
  196. package/dist/installer/skill-locations.js +91 -0
  197. package/dist/installer/version-check.d.ts +178 -0
  198. package/dist/installer/version-check.js +479 -0
  199. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  200. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  201. package/dist/mcp/server.d.ts +23 -3
  202. package/dist/mcp/server.js +122 -28
  203. package/dist/mcp/tools/asset-tools.js +62 -142
  204. package/dist/mcp/tools/creator-tools.js +5 -23
  205. package/dist/mcp/tools/debug-tools.js +61 -18
  206. package/dist/mcp/tools/event-tools.d.ts +14 -0
  207. package/dist/mcp/tools/event-tools.js +41 -0
  208. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  209. package/dist/mcp/tools/fabricate-tools.js +28 -0
  210. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  211. package/dist/mcp/tools/feedback-tools.js +88 -0
  212. package/dist/mcp/tools/file-tools.js +6 -53
  213. package/dist/mcp/tools/generate-tools.js +37 -63
  214. package/dist/mcp/tools/library-tools.d.ts +11 -0
  215. package/dist/mcp/tools/library-tools.js +42 -0
  216. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  217. package/dist/mcp/tools/navigation-tools.js +37 -0
  218. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  219. package/dist/mcp/tools/perception-tools.js +146 -0
  220. package/dist/mcp/tools/project-tools.d.ts +14 -0
  221. package/dist/mcp/tools/project-tools.js +72 -281
  222. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  223. package/dist/mcp/tools/runtime-tools.js +92 -0
  224. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  225. package/dist/mcp/tools/scene-tools.js +68 -119
  226. package/dist/mcp/tools/script-tools.d.ts +3 -0
  227. package/dist/mcp/tools/script-tools.js +118 -0
  228. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  229. package/dist/mcp/tools/spatial-tools.js +485 -0
  230. package/dist/mcp/tools/text-json.d.ts +8 -0
  231. package/dist/mcp/tools/text-json.js +12 -0
  232. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  233. package/dist/mcp/tools/ui-tools.js +82 -0
  234. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  235. package/dist/mcp/tools/visual-tools.js +383 -101
  236. package/dist/mcp/tools/with-engine.d.ts +9 -15
  237. package/dist/mcp/tools/with-engine.js +60 -96
  238. package/dist/project-memory/project-manifest.d.ts +36 -0
  239. package/dist/project-memory/project-manifest.js +50 -0
  240. package/dist/project-memory/project-memory.d.ts +57 -0
  241. package/dist/{lib → project-memory}/project-memory.js +46 -0
  242. package/gemini-extension.json +103 -2
  243. package/hooks/hooks-cursor.json +2 -2
  244. package/hooks/hooks.json +2 -1
  245. package/hooks/pre-commit-doctor.sh +45 -39
  246. package/hooks/run-hook.cmd +30 -23
  247. package/hooks/run-hook.sh +20 -0
  248. package/hooks/session-start.sh +18 -7
  249. package/integrations/README.md +99 -0
  250. package/integrations/amp/README.md +12 -0
  251. package/integrations/amp/manifest-target.json +3 -0
  252. package/integrations/antigravity/README.md +12 -0
  253. package/integrations/antigravity/manifest-target.json +3 -0
  254. package/integrations/claude/README.md +19 -0
  255. package/integrations/claude/manifest-target.json +16 -0
  256. package/integrations/claude-desktop/README.md +12 -0
  257. package/integrations/claude-desktop/manifest-target.json +3 -0
  258. package/integrations/cline/README.md +12 -0
  259. package/integrations/cline/manifest-target.json +3 -0
  260. package/integrations/cline-cli/README.md +12 -0
  261. package/integrations/cline-cli/manifest-target.json +3 -0
  262. package/integrations/codex/README.md +15 -0
  263. package/integrations/codex/manifest-target.json +5 -0
  264. package/integrations/copilot-jetbrains/README.md +12 -0
  265. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  266. package/integrations/crush/README.md +12 -0
  267. package/integrations/crush/manifest-target.json +3 -0
  268. package/integrations/cursor/README.md +16 -0
  269. package/integrations/cursor/manifest-target.json +5 -0
  270. package/integrations/factory/README.md +26 -0
  271. package/integrations/factory/manifest-target.json +5 -0
  272. package/integrations/gemini/README.md +26 -0
  273. package/integrations/gemini/manifest-target.json +5 -0
  274. package/integrations/github-copilot/README.md +12 -0
  275. package/integrations/github-copilot/manifest-target.json +3 -0
  276. package/integrations/goose/README.md +12 -0
  277. package/integrations/goose/manifest-target.json +3 -0
  278. package/integrations/grok-build/README.md +12 -0
  279. package/integrations/grok-build/manifest-target.json +3 -0
  280. package/integrations/hermes/README.md +12 -0
  281. package/integrations/hermes/manifest-target.json +3 -0
  282. package/integrations/junie/README.md +12 -0
  283. package/integrations/junie/manifest-target.json +3 -0
  284. package/integrations/kilo-code/README.md +12 -0
  285. package/integrations/kilo-code/manifest-target.json +3 -0
  286. package/integrations/kimi-code/README.md +12 -0
  287. package/integrations/kimi-code/manifest-target.json +3 -0
  288. package/integrations/kiro/README.md +12 -0
  289. package/integrations/kiro/manifest-target.json +3 -0
  290. package/integrations/lm-studio/README.md +12 -0
  291. package/integrations/lm-studio/manifest-target.json +3 -0
  292. package/integrations/mistral-vibe/README.md +12 -0
  293. package/integrations/mistral-vibe/manifest-target.json +3 -0
  294. package/integrations/opencode/README.md +12 -0
  295. package/integrations/opencode/manifest-target.json +3 -0
  296. package/integrations/qoder/README.md +12 -0
  297. package/integrations/qoder/manifest-target.json +3 -0
  298. package/integrations/qwen-code/README.md +12 -0
  299. package/integrations/qwen-code/manifest-target.json +3 -0
  300. package/integrations/roo-code/README.md +14 -0
  301. package/integrations/roo-code/manifest-target.json +3 -0
  302. package/integrations/rovo-dev/README.md +12 -0
  303. package/integrations/rovo-dev/manifest-target.json +3 -0
  304. package/integrations/trae/README.md +12 -0
  305. package/integrations/trae/manifest-target.json +3 -0
  306. package/integrations/visual-studio/README.md +12 -0
  307. package/integrations/visual-studio/manifest-target.json +3 -0
  308. package/integrations/vscode-copilot/README.md +12 -0
  309. package/integrations/vscode-copilot/manifest-target.json +3 -0
  310. package/integrations/warp/README.md +12 -0
  311. package/integrations/warp/manifest-target.json +3 -0
  312. package/integrations/windsurf/README.md +12 -0
  313. package/integrations/windsurf/manifest-target.json +3 -0
  314. package/integrations/zed/README.md +12 -0
  315. package/integrations/zed/manifest-target.json +3 -0
  316. package/library/references/collaborative-protocol/resource.yaml +24 -0
  317. package/library/references/gd-style/resource.yaml +24 -0
  318. package/{references → library/references/godot-version}/godot-version.md +6 -6
  319. package/library/references/godot-version/resource.yaml +22 -0
  320. package/library/references/headless-routing/headless-routing.md +46 -0
  321. package/library/references/headless-routing/resource.yaml +24 -0
  322. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  323. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  324. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  325. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  326. package/library/references/product-map/product-map.md +103 -0
  327. package/library/references/product-map/resource.yaml +33 -0
  328. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  329. package/library/references/public-surface-language/resource.yaml +17 -0
  330. package/library/references/summer-folder/resource.yaml +20 -0
  331. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  332. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  333. package/library/skills/3d-lighting/resource.yaml +27 -0
  334. package/library/skills/README.md +242 -0
  335. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  336. package/library/skills/adaptive-music/resource.yaml +28 -0
  337. package/library/skills/agent-playtesting/SKILL.md +148 -0
  338. package/library/skills/agent-playtesting/resource.yaml +52 -0
  339. package/library/skills/ambient-bed/resource.yaml +24 -0
  340. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  341. package/library/skills/animated-loop/resource.yaml +27 -0
  342. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  343. package/library/skills/animation-tree/resource.yaml +33 -0
  344. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  345. package/library/skills/art-direction/resource.yaml +29 -0
  346. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  347. package/library/skills/asset-strategy/resource.yaml +63 -0
  348. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  349. package/library/skills/audio-direction/resource.yaml +32 -0
  350. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  351. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  352. package/library/skills/brainstorm-game/resource.yaml +30 -0
  353. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  354. package/library/skills/brainstorming/resource.yaml +23 -0
  355. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  356. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  357. package/library/skills/browse-templates/resource.yaml +23 -0
  358. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  359. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  360. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  361. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  362. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  363. package/library/skills/character-model/resource.yaml +36 -0
  364. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  365. package/library/skills/character-portrait/resource.yaml +30 -0
  366. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  367. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  368. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  369. package/library/skills/concept-art/resource.yaml +34 -0
  370. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  371. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  372. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  373. package/library/skills/debug/resource.yaml +31 -0
  374. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  375. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  376. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  377. package/library/skills/design-level/resource.yaml +31 -0
  378. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  379. package/library/skills/design-mechanic/resource.yaml +31 -0
  380. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  381. package/library/skills/design-npc/resource.yaml +29 -0
  382. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  383. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  384. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  385. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  386. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  387. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  388. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  389. package/library/skills/environment-kit/resource.yaml +29 -0
  390. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  391. package/library/skills/export-and-ship/resource.yaml +32 -0
  392. package/library/skills/fabricating-assets/SKILL.md +195 -0
  393. package/library/skills/fabricating-assets/resource.yaml +52 -0
  394. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  395. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  396. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  397. package/library/skills/fps-controller/resource.yaml +29 -0
  398. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  399. package/library/skills/game-feel/resource.yaml +27 -0
  400. package/library/skills/gameskill/SKILL.md +64 -0
  401. package/library/skills/gameskill/resource.yaml +22 -0
  402. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  403. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  404. package/library/skills/generate-motion/resource.yaml +34 -0
  405. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  406. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  407. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  408. package/library/skills/headless-scripting/resource.yaml +26 -0
  409. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  410. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  411. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  412. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  413. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  414. package/library/skills/investigating-bugs/resource.yaml +24 -0
  415. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  416. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  417. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  418. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +22 -22
  419. package/library/skills/make-game/resource.yaml +35 -0
  420. package/library/skills/music-track/resource.yaml +28 -0
  421. package/library/skills/navigate-summer/SKILL.md +61 -0
  422. package/library/skills/navigate-summer/resource.yaml +35 -0
  423. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  424. package/library/skills/new-project/resource.yaml +28 -0
  425. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  426. package/library/skills/organic-model/resource.yaml +32 -0
  427. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  428. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  429. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  430. package/library/skills/pixel-art/resource.yaml +31 -0
  431. package/library/skills/play/resource.yaml +26 -0
  432. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  433. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  434. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  435. package/library/skills/procedural-animation/resource.yaml +33 -0
  436. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  437. package/library/skills/prop-model/resource.yaml +33 -0
  438. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  439. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  440. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  441. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  442. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  443. package/library/skills/remote-deploy/resource.yaml +23 -0
  444. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  445. package/library/skills/retarget/resource.yaml +33 -0
  446. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  447. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  448. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +8 -0
  449. package/library/skills/scene-composition/resource.yaml +27 -0
  450. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  451. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  452. package/library/skills/scene-scripting/SKILL.md +764 -0
  453. package/library/skills/scene-scripting/resource.yaml +58 -0
  454. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  455. package/library/skills/scene-to-level/resource.yaml +33 -0
  456. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  457. package/library/skills/skill-create/SKILL.md +138 -0
  458. package/library/skills/skill-create/resource.yaml +25 -0
  459. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  460. package/library/skills/skill-improve/resource.yaml +25 -0
  461. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  462. package/library/skills/skill-test/resource.yaml +26 -0
  463. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  464. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  465. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  466. package/library/skills/skybox-panorama/resource.yaml +28 -0
  467. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  468. package/library/skills/sound-effect/resource.yaml +27 -0
  469. package/library/skills/spatial-placement/SKILL.md +74 -0
  470. package/library/skills/spatial-placement/resource.yaml +42 -0
  471. package/library/skills/spatial-placement/tests/spec.md +65 -0
  472. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  473. package/library/skills/sprite-sheet/resource.yaml +32 -0
  474. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  475. package/library/skills/tileable-texture/resource.yaml +31 -0
  476. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  477. package/library/skills/trailer-shot/resource.yaml +27 -0
  478. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  479. package/library/skills/tune-performance/resource.yaml +31 -0
  480. package/library/skills/ui-basics/resource.yaml +25 -0
  481. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  482. package/library/skills/ui-graphics/resource.yaml +29 -0
  483. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  484. package/library/skills/use-widget-asset/resource.yaml +29 -0
  485. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  486. package/library/skills/using-summer/resource.yaml +41 -0
  487. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  488. package/library/skills/vehicle-model/resource.yaml +34 -0
  489. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  490. package/library/skills/verification-before-completion/resource.yaml +23 -0
  491. package/library/skills/verifying-scenes/SKILL.md +98 -0
  492. package/library/skills/verifying-scenes/resource.yaml +42 -0
  493. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  494. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  495. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  496. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  497. package/library/skills/vfx-fire/resource.yaml +35 -0
  498. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  499. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  500. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  501. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  502. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  503. package/library/skills/vfx-lightning/resource.yaml +33 -0
  504. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  505. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  506. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  507. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  508. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  509. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  510. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  511. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  512. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  513. package/library/skills/vfx-smoke/resource.yaml +32 -0
  514. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  515. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  516. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  517. package/library/skills/voice-line/resource.yaml +27 -0
  518. package/library/skills/world-building-3d/SKILL.md +105 -0
  519. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  520. package/library/skills/world-building-3d/resource.yaml +44 -0
  521. package/library/skills/world-building-3d/tests/spec.md +48 -0
  522. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  523. package/library/skills/writing-plans/resource.yaml +23 -0
  524. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  525. package/library/skills/writing-skills/resource.yaml +29 -0
  526. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  527. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  528. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  529. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  530. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  531. package/library/templates/2d-platformer/resource.yaml +24 -0
  532. package/library/templates/2d-rpg/resource.yaml +21 -0
  533. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  534. package/library/templates/3d-basic/resource.yaml +16 -0
  535. package/library/templates/3d-city-kit/resource.yaml +24 -0
  536. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  537. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  538. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  539. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  540. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  541. package/library/templates/3d-racing-game/resource.yaml +21 -0
  542. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  543. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  544. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  545. package/library/templates/README.md +94 -0
  546. package/library/templates/empty/resource.yaml +16 -0
  547. package/library/tools/add-node/resource.yaml +60 -0
  548. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  549. package/library/tools/api-docs/resource.yaml +57 -0
  550. package/library/tools/batch/resource.yaml +52 -0
  551. package/library/tools/camera-bookmark/resource.yaml +73 -0
  552. package/library/tools/check-job/resource.yaml +45 -0
  553. package/library/tools/clear-console/resource.yaml +40 -0
  554. package/library/tools/connect-signal/resource.yaml +63 -0
  555. package/library/tools/create-debug-report/resource.yaml +67 -0
  556. package/library/tools/create-scene/resource.yaml +59 -0
  557. package/library/tools/creator-config/resource.yaml +63 -0
  558. package/library/tools/creator-publish/resource.yaml +73 -0
  559. package/library/tools/creator-releases/resource.yaml +53 -0
  560. package/library/tools/fabricate-3d/resource.yaml +108 -0
  561. package/library/tools/game-control/resource.yaml +84 -0
  562. package/library/tools/game-input/resource.yaml +159 -0
  563. package/library/tools/game-probe/resource.yaml +90 -0
  564. package/library/tools/generate-3d/resource.yaml +112 -0
  565. package/library/tools/generate-audio/resource.yaml +80 -0
  566. package/library/tools/generate-image/resource.yaml +62 -0
  567. package/library/tools/generate-motion/resource.yaml +66 -0
  568. package/library/tools/generate-video/resource.yaml +66 -0
  569. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  570. package/library/tools/get-asset/resource.yaml +42 -0
  571. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  572. package/library/tools/get-console/resource.yaml +69 -0
  573. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  574. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  575. package/library/tools/get-diagnostics/resource.yaml +42 -0
  576. package/library/tools/get-project-context/resource.yaml +45 -0
  577. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  578. package/library/tools/get-scene-tree/resource.yaml +52 -0
  579. package/library/tools/get-script-errors/resource.yaml +45 -0
  580. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  581. package/library/tools/import-asset/resource.yaml +73 -0
  582. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  583. package/library/tools/import-from-url/resource.yaml +51 -0
  584. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  585. package/library/tools/import-hdri/resource.yaml +69 -0
  586. package/library/tools/input-map-bind/resource.yaml +52 -0
  587. package/library/tools/inspect-node/resource.yaml +46 -0
  588. package/library/tools/inspect-resource/resource.yaml +45 -0
  589. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  590. package/library/tools/instantiate-scene/resource.yaml +62 -0
  591. package/library/tools/is-running/resource.yaml +40 -0
  592. package/library/tools/library-feedback/resource.yaml +89 -0
  593. package/library/tools/list-my-assets/resource.yaml +56 -0
  594. package/library/tools/navigation-probe/resource.yaml +85 -0
  595. package/library/tools/open/resource.yaml +80 -0
  596. package/library/tools/open-main-scene/resource.yaml +40 -0
  597. package/library/tools/open-scene/resource.yaml +46 -0
  598. package/library/tools/play/resource.yaml +91 -0
  599. package/library/tools/project-setting/resource.yaml +53 -0
  600. package/library/tools/read-file/resource.yaml +47 -0
  601. package/library/tools/read-library/resource.yaml +67 -0
  602. package/library/tools/recent-events/resource.yaml +71 -0
  603. package/library/tools/remove-node/resource.yaml +51 -0
  604. package/library/tools/replace-node/resource.yaml +57 -0
  605. package/library/tools/replace-text/resource.yaml +61 -0
  606. package/library/tools/run-editor-script/resource.yaml +61 -0
  607. package/library/tools/run-script/resource.yaml +73 -0
  608. package/library/tools/runtime-animate/resource.yaml +140 -0
  609. package/library/tools/runtime-call/resource.yaml +74 -0
  610. package/library/tools/runtime-set/resource.yaml +80 -0
  611. package/library/tools/runtime-spawn/resource.yaml +95 -0
  612. package/library/tools/save-scene/resource.yaml +50 -0
  613. package/library/tools/screenshot/resource.yaml +112 -0
  614. package/library/tools/search-assets/resource.yaml +67 -0
  615. package/library/tools/search-library/resource.yaml +81 -0
  616. package/library/tools/select-node/resource.yaml +48 -0
  617. package/library/tools/set-prop/resource.yaml +64 -0
  618. package/library/tools/set-resource-property/resource.yaml +66 -0
  619. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  620. package/library/tools/snap-to-surface/resource.yaml +90 -0
  621. package/library/tools/snapshot-diff/resource.yaml +58 -0
  622. package/library/tools/starcast/resource.yaml +120 -0
  623. package/library/tools/start-game-task/resource.yaml +91 -0
  624. package/library/tools/stop/resource.yaml +51 -0
  625. package/library/tools/test-placement/resource.yaml +109 -0
  626. package/library/tools/ui-actions/resource.yaml +77 -0
  627. package/library/tools/ui-activate/resource.yaml +88 -0
  628. package/library/tools/ui-screenshot/resource.yaml +63 -0
  629. package/library/tools/ui-tree/resource.yaml +69 -0
  630. package/library/tools/wait-for-event/resource.yaml +84 -0
  631. package/library/tools/world-snapshot/resource.yaml +60 -0
  632. package/library/tools/write-file/resource.yaml +54 -0
  633. package/package.json +21 -15
  634. package/registry/generated/aliases.json +207 -0
  635. package/registry/generated/counts.json +12 -0
  636. package/registry/generated/gemini-extension.json +122 -0
  637. package/registry/generated/index.json +7709 -0
  638. package/registry/generated/marketplace.claude.json +44 -0
  639. package/registry/generated/mcp.json +13 -0
  640. package/registry/generated/plugin.claude.json +135 -0
  641. package/registry/generated/plugin.codex.json +144 -0
  642. package/registry/generated/plugin.cursor.json +134 -0
  643. package/registry/generated/plugin.factory.json +117 -0
  644. package/registry/generated/skills-index.md +242 -0
  645. package/registry/generated/skills-registry.json +1249 -0
  646. package/registry/generated/templates-registry.json +455 -0
  647. package/registry/schemas/allowed-hosts.json +19 -0
  648. package/registry/schemas/collection.schema.json +68 -0
  649. package/registry/schemas/domains.json +96 -0
  650. package/registry/schemas/example.schema.json +11 -0
  651. package/registry/schemas/reference.schema.json +10 -0
  652. package/registry/schemas/resource.schema.json +154 -0
  653. package/registry/schemas/skill.schema.json +14 -0
  654. package/registry/schemas/template.schema.json +46 -0
  655. package/registry/schemas/tool.schema.json +61 -0
  656. package/_persona/summer/SKILL.md +0 -113
  657. package/dist/bin/postinstall.d.ts +0 -2
  658. package/dist/bin/postinstall.js +0 -3
  659. package/dist/commands/cloud.d.ts +0 -2
  660. package/dist/commands/cloud.js +0 -80
  661. package/dist/commands/create.d.ts +0 -3
  662. package/dist/commands/create.js +0 -171
  663. package/dist/commands/install.d.ts +0 -19
  664. package/dist/commands/install.js +0 -194
  665. package/dist/commands/list.js +0 -67
  666. package/dist/commands/logout.js +0 -13
  667. package/dist/commands/logs.d.ts +0 -2
  668. package/dist/commands/logs.js +0 -19
  669. package/dist/commands/open.d.ts +0 -2
  670. package/dist/commands/open.js +0 -32
  671. package/dist/commands/orchestrator.d.ts +0 -8
  672. package/dist/commands/orchestrator.js +0 -143
  673. package/dist/commands/run.d.ts +0 -2
  674. package/dist/commands/run.js +0 -167
  675. package/dist/commands/setup.js +0 -217
  676. package/dist/commands/status.js +0 -46
  677. package/dist/lib/agent-config.d.ts +0 -39
  678. package/dist/lib/agent-config.js +0 -626
  679. package/dist/lib/banner.d.ts +0 -4
  680. package/dist/lib/banner.js +0 -122
  681. package/dist/lib/cloud/api.d.ts +0 -79
  682. package/dist/lib/cloud/api.js +0 -107
  683. package/dist/lib/cloud/apply.d.ts +0 -32
  684. package/dist/lib/cloud/apply.js +0 -294
  685. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  686. package/dist/lib/cloud/checkpoint.js +0 -142
  687. package/dist/lib/cloud/conflicts.d.ts +0 -55
  688. package/dist/lib/cloud/conflicts.js +0 -131
  689. package/dist/lib/cloud/containment.d.ts +0 -8
  690. package/dist/lib/cloud/containment.js +0 -52
  691. package/dist/lib/cloud/diff.d.ts +0 -39
  692. package/dist/lib/cloud/diff.js +0 -138
  693. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  694. package/dist/lib/cloud/engine-bridge.js +0 -139
  695. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  696. package/dist/lib/cloud/hash-cache.js +0 -44
  697. package/dist/lib/cloud/hash.d.ts +0 -10
  698. package/dist/lib/cloud/hash.js +0 -111
  699. package/dist/lib/cloud/http.d.ts +0 -17
  700. package/dist/lib/cloud/http.js +0 -47
  701. package/dist/lib/cloud/lock-path.d.ts +0 -1
  702. package/dist/lib/cloud/lock-path.js +0 -5
  703. package/dist/lib/cloud/lock.d.ts +0 -14
  704. package/dist/lib/cloud/lock.js +0 -143
  705. package/dist/lib/cloud/manifest.d.ts +0 -6
  706. package/dist/lib/cloud/manifest.js +0 -41
  707. package/dist/lib/cloud/paths.d.ts +0 -20
  708. package/dist/lib/cloud/paths.js +0 -90
  709. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  710. package/dist/lib/cloud/project-godot-merge.js +0 -185
  711. package/dist/lib/cloud/rules.d.ts +0 -39
  712. package/dist/lib/cloud/rules.js +0 -159
  713. package/dist/lib/cloud/sync.d.ts +0 -21
  714. package/dist/lib/cloud/sync.js +0 -518
  715. package/dist/lib/cloud/transfer.d.ts +0 -23
  716. package/dist/lib/cloud/transfer.js +0 -184
  717. package/dist/lib/cloud/types.d.ts +0 -62
  718. package/dist/lib/cloud/types.js +0 -1
  719. package/dist/lib/cloud/validate-path.d.ts +0 -23
  720. package/dist/lib/cloud/validate-path.js +0 -103
  721. package/dist/lib/engine.d.ts +0 -51
  722. package/dist/lib/game-task-plan.d.ts +0 -42
  723. package/dist/lib/project-memory.d.ts +0 -33
  724. package/dist/lib/public-surface-paths.d.ts +0 -13
  725. package/dist/lib/public-surface-paths.js +0 -42
  726. package/dist/lib/remote-templates.d.ts +0 -25
  727. package/dist/lib/remote-templates.js +0 -86
  728. package/dist/lib/skills-registry.d.ts +0 -572
  729. package/dist/lib/skills-registry.js +0 -1061
  730. package/dist/lib/version-check.d.ts +0 -106
  731. package/dist/lib/version-check.js +0 -338
  732. package/dist/mcp/tools/cloud-tools.js +0 -42
  733. package/references/mcp-tools-reference.md +0 -199
  734. package/references/template-registry.md +0 -73
  735. package/skills/README.md +0 -103
  736. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  737. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  738. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  739. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  740. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  741. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  742. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  743. package/skills/workflow/gameskill/SKILL.md +0 -120
  744. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  745. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  746. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  747. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  748. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  749. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  750. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  751. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  752. package/skills/workflow/skill-create/SKILL.md +0 -153
  753. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  754. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  755. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  756. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  757. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  758. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  759. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  760. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  761. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  762. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  763. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  764. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  765. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  766. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  767. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  768. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  769. /package/dist/{lib → core}/store.d.ts +0 -0
  770. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  771. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  772. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  773. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  774. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  775. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  776. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  777. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  778. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  779. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  780. /package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +0 -0
  781. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  782. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  783. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  784. /package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +0 -0
  785. /package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +0 -0
  786. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  787. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  788. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  789. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  790. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: fire
2
+ name: vfx-fire
3
3
  description: Use when authoring a fire visual effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp. Trigger on "torch", "campfire", "bonfire", "flame", "fire effect", "burning", "make this thing on fire", "candle".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: visual-effects
7
7
  user-invocable: true
8
- allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_inspect_resource summer_save_scene summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
8
+ allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_inspect_resource summer_save_scene summer_run_script summer_world_snapshot summer_snapshot_diff summer_screenshot summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
9
9
  paths: ["**/*.tscn", "**/*.gd", "**/*.gdshader", "addons/vfx/**"]
10
10
  ---
11
11
 
@@ -318,6 +318,37 @@ summer_set_prop(scenePath="res://main.tscn", path="./World/Torch/FireLight", key
318
318
  summer_save_scene(scenePath="res://main.tscn")
319
319
  ```
320
320
 
321
+ ### 6a. One-script wiring (summer_run_script)
322
+
323
+ On engines with `summer_run_script` (see `scene-scripting`), everything after
324
+ the `summer_write_file` calls above is ONE ctx script — transactional (rollback on a
325
+ mid-script error), no `.tres` sidecar files needed because the script builds the
326
+ resources directly:
327
+
328
+ ```gdscript
329
+ func run(ctx):
330
+ var anchor := ctx.find("Torch")
331
+ var fire := ctx.add_node("GPUParticles3D", "Fire", anchor)
332
+ fire.set_script(load("res://addons/vfx/fire/fire_controller.gd"))
333
+ fire.process_material = ParticleProcessMaterial.new() # controller configures it on _ready
334
+ var quad := QuadMesh.new()
335
+ quad.size = Vector2(1, 1)
336
+ var mat := ShaderMaterial.new()
337
+ mat.shader = load("res://addons/vfx/fire/fire.gdshader")
338
+ quad.material = mat
339
+ fire.draw_pass_1 = quad
340
+ fire.set("flame_height", 1.2)
341
+ fire.set("flame_radius", 0.35)
342
+ fire.set("particle_count", 96)
343
+ ctx.add_node("OmniLight3D", "FireLight", anchor, {
344
+ "light_color": Color(1.0, 0.6, 0.25), "light_energy": 1.6, "omni_range": 6.0})
345
+ ctx.save_scene()
346
+ ```
347
+
348
+ `ctx.add_node` sets owners for you. Take a `summer_world_snapshot` before, and verify
349
+ after with `summer_snapshot_diff` (exactly `Fire` + `FireLight` added) plus a
350
+ `summer_screenshot` — flames are pixels, judge them as pixels.
351
+
321
352
  ### 6b. Verify
322
353
 
323
354
  Every file this recipe writes is compiled code. Check it before claiming the fire works.
@@ -457,18 +488,18 @@ manually in Summer Engine:
457
488
 
458
489
  After firing this recipe, suggest neighbors:
459
490
 
460
- - `summer:visual-effects/recipes/smoke` — every fire that lasts > 5 s wants smoke rising above. Spawn 0.5 m above the flame top.
461
- - `summer:visual-effects/recipes/dissolve` — if the user wants the *fuel* (logs, body, paper) to gradually disappear as it burns.
462
- - `summer:visual-effects/recipes/magic-glow` — for an `OmniLight3D` with proper sin-wave pulsing if the default is too constant.
463
- - `summer:visual-effects/game-feel` — for a slight camera flicker / thermal heat-haze post-process near very large fires.
464
- - `summer:audio/sound-effect` — generate `fire crackle, dry wood, soft pops, 2s loop` and wire to an `AudioStreamPlayer3D` on the same anchor.
491
+ - `vfx-smoke` — every fire that lasts > 5 s wants smoke rising above. Spawn 0.5 m above the flame top.
492
+ - `vfx-dissolve` — if the user wants the *fuel* (logs, body, paper) to gradually disappear as it burns.
493
+ - `vfx-magic-glow` — for an `OmniLight3D` with proper sin-wave pulsing if the default is too constant.
494
+ - `game-feel` — for a slight camera flicker / thermal heat-haze post-process near very large fires.
495
+ - `sound-effect` — generate `fire crackle, dry wood, soft pops, 2s loop` and wire to an `AudioStreamPlayer3D` on the same anchor.
465
496
 
466
497
  ## See also
467
498
 
468
499
  - `_building-blocks/noise-3d-fbm.gdshaderinc` — the FBM noise this shader includes
469
500
  - `_building-blocks/additive-billboard-particles.md` — canonical additive material settings
470
- - `summer:visual-effects/recipes/smoke` — sister recipe for the column rising above
471
- - `summer:visual-effects/recipes/dissolve` — for objects burning away
472
- - `summer:visual-effects/recipes/magic-glow` — for the light source pulsing
473
- - `summer:visual-effects/game-feel` — non-particle game-feel pairings
474
- - `summer:gdscript-patterns` — for the controller's idioms (signals, exports, `@tool`)
501
+ - `vfx-smoke` — sister recipe for the column rising above
502
+ - `vfx-dissolve` — for objects burning away
503
+ - `vfx-magic-glow` — for the light source pulsing
504
+ - `game-feel` — non-particle game-feel pairings
505
+ - `gdscript-patterns` — for the controller's idioms (signals, exports, `@tool`)
@@ -0,0 +1,45 @@
1
+ // 3D Fractal Brownian Motion noise — used by fire, dissolve, smoke, magic-glow.
2
+ // Include with: #include "res://addons/vfx/_building-blocks/noise-3d-fbm.gdshaderinc"
3
+
4
+ float hash3(vec3 p) {
5
+ p = fract(p * vec3(443.8975, 397.2973, 491.1871));
6
+ p += dot(p, p.yxz + 19.19);
7
+ return fract((p.x + p.y) * p.z);
8
+ }
9
+
10
+ float noise3(vec3 p) {
11
+ vec3 i = floor(p);
12
+ vec3 f = fract(p);
13
+ f = f * f * (3.0 - 2.0 * f);
14
+
15
+ float n000 = hash3(i + vec3(0.0, 0.0, 0.0));
16
+ float n100 = hash3(i + vec3(1.0, 0.0, 0.0));
17
+ float n010 = hash3(i + vec3(0.0, 1.0, 0.0));
18
+ float n110 = hash3(i + vec3(1.0, 1.0, 0.0));
19
+ float n001 = hash3(i + vec3(0.0, 0.0, 1.0));
20
+ float n101 = hash3(i + vec3(1.0, 0.0, 1.0));
21
+ float n011 = hash3(i + vec3(0.0, 1.0, 1.0));
22
+ float n111 = hash3(i + vec3(1.0, 1.0, 1.0));
23
+
24
+ float x00 = mix(n000, n100, f.x);
25
+ float x10 = mix(n010, n110, f.x);
26
+ float x01 = mix(n001, n101, f.x);
27
+ float x11 = mix(n011, n111, f.x);
28
+
29
+ float y0 = mix(x00, x10, f.y);
30
+ float y1 = mix(x01, x11, f.y);
31
+
32
+ return mix(y0, y1, f.z);
33
+ }
34
+
35
+ float fbm3(vec3 p) {
36
+ float v = 0.0;
37
+ float amp = 0.5;
38
+ float freq = 1.0;
39
+ for (int i = 0; i < 4; i++) {
40
+ v += amp * noise3(p * freq);
41
+ freq *= 2.0;
42
+ amp *= 0.5;
43
+ }
44
+ return v;
45
+ }
@@ -0,0 +1,35 @@
1
+ id: skill/vfx-fire
2
+ kind: skill
3
+ version: 1.0.3
4
+ summary: Fire effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp — torches, campfires, candles.
5
+ use_when:
6
+ - authoring a fire visual effect — torch, campfire, bonfire, flame, burning object, candle
7
+ - adding fire to props, hazards, or projectiles — torches, braziers, burning wreckage, a fireball or flame jet
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - vfx
13
+ - rendering
14
+ modalities:
15
+ - scenes
16
+ - shaders
17
+ compatibility:
18
+ engine: ">=4.6"
19
+ related:
20
+ skills:
21
+ - skill/scene-scripting
22
+ - skill/sound-effect
23
+ - skill/game-feel
24
+ - skill/vfx-dissolve
25
+ - skill/vfx-hit-spark
26
+ - skill/vfx-magic-glow
27
+ - skill/vfx-muzzle-flash
28
+ - skill/vfx-smoke
29
+ source: official
30
+ license: MIT
31
+ status: stable
32
+ recommended: true
33
+ aliases:
34
+ - skills/visual-effects/recipes/fire
35
+ - fire
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: hit-spark
2
+ name: vfx-hit-spark
3
3
  description: Use when authoring a hit-spark visual effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact. Trigger on "hit spark", "impact spark", "bullet hit", "sword clash", "metal-on-metal", "ricochet", "impact effect", "spawn sparks at hit point".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
@@ -192,6 +192,12 @@ summer_set_prop(scenePath="res://addons/vfx/hit-spark/hit_spark.tscn", path=".",
192
192
  summer_save_scene(scenePath="res://addons/vfx/hit-spark/hit_spark.tscn")
193
193
  ```
194
194
 
195
+ Note on the script lane: `summer_run_script` operates on the **open** scene, and
196
+ this recipe builds a standalone `hit_spark.tscn` — so the `summer_create_scene` /
197
+ `summer_replace_node` chain above stays the right wiring here. Reach for
198
+ `scene-scripting` only if you are placing many pre-spawned spark emitters
199
+ into the open scene with computed positions.
200
+
195
201
  ### 4b. Verify
196
202
 
197
203
  `hit_spark.gd` is the whole recipe — if it did not parse, every `spawn_hit_spark`
@@ -352,16 +358,16 @@ manually in Summer Engine:
352
358
 
353
359
  After firing this recipe, suggest:
354
360
 
355
- - `summer:visual-effects/recipes/muzzle-flash` — pair on the gun side; this recipe handles the bullet-impact side.
356
- - `summer:visual-effects/recipes/lightning` — automatically calls this at endpoints.
357
- - `summer:visual-effects/recipes/water-ripple` — pair the `water-droplet` variant with a ripple ring at the impact for water surfaces.
358
- - `summer:visual-effects/game-feel` — `CameraShake.add_trauma(0.15)` on heavy hits, hit-stop for crit kills.
359
- - `summer:audio/sound-effect` — generate `metal-on-metal clang, sharp transient, short ring, 350ms` per spark variant.
361
+ - `vfx-muzzle-flash` — pair on the gun side; this recipe handles the bullet-impact side.
362
+ - `vfx-lightning` — automatically calls this at endpoints.
363
+ - `vfx-water-ripple` — pair the `water-droplet` variant with a ripple ring at the impact for water surfaces.
364
+ - `game-feel` — `CameraShake.add_trauma(0.15)` on heavy hits, hit-stop for crit kills.
365
+ - `sound-effect` — generate `metal-on-metal clang, sharp transient, short ring, 350ms` per spark variant.
360
366
 
361
367
  ## See also
362
368
 
363
369
  - `_building-blocks/additive-billboard-particles.md` — canonical additive material settings (this recipe uses them)
364
- - `summer:visual-effects/recipes/muzzle-flash` — the gun-end companion
365
- - `summer:visual-effects/recipes/lightning` — caller; spawns sparks at bolt endpoints
366
- - `summer:visual-effects/recipes/water-ripple` — surface companion for water impacts
367
- - `summer:visual-effects/game-feel` — shake/hit-stop pairings
370
+ - `vfx-muzzle-flash` — the gun-end companion
371
+ - `vfx-lightning` — caller; spawns sparks at bolt endpoints
372
+ - `vfx-water-ripple` — surface companion for water impacts
373
+ - `game-feel` — shake/hit-stop pairings
@@ -0,0 +1,37 @@
1
+ # Additive Billboard Particles — Canonical Material Settings
2
+
3
+ Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `magic-glow`, optionally substitutable in `hit-spark` and `fire` if a custom shader is overkill.
4
+
5
+ `BaseMaterial3D` is abstract — `BaseMaterial3D.new()` is a parse error ("Native class
6
+ "BaseMaterial3D" cannot be constructed as it is abstract"). Instantiate
7
+ `StandardMaterial3D`; the `BaseMaterial3D.*` enum constants below are still the right
8
+ way to name the values.
9
+
10
+ ## Settings
11
+
12
+ ```gdscript
13
+ var bm := StandardMaterial3D.new()
14
+ bm.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
15
+ bm.blend_mode = BaseMaterial3D.BLEND_MODE_ADD
16
+ bm.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
17
+ bm.billboard_mode = BaseMaterial3D.BILLBOARD_PARTICLES
18
+ bm.emission_enabled = true
19
+ bm.emission_energy_multiplier = 3.0 # 1.0–5.0 typical; bump for HDR bloom
20
+ bm.disable_receive_shadows = true
21
+ bm.shadow_to_opacity = false
22
+ bm.no_depth_test = false # true only if particles must read on TOP of opaque geometry
23
+ bm.billboard_keep_scale = true # BILLBOARD_PARTICLES drops per-particle scale without this
24
+ bm.albedo_color = Color(R, G, B, 1.0)
25
+ bm.emission = Color(R, G, B) # usually same as albedo for single-color motes
26
+ ```
27
+
28
+ ## When to use this vs a custom shader
29
+
30
+ - **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free Godot-managed billboard math.
31
+ - **Per-particle color over age does NOT need a custom shader.** `ParticleProcessMaterial` has `color_ramp`, `color_initial_ramp`, `alpha_curve` and `emission_curve` (all verified present in 4.6) — those drive the particle's `COLOR` from age and feed straight into a plain `StandardMaterial3D`. Reach for a ramp before reaching for a shader.
32
+ - **Use a custom `ShaderMaterial`** when you need per-fragment shape masks (muzzle flash star burst), noise-distorted UVs (fire, smoke), or anything that varies *within* the quad. Those are what `StandardMaterial3D` genuinely can't express.
33
+ - If a custom shader does need the particle age, note that the age lives in `INSTANCE_CUSTOM.y` (normalized by `INSTANCE_CUSTOM.w`, the lifetime), that `INSTANCE_CUSTOM.x` is the rotation angle — not the age — and that `INSTANCE_CUSTOM` is **vertex-stage only**. Pass it to `fragment()` through a `varying`.
34
+
35
+ ## Performance note
36
+
37
+ Additive overdraw is fillrate-bound. `draw_pass_1` is a `Mesh`, so the size dial is on the mesh: keep `QuadMesh.size` at or under `Vector2(0.2, 0.2)` for motes/sparks. Larger quads at full additive intensity destroy mobile fillrate budgets fast.
@@ -0,0 +1,34 @@
1
+ id: skill/vfx-hit-spark
2
+ kind: skill
3
+ version: 1.0.2
4
+ summary: Hit-spark effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact.
5
+ use_when:
6
+ - authoring a hit-spark effect — impact spark, bullet hit, sword clash, ricochet, sparks at a hit point
7
+ - melee hits, bullet impacts, or ricochets have no visual feedback at the contact point
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - vfx
13
+ - rendering
14
+ modalities:
15
+ - scenes
16
+ - shaders
17
+ compatibility:
18
+ engine: ">=4.6"
19
+ related:
20
+ skills:
21
+ - skill/scene-scripting
22
+ - skill/sound-effect
23
+ - skill/game-feel
24
+ - skill/vfx-fire
25
+ - skill/vfx-lightning
26
+ - skill/vfx-muzzle-flash
27
+ - skill/vfx-water-ripple
28
+ source: official
29
+ license: MIT
30
+ status: stable
31
+ recommended: false
32
+ aliases:
33
+ - skills/visual-effects/recipes/hit-spark
34
+ - hit-spark
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: lightning
2
+ name: vfx-lightning
3
3
  description: Use when authoring a lightning bolt visual effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake. Trigger on "lightning bolt", "chain lightning", "electric attack", "tesla coil", "shock spell", "thunderbolt", "energy beam".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: visual-effects
7
7
  user-invocable: true
8
- allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_save_scene summer_project_setting summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
8
+ allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_save_scene summer_run_script summer_project_setting summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
9
9
  paths: ["**/*.tscn", "**/*.gd", "**/*.gdshader", "addons/vfx/**"]
10
10
  ---
11
11
 
@@ -236,6 +236,19 @@ summer_set_prop(scenePath="res://main.tscn", path="./World/LightningCaster", key
236
236
  summer_save_scene(scenePath="res://main.tscn")
237
237
  ```
238
238
 
239
+ Or, on engines with `summer_run_script` (see `scene-scripting`), the two node
240
+ calls collapse into one transactional ctx script — worth it when placing several
241
+ casters or anything computed:
242
+
243
+ ```gdscript
244
+ func run(ctx):
245
+ var caster := ctx.add_node("Node3D", "LightningCaster", null)
246
+ caster.set_script(load("res://addons/vfx/lightning/lightning_caster.gd"))
247
+ caster.set("bolt_color", Color(0.55, 0.75, 1.0))
248
+ caster.set("trauma_amount", 0.6)
249
+ ctx.save_scene()
250
+ ```
251
+
239
252
  Then verify — the caster `preload`s its own shader, so a shader that failed to write
240
253
  takes the whole script down at parse time:
241
254
 
@@ -388,17 +401,17 @@ manually in Summer Engine:
388
401
 
389
402
  After firing this recipe, suggest:
390
403
 
391
- - `summer:visual-effects/recipes/hit-spark` — automatically called at endpoints; tune the spark color to match `bolt_color`.
392
- - `summer:visual-effects/recipes/magic-glow` — for the wizard's hand glow during charge-up before the cast.
393
- - `summer:visual-effects/recipes/muzzle-flash` — for the brief bright flash at the casting hand on release frame.
394
- - `summer:visual-effects/game-feel` — `CameraShake.add_trauma` is already called; pair with hit-stop on the target for impact emphasis.
395
- - `summer:audio/sound-effect` — generate `electric crack thunder, sharp impact, rumble tail, 800ms` and play on cast.
404
+ - `vfx-hit-spark` — automatically called at endpoints; tune the spark color to match `bolt_color`.
405
+ - `vfx-magic-glow` — for the wizard's hand glow during charge-up before the cast.
406
+ - `vfx-muzzle-flash` — for the brief bright flash at the casting hand on release frame.
407
+ - `game-feel` — `CameraShake.add_trauma` is already called; pair with hit-stop on the target for impact emphasis.
408
+ - `sound-effect` — generate `electric crack thunder, sharp impact, rumble tail, 800ms` and play on cast.
396
409
 
397
410
  ## See also
398
411
 
399
412
  - `_building-blocks/trauma-shake-snippet.md` — `CameraShake` autoload (REQUIRED for the shake call)
400
413
  - `_building-blocks/additive-billboard-particles.md` — for the endpoint sparks
401
- - `summer:visual-effects/recipes/hit-spark` — endpoint companion
402
- - `summer:visual-effects/recipes/magic-glow` — pre-cast charge-up
403
- - `summer:visual-effects/recipes/muzzle-flash` — for the cast-release flash
404
- - `summer:visual-effects/game-feel` — full game-feel pairing
414
+ - `vfx-hit-spark` — endpoint companion
415
+ - `vfx-magic-glow` — pre-cast charge-up
416
+ - `vfx-muzzle-flash` — for the cast-release flash
417
+ - `game-feel` — full game-feel pairing
@@ -0,0 +1,37 @@
1
+ # Additive Billboard Particles — Canonical Material Settings
2
+
3
+ Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `magic-glow`, optionally substitutable in `hit-spark` and `fire` if a custom shader is overkill.
4
+
5
+ `BaseMaterial3D` is abstract — `BaseMaterial3D.new()` is a parse error ("Native class
6
+ "BaseMaterial3D" cannot be constructed as it is abstract"). Instantiate
7
+ `StandardMaterial3D`; the `BaseMaterial3D.*` enum constants below are still the right
8
+ way to name the values.
9
+
10
+ ## Settings
11
+
12
+ ```gdscript
13
+ var bm := StandardMaterial3D.new()
14
+ bm.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
15
+ bm.blend_mode = BaseMaterial3D.BLEND_MODE_ADD
16
+ bm.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
17
+ bm.billboard_mode = BaseMaterial3D.BILLBOARD_PARTICLES
18
+ bm.emission_enabled = true
19
+ bm.emission_energy_multiplier = 3.0 # 1.0–5.0 typical; bump for HDR bloom
20
+ bm.disable_receive_shadows = true
21
+ bm.shadow_to_opacity = false
22
+ bm.no_depth_test = false # true only if particles must read on TOP of opaque geometry
23
+ bm.billboard_keep_scale = true # BILLBOARD_PARTICLES drops per-particle scale without this
24
+ bm.albedo_color = Color(R, G, B, 1.0)
25
+ bm.emission = Color(R, G, B) # usually same as albedo for single-color motes
26
+ ```
27
+
28
+ ## When to use this vs a custom shader
29
+
30
+ - **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free Godot-managed billboard math.
31
+ - **Per-particle color over age does NOT need a custom shader.** `ParticleProcessMaterial` has `color_ramp`, `color_initial_ramp`, `alpha_curve` and `emission_curve` (all verified present in 4.6) — those drive the particle's `COLOR` from age and feed straight into a plain `StandardMaterial3D`. Reach for a ramp before reaching for a shader.
32
+ - **Use a custom `ShaderMaterial`** when you need per-fragment shape masks (muzzle flash star burst), noise-distorted UVs (fire, smoke), or anything that varies *within* the quad. Those are what `StandardMaterial3D` genuinely can't express.
33
+ - If a custom shader does need the particle age, note that the age lives in `INSTANCE_CUSTOM.y` (normalized by `INSTANCE_CUSTOM.w`, the lifetime), that `INSTANCE_CUSTOM.x` is the rotation angle — not the age — and that `INSTANCE_CUSTOM` is **vertex-stage only**. Pass it to `fragment()` through a `varying`.
34
+
35
+ ## Performance note
36
+
37
+ Additive overdraw is fillrate-bound. `draw_pass_1` is a `Mesh`, so the size dial is on the mesh: keep `QuadMesh.size` at or under `Vector2(0.2, 0.2)` for motes/sparks. Larger quads at full additive intensity destroy mobile fillrate budgets fast.
@@ -0,0 +1,33 @@
1
+ id: skill/vfx-lightning
2
+ kind: skill
3
+ version: 1.0.3
4
+ summary: Lightning bolt effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake.
5
+ use_when:
6
+ - authoring a lightning bolt effect — chain lightning, electric attack, tesla coil, shock spell, energy beam
7
+ - a spell, weapon, or hazard needs a jagged electric arc with glow, endpoint sparks, and camera shake
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - vfx
13
+ - rendering
14
+ modalities:
15
+ - scenes
16
+ - shaders
17
+ compatibility:
18
+ engine: ">=4.6"
19
+ related:
20
+ skills:
21
+ - skill/scene-scripting
22
+ - skill/sound-effect
23
+ - skill/game-feel
24
+ - skill/vfx-hit-spark
25
+ - skill/vfx-magic-glow
26
+ - skill/vfx-muzzle-flash
27
+ source: official
28
+ license: MIT
29
+ status: stable
30
+ recommended: false
31
+ aliases:
32
+ - skills/visual-effects/recipes/lightning
33
+ - lightning
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: magic-glow
2
+ name: vfx-magic-glow
3
3
  description: Use when authoring a magic-glow visual effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh. Trigger on "magic glow", "enchanted item", "soul gem", "pulsing aura", "rune glow", "magical orb", "summon circle glow", "fairy", "wisp".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: visual-effects
7
7
  user-invocable: true
8
- allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_save_scene summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
8
+ allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_save_scene summer_run_script summer_screenshot summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
9
9
  paths: ["**/*.tscn", "**/*.gd", "**/*.gdshader", "addons/vfx/**"]
10
10
  ---
11
11
 
@@ -224,6 +224,26 @@ summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow
224
224
  summer_set_prop(scenePath="res://main.tscn", path="./World/Pedestal/SoulGem/Glow", key="mote_radius", value=0.30)
225
225
  ```
226
226
 
227
+ Either wiring block is also ONE ctx script on engines with `summer_run_script`
228
+ (see `scene-scripting`) — the eight `summer_set_prop` calls become one
229
+ transactional run, and computed placement (a glow per gem in a ring) becomes a loop:
230
+
231
+ ```gdscript
232
+ func run(ctx):
233
+ var glow := ctx.add_node("Node3D", "Glow", ctx.find("Sword"))
234
+ glow.set_script(load("res://addons/vfx/magic-glow/magic_glow.gd"))
235
+ glow.set("glow_color", Color(0.55, 0.85, 1.0))
236
+ glow.set("light_energy_base", 1.2)
237
+ glow.set("light_energy_amplitude", 0.6)
238
+ glow.set("mote_count", 16)
239
+ glow.set("mote_radius", 0.20)
240
+ glow.set("pulse_source_mesh", NodePath("../Blade"))
241
+ ctx.save_scene()
242
+ ```
243
+
244
+ Judge the pulse with `summer_screenshot framing:"camera"` — emissive glow does not
245
+ survive the preset framings' substitute environment.
246
+
227
247
  Then verify — this recipe is one script, so a parse error is the whole effect:
228
248
 
229
249
  ```
@@ -395,16 +415,16 @@ manually in Summer Engine:
395
415
 
396
416
  After firing this recipe, suggest:
397
417
 
398
- - `summer:visual-effects/recipes/lightning` — perfect pre-cast charge-up. Use the `charge-up` variant and ramp `set_intensity(0→1)` then call `Lightning.cast_lightning`.
399
- - `summer:visual-effects/recipes/dissolve` — pair `summon-arrival` (materialize_object) with the `summoning-circle` variant.
400
- - `summer:visual-effects/recipes/fire` (the `magic-fire` variant) — for items that should glow AND flame.
401
- - `summer:visual-effects/game-feel` — slight time-dilation when picking up a pulsing quest item adds weight.
402
- - `summer:audio/sound-effect` — generate `magical hum, ethereal shimmer, 2s loop` and play on the same anchor.
418
+ - `vfx-lightning` — perfect pre-cast charge-up. Use the `charge-up` variant and ramp `set_intensity(0→1)` then call `Lightning.cast_lightning`.
419
+ - `vfx-dissolve` — pair `summon-arrival` (materialize_object) with the `summoning-circle` variant.
420
+ - `vfx-fire` (the `magic-fire` variant) — for items that should glow AND flame.
421
+ - `game-feel` — slight time-dilation when picking up a pulsing quest item adds weight.
422
+ - `sound-effect` — generate `magical hum, ethereal shimmer, 2s loop` and play on the same anchor.
403
423
 
404
424
  ## See also
405
425
 
406
426
  - `_building-blocks/additive-billboard-particles.md` — canonical additive material settings (this recipe uses them for motes)
407
- - `summer:visual-effects/recipes/lightning` — pre-cast charge-up partner
408
- - `summer:visual-effects/recipes/dissolve` — for summon arrival pairing
409
- - `summer:visual-effects/recipes/fire` — for the `magic-fire` variant
410
- - `summer:gdscript-patterns` — for the controller idioms (signals, exports, `@tool`)
427
+ - `vfx-lightning` — pre-cast charge-up partner
428
+ - `vfx-dissolve` — for summon arrival pairing
429
+ - `vfx-fire` — for the `magic-fire` variant
430
+ - `gdscript-patterns` — for the controller idioms (signals, exports, `@tool`)
@@ -0,0 +1,37 @@
1
+ # Additive Billboard Particles — Canonical Material Settings
2
+
3
+ Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `magic-glow`, optionally substitutable in `hit-spark` and `fire` if a custom shader is overkill.
4
+
5
+ `BaseMaterial3D` is abstract — `BaseMaterial3D.new()` is a parse error ("Native class
6
+ "BaseMaterial3D" cannot be constructed as it is abstract"). Instantiate
7
+ `StandardMaterial3D`; the `BaseMaterial3D.*` enum constants below are still the right
8
+ way to name the values.
9
+
10
+ ## Settings
11
+
12
+ ```gdscript
13
+ var bm := StandardMaterial3D.new()
14
+ bm.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
15
+ bm.blend_mode = BaseMaterial3D.BLEND_MODE_ADD
16
+ bm.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
17
+ bm.billboard_mode = BaseMaterial3D.BILLBOARD_PARTICLES
18
+ bm.emission_enabled = true
19
+ bm.emission_energy_multiplier = 3.0 # 1.0–5.0 typical; bump for HDR bloom
20
+ bm.disable_receive_shadows = true
21
+ bm.shadow_to_opacity = false
22
+ bm.no_depth_test = false # true only if particles must read on TOP of opaque geometry
23
+ bm.billboard_keep_scale = true # BILLBOARD_PARTICLES drops per-particle scale without this
24
+ bm.albedo_color = Color(R, G, B, 1.0)
25
+ bm.emission = Color(R, G, B) # usually same as albedo for single-color motes
26
+ ```
27
+
28
+ ## When to use this vs a custom shader
29
+
30
+ - **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free Godot-managed billboard math.
31
+ - **Per-particle color over age does NOT need a custom shader.** `ParticleProcessMaterial` has `color_ramp`, `color_initial_ramp`, `alpha_curve` and `emission_curve` (all verified present in 4.6) — those drive the particle's `COLOR` from age and feed straight into a plain `StandardMaterial3D`. Reach for a ramp before reaching for a shader.
32
+ - **Use a custom `ShaderMaterial`** when you need per-fragment shape masks (muzzle flash star burst), noise-distorted UVs (fire, smoke), or anything that varies *within* the quad. Those are what `StandardMaterial3D` genuinely can't express.
33
+ - If a custom shader does need the particle age, note that the age lives in `INSTANCE_CUSTOM.y` (normalized by `INSTANCE_CUSTOM.w`, the lifetime), that `INSTANCE_CUSTOM.x` is the rotation angle — not the age — and that `INSTANCE_CUSTOM` is **vertex-stage only**. Pass it to `fragment()` through a `varying`.
34
+
35
+ ## Performance note
36
+
37
+ Additive overdraw is fillrate-bound. `draw_pass_1` is a `Mesh`, so the size dial is on the mesh: keep `QuadMesh.size` at or under `Vector2(0.2, 0.2)` for motes/sparks. Larger quads at full additive intensity destroy mobile fillrate budgets fast.
@@ -0,0 +1,34 @@
1
+ id: skill/vfx-magic-glow
2
+ kind: skill
3
+ version: 1.0.2
4
+ summary: Magic-glow effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh.
5
+ use_when:
6
+ - authoring a magic-glow effect — enchanted item, soul gem, pulsing aura, rune glow, magical orb, wisp
7
+ - an item, altar, or portal should read as magical or important with a pulsing light and drifting motes
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - vfx
13
+ - rendering
14
+ modalities:
15
+ - scenes
16
+ - shaders
17
+ compatibility:
18
+ engine: ">=4.6"
19
+ related:
20
+ skills:
21
+ - skill/scene-scripting
22
+ - skill/sound-effect
23
+ - skill/game-feel
24
+ - skill/vfx-dissolve
25
+ - skill/vfx-fire
26
+ - skill/vfx-lightning
27
+ - skill/vfx-muzzle-flash
28
+ source: official
29
+ license: MIT
30
+ status: stable
31
+ recommended: false
32
+ aliases:
33
+ - skills/visual-effects/recipes/magic-glow
34
+ - magic-glow
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: muzzle-flash
2
+ name: vfx-muzzle-flash
3
3
  description: Use when authoring a muzzle-flash visual effect — a one-shot ~80 ms burst at a gun barrel built with a particle one-shot OR a flashing quad with a star-burst shader. Trigger on "muzzle flash", "gun fire", "weapon flash", "barrel flash", "shoot a gun", "spell-cast burst at hand".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
6
  category: visual-effects
7
7
  user-invocable: true
8
- allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_connect_signal summer_inspect_node summer_save_scene summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
8
+ allowed-tools: Read Write Edit summer_write_file summer_read_file summer_create_scene summer_add_node summer_set_prop summer_set_resource_property summer_connect_signal summer_inspect_node summer_save_scene summer_run_script summer_get_script_errors summer_get_debugger_errors summer_play summer_stop
9
9
  paths: ["**/*.tscn", "**/*.gd", "**/*.gdshader", "addons/vfx/**"]
10
10
  ---
11
11
 
@@ -228,6 +228,26 @@ Or connect the weapon's `fired` signal in the scene:
228
228
  summer_connect_signal(scenePath="res://main.tscn", emitter="./Player/Weapon", signal="fired", receiver="./Player/Weapon/BarrelTip/MuzzleFlash", method="fire")
229
229
  ```
230
230
 
231
+ ### 5a. One-script wiring (summer_run_script)
232
+
233
+ On engines with `summer_run_script` (see `scene-scripting`), the node calls
234
+ above are ONE transactional ctx script — and mounting a flash on every weapon in the
235
+ scene becomes a loop instead of a CRUD chain per gun:
236
+
237
+ ```gdscript
238
+ func run(ctx):
239
+ var tip := ctx.find("BarrelTip")
240
+ var flash := ctx.add_node("Node3D", "MuzzleFlash", tip)
241
+ flash.set_script(load("res://addons/vfx/muzzle-flash/muzzle_flash.gd"))
242
+ flash.set("flash_size", 0.6)
243
+ flash.set("flash_duration", 0.08)
244
+ flash.set("light_energy", 4.0)
245
+ var weapon := ctx.find("Weapon")
246
+ weapon.connect("fired", Callable(flash, "fire"), CONNECT_PERSIST)
247
+ # CONNECT_PERSIST is required — a bare connect() works live but is NOT saved
248
+ ctx.save_scene()
249
+ ```
250
+
231
251
  ### 5b. Verify
232
252
 
233
253
  `muzzle_flash.gd` `preload`s its own shader, so a shader that failed to write takes
@@ -355,15 +375,15 @@ manually in Summer Engine:
355
375
 
356
376
  After firing this recipe, suggest:
357
377
 
358
- - `summer:visual-effects/recipes/hit-spark` — pair on the bullet impact end.
359
- - `summer:visual-effects/recipes/smoke` — for a small puff at the barrel after the flash for high-caliber weapons.
360
- - `summer:visual-effects/game-feel` — recoil camera kick + screen shake (`CameraShake.add_trauma(0.15)`) on every shot makes the flash feel 5× more powerful.
361
- - `summer:audio/sound-effect` — generate `9mm pistol shot, sharp crack, indoor, short tail, 400ms` and play in the same `fire()`.
378
+ - `vfx-hit-spark` — pair on the bullet impact end.
379
+ - `vfx-smoke` — for a small puff at the barrel after the flash for high-caliber weapons.
380
+ - `game-feel` — recoil camera kick + screen shake (`CameraShake.add_trauma(0.15)`) on every shot makes the flash feel 5× more powerful.
381
+ - `sound-effect` — generate `9mm pistol shot, sharp crack, indoor, short tail, 400ms` and play in the same `fire()`.
362
382
 
363
383
  ## See also
364
384
 
365
385
  - `_building-blocks/additive-billboard-particles.md` — canonical additive material reference
366
386
  - `_building-blocks/trauma-shake-snippet.md` — `CameraShake.add_trauma()` for the recoil punch
367
- - `summer:visual-effects/recipes/hit-spark` — companion impact effect
368
- - `summer:visual-effects/recipes/lightning` — for energy weapons (replace the flash with a beam)
369
- - `summer:visual-effects/game-feel` — recoil + hit-stop wiring
387
+ - `vfx-hit-spark` — companion impact effect
388
+ - `vfx-lightning` — for energy weapons (replace the flash with a beam)
389
+ - `game-feel` — recoil + hit-stop wiring