summer-engine 3.4.0 → 3.5.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 (290) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +5 -1
  3. package/.codex-plugin/plugin.json +5 -1
  4. package/.cursor-plugin/plugin.json +5 -1
  5. package/.factory-plugin/plugin.json +5 -1
  6. package/.opencode/INSTALL.md +8 -8
  7. package/.opencode/plugins/summer.js +2 -2
  8. package/AGENTS.md +7 -7
  9. package/CHANGELOG.md +37 -0
  10. package/GEMINI.md +1 -1
  11. package/NOTICE +1 -1
  12. package/README.md +35 -35
  13. package/assets/autopilot/run.sh +2 -2
  14. package/assets/navigation/web-routes.json +1 -1
  15. package/commands/gameskill.md +2 -2
  16. package/commands/summer.md +25 -25
  17. package/dist/cli/commands/open.d.ts +1 -1
  18. package/dist/cli/commands/run.d.ts +1 -1
  19. package/dist/cli/commands/run.js +1 -1
  20. package/dist/cli/commands/setup.js +24 -4
  21. package/dist/cli/commands/skills.js +2 -2
  22. package/dist/core/api-client.d.ts +5 -6
  23. package/dist/core/api-client.js +12 -15
  24. package/dist/core/auth.js +2 -2
  25. package/dist/core/capabilities/asset-import.d.ts +0 -1
  26. package/dist/core/capabilities/camera-view.d.ts +1 -1
  27. package/dist/core/capabilities/camera-view.js +2 -2
  28. package/dist/core/capabilities/capture-gameplay.d.ts +72 -7
  29. package/dist/core/capabilities/capture-gameplay.js +386 -25
  30. package/dist/core/capabilities/connect-signal.d.ts +1 -2
  31. package/dist/core/capabilities/connect-signal.js +1 -2
  32. package/dist/core/capabilities/console-read.d.ts +2 -2
  33. package/dist/core/capabilities/console-read.js +2 -2
  34. package/dist/core/capabilities/engine-receipt.d.ts +5 -7
  35. package/dist/core/capabilities/engine-receipt.js +7 -9
  36. package/dist/core/capabilities/export-engine-version.d.ts +7 -0
  37. package/dist/core/capabilities/export-engine-version.js +9 -0
  38. package/dist/core/capabilities/export-game.d.ts +4 -0
  39. package/dist/core/capabilities/export-game.js +53 -10
  40. package/dist/core/capabilities/export-presets.d.ts +1 -1
  41. package/dist/core/capabilities/export-presets.js +1 -1
  42. package/dist/core/capabilities/fabricate-mesh.d.ts +2 -3
  43. package/dist/core/capabilities/fabricate-mesh.js +2 -3
  44. package/dist/core/capabilities/frame-quality.d.ts +4 -4
  45. package/dist/core/capabilities/frame-quality.js +4 -4
  46. package/dist/core/capabilities/grep.d.ts +1 -1
  47. package/dist/core/capabilities/grep.js +1 -1
  48. package/dist/core/capabilities/image-generation.d.ts +12 -2
  49. package/dist/core/capabilities/image-generation.js +31 -2
  50. package/dist/core/capabilities/navigation/open.d.ts +1 -1
  51. package/dist/core/capabilities/navigation/open.js +1 -1
  52. package/dist/core/capabilities/navigation/render-product-map.js +1 -1
  53. package/dist/core/capabilities/navigation/targets.js +2 -2
  54. package/dist/core/capabilities/placement-batch.d.ts +1 -1
  55. package/dist/core/capabilities/placement-batch.js +2 -2
  56. package/dist/core/capabilities/play-determinism.d.ts +1 -1
  57. package/dist/core/capabilities/play-determinism.js +1 -1
  58. package/dist/core/capabilities/publish-build.d.ts +1 -1
  59. package/dist/core/capabilities/publish-build.js +21 -9
  60. package/dist/core/capabilities/publish-download.d.ts +1 -2
  61. package/dist/core/capabilities/publish-download.js +2 -3
  62. package/dist/core/capabilities/replace-node.d.ts +1 -3
  63. package/dist/core/capabilities/replace-node.js +1 -3
  64. package/dist/core/capabilities/runtime-control.d.ts +5 -7
  65. package/dist/core/capabilities/runtime-control.js +7 -9
  66. package/dist/core/capabilities/scene-batch.d.ts +1 -1
  67. package/dist/core/capabilities/scene-batch.js +1 -1
  68. package/dist/core/capabilities/scene-kind.js +1 -1
  69. package/dist/core/capabilities/scene-readback.d.ts +3 -4
  70. package/dist/core/capabilities/scene-readback.js +3 -4
  71. package/dist/core/capabilities/scene-script.d.ts +2 -2
  72. package/dist/core/capabilities/scene-script.js +2 -2
  73. package/dist/core/capabilities/seeing/shot-store.d.ts +1 -1
  74. package/dist/core/capabilities/seeing/shot-store.js +1 -1
  75. package/dist/core/capabilities/summer-bundle.d.ts +11 -3
  76. package/dist/core/capabilities/summer-bundle.js +21 -3
  77. package/dist/core/capabilities/surface-snap.d.ts +1 -1
  78. package/dist/core/capabilities/surface-snap.js +1 -1
  79. package/dist/core/capabilities/tool-dispatch.js +14 -3
  80. package/dist/core/capabilities/ui-control.d.ts +1 -2
  81. package/dist/core/capabilities/ui-control.js +1 -2
  82. package/dist/core/capabilities/world-snapshot.d.ts +1 -1
  83. package/dist/core/capabilities/world-snapshot.js +1 -1
  84. package/dist/core/capability-skew.d.ts +2 -3
  85. package/dist/core/capability-skew.js +4 -5
  86. package/dist/core/feedback/client.js +1 -1
  87. package/dist/core/launch-posture.d.ts +3 -3
  88. package/dist/core/launch-posture.js +3 -3
  89. package/dist/core/library-read.d.ts +7 -0
  90. package/dist/core/library-read.js +60 -9
  91. package/dist/core/library-search.d.ts +2 -0
  92. package/dist/core/templates.d.ts +1 -2
  93. package/dist/core/templates.js +1 -2
  94. package/dist/installer/agent-config.d.ts +25 -0
  95. package/dist/installer/agent-config.js +114 -3
  96. package/dist/installer/agent-table.d.ts +12 -0
  97. package/dist/installer/agent-table.js +9 -0
  98. package/dist/mcp/server.d.ts +2 -2
  99. package/dist/mcp/server.js +2 -2
  100. package/dist/mcp/tools/creator-tools.js +33 -4
  101. package/dist/mcp/tools/debug-tools.js +1 -1
  102. package/dist/mcp/tools/generate-tools.js +18 -37
  103. package/dist/mcp/tools/library-tools.d.ts +2 -1
  104. package/dist/mcp/tools/library-tools.js +1 -0
  105. package/dist/mcp/tools/navigation-tools.d.ts +1 -1
  106. package/dist/mcp/tools/navigation-tools.js +1 -1
  107. package/dist/mcp/tools/spatial-tools.js +1 -1
  108. package/dist/mcp/tools/visual-tools.js +2 -2
  109. package/dist/mcp/tools/with-engine.d.ts +1 -2
  110. package/dist/mcp/tools/with-engine.js +1 -2
  111. package/gemini-extension.json +5 -1
  112. package/hooks/session-start.sh +2 -2
  113. package/integrations/README.md +70 -76
  114. package/integrations/claude/README.md +0 -3
  115. package/integrations/codex/README.md +1 -2
  116. package/integrations/copilot-jetbrains/README.md +1 -1
  117. package/integrations/cursor/README.md +1 -2
  118. package/integrations/factory/README.md +15 -11
  119. package/integrations/mistral-vibe/README.md +1 -1
  120. package/integrations/opencode/README.md +1 -1
  121. package/integrations/roo-code/README.md +1 -1
  122. package/integrations/rovo-dev/README.md +1 -1
  123. package/integrations/trae/README.md +1 -1
  124. package/integrations/windsurf/README.md +3 -3
  125. package/library/references/collaborative-protocol/collaborative-protocol.md +5 -5
  126. package/library/references/gd-style/gd-style.md +4 -6
  127. package/library/references/godot-version/godot-version.md +3 -3
  128. package/library/references/headless-routing/headless-routing.md +2 -2
  129. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +2 -2
  130. package/library/references/mcp-tools-reference/mcp-tools-reference.md +16 -15
  131. package/library/references/product-map/product-map.md +1 -1
  132. package/library/references/public-surface-language/public-surface-language.md +1 -1
  133. package/library/references/summer-folder/summer-folder.md +1 -1
  134. package/library/skills/3d-lighting/SKILL.md +4 -4
  135. package/library/skills/README.md +16 -6
  136. package/library/skills/adaptive-music/SKILL.md +7 -7
  137. package/library/skills/ai-characters-in-games/SKILL.md +1 -1
  138. package/library/skills/ambient-bed/SKILL.md +12 -14
  139. package/library/skills/animated-loop/SKILL.md +42 -42
  140. package/library/skills/animation-tree/SKILL.md +6 -6
  141. package/library/skills/art-direction/SKILL.md +8 -11
  142. package/library/skills/asset-strategy/SKILL.md +3 -3
  143. package/library/skills/audio-direction/SKILL.md +8 -10
  144. package/library/skills/auto-fire-targeting/SKILL.md +4 -3
  145. package/library/skills/bounded-engine-runs/SKILL.md +6 -7
  146. package/library/skills/brainstorm-game/SKILL.md +5 -5
  147. package/library/skills/brainstorming/SKILL.md +9 -15
  148. package/library/skills/celeste-momentum-platforming/SKILL.md +8 -13
  149. package/library/skills/celeste-momentum-platforming/resource.yaml +1 -1
  150. package/library/skills/character-animation-wiring/SKILL.md +2 -2
  151. package/library/skills/character-model/SKILL.md +15 -26
  152. package/library/skills/character-movement/SKILL.md +1 -1
  153. package/library/skills/character-movement/references/movement-3d.md +1 -1
  154. package/library/skills/character-portrait/SKILL.md +4 -4
  155. package/library/skills/cinematic-cutscene/SKILL.md +38 -38
  156. package/library/skills/combat-basics/SKILL.md +1 -1
  157. package/library/skills/compatibility-renderer-traps/SKILL.md +2 -2
  158. package/library/skills/concept-art/SKILL.md +3 -3
  159. package/library/skills/create-asset-sheet/SKILL.md +12 -31
  160. package/library/skills/debug/SKILL.md +5 -4
  161. package/library/skills/debugging-game-feel/SKILL.md +1 -4
  162. package/library/skills/debugging-game-feel/resource.yaml +1 -1
  163. package/library/skills/design-level/SKILL.md +5 -5
  164. package/library/skills/design-mechanic/SKILL.md +6 -6
  165. package/library/skills/design-npc/SKILL.md +8 -15
  166. package/library/skills/diagnosing-perf-regressions/SKILL.md +5 -10
  167. package/library/skills/dispatching-parallel-agents/SKILL.md +1 -19
  168. package/library/skills/environment-kit/SKILL.md +5 -5
  169. package/library/skills/export-and-ship/SKILL.md +24 -25
  170. package/library/skills/export-and-ship/resource.yaml +2 -1
  171. package/library/skills/fabricating-assets/SKILL.md +1 -1
  172. package/library/skills/facial-and-lipsync/SKILL.md +5 -5
  173. package/library/skills/fps-controller/SKILL.md +17 -16
  174. package/library/skills/fps-controller/resource.yaml +0 -2
  175. package/library/skills/game-feel/SKILL.md +6 -7
  176. package/library/skills/gameskill/SKILL.md +3 -3
  177. package/library/skills/gdscript-patterns/SKILL.md +3 -3
  178. package/library/skills/generate-motion/SKILL.md +5 -22
  179. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +72 -90
  180. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +0 -1
  181. package/library/skills/grow-analytics/SKILL.md +21 -0
  182. package/library/skills/grow-analytics/resource.yaml +27 -0
  183. package/library/skills/headless-scripting/SKILL.md +8 -8
  184. package/library/skills/instantiate-asset-pack/SKILL.md +7 -3
  185. package/library/skills/investigating-bugs/SKILL.md +3 -11
  186. package/library/skills/investigating-bugs/condition-based-waiting.md +0 -10
  187. package/library/skills/investigating-bugs/root-cause-tracing.md +0 -8
  188. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +15 -15
  189. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +0 -1
  190. package/library/skills/make-game/SKILL.md +3 -5
  191. package/library/skills/make-game/references/2d-platformer.md +1 -1
  192. package/library/skills/multiplayer-project/SKILL.md +1 -1
  193. package/library/skills/multiplayer-testing/SKILL.md +4 -4
  194. package/library/skills/music-track/SKILL.md +40 -38
  195. package/library/skills/new-project/SKILL.md +4 -6
  196. package/library/skills/organic-model/SKILL.md +9 -9
  197. package/library/skills/pixel-art/SKILL.md +6 -6
  198. package/library/skills/play/SKILL.md +3 -4
  199. package/library/skills/playtesting-a-feature/SKILL.md +4 -6
  200. package/library/skills/procedural-animation/SKILL.md +10 -11
  201. package/library/skills/prop-model/SKILL.md +4 -4
  202. package/library/skills/psx-retro-rendering/SKILL.md +20 -20
  203. package/library/skills/psx-retro-rendering/resource.yaml +2 -3
  204. package/library/skills/publish-your-game/SKILL.md +21 -0
  205. package/library/skills/publish-your-game/resource.yaml +29 -0
  206. package/library/skills/realtime-wet-surfaces/SKILL.md +15 -15
  207. package/library/skills/realtime-wet-surfaces/resource.yaml +1 -2
  208. package/library/skills/remote-deploy/SKILL.md +20 -21
  209. package/library/skills/retarget/SKILL.md +19 -23
  210. package/library/skills/running-in-the-cloud/SKILL.md +5 -5
  211. package/library/skills/scene-composition/SKILL.md +5 -5
  212. package/library/skills/scene-hierarchy-design/SKILL.md +3 -3
  213. package/library/skills/scene-hierarchy-design/resource.yaml +0 -1
  214. package/library/skills/scene-scripting/SKILL.md +3 -3
  215. package/library/skills/scene-to-level/SKILL.md +28 -31
  216. package/library/skills/skill-create/SKILL.md +1 -1
  217. package/library/skills/skill-improve/SKILL.md +9 -9
  218. package/library/skills/skill-test/SKILL.md +10 -10
  219. package/library/skills/skintokens-auto-rigging/SKILL.md +18 -18
  220. package/library/skills/skintokens-auto-rigging/resource.yaml +3 -3
  221. package/library/skills/skybox-panorama/SKILL.md +8 -9
  222. package/library/skills/sound-effect/SKILL.md +19 -19
  223. package/library/skills/spatial-placement/SKILL.md +2 -2
  224. package/library/skills/spatial-placement/references/kit-placement-tools.md +12 -22
  225. package/library/skills/sprite-sheet/SKILL.md +10 -10
  226. package/library/skills/store-art/SKILL.md +23 -0
  227. package/library/skills/store-art/resource.yaml +30 -0
  228. package/library/skills/store-listing/SKILL.md +21 -0
  229. package/library/skills/store-listing/resource.yaml +25 -0
  230. package/library/skills/summer-analytics/SKILL.md +3 -3
  231. package/library/skills/summer-analytics/resource.yaml +1 -0
  232. package/library/skills/summer-friends/SKILL.md +10 -10
  233. package/library/skills/summer-leaderboards/SKILL.md +6 -6
  234. package/library/skills/summer-match-results/SKILL.md +13 -13
  235. package/library/skills/summer-matchmaking/SKILL.md +11 -11
  236. package/library/skills/summer-parties/SKILL.md +9 -9
  237. package/library/skills/summer-player-data/SKILL.md +12 -12
  238. package/library/skills/summer-store/SKILL.md +6 -6
  239. package/library/skills/summer-world-chat/SKILL.md +9 -9
  240. package/library/skills/summer-world-saves/SKILL.md +7 -7
  241. package/library/skills/text-to-motion/rigging-for-text-motion.md +1 -1
  242. package/library/skills/tileable-texture/SKILL.md +1 -1
  243. package/library/skills/trailer-shot/SKILL.md +36 -36
  244. package/library/skills/tune-performance/SKILL.md +13 -13
  245. package/library/skills/tune-performance/resource.yaml +1 -1
  246. package/library/skills/ui-graphics/SKILL.md +7 -7
  247. package/library/skills/use-widget-asset/SKILL.md +7 -7
  248. package/library/skills/using-summer/SKILL.md +5 -7
  249. package/library/skills/vehicle-model/SKILL.md +6 -7
  250. package/library/skills/vehicle-model/resource.yaml +2 -2
  251. package/library/skills/verification-before-completion/SKILL.md +5 -6
  252. package/library/skills/vfx-dissolve/SKILL.md +4 -4
  253. package/library/skills/vfx-fire/SKILL.md +6 -6
  254. package/library/skills/vfx-fire/_building-blocks/additive-billboard-particles.md +3 -3
  255. package/library/skills/vfx-hit-spark/SKILL.md +4 -4
  256. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +3 -3
  257. package/library/skills/vfx-lightning/SKILL.md +5 -5
  258. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +3 -3
  259. package/library/skills/vfx-lightning/_building-blocks/trauma-shake-snippet.md +9 -3
  260. package/library/skills/vfx-magic-glow/SKILL.md +4 -4
  261. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +3 -3
  262. package/library/skills/vfx-muzzle-flash/SKILL.md +5 -5
  263. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +3 -3
  264. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +9 -3
  265. package/library/skills/vfx-smoke/SKILL.md +5 -5
  266. package/library/skills/vfx-water-ripple/SKILL.md +2 -2
  267. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +3 -3
  268. package/library/skills/voice-line/SKILL.md +9 -9
  269. package/library/skills/world-building-3d/references/spatial-tools.md +2 -2
  270. package/library/skills/writing-plans/SKILL.md +4 -4
  271. package/library/skills/writing-skills/SKILL.md +8 -8
  272. package/library/tools/capture-gameplay/resource.yaml +66 -1
  273. package/library/tools/creator-publish/resource.yaml +4 -4
  274. package/library/tools/creator-releases/resource.yaml +5 -5
  275. package/library/tools/export-game/resource.yaml +3 -0
  276. package/library/tools/generate-image/resource.yaml +4 -2
  277. package/library/tools/publish-build/resource.yaml +5 -1
  278. package/package.json +1 -1
  279. package/registry/generated/counts.json +2 -2
  280. package/registry/generated/gemini-extension.json +5 -1
  281. package/registry/generated/index.json +280 -137
  282. package/registry/generated/marketplace.claude.json +1 -1
  283. package/registry/generated/plugin.claude.json +5 -1
  284. package/registry/generated/plugin.codex.json +5 -1
  285. package/registry/generated/plugin.cursor.json +5 -1
  286. package/registry/generated/plugin.factory.json +5 -1
  287. package/registry/generated/skills-index.md +16 -6
  288. package/registry/generated/skills-registry.json +57 -5
  289. package/registry/schemas/domains.json +1 -1
  290. package/registry/schemas/skill.schema.json +5 -0
