summer-engine 2.8.1 → 3.0.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 (742) 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 +134 -41
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +159 -391
  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/{commands → cli/commands}/setup.js +43 -89
  49. package/dist/{commands → cli/commands}/skills.js +85 -222
  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 +47 -0
  167. package/dist/core/skills-registry.js +83 -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/{lib → installer}/agent-config.d.ts +20 -1
  188. package/dist/{lib → installer}/agent-config.js +148 -23
  189. package/dist/installer/legacy-skills.d.ts +26 -0
  190. package/dist/installer/legacy-skills.js +53 -0
  191. package/dist/installer/setup.d.ts +76 -0
  192. package/dist/installer/setup.js +146 -0
  193. package/dist/installer/skill-locations.d.ts +45 -0
  194. package/dist/installer/skill-locations.js +170 -0
  195. package/dist/installer/version-check.d.ts +174 -0
  196. package/dist/{lib → installer}/version-check.js +173 -42
  197. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  198. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  199. package/dist/mcp/server.d.ts +23 -3
  200. package/dist/mcp/server.js +122 -28
  201. package/dist/mcp/tools/asset-tools.js +62 -142
  202. package/dist/mcp/tools/creator-tools.js +5 -23
  203. package/dist/mcp/tools/debug-tools.js +61 -18
  204. package/dist/mcp/tools/event-tools.d.ts +14 -0
  205. package/dist/mcp/tools/event-tools.js +41 -0
  206. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  207. package/dist/mcp/tools/fabricate-tools.js +28 -0
  208. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  209. package/dist/mcp/tools/feedback-tools.js +88 -0
  210. package/dist/mcp/tools/file-tools.js +6 -53
  211. package/dist/mcp/tools/generate-tools.js +37 -63
  212. package/dist/mcp/tools/library-tools.d.ts +11 -0
  213. package/dist/mcp/tools/library-tools.js +42 -0
  214. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  215. package/dist/mcp/tools/navigation-tools.js +37 -0
  216. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  217. package/dist/mcp/tools/perception-tools.js +146 -0
  218. package/dist/mcp/tools/project-tools.d.ts +14 -0
  219. package/dist/mcp/tools/project-tools.js +72 -281
  220. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  221. package/dist/mcp/tools/runtime-tools.js +92 -0
  222. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  223. package/dist/mcp/tools/scene-tools.js +68 -119
  224. package/dist/mcp/tools/script-tools.d.ts +3 -0
  225. package/dist/mcp/tools/script-tools.js +118 -0
  226. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  227. package/dist/mcp/tools/spatial-tools.js +485 -0
  228. package/dist/mcp/tools/text-json.d.ts +8 -0
  229. package/dist/mcp/tools/text-json.js +12 -0
  230. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  231. package/dist/mcp/tools/ui-tools.js +82 -0
  232. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  233. package/dist/mcp/tools/visual-tools.js +383 -101
  234. package/dist/mcp/tools/with-engine.d.ts +9 -15
  235. package/dist/mcp/tools/with-engine.js +60 -96
  236. package/dist/project-memory/project-manifest.d.ts +36 -0
  237. package/dist/project-memory/project-manifest.js +50 -0
  238. package/dist/project-memory/project-memory.d.ts +57 -0
  239. package/dist/{lib → project-memory}/project-memory.js +46 -0
  240. package/gemini-extension.json +103 -2
  241. package/hooks/hooks-cursor.json +2 -2
  242. package/hooks/hooks.json +2 -1
  243. package/hooks/pre-commit-doctor.sh +45 -39
  244. package/hooks/run-hook.cmd +30 -23
  245. package/hooks/run-hook.sh +20 -0
  246. package/hooks/session-start.sh +18 -7
  247. package/integrations/README.md +70 -0
  248. package/integrations/claude/README.md +19 -0
  249. package/integrations/claude/manifest-target.json +16 -0
  250. package/integrations/cline/README.md +13 -0
  251. package/integrations/cline/manifest-target.json +3 -0
  252. package/integrations/codex/README.md +15 -0
  253. package/integrations/codex/manifest-target.json +5 -0
  254. package/integrations/cursor/README.md +16 -0
  255. package/integrations/cursor/manifest-target.json +5 -0
  256. package/integrations/factory/README.md +26 -0
  257. package/integrations/factory/manifest-target.json +5 -0
  258. package/integrations/gemini/README.md +26 -0
  259. package/integrations/gemini/manifest-target.json +5 -0
  260. package/integrations/github-copilot/README.md +12 -0
  261. package/integrations/github-copilot/manifest-target.json +3 -0
  262. package/integrations/kilo-code/README.md +16 -0
  263. package/integrations/kilo-code/manifest-target.json +3 -0
  264. package/integrations/lm-studio/README.md +12 -0
  265. package/integrations/lm-studio/manifest-target.json +3 -0
  266. package/integrations/opencode/README.md +15 -0
  267. package/integrations/opencode/manifest-target.json +3 -0
  268. package/integrations/roo-code/README.md +13 -0
  269. package/integrations/roo-code/manifest-target.json +3 -0
  270. package/integrations/vscode-copilot/README.md +12 -0
  271. package/integrations/vscode-copilot/manifest-target.json +3 -0
  272. package/integrations/windsurf/README.md +13 -0
  273. package/integrations/windsurf/manifest-target.json +3 -0
  274. package/library/references/collaborative-protocol/resource.yaml +24 -0
  275. package/library/references/gd-style/resource.yaml +24 -0
  276. package/{references → library/references/godot-version}/godot-version.md +6 -6
  277. package/library/references/godot-version/resource.yaml +22 -0
  278. package/library/references/headless-routing/headless-routing.md +46 -0
  279. package/library/references/headless-routing/resource.yaml +24 -0
  280. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  281. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  282. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  283. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  284. package/library/references/product-map/product-map.md +103 -0
  285. package/library/references/product-map/resource.yaml +33 -0
  286. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  287. package/library/references/public-surface-language/resource.yaml +17 -0
  288. package/library/references/summer-folder/resource.yaml +20 -0
  289. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  290. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  291. package/library/skills/3d-lighting/resource.yaml +27 -0
  292. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  293. package/library/skills/adaptive-music/resource.yaml +28 -0
  294. package/library/skills/agent-playtesting/SKILL.md +148 -0
  295. package/library/skills/agent-playtesting/resource.yaml +52 -0
  296. package/library/skills/ambient-bed/resource.yaml +24 -0
  297. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  298. package/library/skills/animated-loop/resource.yaml +27 -0
  299. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  300. package/library/skills/animation-tree/resource.yaml +33 -0
  301. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  302. package/library/skills/art-direction/resource.yaml +29 -0
  303. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  304. package/library/skills/asset-strategy/resource.yaml +63 -0
  305. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  306. package/library/skills/audio-direction/resource.yaml +32 -0
  307. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  308. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  309. package/library/skills/brainstorm-game/resource.yaml +30 -0
  310. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  311. package/library/skills/brainstorming/resource.yaml +23 -0
  312. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  313. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  314. package/library/skills/browse-templates/resource.yaml +23 -0
  315. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  316. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  317. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  318. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  319. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  320. package/library/skills/character-model/resource.yaml +36 -0
  321. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  322. package/library/skills/character-portrait/resource.yaml +30 -0
  323. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  324. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  325. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  326. package/library/skills/concept-art/resource.yaml +34 -0
  327. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  328. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  329. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  330. package/library/skills/debug/resource.yaml +31 -0
  331. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  332. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  333. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  334. package/library/skills/design-level/resource.yaml +31 -0
  335. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  336. package/library/skills/design-mechanic/resource.yaml +31 -0
  337. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  338. package/library/skills/design-npc/resource.yaml +29 -0
  339. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  340. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  341. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  342. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  343. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  344. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  345. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  346. package/library/skills/environment-kit/resource.yaml +29 -0
  347. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  348. package/library/skills/export-and-ship/resource.yaml +32 -0
  349. package/library/skills/fabricating-assets/SKILL.md +195 -0
  350. package/library/skills/fabricating-assets/resource.yaml +52 -0
  351. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  352. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  353. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  354. package/library/skills/fps-controller/resource.yaml +29 -0
  355. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  356. package/library/skills/game-feel/resource.yaml +27 -0
  357. package/library/skills/gameskill/SKILL.md +64 -0
  358. package/library/skills/gameskill/resource.yaml +22 -0
  359. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  360. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  361. package/library/skills/generate-motion/resource.yaml +34 -0
  362. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  363. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  364. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  365. package/library/skills/headless-scripting/resource.yaml +26 -0
  366. package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +1 -1
  367. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  368. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  369. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  370. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  371. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  372. package/library/skills/investigating-bugs/resource.yaml +24 -0
  373. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  374. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  375. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  376. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +23 -23
  377. package/library/skills/make-game/resource.yaml +35 -0
  378. package/library/skills/music-track/resource.yaml +28 -0
  379. package/library/skills/navigate-summer/SKILL.md +61 -0
  380. package/library/skills/navigate-summer/resource.yaml +35 -0
  381. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  382. package/library/skills/new-project/resource.yaml +28 -0
  383. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  384. package/library/skills/organic-model/resource.yaml +32 -0
  385. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  386. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  387. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  388. package/library/skills/pixel-art/resource.yaml +31 -0
  389. package/library/skills/play/resource.yaml +26 -0
  390. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  391. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  392. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  393. package/library/skills/procedural-animation/resource.yaml +33 -0
  394. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  395. package/library/skills/prop-model/resource.yaml +33 -0
  396. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  397. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  398. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  399. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  400. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  401. package/library/skills/remote-deploy/resource.yaml +23 -0
  402. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  403. package/library/skills/retarget/resource.yaml +33 -0
  404. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  405. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  406. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +9 -1
  407. package/library/skills/scene-composition/resource.yaml +27 -0
  408. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  409. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  410. package/library/skills/scene-scripting/SKILL.md +764 -0
  411. package/library/skills/scene-scripting/resource.yaml +58 -0
  412. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  413. package/library/skills/scene-to-level/resource.yaml +33 -0
  414. package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +1 -1
  415. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  416. package/library/skills/skill-create/SKILL.md +138 -0
  417. package/library/skills/skill-create/resource.yaml +25 -0
  418. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  419. package/library/skills/skill-improve/resource.yaml +25 -0
  420. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  421. package/library/skills/skill-test/resource.yaml +26 -0
  422. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  423. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  424. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  425. package/library/skills/skybox-panorama/resource.yaml +28 -0
  426. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  427. package/library/skills/sound-effect/resource.yaml +27 -0
  428. package/library/skills/spatial-placement/SKILL.md +74 -0
  429. package/library/skills/spatial-placement/resource.yaml +42 -0
  430. package/library/skills/spatial-placement/tests/spec.md +65 -0
  431. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  432. package/library/skills/sprite-sheet/resource.yaml +32 -0
  433. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  434. package/library/skills/tileable-texture/resource.yaml +31 -0
  435. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  436. package/library/skills/trailer-shot/resource.yaml +27 -0
  437. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  438. package/library/skills/tune-performance/resource.yaml +31 -0
  439. package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +1 -1
  440. package/library/skills/ui-basics/resource.yaml +25 -0
  441. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  442. package/library/skills/ui-graphics/resource.yaml +29 -0
  443. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  444. package/library/skills/use-widget-asset/resource.yaml +29 -0
  445. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  446. package/library/skills/using-summer/resource.yaml +41 -0
  447. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  448. package/library/skills/vehicle-model/resource.yaml +34 -0
  449. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  450. package/library/skills/verification-before-completion/resource.yaml +23 -0
  451. package/library/skills/verifying-scenes/SKILL.md +98 -0
  452. package/library/skills/verifying-scenes/resource.yaml +42 -0
  453. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  454. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  455. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  456. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  457. package/library/skills/vfx-fire/resource.yaml +35 -0
  458. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  459. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  460. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  461. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  462. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  463. package/library/skills/vfx-lightning/resource.yaml +33 -0
  464. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  465. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  466. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  467. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  468. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  469. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  470. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  471. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  472. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  473. package/library/skills/vfx-smoke/resource.yaml +32 -0
  474. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  475. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  476. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  477. package/library/skills/voice-line/resource.yaml +27 -0
  478. package/library/skills/world-building-3d/SKILL.md +105 -0
  479. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  480. package/library/skills/world-building-3d/resource.yaml +44 -0
  481. package/library/skills/world-building-3d/tests/spec.md +48 -0
  482. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  483. package/library/skills/writing-plans/resource.yaml +23 -0
  484. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  485. package/library/skills/writing-skills/resource.yaml +29 -0
  486. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  487. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  488. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  489. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  490. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  491. package/library/templates/2d-platformer/resource.yaml +24 -0
  492. package/library/templates/2d-rpg/resource.yaml +21 -0
  493. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  494. package/library/templates/3d-basic/resource.yaml +16 -0
  495. package/library/templates/3d-city-kit/resource.yaml +24 -0
  496. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  497. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  498. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  499. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  500. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  501. package/library/templates/3d-racing-game/resource.yaml +21 -0
  502. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  503. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  504. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  505. package/library/templates/README.md +94 -0
  506. package/library/templates/empty/resource.yaml +16 -0
  507. package/library/tools/add-node/resource.yaml +60 -0
  508. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  509. package/library/tools/api-docs/resource.yaml +57 -0
  510. package/library/tools/batch/resource.yaml +52 -0
  511. package/library/tools/camera-bookmark/resource.yaml +73 -0
  512. package/library/tools/check-job/resource.yaml +45 -0
  513. package/library/tools/clear-console/resource.yaml +40 -0
  514. package/library/tools/connect-signal/resource.yaml +63 -0
  515. package/library/tools/create-debug-report/resource.yaml +67 -0
  516. package/library/tools/create-scene/resource.yaml +59 -0
  517. package/library/tools/creator-config/resource.yaml +63 -0
  518. package/library/tools/creator-publish/resource.yaml +73 -0
  519. package/library/tools/creator-releases/resource.yaml +53 -0
  520. package/library/tools/fabricate-3d/resource.yaml +108 -0
  521. package/library/tools/game-control/resource.yaml +84 -0
  522. package/library/tools/game-input/resource.yaml +159 -0
  523. package/library/tools/game-probe/resource.yaml +90 -0
  524. package/library/tools/generate-3d/resource.yaml +112 -0
  525. package/library/tools/generate-audio/resource.yaml +80 -0
  526. package/library/tools/generate-image/resource.yaml +62 -0
  527. package/library/tools/generate-motion/resource.yaml +66 -0
  528. package/library/tools/generate-video/resource.yaml +66 -0
  529. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  530. package/library/tools/get-asset/resource.yaml +42 -0
  531. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  532. package/library/tools/get-console/resource.yaml +69 -0
  533. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  534. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  535. package/library/tools/get-diagnostics/resource.yaml +42 -0
  536. package/library/tools/get-project-context/resource.yaml +45 -0
  537. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  538. package/library/tools/get-scene-tree/resource.yaml +52 -0
  539. package/library/tools/get-script-errors/resource.yaml +45 -0
  540. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  541. package/library/tools/import-asset/resource.yaml +73 -0
  542. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  543. package/library/tools/import-from-url/resource.yaml +51 -0
  544. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  545. package/library/tools/import-hdri/resource.yaml +69 -0
  546. package/library/tools/input-map-bind/resource.yaml +52 -0
  547. package/library/tools/inspect-node/resource.yaml +46 -0
  548. package/library/tools/inspect-resource/resource.yaml +45 -0
  549. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  550. package/library/tools/instantiate-scene/resource.yaml +62 -0
  551. package/library/tools/is-running/resource.yaml +40 -0
  552. package/library/tools/library-feedback/resource.yaml +89 -0
  553. package/library/tools/list-my-assets/resource.yaml +56 -0
  554. package/library/tools/navigation-probe/resource.yaml +85 -0
  555. package/library/tools/open/resource.yaml +80 -0
  556. package/library/tools/open-main-scene/resource.yaml +40 -0
  557. package/library/tools/open-scene/resource.yaml +46 -0
  558. package/library/tools/play/resource.yaml +91 -0
  559. package/library/tools/project-setting/resource.yaml +53 -0
  560. package/library/tools/read-file/resource.yaml +47 -0
  561. package/library/tools/read-library/resource.yaml +67 -0
  562. package/library/tools/recent-events/resource.yaml +71 -0
  563. package/library/tools/remove-node/resource.yaml +51 -0
  564. package/library/tools/replace-node/resource.yaml +57 -0
  565. package/library/tools/replace-text/resource.yaml +61 -0
  566. package/library/tools/run-editor-script/resource.yaml +61 -0
  567. package/library/tools/run-script/resource.yaml +73 -0
  568. package/library/tools/runtime-animate/resource.yaml +140 -0
  569. package/library/tools/runtime-call/resource.yaml +74 -0
  570. package/library/tools/runtime-set/resource.yaml +80 -0
  571. package/library/tools/runtime-spawn/resource.yaml +95 -0
  572. package/library/tools/save-scene/resource.yaml +50 -0
  573. package/library/tools/screenshot/resource.yaml +112 -0
  574. package/library/tools/search-assets/resource.yaml +67 -0
  575. package/library/tools/search-library/resource.yaml +81 -0
  576. package/library/tools/select-node/resource.yaml +48 -0
  577. package/library/tools/set-prop/resource.yaml +64 -0
  578. package/library/tools/set-resource-property/resource.yaml +66 -0
  579. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  580. package/library/tools/snap-to-surface/resource.yaml +90 -0
  581. package/library/tools/snapshot-diff/resource.yaml +58 -0
  582. package/library/tools/starcast/resource.yaml +120 -0
  583. package/library/tools/start-game-task/resource.yaml +91 -0
  584. package/library/tools/stop/resource.yaml +51 -0
  585. package/library/tools/test-placement/resource.yaml +109 -0
  586. package/library/tools/ui-actions/resource.yaml +77 -0
  587. package/library/tools/ui-activate/resource.yaml +88 -0
  588. package/library/tools/ui-screenshot/resource.yaml +63 -0
  589. package/library/tools/ui-tree/resource.yaml +69 -0
  590. package/library/tools/wait-for-event/resource.yaml +84 -0
  591. package/library/tools/world-snapshot/resource.yaml +60 -0
  592. package/library/tools/write-file/resource.yaml +54 -0
  593. package/package.json +22 -16
  594. package/registry/generated/aliases.json +207 -0
  595. package/registry/generated/counts.json +12 -0
  596. package/registry/generated/gemini-extension.json +122 -0
  597. package/registry/generated/index.json +7709 -0
  598. package/registry/generated/marketplace.claude.json +44 -0
  599. package/registry/generated/mcp.json +13 -0
  600. package/registry/generated/plugin.claude.json +135 -0
  601. package/registry/generated/plugin.codex.json +144 -0
  602. package/registry/generated/plugin.cursor.json +134 -0
  603. package/registry/generated/plugin.factory.json +117 -0
  604. package/registry/generated/skills-registry.json +851 -0
  605. package/registry/generated/templates-registry.json +455 -0
  606. package/registry/schemas/allowed-hosts.json +19 -0
  607. package/registry/schemas/collection.schema.json +68 -0
  608. package/registry/schemas/domains.json +96 -0
  609. package/registry/schemas/example.schema.json +11 -0
  610. package/registry/schemas/reference.schema.json +10 -0
  611. package/registry/schemas/resource.schema.json +154 -0
  612. package/registry/schemas/skill.schema.json +14 -0
  613. package/registry/schemas/template.schema.json +46 -0
  614. package/registry/schemas/tool.schema.json +61 -0
  615. package/_persona/summer/SKILL.md +0 -113
  616. package/dist/bin/postinstall.d.ts +0 -2
  617. package/dist/bin/postinstall.js +0 -3
  618. package/dist/commands/cloud.d.ts +0 -2
  619. package/dist/commands/cloud.js +0 -80
  620. package/dist/commands/create.d.ts +0 -3
  621. package/dist/commands/create.js +0 -171
  622. package/dist/commands/install.d.ts +0 -19
  623. package/dist/commands/install.js +0 -194
  624. package/dist/commands/list.js +0 -67
  625. package/dist/commands/logout.js +0 -13
  626. package/dist/commands/logs.d.ts +0 -2
  627. package/dist/commands/logs.js +0 -19
  628. package/dist/commands/open.d.ts +0 -2
  629. package/dist/commands/open.js +0 -32
  630. package/dist/commands/orchestrator.d.ts +0 -8
  631. package/dist/commands/orchestrator.js +0 -143
  632. package/dist/commands/run.d.ts +0 -2
  633. package/dist/commands/run.js +0 -167
  634. package/dist/commands/status.js +0 -46
  635. package/dist/lib/banner.d.ts +0 -4
  636. package/dist/lib/banner.js +0 -122
  637. package/dist/lib/cloud/api.d.ts +0 -79
  638. package/dist/lib/cloud/api.js +0 -107
  639. package/dist/lib/cloud/apply.d.ts +0 -32
  640. package/dist/lib/cloud/apply.js +0 -294
  641. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  642. package/dist/lib/cloud/checkpoint.js +0 -142
  643. package/dist/lib/cloud/conflicts.d.ts +0 -55
  644. package/dist/lib/cloud/conflicts.js +0 -131
  645. package/dist/lib/cloud/containment.d.ts +0 -8
  646. package/dist/lib/cloud/containment.js +0 -52
  647. package/dist/lib/cloud/diff.d.ts +0 -39
  648. package/dist/lib/cloud/diff.js +0 -138
  649. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  650. package/dist/lib/cloud/engine-bridge.js +0 -139
  651. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  652. package/dist/lib/cloud/hash-cache.js +0 -44
  653. package/dist/lib/cloud/hash.d.ts +0 -10
  654. package/dist/lib/cloud/hash.js +0 -111
  655. package/dist/lib/cloud/http.d.ts +0 -17
  656. package/dist/lib/cloud/http.js +0 -47
  657. package/dist/lib/cloud/lock-path.d.ts +0 -1
  658. package/dist/lib/cloud/lock-path.js +0 -5
  659. package/dist/lib/cloud/lock.d.ts +0 -14
  660. package/dist/lib/cloud/lock.js +0 -143
  661. package/dist/lib/cloud/manifest.d.ts +0 -6
  662. package/dist/lib/cloud/manifest.js +0 -41
  663. package/dist/lib/cloud/paths.d.ts +0 -20
  664. package/dist/lib/cloud/paths.js +0 -90
  665. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  666. package/dist/lib/cloud/project-godot-merge.js +0 -185
  667. package/dist/lib/cloud/rules.d.ts +0 -39
  668. package/dist/lib/cloud/rules.js +0 -159
  669. package/dist/lib/cloud/sync.d.ts +0 -21
  670. package/dist/lib/cloud/sync.js +0 -518
  671. package/dist/lib/cloud/transfer.d.ts +0 -23
  672. package/dist/lib/cloud/transfer.js +0 -184
  673. package/dist/lib/cloud/types.d.ts +0 -62
  674. package/dist/lib/cloud/types.js +0 -1
  675. package/dist/lib/cloud/validate-path.d.ts +0 -23
  676. package/dist/lib/cloud/validate-path.js +0 -103
  677. package/dist/lib/engine.d.ts +0 -51
  678. package/dist/lib/game-task-plan.d.ts +0 -42
  679. package/dist/lib/project-memory.d.ts +0 -33
  680. package/dist/lib/public-surface-paths.d.ts +0 -13
  681. package/dist/lib/public-surface-paths.js +0 -42
  682. package/dist/lib/remote-templates.d.ts +0 -25
  683. package/dist/lib/remote-templates.js +0 -86
  684. package/dist/lib/skills-registry.d.ts +0 -572
  685. package/dist/lib/skills-registry.js +0 -1061
  686. package/dist/lib/version-check.d.ts +0 -106
  687. package/dist/mcp/tools/cloud-tools.js +0 -42
  688. package/references/mcp-tools-reference.md +0 -199
  689. package/references/template-registry.md +0 -73
  690. package/skills/README.md +0 -103
  691. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  692. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  693. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  694. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  695. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  696. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  697. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  698. package/skills/workflow/gameskill/SKILL.md +0 -120
  699. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  700. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  701. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  702. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  703. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  704. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  705. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  706. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  707. package/skills/workflow/skill-create/SKILL.md +0 -153
  708. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  709. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  710. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  711. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  712. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  713. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  714. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  715. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  716. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  717. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  718. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  719. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  720. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  721. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  722. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  723. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  724. /package/dist/{lib → core}/store.d.ts +0 -0
  725. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  726. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  727. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  728. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  729. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  730. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  731. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  732. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  733. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  734. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  735. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  736. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  737. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  738. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  739. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  740. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  741. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  742. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -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,53 @@