@@ -1,6 +1,6 @@
1
1
  # Additive Billboard Particles — Canonical Material Settings
2
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.
3
+ Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `vfx-magic-glow`, optionally substitutable in `vfx-hit-spark` and `vfx-fire` if a custom shader is overkill.
4
4
 
5
5
  `BaseMaterial3D` is abstract — `BaseMaterial3D.new()` is a parse error ("Native class
6
6
  "BaseMaterial3D" cannot be constructed as it is abstract"). Instantiate
@@ -27,8 +27,8 @@ bm.emission = Color(R, G, B) # usually same as albedo for single-color
27
27
 
28
28
  ## When to use this vs a custom shader
29
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.
30
+ - **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free engine-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 present on the shipped engine) — 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
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
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
34
 
@@ -24,7 +24,7 @@ Then it generates one line (or a multi-turn dialogue) with the right stability /
24
24
 
25
25
  ## When NOT to use
26
26
 
27
- - Non-verbal vocal SFX (grunt, scream) → `audio/sound-effect` with prompt `male grunt of pain, mid-thirties, sharp, 400ms`.
27
+ - Non-verbal vocal SFX (grunt, scream) → `sound-effect` with prompt `male grunt of pain, mid-thirties, sharp, 400ms`.
28
28
  - Pre-recorded voice from a real actor — import the .mp3 / .wav with `summer_import_from_url` and skip TTS.
29
29
 
30
30
  ## Steps
@@ -146,7 +146,7 @@ For a single line, the prompt is just the text. Punctuation and formatting matte
146
146
 
147
147
  - **Periods** = clear pauses (~300ms). Use them.
148
148
  - **Commas** = short pauses (~100ms).
149
- - **Em dashes** = sharp cut. (Note: avoid em dashes in user-facing UI copy per project standard, but they're fine in voice prompts as a delivery cue.)
149
+ - **Em dashes** = sharp cut.
150
150
  - **All-caps word** = stress: `You SHALL not pass.`
151
151
  - **Ellipsis** = trailing pause: `I... I don't know what to say.`
152
152
  - **Parenthetical stage direction is ignored** — `(angrily)` is read as the word "angrily". Use stability/style instead.
@@ -230,7 +230,7 @@ Excited young hero: 18-28, high energy, mid-high pitch
230
230
  Cold villain: 30-50, neutral/theatrical, low-mid, slow with sharp consonants
231
231
  Mischievous trickster: theatrical, light, fast cadence
232
232
  Calm scholar: 30-50, neutral, mid, even cadence
233
- Scared / breathy: high stability=0.25, style=0.5
233
+ Scared / breathy: stability=0.25, style=0.5
234
234
  Robotic AI: stability=1.0, style=0.0
235
235
  Narrator cinematic: mid-deep, neutral/theatrical, even, very stable
236
236
  Narrator intimate: warmer mid pitch, lower stability for breath
@@ -250,9 +250,9 @@ Narrator intimate: warmer mid pitch, lower stability for breath
250
250
 
251
251
  ## Edge cases
252
252
 
253
- - **Line longer than ~1000 characters.** ElevenLabs caps per-call. Split at sentence boundaries, generate each, concatenate with `AudioStreamPlayer.queue` or chained `finished` signals.
253
+ - **Line longer than ~1000 characters.** ElevenLabs caps per-call. Split at sentence boundaries, generate each, and play them in order by chaining the player's `finished` signal.
254
254
  - **Mispronunciation of a fictional word.** Spell it phonetically: `Caelthorne` → `KEL-thorn` or `KAYL-thorn`. Or use SSML if the model supports it.
255
- - **Voice drifts in long lines.** Increase `similarity_boost` toward 0.9; or split.
255
+ - **Voice drifts in long lines.** Increase `similarityBoost` toward 0.9; or split.
256
256
  - **Need a non-English line.** `eleven_multilingual_v2` supports 29 languages. Just write in the target language; the same voice id works.
257
257
  - **User wants the line shorter on regen.** Edit the text first; don't try to compress with `speed` past 1.15 (artifacts).
258
258
  - **NPC bark variants.** Generate 3–5 variants of the same intent (`"They're at the gate!"`, `"Enemy approaching!"`, `"Look out!"`) and pick at random in code so the bark doesn't repeat.
@@ -266,10 +266,10 @@ Print the call (text, voice id, params, target path). User runs via the Summer d
266
266
  > Line `hodge_hold_the_line.mp3` wired to `NPC/VoiceLine` on the `Voice` bus. Cast bible updated. Next:
267
267
  > - Generate 3 bark variants of the same intent so the NPC doesn't sound like a recording.
268
268
  > - For the upcoming gate scene, run `/voice-line` with `text_to_dialogue` for the multi-turn exchange.
269
- > - Set up music ducking on the `Music` bus when `Voice` is active (one Tween or a `BusEffect Compressor` sidechained to `Voice`).
269
+ > - Set up music ducking on the `Music` bus when `Voice` is active (one Tween, or an `AudioEffectCompressor` on `Music` with `sidechain` set to `Voice`).
270
270
 
271
271
  ## See also
272
272
 
273
- - `audio/audio-direction` — Voice bus and ducking rules
274
- - `audio/sound-effect` — non-verbal vocal SFX (grunt, scream)
275
- - `audio/adaptive-music` — ducking integration
273
+ - `audio-direction` — Voice bus and ducking rules
274
+ - `sound-effect` — non-verbal vocal SFX (grunt, scream)
275
+ - `adaptive-music` — ducking integration
@@ -17,7 +17,7 @@ Input is a candidate global position and global Euler rotation. The subject's cu
17
17
 
18
18
  Interpretation:
19
19
 
20
- - Physics overlap counts are lower bounds because Godot exposes no broadphase-completeness bit.
20
+ - Physics overlap counts are lower bounds because the physics server exposes no broadphase-completeness bit.
21
21
  - Any known obstruction makes `fits: false`.
22
22
  - Zero known physics overlaps can still yield `fits: null`; never coerce it to success.
23
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.
@@ -42,7 +42,7 @@ This is one-dimensional arrangement evidence. It does not prove clearance on the
42
42
 
43
43
  ## `summer_navigation_probe`
44
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.
45
+ Iteration 0 is unready; iteration 1 and later can be queried. Layer-filtered snapped endpoints and the reported snap distances define what the engine actually tested. `ready: false` means unknown, not unreachable.
46
46
 
47
47
  Require both a reachable path and a small endpoint snap distance appropriate to the authored target.
48
48
  Probe every independent destination; one reachable subject does not validate the
@@ -66,9 +66,9 @@ This structure informs the task decomposition. Each task should produce self-con
66
66
  ### Task N: [Component Name]
67
67
 
68
68
  **Files:**
69
- - Create: `exact/path/to/file.py`
70
- - Modify: `exact/path/to/existing.py:123-145`
71
- - Test: `tests/exact/path/to/test.py`
69
+ - Create: `exact/path/to/file.gd`
70
+ - Modify: `exact/path/to/existing.gd:123-145`
71
+ - Test: `tests/exact/path/to/test_file.gd`
72
72
 
73
73
  - [ ] **Step 1: Write the failing test**
74
74
 
@@ -103,7 +103,7 @@ Expected: PASS
103
103
  - [ ] **Step 5: Commit**
104
104
 
105
105
  ```bash
106
- git add tests/path/test.py src/path/file.py
106
+ git add tests/unit/test_health.gd scripts/health.gd
107
107
  git commit -m "feat: add specific feature"
108
108
  ```
109
109
  ````
@@ -104,7 +104,7 @@ skills/
104
104
 
105
105
  ```markdown
106
106
  ---
107
- name: Skill-Name-With-Hyphens
107
+ name: skill-name-with-hyphens
108
108
  description: Use when [specific triggering conditions and symptoms]
109
109
  ---
110
110
 
@@ -260,7 +260,7 @@ You: Searching...
260
260
 
261
261
  **Verification:**
262
262
  ```bash
263
- wc -w skills/path/SKILL.md
263
+ wc -w library/skills/<slug>/SKILL.md
264
264
  # getting-started workflows: aim for <150 each
265
265
  # Other frequently-loaded: aim for <200 total
266
266
  ```
@@ -287,7 +287,7 @@ Use skill name only, with explicit requirement markers:
287
287
 
288
288
  **Check the skill exists before you point at it.** The registry of shipped skills is `registry/generated/skills-registry.json` (generated from `library/skills/`); `summer skills list` prints it. A `REQUIRED SUB-SKILL` pointing at a skill that was never shipped is worse than no cross-reference: the reader stops and looks for something that does not exist.
289
289
 
290
- **Why no @ links:** `@` syntax force-loads files immediately, consuming 200k+ context before you need them.
290
+ **Why no @ links:** `@` syntax force-loads files immediately and spends context before you need them.
291
291
 
292
292
  ## Flowchart Usage
293
293
 
@@ -549,7 +549,7 @@ Run same scenarios WITH skill. Agent should now comply.
549
549
 
550
550
  Agent found new rationalization? Add explicit counter. Re-test until bulletproof.
551
551
 
552
- **Testing methodology:** See @testing-skills-with-subagents.md for the complete testing methodology:
552
+ **Testing methodology:** See `testing-skills-with-subagents.md` in this directory for the complete testing methodology:
553
553
  - How to write pressure scenarios
554
554
  - Pressure types (time, sunk cost, authority, exhaustion)
555
555
  - Plugging holes systematically
@@ -633,10 +633,10 @@ Deploying untested skills = deploying untested code. It's a violation of quality
633
633
  How future Claude finds your skill:
634
634
 
635
635
  1. **Encounters problem** ("tests are flaky")
636
- 3. **Finds SKILL** (description matches)
637
- 4. **Scans overview** (is this relevant?)
638
- 5. **Reads patterns** (quick reference table)
639
- 6. **Loads example** (only when implementing)
636
+ 2. **Finds SKILL** (description matches)
637
+ 3. **Scans overview** (is this relevant?)
638
+ 4. **Reads patterns** (quick reference table)
639
+ 5. **Loads example** (only when implementing)
640
640
 
641
641
  **Optimize for this flow** - put searchable terms early and often.
642
642
 
@@ -1,12 +1,13 @@
1
1
  id: tool/capture-gameplay
2
2
  kind: tool
3
3
  version: 1.0.0
4
- summary: Capture real gameplay frames (PNG, HUD included) in Summer Engine's offscreen verify instance, without a running editor, e.g. store screenshots.
4
+ summary: Capture real gameplay PNGs (HUD included) offscreen without a running editor; game flags and player steps (press, key, click) get past the title screen.
5
5
  use_when:
6
6
  - '"take gameplay screenshots for my store page"'
7
7
  - '"I need screenshots but the editor is not open"'
8
8
  - '"capture a 1920x1080 frame of my game"'
9
9
  - collecting real gameplay screenshots for summer_store_set_art desktop.screenshots or mobile.screenshots
10
+ - every capture shows the title screen — pass the game's flags in args or steps like press Play
10
11
  do_not_use_when:
11
12
  - the editor is open and the game is running — tool/screenshot with target game shows the live game
12
13
  - key art, covers or icons — those are generated art, not gameplay frames
@@ -62,6 +63,70 @@ input_schema:
62
63
  out:
63
64
  type: string
64
65
  description: Output folder. Defaults to <project>/.summer/captures/<time>/ (ignored by git).
66
+ args:
67
+ type: array
68
+ maxItems: 32
69
+ items:
70
+ type: string
71
+ description: The game's own command-line flags, passed after "--" (OS.get_cmdline_user_args()), e.g. ["--autostart", "--solo"] to skip the title screen.
72
+ steps:
73
+ type: array
74
+ maxItems: 50
75
+ description: 'What to do after waitSeconds, in order; exactly one of press, key, action, click, drag, wait, shot per step. Example: [{"press":"Play"},{"wait":3000},{"key":"Space"},{"shot":true},{"action":"jump"},{"wait":500},{"shot":true}]. With a shot step only shot steps save frames. A step that cannot run becomes a warning.'
76
+ items:
77
+ type: object
78
+ properties:
79
+ press:
80
+ type: string
81
+ description: Press the visible button with this text (or node name); waits up to timeoutSeconds (default 10) for it.
82
+ timeoutSeconds:
83
+ type: number
84
+ minimum: 0
85
+ maximum: 60
86
+ key:
87
+ type: string
88
+ description: Press a key by Godot name (Space, Enter, Escape, A, Up).
89
+ action:
90
+ type: string
91
+ description: Press an input action from the project's InputMap, e.g. jump.
92
+ holdMs:
93
+ type: number
94
+ minimum: 0
95
+ maximum: 10000
96
+ description: How long key or action is held (default 100).
97
+ click:
98
+ type: array
99
+ items:
100
+ type: number
101
+ description: Left-click at [x, y] in frame pixels.
102
+ drag:
103
+ type: object
104
+ properties:
105
+ from:
106
+ type: array
107
+ items:
108
+ type: number
109
+ to:
110
+ type: array
111
+ items:
112
+ type: number
113
+ ms:
114
+ type: number
115
+ minimum: 0
116
+ maximum: 10000
117
+ required:
118
+ - from
119
+ - to
120
+ description: Drag with the left button from [x, y] to [x, y] over ms (default 300).
121
+ wait:
122
+ type: number
123
+ minimum: 0
124
+ maximum: 60000
125
+ description: Wait this many milliseconds.
126
+ shot:
127
+ type: boolean
128
+ description: true saves a frame now.
129
+ additionalProperties: false
65
130
  additionalProperties: false
66
131
  authority:
67
132
  filesystem: true
@@ -1,12 +1,12 @@
1
1
  id: tool/creator-publish
2
2
  kind: tool
3
3
  version: 1.1.0
4
- summary: "Deprecated: publishes a .pck to the legacy Summercraft API. Use summer_export_game, then summer_publish_build, to upload to summer.games."
4
+ summary: "Deprecated: publishes a .pck to the legacy creator API. Use summer_export_game, then summer_publish_build, to upload to summer.games."
5
5
  use_when:
6
- - releasing a user-approved build to a Summercraft channel
7
- - '"ship this exported build to the live channel"'
8
- - '"release version 1.2.0 of my game"'
6
+ - an old project that still publishes a .pck to the legacy Summercraft creator channel with an sc_ creator token
7
+ - a ~/.summer/config.json that names a legacy creator projectId and channel
9
8
  do_not_use_when:
9
+ - releasing a version on summer.games — summer_publish_build, then summer_store_submit (the owner approves)
10
10
  - uploading to summer.games — summer_export_game, then summer_publish_build
11
11
  - the user has not approved the exact version, digest, and channel
12
12
  - the game is not exported yet — export the .pck first (skill/export-and-ship)
@@ -1,12 +1,12 @@
1
1
  id: tool/creator-releases
2
2
  kind: tool
3
3
  version: 1.0.2
4
- summary: List creator-owned releases from the Summercraft creator API with server-verified scope and ownership.
4
+ summary: "Deprecated: lists releases on the legacy creator API. For summer.games use summer_store_releases."
5
5
  use_when:
6
- - reviewing which versions of a project are live per channel
7
- - '"what version is live right now?"'
8
- - '"did the publish go through?" — confirming a release landed'
6
+ - an old project that published a .pck to the legacy Summercraft creator channel with an sc_ creator token
7
+ - paging legacy creator releases by projectId and cursor
9
8
  do_not_use_when:
9
+ - what players get on summer.games, or whether a release landed — summer_store_releases
10
10
  - publishing a new release — summer_publish_build
11
11
  facets:
12
12
  lifecycle:
@@ -18,7 +18,7 @@ compatibility:
18
18
  engine: ">=4.6"
19
19
  source: official
20
20
  license: MIT
21
- status: stable
21
+ status: deprecated
22
22
  aliases:
23
23
  - summer_creator_releases
24
24
  implementation:
@@ -61,6 +61,9 @@ input_schema:
61
61
  minimum: 10
62
62
  maximum: 7200
63
63
  description: Stop the engine after this many seconds (default 900; a first export imports every asset).
64
+ alignDeclaration:
65
+ type: boolean
66
+ description: A game with a server, set summer.build.json targetPlatforms to targets before exporting. The store refuses an upload whose declaration differs from the exported platforms (declaration_mismatch) and that spends the version.
64
67
  additionalProperties: false
65
68
  authority:
66
69
  filesystem: true
@@ -33,8 +33,7 @@ input_schema:
33
33
  description: Description of the image to generate
34
34
  model:
35
35
  type: string
36
- default: nano-banana-2
37
- description: Model name or full provider ID
36
+ description: Model name or full provider ID. Omit it and the server picks one that reaches the requested size (nano-banana-2 when no size is asked).
38
37
  style:
39
38
  type: string
40
39
  default: realistic
@@ -63,6 +62,9 @@ input_schema:
63
62
  type: object
64
63
  additionalProperties: {}
65
64
  description: Extra model params (seed, negative_prompt, ...). The result lists any it did not use in ignoredOptions.
65
+ out:
66
+ type: string
67
+ description: Where to save the image on this machine, a folder or a file path ending in .png, .jpg or .webp. Default is <TMPDIR>/summer-gen/.
66
68
  required:
67
69
  - prompt
68
70
  additionalProperties: false
@@ -6,12 +6,16 @@ use_when:
6
6
  - '"upload my game to summer.games"'
7
7
  - '"publish this build to my store page"'
8
8
  - '"put my game online so my friends can play it"'
9
+ - '"release version 1.2.0 of my game"'
10
+ - '"ship this exported build to the live channel"'
9
11
  - uploading the .zip from summer_export_game as a new Build
10
12
  - uploading a web build or a macOS or Windows download from summer_export_game format download
11
13
  do_not_use_when:
12
14
  - the user has not approved the exact game, file, digest, version and publish choice
13
15
  - the game is not exported yet — summer_export_game first
14
- - store page text, images or price — those are edited in Studio
16
+ - store page text, art or price — summer_store_update_listing, summer_store_set_art (mounted after summer login --store)
17
+ - making the build live — summer_store_submit (the owner approves publishing), then summer_build_release
18
+ - what players get now — summer_store_releases
15
19
  facets:
16
20
  lifecycle:
17
21
  - launch
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "summer-engine",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "description": "Local Summer CLI and MCP server for Summer Engine. Install and run the engine, connect Claude Code, Cursor, Codex, Gemini, and other agents, and build real games with bundled skills, hooks, and plugins.",
5
5
  "keywords": [
6
6
  "summer-engine",
@@ -4,9 +4,9 @@
4
4
  "collection": 0,
5
5
  "example": 0,
6
6
  "reference": 9,
7
- "skill": 118,
7
+ "skill": 122,
8
8
  "template": 19,
9
9
  "tool": 105
10
10
  },
11
- "total": 251
11
+ "total": 255
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
3
3
  "name": "summer",
4
- "version": "3.4.0",
4
+ "version": "3.5.0",
5
5
  "description": "Agent tooling for Summer Engine: MCP bridge, context primer, and game-dev skills. Use with the npm CLI for skill files on disk.",
6
6
  "contextFileName": "GEMINI.md",
7
7
  "mcpServers": {
@@ -68,6 +68,7 @@
68
68
  "./library/skills/gdscript-patterns/",
69
69
  "./library/skills/generate-motion/",
70
70
  "./library/skills/godogen-visual-proof-game-generation/",
71
+ "./library/skills/grow-analytics/",
71
72
  "./library/skills/headless-scripting/",
72
73
  "./library/skills/in-game-purchases/",
73
74
  "./library/skills/instantiate-asset-pack/",
@@ -90,6 +91,7 @@
90
91
  "./library/skills/procedural-animation/",
91
92
  "./library/skills/prop-model/",
92
93
  "./library/skills/psx-retro-rendering/",
94
+ "./library/skills/publish-your-game/",
93
95
  "./library/skills/realtime-wet-surfaces/",
94
96
  "./library/skills/remote-deploy/",
95
97
  "./library/skills/retarget/",
@@ -107,6 +109,8 @@
107
109
  "./library/skills/sound-effect/",
108
110
  "./library/skills/spatial-placement/",
109
111
  "./library/skills/sprite-sheet/",
112
+ "./library/skills/store-art/",
113
+ "./library/skills/store-listing/",
110
114
  "./library/skills/summer-analytics/",
111
115
  "./library/skills/summer-friends/",
112
116
  "./library/skills/summer-leaderboards/",