1
+ # Trauma Camera Shake — Reusable Snippet
2
+
3
+ Variant of the canonical "trauma model" shake (see `visual-effects/game-feel/SKILL.md` for the full game-feel discipline). Lightning and explosion recipes call `add_trauma()` to chain visual impact with screen-level reaction.
4
+
5
+ ## Setup (autoload script)
6
+
7
+ `autoloads/CameraShake.gd`:
8
+
9
+ ```gdscript
10
+ extends Node
11
+
12
+ var trauma: float = 0.0
13
+ var trauma_decay: float = 1.4
14
+ var max_offset: Vector3 = Vector3(0.4, 0.4, 0.0)
15
+ var max_yaw: float = 0.05
16
+ var max_pitch: float = 0.05
17
+ var camera: Camera3D
18
+
19
+ func _process(delta: float) -> void:
20
+ if camera == null:
21
+ camera = get_viewport().get_camera_3d()
22
+ if camera == null:
23
+ return
24
+ if trauma > 0.0:
25
+ var s := trauma * trauma # perceived intensity grows quadratically
26
+ camera.h_offset = max_offset.x * s * (randf() * 2.0 - 1.0)
27
+ camera.v_offset = max_offset.y * s * (randf() * 2.0 - 1.0)
28
+ camera.rotation.x += max_pitch * s * (randf() * 2.0 - 1.0) * 0.1
29
+ camera.rotation.y += max_yaw * s * (randf() * 2.0 - 1.0) * 0.1
30
+ trauma = max(0.0, trauma - trauma_decay * delta)
31
+ else:
32
+ camera.h_offset = 0.0
33
+ camera.v_offset = 0.0
34
+
35
+ func add_trauma(amount: float) -> void:
36
+ trauma = clamp(trauma + amount, 0.0, 1.0)
37
+ ```
38
+
39
+ Register `CameraShake` as autoload in Project Settings. An autoload is a node at
40
+ `/root/CameraShake`, not an engine singleton — reach it with
41
+ `get_node_or_null("/root/CameraShake")`. `Engine.has_singleton("CameraShake")` is
42
+ always `false` for an autoload (measured), so never gate the call on it.
43
+
44
+ ## Usage
45
+
46
+ ```gdscript
47
+ # In a recipe controller:
48
+ CameraShake.add_trauma(0.6) # lightning strike
49
+ CameraShake.add_trauma(1.0) # explosion (saturates to max)
50
+ CameraShake.add_trauma(0.2) # hit spark
51
+ ```
52
+
53
+ The trauma model: noise-driven shake whose intensity grows quadratically with `trauma`. Multiple sources stack but saturate — a player taking 5 hits in a row shakes harder, but never beyond the max.
@@ -0,0 +1,35 @@
1
+ id: skill/vfx-muzzle-flash
2
+ kind: skill
3
+ version: 1.0.3
4
+ summary: Muzzle-flash 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.
5
+ use_when:
6
+ - authoring a muzzle-flash effect — gun fire, weapon flash, barrel flash, spell-cast burst at a hand
7
+ - a gun or spell-casting hand shoots with no visible flash at the barrel or palm
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-hit-spark
26
+ - skill/vfx-lightning
27
+ - skill/vfx-magic-glow
28
+ - skill/vfx-smoke
29
+ source: official
30
+ license: MIT
31
+ status: stable
32
+ recommended: true
33
+ aliases:
34
+ - skills/visual-effects/recipes/muzzle-flash
35
+ - muzzle-flash
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: smoke
2
+ name: vfx-smoke
3
3
  description: Use when authoring a smoke visual effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D. Trigger on "smoke", "smoke trail", "puff", "chimney smoke", "smoke from a fire", "steam", "fog cloud", "explosion smoke".
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
 
@@ -255,6 +255,32 @@ summer_set_prop(scenePath="res://main.tscn", path="./World/Campfire/Smoke", key=
255
255
  summer_set_prop(scenePath="res://main.tscn", path="./World/Campfire/Smoke", key="rise_height", value=3.0)
256
256
  ```
257
257
 
258
+ ### 5a. One-script wiring (summer_run_script)
259
+
260
+ On engines with `summer_run_script` (see `scene-scripting`), the node wiring
261
+ above is ONE ctx script — transactional, and it builds the QuadMesh + ShaderMaterial
262
+ resources directly instead of `.tres` sidecars:
263
+
264
+ ```gdscript
265
+ func run(ctx):
266
+ var smoke := ctx.add_node("GPUParticles3D", "Smoke", ctx.find("Chimney"))
267
+ smoke.set_script(load("res://addons/vfx/smoke/smoke_controller.gd"))
268
+ smoke.process_material = ParticleProcessMaterial.new()
269
+ var quad := QuadMesh.new()
270
+ quad.size = Vector2(1, 1)
271
+ var mat := ShaderMaterial.new()
272
+ mat.shader = load("res://addons/vfx/smoke/smoke.gdshader")
273
+ quad.material = mat
274
+ smoke.draw_pass_1 = quad
275
+ smoke.position = Vector3(0, 0.3, 0)
276
+ smoke.set("rise_height", 4.0)
277
+ smoke.set("particle_count", 48)
278
+ smoke.set("wind_direction", Vector3(0.4, 0, 0.1))
279
+ ctx.save_scene()
280
+ ```
281
+
282
+ Verify with `summer_snapshot_diff` (exactly one node added) and a `summer_screenshot`.
283
+
258
284
  ### 5b. Verify
259
285
 
260
286
  The shader and the controller are compiled code. Check them before tuning anything.
@@ -429,14 +455,14 @@ manually in Summer Engine:
429
455
 
430
456
  After firing this recipe, suggest:
431
457
 
432
- - `summer:visual-effects/recipes/fire` — the partner; almost any fire wants smoke 0.5–2 m above the flame top.
433
- - `summer:visual-effects/recipes/dissolve` — pair `black-fire-smoke` with a dissolving target for "the bandit camp burns and ashes drift away."
434
- - `summer:visual-effects/recipes/lightning` — for a smoke flash from a lightning strike (use `puff()` on impact).
435
- - `summer:audio/sound-effect` — generate `gentle wind through smoke, soft hiss, 4s loop` for chimneys.
458
+ - `vfx-fire` — the partner; almost any fire wants smoke 0.5–2 m above the flame top.
459
+ - `vfx-dissolve` — pair `black-fire-smoke` with a dissolving target for "the bandit camp burns and ashes drift away."
460
+ - `vfx-lightning` — for a smoke flash from a lightning strike (use `puff()` on impact).
461
+ - `sound-effect` — generate `gentle wind through smoke, soft hiss, 4s loop` for chimneys.
436
462
 
437
463
  ## See also
438
464
 
439
465
  - `_building-blocks/noise-3d-fbm.gdshaderinc` — the FBM noise this shader includes
440
- - `summer:visual-effects/recipes/fire` — sister recipe, almost always paired
441
- - `summer:visual-effects/recipes/dissolve` — for ash particles after disintegration
442
- - `summer:gdscript-patterns` — for the controller idioms (signals, exports, `@tool`)
466
+ - `vfx-fire` — sister recipe, almost always paired
467
+ - `vfx-dissolve` — for ash particles after disintegration
468
+ - `gdscript-patterns` — for the controller 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,32 @@
1
+ id: skill/vfx-smoke
2
+ kind: skill
3
+ version: 1.0.2
4
+ summary: Smoke effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D.
5
+ use_when:
6
+ - authoring a smoke effect — smoke trail, puff, chimney smoke, steam, fog cloud, explosion smoke
7
+ - a chimney, campfire, explosion, or vent needs a rising smoke column or puff in a 3D scene
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/vfx-dissolve
24
+ - skill/vfx-fire
25
+ - skill/vfx-lightning
26
+ source: official
27
+ license: MIT
28
+ status: stable
29
+ recommended: false
30
+ aliases:
31
+ - skills/visual-effects/recipes/smoke
32
+ - smoke
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: water-ripple
2
+ name: vfx-water-ripple
3
3
  description: Use when authoring a water-ripple visual effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts. Trigger on "water ripple", "ripples on water", "raindrop ripple", "splash ripple", "rain on water", "footstep in puddle", "fish jumps".
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_get_script_errors summer_get_debugger_errors summer_play summer_stop
9
9
  paths: ["**/*.tscn", "**/*.gd", "**/*.gdshader", "addons/vfx/**"]
10
10
  ---
11
11
 
@@ -246,6 +246,28 @@ summer_set_resource_property(scenePath="res://main.tscn", nodePath="./World/Pudd
246
246
  summer_save_scene(scenePath="res://main.tscn")
247
247
  ```
248
248
 
249
+ ### 5a. One-script wiring (summer_run_script)
250
+
251
+ On engines with `summer_run_script` (see `scene-scripting`), the node and
252
+ resource wiring is ONE transactional ctx script — and it builds the subdivided
253
+ PlaneMesh directly, so the `plane.tres` sidecar disappears:
254
+
255
+ ```gdscript
256
+ func run(ctx):
257
+ var puddle := ctx.add_node("MeshInstance3D", "Puddle", null)
258
+ var plane := PlaneMesh.new()
259
+ plane.subdivide_width = 32
260
+ plane.subdivide_depth = 32
261
+ puddle.mesh = plane
262
+ puddle.position = Vector3(0, 0.01, 0)
263
+ puddle.set_script(load("res://addons/vfx/water-ripple/water_ripple_surface.gd"))
264
+ puddle.set("normal_texture", load("res://addons/vfx/water-ripple/water_normals.png"))
265
+ ctx.save_scene()
266
+ ```
267
+
268
+ Set the mesh BEFORE the script if the controller reads it in `_ready`; either way,
269
+ `ctx.add_node` has already owned the node, so it survives the save.
270
+
249
271
  ### 5b. Verify
250
272
 
251
273
  The shader and the controller are compiled code, and the controller `preload`s the
@@ -387,14 +409,14 @@ manually in Summer Engine:
387
409
 
388
410
  After firing this recipe, suggest:
389
411
 
390
- - `summer:visual-effects/recipes/hit-spark` — recolor white-blue and spawn at the impact point for a few water droplets flying up. Pair them.
391
- - `summer:visual-effects/recipes/smoke` — recolor pale gray for the steam if you're hitting hot water or lava.
392
- - `summer:audio/sound-effect` — generate `single water drop in shallow puddle, splash, 200ms` and trigger on each `add_ripple`.
393
- - For weather-driven rain ripples, see `summer:visual-effects/weather` (if available) or scaffold a simple Rain node that calls `add_ripple` 30×/sec across the puddle bounds.
412
+ - `vfx-hit-spark` — recolor white-blue and spawn at the impact point for a few water droplets flying up. Pair them.
413
+ - `vfx-smoke` — recolor pale gray for the steam if you're hitting hot water or lava.
414
+ - `sound-effect` — generate `single water drop in shallow puddle, splash, 200ms` and trigger on each `add_ripple`.
415
+ - For weather-driven rain ripples, scaffold a simple Rain node that calls `add_ripple` 30×/sec across the puddle bounds.
394
416
 
395
417
  ## See also
396
418
 
397
419
  - `_building-blocks/additive-billboard-particles.md` — for paired splash droplets
398
- - `summer:visual-effects/recipes/hit-spark` — sister recipe for the upward droplets
399
- - `summer:visual-effects/recipes/smoke` — for steam over hot liquids
400
- - `summer:gdscript-patterns` — for the controller idioms
420
+ - `vfx-hit-spark` — sister recipe for the upward droplets
421
+ - `vfx-smoke` — for steam over hot liquids
422
+ - `gdscript-patterns` — for the controller idioms
@@ -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,31 @@
1
+ id: skill/vfx-water-ripple
2
+ kind: skill
3
+ version: 1.0.2
4
+ summary: Water-ripple effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts.
5
+ use_when:
6
+ - authoring a water-ripple effect — raindrop ripples, splash ripples, footstep in a puddle, fish jumps
7
+ - rain, footsteps, or falling objects should disturb a water surface with spreading ripples
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/vfx-hit-spark
24
+ - skill/vfx-smoke
25
+ source: official
26
+ license: MIT
27
+ status: stable
28
+ recommended: false
29
+ aliases:
30
+ - skills/visual-effects/recipes/water-ripple
31
+ - water-ripple
@@ -0,0 +1,27 @@
1
+ id: skill/voice-line
2
+ kind: skill
3
+ version: 1.0.2
4
+ summary: Generate TTS voice lines — NPC barks, narrator, dialogue — with voice-id sourcing, a character-to-voice decision tree, and multi-line dialogue support.
5
+ use_when:
6
+ - '"the NPC needs a greeting / a bark / a narrator intro read aloud"'
7
+ - giving a character a voice that fits their personality (gruff, cheerful, robotic)
8
+ - a back-and-forth dialogue between two or more characters
9
+ do_not_use_when:
10
+ - non-speech audio — sound effects or music (skill/sound-effect, skill/music-track)
11
+ facets:
12
+ lifecycle:
13
+ - build
14
+ domains:
15
+ - audio
16
+ - assets
17
+ modalities:
18
+ - audio
19
+ - assets
20
+ compatibility:
21
+ engine: ">=4.6"
22
+ source: official
23
+ license: MIT
24
+ status: stable
25
+ recommended: true
26
+ aliases:
27
+ - skills/audio/voice-line
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: world-building-3d
3
+ description: Use when composing, placing, grounding, spacing, or validating 3D objects in Summer Engine scenes. Trigger on "world building", "place props", "snap to floor", "align objects", "distribute objects", "navigation reachability", or requests to make a 3D scene look deliberately arranged rather than roughly positioned.
4
+ license: MIT
5
+ compatibility: [Cursor, Claude Code, Windsurf, Codex]
6
+ category: scene-and-project
7
+ allowed-tools: Read Grep summer_open_scene summer_get_scene_tree summer_inspect_node summer_set_prop summer_test_placement summer_snap_to_surface summer_align_distribute_3d summer_navigation_probe summer_screenshot summer_play
8
+ ---
9
+
10
+ # Build 3D Worlds with Spatial Evidence
11
+
12
+ Use exact scene and node paths, make one geometric decision at a time, and verify the saved result. Treat spatial tools as bounded evidence: they reduce guesswork but do not replace a final rendered or gameplay check.
13
+
14
+ Read [references/spatial-tools.md](references/spatial-tools.md) before the first spatial-tool call in a task. It defines each tool's evidence boundary and the result fields that must not be overinterpreted.
15
+
16
+ ## Choose the narrowest tool
17
+
18
+ | Need | Tool | Effect |
19
+ |---|---|---|
20
+ | Evaluate a proposed prop pose | `summer_test_placement` | Read-only ghost pose |
21
+ | Seat one object on a floor, shelf, table, or ramp | `summer_snap_to_surface` | Moves subject and saves |
22
+ | Align or evenly space 2–16 objects | `summer_align_distribute_3d` | Moves subjects and saves |
23
+ | Check whether two positions share a navigation route | `summer_navigation_probe` | Read-only |
24
+
25
+ Use ordinary `summer_get_scene_tree` and `summer_inspect_node` first when paths, hierarchy, authored transforms, collision layers, or camera settings are unknown.
26
+
27
+ ## Follow the composition loop
28
+
29
+ 1. Open the exact target scene and resolve exact `./`-relative paths.
30
+ 2. Inspect the subject, its visual/collider descendants, intended support or neighbors, and the camera.
31
+ 3. State the intended invariant: contact gap, clearance, spacing axis, or reachable destination.
32
+ If the support, ordering, or destination is genuinely ambiguous, ask
33
+ `Proceed?` with the concrete choice before making a user-visible mutation.
34
+ 4. Query before mutation when a read-only tool exists.
35
+ 5. Apply the smallest mutation. Prefer the dedicated solver over hand-tuned transform loops.
36
+ 6. Re-query the saved pose. Do not treat a successful mutation receipt as proof of visual quality.
37
+ 7. Run a rendered or gameplay verification when renderer visibility, transparent materials, concave silhouettes, navigation behavior, or player perception matters.
38
+
39
+ Keep scene A and scene B independent. Never copy a solved world transform between scenes unless their relevant parents, bounds, and obstacles are proven identical.
40
+
41
+ There is no raw `.tscn` fallback for these evidence queries or solver mutations.
42
+ They depend on the running Summer Engine's live scene, physics, camera, and
43
+ navigation state. If the required tool is unavailable, inspect and explain the
44
+ limitation instead of hand-editing a scene around it.
45
+
46
+ ## Place and ground props
47
+
48
+ For a known candidate pose, call `summer_test_placement` before setting the transform. Preserve the current global scale unless the user asked to resize the asset.
49
+
50
+ - `overlapCount > 0` or known overlap evidence means reject the pose.
51
+ - `fits: null` means the physics backend could not prove completeness; it is not `true`.
52
+ - Require `grounded: true` and an acceptable absolute `floorGap` for seated props.
53
+ - Treat `visual_aabb` as broad-phase evidence. Irregular meshes can have empty-looking AABB corners.
54
+
55
+ For a direct seat operation, call `summer_snap_to_surface` with a world-space direction. Use `alignUp: true` only when the object should inherit an exact physics support normal. After slope alignment, verify both up alignment and preserved heading. Do not infer a usable normal from `visual_aabb` fallback.
56
+
57
+ `SnapToSurface` does not return the raw support normal or a heading residual.
58
+ Require `evidence: physics`, `evidenceDetails.contactResolved: true`, the expected
59
+ `supportPath`, `alignApplied: true`, a plausible `slopeDeg`, and inspect the saved
60
+ `after.basis` plus a rendered view. Keep `maxDistance` tight because the current
61
+ solver cannot take an expected-support path and will stop at the first surface.
62
+
63
+ On mixed-height or sloped supports, arrange the subjects laterally first, then
64
+ snap each subject. A later alignment can lift a grounded prop or bury it in a
65
+ slope. For a final placement re-query, use the exact saved global pose; if the
66
+ post-alignment basis cannot be expressed confidently as global Euler degrees,
67
+ do not invent angles - use the snap receipt and an independent rendered or
68
+ physics check.
69
+
70
+ ## Arrange groups
71
+
72
+ Pass subjects to `summer_align_distribute_3d` in intentional order. Choose a world axis explicitly.
73
+
74
+ - Use `align_min`, `align_center`, or `align_max` to share one projected anchor.
75
+ - Use `distribute_centers` when equal center spacing matters.
76
+ - Use `distribute_gaps` when visible edge clearance matters; endpoints remain fixed.
77
+
78
+ Inspect the result's residuals and `changedCount`; infer unchanged subjects only
79
+ as `subjectCount - changedCount`. Rerun placement checks for dense groups because
80
+ alignment solves one axis and does not prove full 3D clearance.
81
+
82
+ ## Validate navigation placement
83
+
84
+ Use `summer_navigation_probe` before moving an NPC, pickup, portal, or encounter anchor whose route matters.
85
+
86
+ - `ready: false` means no trustworthy navigation evidence; wait or fix the navigation map.
87
+ - `reachable: false` is meaningful only when `ready: true`.
88
+ - Check requested-to-snapped endpoint distance. A route to a distant snapped point does not validate the requested placement.
89
+ - After moving the subject, probe the final authored position again.
90
+
91
+ Probe each destination separately from the intended player/start point. Use the
92
+ final inspected global origin and the scene's actual navigation-layer mask. Set
93
+ the acceptable snap distance from the navigation agent radius or the authored
94
+ placement tolerance; if neither is known, report the distance instead of
95
+ declaring it small. For iteration 0, allow one bounded navigation-sync wait and
96
+ retry once - never loop indefinitely.
97
+
98
+ ## Fail closed
99
+
100
+ Do not work around world-mismatch failures such as `subject_world_mismatch` or
101
+ `subject_geometry_world_mismatch`, non-finite transforms, hierarchy limits,
102
+ unavailable physics, or missing bounds by guessing. Fix the scene structure or
103
+ choose a clearly labeled manual fallback, then verify it.
104
+
105
+ Do not retry a mutation after an oversized or ambiguous result unless the receipt explicitly says it is retry-safe; the first mutation may already have landed.
@@ -0,0 +1,50 @@
1
+ # Spatial tool evidence contract
2
+
3
+ Load this reference before using Summer's 3D world-building tools.
4
+
5
+ ## Shared rules
6
+
7
+ - Pass exact `scenePath` and exact scene-root-relative node paths. Do not rely on editor selection.
8
+ - Use one `World3D`. The tools fail closed across SubViewport-owned worlds.
9
+ - Keep subjects bounded: placement/snap one subject, alignment sixteen.
10
+ - Normal model-visible results stay below 5 KiB. Prefer targeted calls over collecting an entire scene.
11
+ - Read-only tools never save: placement test, navigation probe.
12
+ - Mutation tools register undo and save the exact target scene: snap, align/distribute.
13
+
14
+ ## `summer_test_placement`
15
+
16
+ Input is a candidate global position and global Euler rotation. The subject's current global scale is preserved, and the scene is not mutated.
17
+
18
+ Interpretation:
19
+
20
+ - Physics overlap counts are lower bounds because Godot exposes no broadphase-completeness bit.
21
+ - Any known obstruction makes `fits: false`.
22
+ - Zero known physics overlaps can still yield `fits: null`; never coerce it to success.
23
+ - `grounded`, signed `floorGap`, and support evidence are independent of overlap certainty. Claim physics-grounded only when `floorEvidence` is `physics` and `supportQueryComplete` is true; otherwise label the evidence approximate or incomplete.
24
+ - `visual_aabb` includes visible mesh-only obstacles but is conservative.
25
+
26
+ ## `summer_snap_to_surface`
27
+
28
+ The subject sweeps along a normalized world direction. Physics evidence uses enabled collider shapes; `visual_aabb` is a mesh-only fallback.
29
+
30
+ Use `alignUp` only when an exact collider support is intended. After the call,
31
+ require `evidence: physics`, resolved contact, the expected `supportPath`,
32
+ `alignApplied`, plausible `slopeDeg`, final gap/error bound, and the saved basis.
33
+ The result does not expose the raw support normal or a heading residual, so use
34
+ the saved basis plus an independent rendered/physics check. If overlap recovery
35
+ fails, do not teleport manually through the obstruction.
36
+
37
+ ## `summer_align_distribute_3d`
38
+
39
+ Anchors and extents come from visible descendant world AABBs. The solver translates only along the requested axis and preserves basis/scale. Distribution preserves caller order and fixed endpoints.
40
+
41
+ This is one-dimensional arrangement evidence. It does not prove clearance on the other two axes.
42
+
43
+ ## `summer_navigation_probe`
44
+
45
+ Iteration 0 is unready; iteration 1 and later can be queried. Layer-filtered snapped endpoints and the reported snap distances define what Godot actually tested. `ready: false` means unknown, not unreachable.
46
+
47
+ Require both a reachable path and a small endpoint snap distance appropriate to the authored target.
48
+ Probe every independent destination; one reachable subject does not validate the
49
+ others. Derive the snap-distance threshold from the navigation agent radius or
50
+ an explicit authored tolerance.
@@ -0,0 +1,44 @@
1
+ id: skill/world-building-3d
2
+ kind: skill
3
+ version: 1.1.0
4
+ summary: Compose, ground, space, and validate 3D scenes with Summer's four bounded spatial tools — exact paths, one geometric decision at a time, verified.
5
+ use_when:
6
+ - placing or grounding props on floors, shelves, ramps, or tables without hand-tuning transforms
7
+ - aligning or evenly spacing a group of 3D objects along one world axis
8
+ - verifying an NPC, pickup, or portal position is reachable on the navigation map
9
+ do_not_use_when:
10
+ - the scene is 2D — these tools read Node3D transforms, world AABBs, 3D physics, and World3D navigation
11
+ - the change is a bulk procedural build with computed placement — skill/scene-scripting
12
+ facets:
13
+ lifecycle:
14
+ - build
15
+ domains:
16
+ - scenes
17
+ - 3d
18
+ - world-building
19
+ - level-design
20
+ - verification
21
+ modalities:
22
+ - scenes
23
+ compatibility:
24
+ engine: ">=4.6"
25
+ related:
26
+ tools:
27
+ - tool/test-placement
28
+ - tool/snap-to-surface
29
+ - tool/align-distribute-3d
30
+ - tool/navigation-probe
31
+ - tool/get-scene-tree
32
+ - tool/inspect-node
33
+ - tool/screenshot
34
+ skills:
35
+ - skill/scene-composition
36
+ - skill/verifying-scenes
37
+ - skill/scene-scripting
38
+ - skill/spatial-placement
39
+ source: official
40
+ license: MIT
41
+ status: preview
42
+ recommended: true
43
+ aliases:
44
+ - skills/scene-and-project/world-building-3d